http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperInternals.pdf ---------------------------------------------------------------------- diff --git a/_released_docs/r3.1.2/zookeeperInternals.pdf b/_released_docs/r3.1.2/zookeeperInternals.pdf new file mode 100644 index 0000000..e600e9f --- /dev/null +++ b/_released_docs/r3.1.2/zookeeperInternals.pdf @@ -0,0 +1,656 @@ +%PDF-1.3 +%���� +4 0 obj +<< /Type /Info +/Producer (FOP 0.20.5) >> +endobj +5 0 obj +<< /Length 722 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gaua=>Aoub'Z],,'Ri`Oc1;[kA$W8f[SC"+Sp#Bu_4aDM1IEqZgWqcPCo/e+;DlN_39FK@fuJTTaeC`G'G(H\aL2\dIsH]4).A'>%tg,fM]%+':-mH]YDY&+I?\b"ob+na8ST;"hRC2JXf/iXp^XS?0'?t?3Qf6L$=ipskM^[Z:&nmUEb?@9N!K)N4OhfFjS$tfD>emc9`;EoeN(EYS.?iR'+t^&j$Q-Q\s)%,?2Ve"0PXVSo=e,i'"GMlVTY(!'N0:s?pUZp&V^"u6)LnSpN<[..ee"td7P+`kk]Se^qN?#TX-(hgR9[)E-4X*(Y>0RaN"<?H_H/X/_Ri.1[nNte,4VO)AI&IN@VQAg<)<GpVO7IC1,?GoC:iX-6E3Hg(3se^o\<iYg!EU[;#VmQt6@ZE-;:qe)2d2gk4'in1_Y/#%I0qG+C%^[[`,BT"+SQ2aq&Y#\;E>@DMiUBnS[q05m5LpNSgFCrj9%5sEO5#/!s\:?\^)q9AbS`.XZrrA(ZIU+>M/l=+hHplYHU.VEJW^Oai]4U6mUEiEci]fa\TaS@7B8fhNFG+k_fm&NJ(<@e+4ifD(F7/\`rI^l/>48WEM^r3U[HVFVL#?l^rF;Jf\Oc>mo#JlX,5_!7L+,Eq@JQ[&cS9fR,e5c=sq]jiS_QgQU6E.H"8*Q$+:?8*sYI=C*TnAJC[;QHI=b&e??$jK>mK-U9;BKEM4o-ftr[L>~> +endstream +endobj +6 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 5 0 R +/Annots 7 0 R +>> +endobj +7 0 obj +[ +8 0 R +10 0 R +12 0 R +14 0 R +16 0 R +18 0 R +20 0 R +22 0 R +24 0 R +] +endobj +8 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 102.0 529.541 169.328 517.541 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 9 0 R +/H /I +>> +endobj +10 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 102.0 511.341 196.988 499.341 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 11 0 R +/H /I +>> +endobj +12 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 108.0 493.141 312.464 481.141 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 13 0 R +/H /I +>> +endobj +14 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 108.0 474.941 210.476 462.941 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 15 0 R +/H /I +>> +endobj +16 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 108.0 456.741 210.488 444.741 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 17 0 R +/H /I +>> +endobj +18 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 108.0 438.541 170.168 426.541 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 19 0 R +/H /I +>> +endobj +20 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 108.0 420.341 186.836 408.341 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 21 0 R +/H /I +>> +endobj +22 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 102.0 402.141 150.668 390.141 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 23 0 R +/H /I +>> +endobj +24 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 108.0 383.941 228.476 371.941 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 25 0 R +/H /I +>> +endobj +26 0 obj +<< /Length 2020 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gau0DgQ(#H&:O:SkcmF[N'uM!QDE=ZD1SL>JH0Q`^m-@<=@mU*C(:2k8(MN*93ro0&R]$&i`sdQ*7"&uG4Xu_G.`@8c8ORic@4e60)Y=2e:kRan;6<ucF.ioq8jj7S3%WIq`hctN0:e61I>+qS:@*sn!i4CRr<8WOmm8;T(W8L7$/-fcJ6CCEYN^=2LfT#1l=Z@UTJ!0.J64C[lUu'Tgu4HRFNUebd`kYatQ\dDa]j`<O12[IM;`>#EHR%\/L\]W?+L98)e&Crr--E5<(lJKn/qLa58mU09KpYk"b-Aesbn7/)+Di+gghWN75j1,EF%t^N?A[h0\aLL%%#.>7"Xc%<4eic^[f"S;dc2i8Z(/8aMZQojD#?N_>NhG#$?GlgT!OeD;)8G-Y#,\=MlfN@[N,U`/Q6<6$ps?QY<1_eDBa,[!5nR+NHI-GE??m4tQ`%%p\4+3$JN<eD;h'"+;W,`7b6is/ureOaEFT5q]%PT26g;6?N6'C+$>*(<HQLSeESEO[XWO<u7GBj\H&l]X=#f2Q\PKd?"6j0`$g])u]g4B#giPYaY$<6B%:=37j^/R&+=5&8&/C^!1P+$gL)>nllg=gi+KT")'SB<J='QP.%<6D(<;i#);HcioLe5nN\Y_gM?aAr9TCF,_%!UQPV@&_8;0G2qR`Sr62t>c8H+*CKqTD;'d!pJ\@Icp7qkQ2!L<@t9S%'0-QHIP?9,4"C%OFrXZ^E*beW79jWA,\\TtR,ScRfAR+1R$-=>>S`#UJH6u1#?Rk2[2Vr/d&9&#M&1b,'GkV+Ek)Ka#I<MTaLOdLP63,op%mR@>\$c<3/W1\EkZ9L[7_@Yl70ObDR,JA2=c9XnL(i7CFGnJC:.*UF_+"57G(Cd@=!U9d]d26=/oO>k\%-mUP&d9Y[%beLVDduB@4`:O$M%B+MYd^M/k-&4&!MQclSC)^^T&V4Cf6#+H9F4bo#2$Kis?B-qj6JiZQe<Ft8"OTR`&MpRQ'PMQE[?_g PS#A[VMg[!#s=IrAL8f5ZO\X3G7e=bt(_4S4+.VD0@/\rGAUqh$=ZX;tZl&+d2,f%Sb:1)!IkIH82J(PH^=cL^ir27-L2"L:HYRh)XU%D.n]EbeA2M>7eo%qP*gUX3tUZWHqGV7GRuAq`_7:rPG<hoL)lGn-s.J94.BX7"hLl>&B.kBY1D4;PT#&SM"N;\BT\LBWtt6oKZC$M#!,k3UK5?D!>U)Gb0/3=!Ka)]54]\%u7js(MkQ!+au#>^pkr?]3SiLB\=sHUQ(D!ps)MMqq8.>KsRl/Y&BM0T>Jie58%(pP4$L1Yg&1U4l%'.*i:HE8!PUlldfU.@qDn`M>M4E1$1MpID6"aq%#%FRs7a:+R4BE\P:8q1O=BPq4:((!PTXaI+GkKpu^\B*_S_ZU]9ZXpWopBM:q-X%hUi:A4kQBC+\U;QDSfT0=rNWY!0P\;1c-L;T,50^oFlLi[.4%fdehQ!Jttj/s>\gifa`/Cm3K.VWE?$g]Xo8o#cu^^;Y/6f+<9(OX3-<`%NP8`d6qKO.%)V>a#4[MJr%/XJ=N6Kc4;kf/R?M/Y-,2OM1#4LfM<cM;G6!2amEil&=N?R->Y,&L;=RGfQFipVi=]DNN?n)*#P5R2ij.pc>;M`FqRbJM'Y_<$7sA_Jqi3=),r>*Pah(4E21O^V=,4di0N0WrK2g_bgiH+5D]$>J=#a:uU5^M,b9pVfBA1ZW62e&C2(j<Z]kO$#$&gT@5[R1U<(RBd(DX#503?.[i?+)q>+qs:(1.?e=G=.m-E$bldfD]X)?Y[1^[C[>9`dc%1A.Z<G[k<+eL\1kWh:^8=O4;kq*5uQ<Y@a?DC9j9!HmOjMk)FsGjVU&8]$>mP"mb;@u%u-!%ls>NR6GqrF..?&L]W'c7CG/fRZ'2[rqlrfF5pJgAH]?hC<Ke[b%RTfrl+po!7\Q#2]2$%W5a'0o')TQm`pJ`WQ%n/*U99uEX0/pK(U&lN_s>W(2lCO_D0PCe-64>d*@oK %G1!G>RU7On7n2kE!s7llkP~> +endstream +endobj +27 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 26 0 R +/Annots 28 0 R +>> +endobj +28 0 obj +[ +29 0 R +30 0 R +] +endobj +29 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 108.0 599.266 194.988 587.266 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 11 0 R +/H /I +>> +endobj +30 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 108.0 582.066 148.668 570.066 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 23 0 R +/H /I +>> +endobj +31 0 obj +<< /Length 2310 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +GatU5gMYb8&:O:Skg;j?L3H4;EuMYbS&B"c+@,7e=A^T*0ZdnIV.JiU41q13Q]fc@E$.d6cHM\4B4dKK<Yr6GMm!rJCe&t>?S"phSGBlps1;V5q3C,FL,[<NCjkjN`LH>1rUl^CZY]JL[Cn8pVbHr"bq*p553hru[;]cZGkTbNICA)Phd"E4g%4dTb70NL-_A"Vc2O<:I\imRDQ1H-cI/r@Asp,%Z>trIT?AqW5<%oY-CUQjrj1DOrZYu0>`$ldGY761j?/!#=9=5mV3pF+gVN1Fg$X_CH@[r_'"qaOe0$V6a7bI'Mb[c0dciXHMG3KnSiq)+OXD&SNW-PFb7u3>LeL2Kb9-d6&:KKX5Kc2W]XR&KW<7bi1iL3d6nS`>%@59ed0<O)&>*3[5G\D@iMn-,4$d7mko");#9QBA!YAf=7H[*f)3>#NZ9Gqlju2H#,QJ@+QZqodmNGk_Q6\T@Vkc)[\aI4'`%gJQ!QoZ&M)[cjD'grpdMSdbOrTO)A'kL&p\n+k5ai!j3L)^X8;Q\ZJY>o-6L)6o_*6pU;gQ:NQR(3r+q_?A-Hp$:Xp^)IjY+1*1%K[l%Eil&^C=u%_PkNi#%D#<,1"/L`1c*iOG#A]]_sMolR4<J_O-KZ>bR70MB"^;L5V(mC=nP\\8BkRN4C?I%WVFk%chMNX^<pFW/1TSVPV'A&iQ[^@U2;g71.4pHV(c(Vm<rU]_X1^eU4+E1'1"]'WF!0CMqdAi!5B-L<0quPKGG$KQU`>D2T[$+\&H@b+Dh,7_Fs*D>*8K<6WkI6mD[ZM80V<,[0NGTN^:hPaZPc\!Ned:ddut>Rht6'eEjOj?2&F^Up`IqZ!j&4&I%qr@&m>&H!uqDk*__QB+ld*K_NW&/9.[%9Kk!;-se^$Qck&YEa70E`n(Q<J,lM8:T<n5qAs"T'Rc+B,Sn$Q[GeQ38#EZa6cA"BF-^!>"fb0qF+-i&sAKaf^6GOe!pcHXHkKC#052dR:]f9i'WVLIk `L_b;bP3(b#+/glr^Yc[[email protected]@dffImouMP56rq7+hjQ"7=j6b8dh"_+)$qdmf`u(&9#omgO,sd^6H_nBo"Gn)M8K.7qrOIE[l85Ds3UX*GP[b']CbC.&!e?0Q/YN6EZENWBWr(rWYne4T2S4!Xq4be%4K4f1-<#;q9Vl^-b/O$53K\H.=/-*4&X"*5XR5eFe&iI#oHQ-#olt7/=PCRTRmRe_lhBTNVf%rR6Z4k?ZlBk]Kc_6SuE/?DKEgLm8/;up(fSZs(BJ6aOW2D?6=m(Dh-PTV2uPZ@"0ZGH_aNRd=k0r02B)4Nn[mgT"gcPcM"=Q)<3+Xr0ctN#`PLP1T+o%OXldbW%CRAkH#Q*1kF(=b3>9!+?j%R[HhUCf/F\i<hKBb*,^ee4)s-O?1jV@/$("t4cNcDn%"76EJek.lo)88h/1<)2,tj..gk$nDC!hb7#B%\2PT/V\6H0,p:Xf$c:RnWFR6iNo)5RH&RZa@30[%GX2&G\\L-lfLhe6UU*15DrR9P`LdT*>W2#"4=q(QVoBtB<fsH.?!]@Q04^iQ1mUJFqU37<cJ81+Z<$8Sgl:KYT"Uh9L/loInF-]MA9q?WuGSo4-S&CJGg0rj8K(cQNedNlj7Uf[FdKU.$V!V\n%iOanpI-uN<K9g<:!k2\aW\k4!2tM^9;#He(/Ch(&MB9WFW)#33)$9BU"+rL;hmo(,QXgk1=IEJBYM97_a>%/b]3S:`+?00A5e8;'8V^CYa-uYjl&/fj`h0<W#^,sqL%kfrkUYH6X7qkQaZ`%Sd\FU+W;cs;uBFKGWjU'8%PWC(:-Ln$;/Y3alTg:^pOiB24sUuWLPlIX\1*AH,08cR4L;Ig1Ya]!pkjZ#Ps!"BM?QF@KB,Q[2G9WQ*T,2HAEfDI1Q#Ilas@OU%XkmnmMs/'/i\ueTm\9Kmeb]pV@F(fVRi3PI7_/<,RZ5iW%QZT]!X_3mQ(k*\\o<:m%TLF?u=nO$i#3R9U, 2cI1lu=CE]DoZrIr=bDK^ZR_`SUKWB>I9_7AWjBZ2?)5UpXAFIq9TM`"*-8??1=NCd:hPSW#JD1AlAu1u$cPTKL%pr%_\?qE1:1)Ri@=.O;;&:0iF5Uu[WBVH/:4?VDCP6mmb=Q^&H@o.*3GO,?DEf>7-ip$F(=Vqmnc`rY25ghgGc'sf'(O>(@u*abh'KPC<\csZ";L30TCcLG<L<[ld=#3pLXf"gpcRFIM1m<7b(jC\phcn5gsCrAXhhV^M6YI?ehF[,$]U5>BsnZmeWD7ilJ"F4p)k,HYIn*g!8QF=+-q"E>*<k!]u-He,~> +endstream +endobj +32 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 31 0 R +>> +endobj +33 0 obj +<< /Length 2398 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gatm=D/\/e&H88.Tl3SSQIWV/IMpQkft%o6[q-trAJf*;[^jPT,>*-m?b_eAR<K;.,X>5&0P0e9SpP_Vh"f4N`Qd5X_aWK8i:$Q$WR#rF9iLgO::eb)P:1!N&p^nSAf&3e]QnTcjSLJsYJ7YC]HDlGmcG>bI[1NE!q.g!8Qk?!hVH?Ol`q/X/+7&Z?fnX.]F_Igk@u<M)9SsVB!bTCr2sk[kH-:.1Ks@/_!ds3e[@48Yu^\K%'+P/'/_QV4pfi0gjIUl[4^uNj[.M'=g"p?^V.6$#=ucFMgH_RD-UkeW2prFQ$d8m#60+6Kc-"A&6?2B/'Z8hkforC"2D<SLQTnuYn@ekN\'*PKpjl(;H#,36p;!*+O41N=6Q0+@up:`ZJu_(DUT7,qsD6K@qcY**T->1f1WYDkKFmUiJgg%McZY$D(RFa*-"eT(dM)l6+b[7j`Z0+$1n&S0'#J1H2@Y'"l]kZ_Bs(KgNRTGI[g1?W'LjD#"r+VMd%$+t.gm3oS[KdtD-7nIKpf"/aKNM_(+]rElOOXD&O@i/?Y5B8B[`.cIah\Lk:PX`rLC!gZ42iIT5t76j/MbG&XDo/">UKt_cs-+E_K\^:30k;q+cV.mpoK^+.9s>==*6*8j@krg#R<84U>G-(+I_d,h8k;cpssC6`"*gp@(3]bYks5F4CQ\[M\Z7cI+V@kZc@LCh<NiUf:=RJnI;55A$-+^'-+`@CNuG/2+HhL(?-`"Zrf<WcBYC;=b5bU$^q<S-tRU&R4XrIe'Na]b>"/RC=Z8`]c*<&P;XmlV'A\MaJ_]SiltK[i_,+^Q;o(eZ=n5O3Dfd1\XEUhd@!Y(5,2%8fPA>2!mop@:36TV71@4<iNt[AcrP\*J<3#uHm%CWW?o9+i'gKVVXq)m>I8G:i!5"%;Gta%17+*$EUog4($s_*CB5\TN%j!6$TXQ@A0dXH>lW;9.TS?*8/eA0'k<h$*:IbVg?X'4gFO*dTb1B_1!l-^'Hh3@Hb 0u8"np<C\ogh\Xu[@##3O>3jkVqrQ)g4l.L3<VL$^O279S=tH8ILAljqX@I6"a=h!uIhDkh8T+HgLF,g`8R2W%m#FH9JM4)c+4?AiL%"l8-.2@"nAODf>fMiD]"e9ls??#m9H&uI#Rh%Ao]1?*TX^p2=--;R;0TT\TA'V@Z2#L0)N!6bSC.56,qRg,Y%^\noV+SD;"TCokjfQ/1p1L+Ps5MpkbkP`ZugRDQjS"Z="J,+_#Mg8OdgUP/Vj]$EHlEeUt`5lUQ2%^:%dBiVeR8P1.;3IeuNOR%ZY-_m/AGH$#f?\D#P\t&:#V-.S/2cCKOSO/)L6P#pod#9@HU``Y;9I<HUB`&QPZN/m<%Ld?`dZ(IBhF`H$%:q=E>Yo:Ub`QPh[$^pM!%ua1siEcJq-4j\LEsiOh"cc=;OJgkF$Rf5fX%)'Ls\]_S_V"Kqm.Udc7PC)0^%o-t,t8l$GC`T/_0WoFq;M1^Sm?O?;8?.B)&J(F>:l0ZP=]o+pU,WbDZ?!#K[Y`GsZs(;AMf(oRH^]m[D5E>$EtLUc6#\%nHuQKuQ`ir.t]gFU[ai=P#g?:u]sD&.e$-mu\33#%q<L0eTJPPG+D7u(eGaf7eC+nCE<251:,Z*KfSCei=n4!Q;"Ag*(Y4#t(^,a%nQIAA0t;7Mtb%U#X[9$JN=gg;doa3j8q2]2rn$Iq'@]UU5q5#\R6g5@UH\%=>bZCj-n-(:Y[-lS?+Ul'+u"d1o=7:s+$g*,F=*C-55W)F>]j$]7;/;]B6gkT>/B\hLh3(9.>WgW-GP$lAiQZB>F)PKrrM,#d<5lb$3*]5s8=nFh?@E'bKTUP"JOYOFW1`0Ca^f\AaIp)u2<B#^4`5IoO<:=R'33L4f.nAE*>&.!FAZZo<L4$q5Hj/Vrb;)_1<XDV_JlP<])[O8:2F3+_7\fYqaOlplo%G,7N)3mr<ici4c`K@Xe:1\]eYC]ejNP>!Ze1iQ-7X/@+<kgFB<mcHcB6(;:g>Ek5XLi c.Itdp-U%tpg]Nma/!P*-9@CR^o(?0c<_3ju',-ajQ?I+!"o,aH@Hsr"\*+H@f[/03KPkftYkk0_GJI*n83)7u68R7j<Q#_u0-s.cUpA*)Er*ALkeau1ZsSSFT4P>W16L^fK),TiZ)jl>-)"+/n=XaF8-?9s%?An@g+L?6m9YaiZ0QhlO@u%FpEAUb,sj7p0e#K<Le[ihRm9+JKMtO]FoomX5c&MsXoaifI?eCIJ+r!h!Dj'XPN8\8I240#d\$8+58`hCFhjb'nfZLpPN0(nO8\1hN\NS=i#f7oca%L&-g3MH+A(3B9tW"]$]Z;,:9A^tKTA8KL[P(',_%TWI6TN_A'@%DY1GeVj58A!fcFYHiQ3\4JAT7\j0XH2%tji;)ND_-(T3mu!5&73^I"0@~> +endstream +endobj +34 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 33 0 R +>> +endobj +35 0 obj +<< /Length 2151 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +GatU5?'!_u&:D6"iO:.IUZbp*h_*$I\2J'L`^,,577#,(78t$C;6k9Aoqa7pR[$F7S0H%jZpf"Z\2ucF]pR^4c#:>OGa#Q7s3o6:FkfP.a80]k*Bl]GJsd9B_5-.U`Q`<[0-6Yq#*BS:j3M(&'@5:FbZ?akEL*[*H';iPj?'Uc:?J%fT2/KCcfLablKRAtIpD>3-/6bF/..tL:A`9uj6`N#WbP%E"cM;KMO-E1`EqUc4BjuXmV`#dm#Z:sjJC,Fk1B%pInf&iGEC4^LM(/I6]nfUl7Gc7Z?BbDE:JIm(J@W,gFlY0^MZ]TQ&=[\p]V24')^AfV=[qU!9E('!;K^S5'TosQ8G>pa,YX=UQPWU`p<f[,q@YX+7Lu==d-l5[T/_8'jVQT?tbO^1D#So=Z:BVZa2];&9bu"$r1A:+KR"j32ll\16H/n&#[Pe31Vc]%.m'b>Td:/F0GWh'"76U"tN?Oj3!0S2"R7%)56g'\0[80G=O2pWHSK?Q0l'iWIZ5^d2$+-gMs!ps*b\U==b-OX93iYICP?8!MEuWo'-tVe;o/TXX^A=a!8G8>#j(3!TN.MVGeWGA.Untg^=NrA(DJ[Nh_mnpTi)22QIVs^S;\16eBVkG-N/["*b)UIaCGkp7jek/tBod;[email protected];D*UPYmXGc7q'Fc3XO)AB##tmU6WF]4NbRo?)U2Y;"6DYo-Z%:XkRU\#gE6tHP_O'*=>7+K*b=ZC7\gI(lA8R5\Z5F+_bH]dC#L4S`1;IC)$C*Bk@7rCJqGBnKT/%>'K/nG03Yi`JaD)Z=B!HE&P`sM!9k_AbD`Bm9!,gGPi%5oWh[e(s0&_^nW/R2rm3,i]<p>GeS9V/le68P.+r2">$o;qKX,<uHJDse$AcP%c3aJ.M$$GVDNMYT)9h6/Of<JS97%aaD0DJW7DMW,2/=Hp0iU[`^]a*E+T:`u66t%i9V5pPU)P"/DeZauNV*LNV2f"(Rmlp^Kk3hrnh=(;EJVruX'F `t=Y$g`O#+9aCfQ+oke(5=[cZJ"#&Y2U*L?;@T;_E6a[KXQHWS5cXKFu;D9:?a/+q37m/+-hm7QLQQ(F[6Z&DLHcN)ZcFNJU!O440l-Ym"&->.h/d\Y\<,/MGdC2ut,P-,HK,V&R5CS0(P@5C`'+RW=:<rcU1_iUGOpUW\=h2o0R5`u.1d-c!$9$E$a?qsp'c@G;6=E/LO"SXjlZipkC62/D5\N.P3n,ZeCgbb0Bt![Ck/%i3)Q'#b-nl3LWe_lH[QN3a#E/apiePIK#6-'h$\4cZKgUYn1,@urWZX#l%0jh&!?n)s^$$MTrWk7?f`\>D!sLNd3,;X+PGU`r$`CCjg?cTr+j;a*-/!D+2JT'3kDkj^aD`nYNAZ--<dnN4;G)k&.U.bue(*,7&aU[+SmMk4hp@FA\j2!*K7ZAq4_ejUm$$@H+R)ao8YCEK`q)Dpnh)9]6+K4M`(fhj`d*e<prgk\:P)-Fi#;ANNg.XqGtZH!_Q(>mg62i-dXS3pC.nZBCGO$J5bGhRJX.!OW^@#RZY6kRD2iA&]Kh+eS=-"G[]0+QS8#.F[Gdt>*VWs#5\P&H^93dk#sb.H,6MN*XHb-Lp`]*Xf&"7r>E_K5@WS<-FO%-hncYN%k:r5NI.#lr$#K.$g9hK#IF\lH'7f.=Z%3^K.'?aM)PrbHu/6>Z.gYqq<N`eHDm:Mqi6&9EHq^=FVoj(nsUPDdtbf,N>1F:f6U<U6`_RMr)el]=lJYfN64/DYiC"AX!WJOBXL"rC[_TNmZJ6^d=VJl@YN\:F'0hL!ru,nBMU0@tH68!Df6X9"11FeUZ)_p!Xq_\TeZ%psD%Y:E$QJ:;EcD)>?*Bs]ef=F0EFB1;9td/Zt035HK(_*]L00:-p-d^X2,+RNEdN%Xk(rY^:ghZORdgh8IZ2-9SDC.I4JoT$AAd5o^N+epfDgL#c4,t3;=Fi#1A-(68GJ(?1DLQoPm^25Dn&ndNK^5dh4=7bFM<E_";]KC(JE>+n a-Q7(I5<?%,lHFjOERS(S9U!qsmobi>QgH!$fQ.u=Fe,M(KFtl$p7fWr`R/4rOml.;]Th0+;QR2L]ZEJ*B]U%Um7;<lZlP^o[5<Nj/PC*]6*@6dl%Yl,k4R]EiJd#4=q_Fki4-7J0gGA9QO@42gj^%)QaQ~> +endstream +endobj +36 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 35 0 R +>> +endobj +37 0 obj +<< /Length 2285 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +GatU5fl#P6'Rf^WkTN2)^h1*?C*!`&W!bP'P9L'c[dM%()HkNc*-m:GidQ<2Ua2O)%]QBq&4<7*\]_PH/p]aopi1KIFQ#q8c2XCgVQSrSi]&iG_l3EZ(&<\"\FDuWao(/MMt\SXpu0`m@JS[4B]AjMS([)DX`q><T/UJ-7_TPJiFKBbr;$1".6hdcjm%gcV*=8=L25$T7K1rRP%F_F\8L2;Yn7k+?%m)ZZhEE'@p4coXP:jtm@%`!CZK(P$Ko[pYK?.oNi[fpKEkY`Z]&cOF0T,,O?'s[ZTRCg8BMWOFaJ?0nIi2/U%pKG0?'CD/`<.qbi'ZFG=o:(b%[J4Dtu`$N+cAf!fF1l<C8E^r.B_SR:UDO0g0fiOLZtX'6u=.VOVG)T)%sSrJb`6]d"T^mB5bCl2LA]hiEd:U>?+#:$Wgkiu[9PXl7]eZR+U%o6^iGDO'!Lc-S<N1[*W6%U?j(;A0u`GdD!$54";VWOOe1]u8ajfm6$+2iY+?RQ)a=NZO9jIu"OU]<tbBgIK5T9!6QcC\A/abrO*ion!S38l4_7?a(.FBZJLq*Osj5_kq/][]Da]Zf*G_C9qC!<Q<(bVna\lCsb'LgaJ&Nkukf]U84WKgV20,XG()s/e@LR0uof&^4X3KO_Jgum+[NU(MP7s\?Yic$sR&+K*9db+8BlpoH8Cm*72/6lAZL1*]I/Pa=APqU\O)1"Hg;IiEYH)5/$CO&--(jirOOI#KEVp*qbFnomG9'GdVgNTalk)8Dbjn'_ha[[email protected]/2NIrZ2m*OTIO5<ARr;=A[4$-;0@gZHLZl[RIc\C_\s#Kg&G%!"cD$7G`jJloN\*r;]ptF$qF_ZZpo"$&TmX7rr-g/hsqiJ78#1Sn/Jn(WKaE9!0aJ2o,DmVX;rWQ+<Am<4Y1%;,Ou![!uiE%;fm-72.M^F>,[S;"7SDp/]7;I`kW6n8#*$o$pJ_03S\cr^gZ.(k5j6%3)W&gBWMm%<RMiZ!4^UC2O?N^ek fC`=>G;c*Hu;9#;m%Fg_727llXNlfE5<\gPMZMZ$T+i'/-SW2OK4oiq^im^(V][email protected]+%i(P(^rN!V?6A8I$.fH=^Qu)0sJlT5"9ka1TL!I<^u!fl(YVgJX42"?B_e00atNd$%_/onO&Fio+i3&rOZGEru\3(a$uQ!sPsqGR(#)HoK9Z/DIEGip46bLfftXoVEMLF!MX078_KnNTRAgXMCjF6Kqr-bCXR^.Yf?&*E8mb'*?63\5/JjrqS%0"79llBAs;bU_TPY0SNcQ9V_2fH-Stm;i*28)-eW_k?O<\;:F>'T#>AT5b3*D\hQG]36Au:cR^S,_%:>SqA"gc56a*6p4ARGhMi0="5:?p2iIc@%^Q)-%rX.0d%OG[D6\V0HLHIi9NElY3uV3a@X^8ISFHFg]\dm;LQ"d1S7@A:R>?\B;YKj:f+%pBBc.N,=pT5GVF?3XO]8PsJ^n,X+<`fiVI`sXcTCGOUPqW$7MA7"^"0;DLi9TIOUWn&ZhTut<$WNnME_JO_IC6E30*3)<XeLCQ(?^8(6<76@:L$q6df*nJ=jD)*KF.(oit.(F9F@JR5Y=3b?jNTCCr(=1>=3"/5!rS97b!gX9A[4i^CS*iR_qsd(OM<3?(^lTF'P?AWn4'<\p0cb,,H%P8h'c1*s<OojI%Fqbnl5L542kl4&cVl)e:YK[[<=ohO]-@G2kLPeTl0idI40ip%3S.Q(c)?f\&+8c,e3dg8HTh@^^J'I%^V1=HK.cENHD@8Duc"Y"?Ip]oVFW,*UdPDbs!hA@b4=Ks+\GC`skCmhNTe0RRLXWB9g609N)/e%=;[07F>>3AG)NP4WG;<&"MSO%`k7uWUq0/UD4>P)*86/=EAYmnNq6>"EtArN1Y^?lE*LZX#r+E:+#N+s?1-7mH_G8JrIb>NI9CnE:DmW<o;ae\hiGT!V<4$.k;4ELb>hA=n4<\$S#'-F<+4t_1E26,.D>53^W29ZH$(<)`.]*RPh,=SB o#&?j?;c>NR6JG?KqCTlrT@T5(6IjZAp->"7V?"%7V/sn&)R3i&3E.(OPf2g3^\=adbZadiHLWA^'-bbXESsOH@$6naj7uWs09f&f9U",4#cHT1Dk!dgbu?oM2HFq#bdu+SY2`#PJls*,N7Ya%nu<9p0JS8_Rd@6V[%C59Di?u"cYX;Zl_JtB7dpe$L#6Sa9i=p-q>8Zj,I]>KPXr4DP%pHUqSA6*p;qO7[!gYh*1M`L/R.0)B=TL8H\Q7kg`#0Yf&Z&1[YAmmL\bltcb0'rctR@k0B1Ag>6~> +endstream +endobj +38 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 37 0 R +>> +endobj +39 0 obj +<< /Length 2322 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +GatU4>EbR8(4Ml_61PZ#.TVWB#dR7d`&$MV2ti7n[8gAu!s@h+14ZTZR7r'X%TaZn6[)=C\SO3tF3^]P>c"p!X*:&6Y?06,_;F"Ja<du&"9JGDrU0EL^a5\LV/q.Zn#NoN?2_[#mna312VTak(NSIFFTt.(Ohg)(VJuP39$=DTVI^poVC&L;2ltX*lM]<3IZii;Wm'p02<LTgZa,.sk"X[q/3te(hVW];:J.N_BB9W:5pkVS2\/oY4NOE!hRpt!Q).]0WmS:*ed^?`F^?Rpo06mZb5inq7/00,C:+YqAILhdb,!-#j!I]<Vq!u6&P!^*OCm7Le3GY'W)[8tmT$T#k+LDN!db%hKPb9lS&ZG0@_lq:+KSRD.bWF3*3astM$)[54k3XV!et0WI`O"GR9V$Kos3Pb9N4l"9d<TD&ZmN_a-P&oFP2lnDGNmjB-_T&>4a[hX#s&77P=+mHGlBJ\H$$<Ye/0+?1o\/&,uD]9?F.4LE#2K5,=ZZb7>K\]O7u*+`Dg+]3QNW^&2kjqZ>7N_3Eg3o80,L-,XS`:^R7Y=SuI(InEj84"tDcFc^_5DOi:-5a"4C&%NgQ_P*)f4NaN;\H=_/(XA69H%7T+lCB^UQrG1:\_?R<7Z4bjd3p!AUU?.\f2cK\_N6F4PHkBUj:dsQf5dp%W'>.IZs"[-Dm4.gQ.!W;/pG'kA&d]+US%j[W,eBp>.]$=]3L;gfaB32CPhTq14@+f/<!+"*-"Noc6](F&f-5NMb@;1X"ZW>K+C&_o=Rr8=^B53J>2EWd(/J*Li\3>qj^(@-.%VYK*I&%Z<>@CB2tJ-H7U["ESlBg>N^?&3f+`If4gA4)$FC'./ht*c4//)XLio#0dmhhS6i:c)l7e7WAf"TAuW/;Ogid:I?tUCKMt=6-olaBO"sd;[HR;G=_ZIrX&AI9+ImaVV=ONq$5^IQ;Xk;`dW#MaT[Dbj[8gK;Z2tJbhB?9J:Y=_(>dsH5\$<4q;(8XPTAh1`bu `*/9Kk`K67OcR?0"U@XQ6n5"+,ql7)EYr_j1;LO4[<fb]&mSQPq7!V:IBQ`T@0@oPg/ap?:7dcG/[olsc"(acDDNeVV_o8tit<J&&YK_m"cTl*]eA]oWBD(c`$3#AK!BcE0#A[@:;,_@Wf:4>>-M'W4YHWt:%9KF`"R\r%Bj/;g+_SO_8cZ)tSn(7mF-X<Kc+&],Kc0^%uOU'P[=q3S?-W9o<EHJ6`.M?AFH@14K9$]rYcR+^Nq$Fa#.1Ka53.8*1jeoD=WF?LL3F"\R<&^[Ua_g%i]1ZQ/">Rq!'70"9N06"Z<[7OXDjc!6I(a!%Pn*oOA<(])(4qcg/^WM^pQ$T=pHDX<FE^&b!QcfKS*d#WDK3cRRT]`+@NtF\*`nG/u>+IOsVM`jab32,hKPXUY9m8cRUsokNoatUGJ=GlLo`ojQm;)HD^l`cJ/)c#2GQh'm#:L1.;JY'ki+n0>k[omfLu%bS/aKj$n+11N-VdH[^MuafJ=\Oa.'A:lR5IWHT&C6YS$Sp-I).1.f`e1gqJ_&UmdBN'h2=gP&T*4BT64Yk(`s2DpnHaV2fRu2;5RWmRJS?"FBb&-q8c\_Ta&(AOkp70ZI#DfJ$/6hI1_O*C4Ni'3']d:O*.^EO^t"?D,3KH*^4^@Eq'Oq;ehK]rNGuGl2pbEW#2;+KrjTb-W^DE.lOpY'UIK(X`fe2.lSej=iK=[Hoe;^L.'"lQ>^q-L1rY2f_&C9=m2;ro?Yn@XZ,M<p:&eOnadI>>C^sWFG9YA\JXAd=/[$cC27NP*R:ujhRC+.ecT?D/1q`[pH5";a@'Z[!M-HD::e^+ohY$_bbtGi#VB*ZpZKi0A>tJBL76c3r=cmbD4[HSgEcm#(WL0c9%k=k7+<eP^=iL@=liVSi]K;*%An$(r7tXT/o7&P?8kRrPKXgK5obtRGQ./Z-!jU+<:.hUAGH7L8^8>'Bc)qf7HQ;Gd+%^Bg-+t=R*a8`Vj8o^`UuF><3^m(5R#(l&Bu# YDKe<sO-@Beg;#)0n-66"U<+$Xo3[+l(XBm2KSD#mXq-/eTUoQIrrV$c#KPAUo3Ddlmk8;.0[U4HG6FnUKY,t^*EiC2nWrg4jNFTB+`NX=`!>^4OGbTT__q5a$3IbB"'$e"roVrgYQ$?SPW@*5O,O*a678+'8L=Rs7)6BR\<4@]%o8P(EL3gN_B1`$&u\@*`U1$$\nEq[i0_pSVpPmY3Iq`;r,`BO5XqD.?f*5.i&`(epuD%e:TA`4#C@'Vftr,OSs\huk%QW)s6su5`<h"mXL?C&Qq>2b)q@7lO0s6K)of2BTsn=&B3@n+.-J3j+RX05Z!b<~> +endstream +endobj +40 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 39 0 R +/Annots 41 0 R +>> +endobj +41 0 obj +[ +42 0 R +43 0 R +44 0 R +45 0 R +46 0 R +] +endobj +42 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 170.64 568.866 195.312 556.866 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (http://logging.apache.org/log4j) +/S /URI >> +/H /I +>> +endobj +43 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 289.62 555.666 330.288 543.666 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (zookeeperAdmin.html#sc_logging) +/S /URI >> +/H /I +>> +endobj +44 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 400.944 555.666 532.08 543.666 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (zookeeperAdmin.html) +/S /URI >> +/H /I +>> +endobj +45 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 90.0 542.466 122.328 530.466 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (zookeeperAdmin.html) +/S /URI >> +/H /I +>> +endobj +46 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 138.636 427.841 268.308 415.841 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html#FATAL) +/S /URI >> +/H /I +>> +endobj +47 0 obj +<< /Length 1543 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gau0C>Edeu'RnB3d,]mkBXO-Xq(`Ar;!;eJ%L"a$V1])o;.>/&V6[EN_slPD[[$&9EO%]kmHiDeV/uU\GE-%T7^$I"O!@-FnG=n34R/%_%,iiUc1B,/1E-&,8?s*24F6]#T>.uSK_b+P[MjGY2%T[@dTmSO%6[Hu)tMbENS_i+Br9sfho_DSF/dqE1GZ'?[<=X2Hec]B9%VL.XGl!ESlE>H!\;YKUdB".>"M^qDJq_<C=?+NBpGO&<+(\doB?YWVU!#0hoY6^1G=B6ntVPJ`hLneFK6nC]5m/e$foXjUt`">0D@o+%lu[&WqW\s\gZZ\5+,3eI;K[&>9H.A=_nH78QKL'S?0&*)">i^WIOQD(EF3%aD<KXjgFG-j^NuH;Z[S.A0>RO?4O4$9%V.Dc?!afCshOqO@Plb*fX85q9ApOlk!XWjSI&,*f.coM^^mL)cFe)n4j8\3dCCOi\B_V/ga#>Z-]h%HMd,](=fmR_^J=PWB9_G=d0faYUpJ9Xe_05aCmq!T8_C(s7Ya14auf?1VH`[i#?dpekkIO$MBqI]%G):jVDS9YStic?OWVu`/KSHF6aopi9ickO[f@i.&[D'e:((M%[!,kqH#YS_=>ZP!0T/E4L]'#V&NZZl)MbAd4:6Y9IhBr:`/@aQM7O&OA(:[m&Ci2Nd2\B4O]'Nh0R_JPQU*+3!N.\b.uI8iBYM6GhOPHeZjqOSih1p[?hj1+(ODcTQ!3QnNX0jmH\GM-9%2r$:rGF`#MJ/f-Qr'4l/T(Y0rB^:u#W,**JF!W&B8n$s9R=4Tis+d]1/u4A;qT-[nNQ][e!pVc_*+2F[VeGY.Z2piIc.Ob!!%Kp[MuH"3D3gYJST1;jhA`ccX2olHqIPE6!7k-h.3!pXu2WZ&GK'#0#&;n?OAN+i1X_(EA`5=a>2m[iR#@C3H8P#JGbECdY%8d[f#LSBlb_/LYb6c7&*g^b=/Bo4$j*%)P;"o$$`"JK,h1-;[!R>;!LEa4gTpt />Ks-:]C^Qmr\>*b3D4p@01<8;2@A'j\i7^ssFikBpEm0p,AiC:&a2HWZ"`$XU6%X4i4i7u6OWQ]L>e+'e_$2)eEhuENRLWSu-S(VQd$37_fFD9)7_7hGmU!!n`QqP+L7KYKfO*W&0&l/A!SU9]ID[&3JQfAlF>;'sN.05530k@!SXM/8MMp<6*)4:=3-h98r!>#_GZ@[J8DOq,J**h>(ZMY'?0=)@=)]B2=bTGm;ihJO'AqcfAdnBB^H=t[m*(ST(+JOf(!Dc"8mZ>Mld@%oeQqN'<Vs)Akn(^6$B\a-B*&ii#oFiQ1D/`A]KXB$ah@JR/n>"IrkU%LG1h.p`5op4enH&b\9pooUpd+3fUtg-G8efYu$@O]*:;Q,qgfsGuq7<VUk!_*>[f!g.2:VWj=SqGiY5itOA3Jm.Ni^s,m)R^L@uTb<EX0s[+)ukc1D@P0Tch_Wfs)oQUULJ,XRgV6O5`'(^0kj?HX?&>ZYg3;(12"/%'LcGWnuJJX4t1?8U/p;Ro"4/q[2X)XmQOuAL5T"muua<5$3EK~> +endstream +endobj +48 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 47 0 R +/Annots 49 0 R +>> +endobj +49 0 obj +[ +50 0 R +] +endobj +50 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 441.588 552.56 484.584 540.56 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (http://logging.apache.org/log4j/1.2/faq.html#2.4) +/S /URI >> +/H /I +>> +endobj +52 0 obj +<< + /Title (\376\377\0\61\0\40\0\111\0\156\0\164\0\162\0\157\0\144\0\165\0\143\0\164\0\151\0\157\0\156) + /Parent 51 0 R + /Next 53 0 R + /A 9 0 R +>> endobj +53 0 obj +<< + /Title (\376\377\0\62\0\40\0\101\0\164\0\157\0\155\0\151\0\143\0\40\0\102\0\162\0\157\0\141\0\144\0\143\0\141\0\163\0\164) + /Parent 51 0 R + /First 54 0 R + /Last 58 0 R + /Prev 52 0 R + /Next 59 0 R + /Count -5 + /A 11 0 R +>> endobj +54 0 obj +<< + /Title (\376\377\0\62\0\56\0\61\0\40\0\107\0\165\0\141\0\162\0\141\0\156\0\164\0\145\0\145\0\163\0\54\0\40\0\120\0\162\0\157\0\160\0\145\0\162\0\164\0\151\0\145\0\163\0\54\0\40\0\141\0\156\0\144\0\40\0\104\0\145\0\146\0\151\0\156\0\151\0\164\0\151\0\157\0\156\0\163) + /Parent 53 0 R + /Next 55 0 R + /A 13 0 R +>> endobj +55 0 obj +<< + /Title (\376\377\0\62\0\56\0\62\0\40\0\114\0\145\0\141\0\144\0\145\0\162\0\40\0\101\0\143\0\164\0\151\0\166\0\141\0\164\0\151\0\157\0\156) + /Parent 53 0 R + /Prev 54 0 R + /Next 56 0 R + /A 15 0 R +>> endobj +56 0 obj +<< + /Title (\376\377\0\62\0\56\0\63\0\40\0\101\0\143\0\164\0\151\0\166\0\145\0\40\0\115\0\145\0\163\0\163\0\141\0\147\0\151\0\156\0\147) + /Parent 53 0 R + /Prev 55 0 R + /Next 57 0 R + /A 17 0 R +>> endobj +57 0 obj +<< + /Title (\376\377\0\62\0\56\0\64\0\40\0\123\0\165\0\155\0\155\0\141\0\162\0\171) + /Parent 53 0 R + /Prev 56 0 R + /Next 58 0 R + /A 19 0 R +>> endobj +58 0 obj +<< + /Title (\376\377\0\62\0\56\0\65\0\40\0\103\0\157\0\155\0\160\0\141\0\162\0\151\0\163\0\157\0\156\0\163) + /Parent 53 0 R + /Prev 57 0 R + /A 21 0 R +>> endobj +59 0 obj +<< + /Title (\376\377\0\63\0\40\0\114\0\157\0\147\0\147\0\151\0\156\0\147) + /Parent 51 0 R + /First 60 0 R + /Last 60 0 R + /Prev 53 0 R + /Count -3 + /A 23 0 R +>> endobj +60 0 obj +<< + /Title (\376\377\0\63\0\56\0\61\0\40\0\104\0\145\0\166\0\145\0\154\0\157\0\160\0\145\0\162\0\40\0\107\0\165\0\151\0\144\0\145\0\154\0\151\0\156\0\145\0\163) + /Parent 59 0 R + /First 62 0 R + /Last 64 0 R + /Count -2 + /A 25 0 R +>> endobj +62 0 obj +<< + /Title (\376\377\0\63\0\56\0\61\0\56\0\61\0\40\0\114\0\157\0\147\0\147\0\151\0\156\0\147\0\40\0\141\0\164\0\40\0\164\0\150\0\145\0\40\0\122\0\151\0\147\0\150\0\164\0\40\0\114\0\145\0\166\0\145\0\154) + /Parent 60 0 R + /Next 64 0 R + /A 61 0 R +>> endobj +64 0 obj +<< + /Title (\376\377\0\63\0\56\0\61\0\56\0\62\0\40\0\125\0\163\0\145\0\40\0\157\0\146\0\40\0\123\0\164\0\141\0\156\0\144\0\141\0\162\0\144\0\40\0\154\0\157\0\147\0\64\0\152\0\40\0\111\0\144\0\151\0\157\0\155\0\163) + /Parent 60 0 R + /Prev 62 0 R + /A 63 0 R +>> endobj +65 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F3 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding >> +endobj +66 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F5 +/BaseFont /Times-Roman +/Encoding /WinAnsiEncoding >> +endobj +67 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F6 +/BaseFont /Times-Italic +/Encoding /WinAnsiEncoding >> +endobj +68 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding >> +endobj +69 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F4 +/BaseFont /Helvetica-BoldOblique +/Encoding /WinAnsiEncoding >> +endobj +70 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F9 +/BaseFont /Courier +/Encoding /WinAnsiEncoding >> +endobj +71 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F2 +/BaseFont /Helvetica-Oblique +/Encoding /WinAnsiEncoding >> +endobj +72 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F7 +/BaseFont /Times-Bold +/Encoding /WinAnsiEncoding >> +endobj +1 0 obj +<< /Type /Pages +/Count 8 +/Kids [6 0 R 27 0 R 32 0 R 34 0 R 36 0 R 38 0 R 40 0 R 48 0 R ] >> +endobj +2 0 obj +<< /Type /Catalog +/Pages 1 0 R + /Outlines 51 0 R + /PageMode /UseOutlines + >> +endobj +3 0 obj +<< +/Font << /F3 65 0 R /F5 66 0 R /F1 68 0 R /F6 67 0 R /F4 69 0 R /F9 70 0 R /F2 71 0 R /F7 72 0 R >> +/ProcSet [ /PDF /ImageC /Text ] >> +endobj +9 0 obj +<< +/S /GoTo +/D [27 0 R /XYZ 85.0 659.0 null] +>> +endobj +11 0 obj +<< +/S /GoTo +/D [27 0 R /XYZ 85.0 553.066 null] +>> +endobj +13 0 obj +<< +/S /GoTo +/D [27 0 R /XYZ 85.0 487.532 null] +>> +endobj +15 0 obj +<< +/S /GoTo +/D [34 0 R /XYZ 85.0 358.4 null] +>> +endobj +17 0 obj +<< +/S /GoTo +/D [36 0 R /XYZ 85.0 223.4 null] +>> +endobj +19 0 obj +<< +/S /GoTo +/D [38 0 R /XYZ 85.0 409.8 null] +>> +endobj +21 0 obj +<< +/S /GoTo +/D [38 0 R /XYZ 85.0 252.947 null] +>> +endobj +23 0 obj +<< +/S /GoTo +/D [40 0 R /XYZ 85.0 598.2 null] +>> +endobj +25 0 obj +<< +/S /GoTo +/D [40 0 R /XYZ 85.0 519.466 null] +>> +endobj +51 0 obj +<< + /First 52 0 R + /Last 59 0 R +>> endobj +61 0 obj +<< +/S /GoTo +/D [40 0 R /XYZ 85.0 455.013 null] +>> +endobj +63 0 obj +<< +/S /GoTo +/D [40 0 R /XYZ 85.0 201.241 null] +>> +endobj +xref +0 73 +0000000000 65535 f +0000023669 00000 n +0000023776 00000 n +0000023868 00000 n +0000000015 00000 n +0000000071 00000 n +0000000884 00000 n +0000001004 00000 n +0000001085 00000 n +0000024024 00000 n +0000001220 00000 n +0000024087 00000 n +0000001357 00000 n +0000024153 00000 n +0000001494 00000 n +0000024219 00000 n +0000001631 00000 n +0000024283 00000 n +0000001768 00000 n +0000024347 00000 n +0000001905 00000 n +0000024411 00000 n +0000002042 00000 n +0000024477 00000 n +0000002179 00000 n +0000024541 00000 n +0000002316 00000 n +0000004429 00000 n +0000004552 00000 n +0000004586 00000 n +0000004723 00000 n +0000004860 00000 n +0000007263 00000 n +0000007371 00000 n +0000009862 00000 n +0000009970 00000 n +0000012214 00000 n +0000012322 00000 n +0000014700 00000 n +0000014808 00000 n +0000017223 00000 n +0000017346 00000 n +0000017401 00000 n +0000017585 00000 n +0000017768 00000 n +0000017940 00000 n +0000018110 00000 n +0000018341 00000 n +0000019977 00000 n +0000020100 00000 n +0000020127 00000 n +0000024607 00000 n +0000020327 00000 n +0000020490 00000 n +0000020731 00000 n +0000021062 00000 n +0000021279 00000 n +0000021490 00000 n +0000021648 00000 n +0000021816 00000 n +0000021990 00000 n +0000024658 00000 n +0000022237 00000 n +0000024724 00000 n +0000022501 00000 n +0000022776 00000 n +0000022889 00000 n +0000022999 00000 n +0000023110 00000 n +0000023218 00000 n +0000023338 00000 n +0000023444 00000 n +0000023560 00000 n +trailer +<< +/Size 73 +/Root 2 0 R +/Info 4 0 R +>> +startxref +24790 +%%EOF
http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperJMX.html ---------------------------------------------------------------------- diff --git a/_released_docs/r3.1.2/zookeeperJMX.html b/_released_docs/r3.1.2/zookeeperJMX.html new file mode 100644 index 0000000..f3f15c3 --- /dev/null +++ b/_released_docs/r3.1.2/zookeeperJMX.html @@ -0,0 +1,459 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<meta content="Apache Forrest" name="Generator"> +<meta name="Forrest-version" content="0.8"> +<meta name="Forrest-skin-name" content="pelt"> +<title>ZooKeeper JMX</title> +<link type="text/css" href="skin/basic.css" rel="stylesheet"> +<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet"> +<link media="print" type="text/css" href="skin/print.css" rel="stylesheet"> +<link type="text/css" href="skin/profile.css" rel="stylesheet"> +<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script> +<link rel="shortcut icon" href="images/favicon.ico"> +</head> +<body onload="init()"> +<script type="text/javascript">ndeSetTextSize();</script> +<div id="top"> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://hadoop.apache.org/">Hadoop</a> > <a href="http://hadoop.apache.org/zookeeper/">ZooKeeper</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> +</div> +<!--+ + |header + +--> +<div class="header"> +<!--+ + |start group logo + +--> +<div class="grouplogo"> +<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a> +</div> +<!--+ + |end group logo + +--> +<!--+ + |start Project Logo + +--> +<div class="projectlogo"> +<a href="http://hadoop.apache.org/zookeeper/"><img class="logoImage" alt="ZooKeeper" src="images/zookeeper_small.gif" title="ZooKeeper: distributed coordination"></a> +</div> +<!--+ + |end Project Logo + +--> +<!--+ + |start Search + +--> +<div class="searchbox"> +<form action="http://www.google.com/search" method="get" class="roundtopsmall"> +<input value="hadoop.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google"> + <input name="Search" value="Search" type="submit"> +</form> +</div> +<!--+ + |end search + +--> +<!--+ + |start Tabs + +--> +<ul id="tabs"> +<li> +<a class="unselected" href="http://hadoop.apache.org/zookeeper/">Project</a> +</li> +<li> +<a class="unselected" href="http://wiki.apache.org/hadoop/ZooKeeper">Wiki</a> +</li> +<li class="current"> +<a class="selected" href="index.html">ZooKeeper 3.1 Documentation</a> +</li> +</ul> +<!--+ + |end Tabs + +--> +</div> +</div> +<div id="main"> +<div id="publishedStrip"> +<!--+ + |start Subtabs + +--> +<div id="level2tabs"></div> +<!--+ + |end Endtabs + +--> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> + + + </div> +<!--+ + |start Menu, mainarea + +--> +<!--+ + |start Menu + +--> +<div id="menu"> +<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Overview</div> +<div id="menu_1.1" class="menuitemgroup"> +<div class="menuitem"> +<a href="index.html">Welcome</a> +</div> +<div class="menuitem"> +<a href="zookeeperOver.html">Overview</a> +</div> +<div class="menuitem"> +<a href="zookeeperStarted.html">Getting Started</a> +</div> +<div class="menuitem"> +<a href="releasenotes.html">Release Notes</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Developer</div> +<div id="menu_1.2" class="menuitemgroup"> +<div class="menuitem"> +<a href="api/index.html">API Docs</a> +</div> +<div class="menuitem"> +<a href="zookeeperProgrammers.html">Programmer's Guide</a> +</div> +<div class="menuitem"> +<a href="javaExample.html">Java Example</a> +</div> +<div class="menuitem"> +<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a> +</div> +<div class="menuitem"> +<a href="recipes.html">Recipes</a> +</div> +</div> +<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" id="menu_selected_1.3Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Admin & Ops</div> +<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> +<a href="zookeeperAdmin.html">Administrator's Guide</a> +</div> +<div class="menuitem"> +<a href="zookeeperQuotas.html">Quota Guide</a> +</div> +<div class="menupage"> +<div class="menupagetitle">JMX</div> +</div> +</div> +<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Contributor</div> +<div id="menu_1.4" class="menuitemgroup"> +<div class="menuitem"> +<a href="zookeeperInternals.html">ZooKeeper Internals</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" class="menutitle">Miscellaneous</div> +<div id="menu_1.5" class="menuitemgroup"> +<div class="menuitem"> +<a href="http://wiki.apache.org/hadoop/ZooKeeper">Wiki</a> +</div> +<div class="menuitem"> +<a href="http://wiki.apache.org/hadoop/ZooKeeper/FAQ">FAQ</a> +</div> +<div class="menuitem"> +<a href="http://hadoop.apache.org/zookeeper/mailing_lists.html">Mailing Lists</a> +</div> +</div> +<div id="credit"></div> +<div id="roundbottom"> +<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> +<!--+ + |alternative credits + +--> +<div id="credit2"></div> +</div> +<!--+ + |end Menu + +--> +<!--+ + |start content + +--> +<div id="content"> +<div title="Portable Document Format" class="pdflink"> +<a class="dida" href="zookeeperJMX.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br> + PDF</a> +</div> +<h1>ZooKeeper JMX</h1> +<div id="minitoc-area"> +<ul class="minitoc"> +<li> +<a href="#ch_jmx">JMX</a> +</li> +<li> +<a href="#ch_starting">Starting ZooKeeper with JMX enabled</a> +</li> +<li> +<a href="#ch_console">Run a JMX console</a> +</li> +<li> +<a href="#ch_reference">ZooKeeper MBean Reference</a> +</li> +</ul> +</div> + + + + + +<a name="N10009"></a><a name="ch_jmx"></a> +<h2 class="h3">JMX</h2> +<div class="section"> +<p>Apache ZooKeeper has extensive support for JMX, allowing you + to view and manage a ZooKeeper serving ensemble.</p> +<p>This document assumes that you have basic knowledge of + JMX. See <a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/"> + Sun JMX Technology</a> page to get started with JMX. + </p> +<p>See the <a href="http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html"> + JMX Management Guide</a> for details on setting up local and + remote management of VM instances. By default the included + <em>zkServer.sh</em> supports only local management - + review the linked document to enable support for remote management + (beyond the scope of this document). + </p> +</div> + + +<a name="N10024"></a><a name="ch_starting"></a> +<h2 class="h3">Starting ZooKeeper with JMX enabled</h2> +<div class="section"> +<p>The class + <em>org.apache.zookeeper.server.quorum.QuorumPeerMain</em> + will start a JMX manageable ZooKeeper server. This class + registers the proper MBeans during initalization to support JMX + monitoring and management of the + instance. See <em>bin/zkServer.sh</em> for one + example of starting ZooKeeper using QuorumPeerMain.</p> +</div> + + +<a name="N10034"></a><a name="ch_console"></a> +<h2 class="h3">Run a JMX console</h2> +<div class="section"> +<p>There are a number of JMX consoles available which can connect + to the running server. For this example we will use Sun's + <em>jconsole</em>.</p> +<p>The Java JDK ships with a simple JMX console + named <a href="http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html">jconsole</a> + which can be used to connect to ZooKeeper and inspect a running + server. Once you've started ZooKeeper using QuorumPeerMain + start <em>jconsole</em>, which typically resides in + <em>JDK_HOME/bin/jconsole</em> +</p> +<p>When the "new connection" window is displayed either connect + to local process (if jconsole started on same host as Server) or + use the remote process connection.</p> +<p>By default the "overview" tab for the VM is displayed (this + is a great way to get insight into the VM btw). Select + the "MBeans" tab.</p> +<p>You should now see <em>org.apache.ZooKeeperService</em> + on the left hand side. Expand this item and depending on how you've + started the server you will be able to monitor and manage various + service related features.</p> +<p>Also note that ZooKeeper will register log4j MBeans as + well. In the same section along the left hand side you will see + "log4j". Expand that to manage log4j through JMX. Of particular + interest is the ability to dynamically change the logging levels + used by editing the appender and root thresholds. Log4j MBean + registration can be disabled by passing + <em>-Dzookeeper.jmx.log4j.disable=true</em> to the JVM + when starting ZooKeeper. + </p> +</div> + + +<a name="N1005F"></a><a name="ch_reference"></a> +<h2 class="h3">ZooKeeper MBean Reference</h2> +<div class="section"> +<p>This table details JMX for a server participating in a + replicated ZooKeeper ensemble (ie not standalone). This is the + typical case for a production environment.</p> +<table class="ForrestTable" cellspacing="1" cellpadding="4"> +<caption>MBeans, their names and description</caption> + +<title>MBeans, their names and description</title> + + + +<tr> + +<th>MBean</th> + <th>MBean Object Name</th> + <th>Description</th> + +</tr> + + +<tr> + +<td>Quorum</td> + <td>ReplicatedServer_id<#></td> + <td>Represents the Quorum, or Ensemble - parent of all + cluster members. Note that the object name includes the + "myid" of the server (name suffix) that your JMX agent has + connected to.</td> + +</tr> + +<tr> + +<td>LocalPeer|RemotePeer</td> + <td>replica.<#></td> + <td>Represents a local or remote peer (ie server + participating in the ensemble). Note that the object name + includes the "myid" of the server (name suffix).</td> + +</tr> + +<tr> + +<td>LeaderElection</td> + <td>LeaderElection</td> + <td>Represents a ZooKeeper cluster leader election which is + in progress. Provides information about the election, such as + when it started.</td> + +</tr> + +<tr> + +<td>Leader</td> + <td>Leader</td> + <td>Indicates that the parent replica is the leader and + provides attributes/operations for that server. Note that + Leader is a subclass of ZooKeeperServer, so it provides + all of the information normally associated with a + ZooKeeperServer node.</td> + +</tr> + +<tr> + +<td>Follower</td> + <td>Follower</td> + <td>Indicates that the parent replica is a follower and + provides attributes/operations for that server. Note that + Follower is a subclass of ZooKeeperServer, so it provides + all of the information normally associated with a + ZooKeeperServer node.</td> + +</tr> + +<tr> + +<td>DataTree</td> + <td>InMemoryDataTree</td> + <td>Statistics on the in memory znode database, also + operations to access finer (and more computationally + intensive) statistics on the data (such as ephemeral + count). InMemoryDataTrees are children of ZooKeeperServer + nodes.</td> + +</tr> + +<tr> + +<td>ServerCnxn</td> + <td><session_id></td> + <td>Statistics on each client connection, also + operations on those connections (such as + termination). Note the object name is the session id of + the connection in hex form.</td> + +</tr> + +</table> +<p>This table details JMX for a standalone server. Typically + standalone is only used in development situations.</p> +<table class="ForrestTable" cellspacing="1" cellpadding="4"> +<caption>MBeans, their names and description</caption> + +<title>MBeans, their names and description</title> + + + +<tr> + +<th>MBean</th> + <th>MBean Object Name</th> + <th>Description</th> + +</tr> + + +<tr> + +<td>ZooKeeperServer</td> + <td>StandaloneServer_port<#></td> + <td>Statistics on the running server, also operations + to reset these attributes. Note that the object name + includes the client port of the server (name + suffix).</td> + +</tr> + +<tr> + +<td>DataTree</td> + <td>InMemoryDataTree</td> + <td>Statistics on the in memory znode database, also + operations to access finer (and more computationally + intensive) statistics on the data (such as ephemeral + count).</td> + +</tr> + +<tr> + +<td>ServerCnxn</td> + <td><session_id></td> + <td>Statistics on each client connection, also + operations on those connections (such as + termination). Note the object name is the session id of + the connection in hex form.</td> + +</tr> + +</table> +</div> + + +<p align="right"> +<font size="-2"></font> +</p> +</div> +<!--+ + |end content + +--> +<div class="clearboth"> </div> +</div> +<div id="footer"> +<!--+ + |start bottomstrip + +--> +<div class="lastmodified"> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<div class="copyright"> + Copyright © + 2008 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a> +</div> +<!--+ + |end bottomstrip + +--> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperJMX.pdf ---------------------------------------------------------------------- diff --git a/_released_docs/r3.1.2/zookeeperJMX.pdf b/_released_docs/r3.1.2/zookeeperJMX.pdf new file mode 100644 index 0000000..791cd84 --- /dev/null +++ b/_released_docs/r3.1.2/zookeeperJMX.pdf @@ -0,0 +1,322 @@ +%PDF-1.3 +%���� +4 0 obj +<< /Type /Info +/Producer (FOP 0.20.5) >> +endobj +5 0 obj +<< /Length 523 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gb!#X]5GJN&FB?1>=+Is4oHcr'FH%A&/S1bKn2$^,!KI0&:YeZ3Tf[a#b%F=Kg"V0=jPl<#I/J9jM1m2Lf9A%a35d4n0jC`V@].Q?P):I#k:!hoU`J)=)+jp5$Y?8X?QAJj/5)R5s2Gf;(^?rO?Q1,Ik+4e#Bg)H*2<muK[Q;1-e">9`ME=Ze#@\dl+Bu@\N/kFTVSVY#r@0l+r@O#Uhr0i6+?_QFR.5<_gcXYe<-4n5`_IZ:,p\A$9RXf9n+^XU<N1^$bUQUp!PHCQO_]Q)PD+lFS!7<cP3A4f&gpH$mHB&288k-(cq<22KtaU?bBFA\C%0L0A\/.5>Xu<./^EWn9k]`F5h9WD>KA!(_9To$>?/3<N(:gM(#C(SCPn&*00\Ep-.gSZa5=J!!<PErZ+9OThphs&)P)15Bb,(@*":$2uBP<)#4dgN\[R#hs0mKa;2tI%DPskWC)W+d%P]`*4T-!ZSm9^Bt6lof#gg-o6F5G3lfg[e]InsHdfiHUP_i)7q_c.r/`j7~> +endstream +endobj +6 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 5 0 R +/Annots 7 0 R +>> +endobj +7 0 obj +[ +8 0 R +10 0 R +12 0 R +14 0 R +] +endobj +8 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 102.0 529.541 134.0 517.541 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 9 0 R +/H /I +>> +endobj +10 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 102.0 511.341 296.636 499.341 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 11 0 R +/H /I +>> +endobj +12 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 102.0 493.141 204.992 481.141 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 13 0 R +/H /I +>> +endobj +14 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 102.0 474.941 253.94 462.941 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 15 0 R +/H /I +>> +endobj +16 0 obj +<< /Length 2468 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gat%%=``=e%"?g3i:nVl9LG#eje9`)NROcba^It@G<.6g,r2@-$kFl2Y:k,Q^dD-M1C9BkJ-GYa#@M]GYdhF?%@`iQnZZ;$`bo3((AtFsV$6<Mm[1HC)%V)Smn;EJ10ucGH@PbimZ/mY+62>YipFYC.gT.,mhUnE_p-!g$snG[g1F",1GW[G(7u@$PsO$+=_!O3A%'MX`n$VYX@&uSrMA#I;Pl4uY<nB;L&=um,`eOZ87&0mapS)VX"r\M%sfP]=<4,HVr&IoW>C9:cd._9+MhT`(OM:#*SQ'X6U\Vp!gC#u:3`&Im$VYmglhP7/BoVTDW%!bX6_!g:d?pR?1)9Ug_Y5GDpTk#.#Jmt6\-Jm&p^k8bGR`K@_'=HW\'&Y!m83@(b!YcNR.'P"c),E\fUY)RXoDD%F-QS@mTi52CpY'IH+_j2o'-=Z^oJK60lm;\1a%+Mpt"'d5bo\XM>]%nGJIWqL/'hHCog(_If`I0]SdcbXd:LE7AG_`/21?cX%1A9!6'"`G0U5[l\%*f68^Hp"(Y7!1Z#1M9qP)+tFq]SO6A06OZ]Ih.<J8S[67h_E"":Q0V(^h6#@ADqOQ0?CV*RX[ASM5JD]"as'&aENF[h"j@09E'C=qhe+U@pN]i(;F:VOgDq[ICWnhRD5;]2%gr*[>l+'kG2(Q!HFrXgBHnmT`o*=UVuDtnqF25EM@mP$"LDi?&6:A]r>_lGLhA,!PC$<N+iRAhXiPD^Wm7oRB#!0dYG26)T<)Ua8Fko!rRcu_/dB\Rdd+Eu</FOX]Y=&.[?ULSH(kaqJ%CEH+u;"cHc^7BFr\!5IO*TI;%hLU3#fN0pq4W*Cs(p/\<tm77H/;,,u9mV`e=kcN(aB(b&a&&F&)K"E[?bR@tJMM?`S:G&/KCSSoE5'H?/DcH+Yp0K@0W7&`WmJ\]#IIL.c@%V$,TfIDq"LLG@Q-p2f$PcigYWTCX1pcY;Q%I->dfirb=p3egu%"G1IqkV`^F#*nRL;0 R`VGGUmGpWU99p"*)Qjkfo7s79+1lqTsj$(u@o2OVUbJO:+r+P-dSZuY3XQb(@ge*V675b_)FC%bs3q??9Fg,NfRm\7@U=Zur,1fHg>h2N*TD@+LFTHm.(6H%8q;+-d%X)seL&"7gBF)R:C"Aa@JMA<NVd3juHFGB<(^7=O=VpOHT*Rg_Z>t)m.Gne?5A_g/qEP`SCOd#<d::-XXj>X>>iu)%AcUl_D-XT\\^IT(Lr6;pJfo1P-pUNu[1#9`B-+Sop/0?i:7.rD"pjhlaL1_'Lirs&A&Ju'GL.A(6:2VU3pF@5M_4WO:1kN>aL44ZMi$"'1L]uBS+USjmSgc/mO]e(tjE*k*Hs6V`N"O*aqUu+G+K7OkbQ0pAAh%lo?SLiZ3^okR7NNN<9MBr0-TlNZ/?%VHQ()U3*QSqT:)0<1S,cakoIGf$(o969&/Q]>PXdP[dl?a2,5/C&TdJ<0rORK#*62Toh*!"i]R_?mhOHA-BJ%<i5r`l9at9[%J\F@&_NcAO]qKD8Ld'/qlP,tEn-$iE;?i^eM6Qb>M#RG`:$rX#OfOl.Zo?<U'/!I>Blu$<9DkGfcf]i_7D\\rZ?,Se=)s8BTo5\^=Vf%7JpnOqaI17\U<.DJ:DGP?L#PP&6/qh>o7sref2WPIA'9#A=Q!nrrB6CT^>g3H8FUIs$Qs*f/oYhX)hgI"[nKYj`o;f8<^JG!F$0iP_=R^J$k,Trs5R[D#_1bpFkCmp;2t'7AjKf2]a@b7m`9@6;.9Cm$>CZ&*Ss!(%2C+cFHe-Z[@22aXuLnd]MQr)eY,*uUFX8tB(@+>A3<#'\rVKTKqArclnXFd((]CaIK&;&#T+uDL#g30kqSQ$RBE;@Sudf:4]Ub<N%#6.oU9B[`btWtCm:E=i_.`_<+V"tQ/Jac:\LkJW:llX'BNoel1qUdA[FXdrXK(O@sjqa0)oFl73Mt/7AtG=`UE3'<7!@e!25MOa`(Bf'+pAaJ3V/1PSLjU&4c3.JjO, @3cg/M>Vh*"/aX9-9\YD9VK-k3raY-YV6*>R=_*XEF1TV09pd.@`2bJ#;45s972*gl9Cp)k3*-rB"^rdKMj&>e3$d=IM-5/F^ZacuY/I,]OE$45o?/-A-jf&G*?pcR_RRt%]/0T9NV,F'&sCRm6]UW"05A6T:8WQ/.;ZnoJd*AL_G$6,d=lf%9qe;J<n$'>N5ajK@<8TX*;C/$.U:;o\[qpJMW1S%@HG`G3pC&pZ\FS0k%YsI[j.:\b@[email protected]@.`?U=1gPB3LFNb^.-97UU6lZ272Xcs4Jt*ReWDM'(=HWb;(YkXWgr;/_&"q53Vho;lLY\!gp<h)&mX/QVUi:>cs^?oGbWpp!!LhA/I?[]P:Y@D6,5GL:eG_g&T]>U/12GIp`FUIpSM<s\btY.DibonlmQTNCO%eL^@=VTnsDD2UbC>;pJ<<LIYkgO/X&9b'"<g3/M-ZKBVqWFPZEar_Op~> +endstream +endobj +17 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 16 0 R +/Annots 18 0 R +>> +endobj +18 0 obj +[ +19 0 R +20 0 R +21 0 R +] +endobj +19 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 421.956 595.266 527.952 583.266 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/) +/S /URI >> +/H /I +>> +endobj +20 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 127.992 560.866 249.972 548.866 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html) +/S /URI >> +/H /I +>> +endobj +21 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 357.972 342.598 397.968 330.598 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A << /URI (http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html) +/S /URI >> +/H /I +>> +endobj +22 0 obj +<< /Length 2172 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +GauHNCN%rc'`IH,+`(L(TOpTSe-">-ZthJ!9=I*D@G!=DZ:*I4AC6V%VA]*f7m0GsPUP,9=sT1LP5!gScTRVZr-Yns\Q\p=JC^%dI('At?sBf"o&#g6f1Ubt[W6,b(N1,9=,ZA`@R5eL@C97jod$%,LK63n35Dr,[G"j"4UJIib$$k!.Sk*)8o[r#Ea%g3)[email protected];*H=!8StjR>5@jUe`4\aI8"P3%;^e8gP#!&*!Es(.FC'YH6W`eLM](gP7To#6b*Oi@[email protected]*bZ$Ilp$'.EYl*+^+T"%m?]&1b;l`G=7V+sQ:sb9ErOV8YJncbN_2#AAXJglleNr'1A4)q<H$d$+BF2+qnPR:@iPTi&u4[*UDoZN/F$\DE5o<eG2809fX!jt6CWO)`:nfL2*S-c8KgAt!@q`GQ=5qKIt..f(NHciP4PB#(X51eE?-P(U>ujq5tj&qm$o-F,RR247gcJ6<m^f\ft/VgFI-"_YAkM9mNLMtU%>p/EL=%jhH`^@)'Uh$7j^q*E8YW2Ea9AY&'c>2nM(q_'[8fg3Qq+Q.tO4,)u)>ka&Ci#eVPXhE=!aMnIPq*iaDg,+sm5!Z=41%5CEAu3Sk:HnX':Zh0Pk!g\'+W*Fq.'EMsh[E9R-&>0u]).g3$obGPo'!:nm=C9(qb2$]VgVOB;tRkYDo(hp'=:5GMQ83iD9/KN0@B_U!P"-#oms'rR:3Zug_n4toS&kHM;Lb\I($?e[D^3"<$j9o-ZH#dSu==MOnM_@47]rjaNgej=bjuN.iGWcRN.s1dcg7<]&_O\Lq"BW;^"CTjEhB#gKgoHN6&Qf-pT(<a&MbLt*3ct3B`+RH0latpK\kE$b`*[rgN=%-M75[p+=aa`B`"ZB,OZKGf3K#jrI)jBV@Nd"smD-t@6aN]MK<"#C>(4(5(B_E&h3ZR(Tp`;&Q[G^Jm7@\'`-%HEi[.9Y77g"nn]p6>60u-:RQ"I=<b5E*jab3g,WsZ#Zb chT![1$9/_f*_,icVXF:>K/p('amKf[(sTZW_lMl_`Z>r1a5`-u^]Cm%S<=(<C;YbN*pm("<5m67jFIQL*C/sLsG=I*rkRa#;WO+C/**`@!<-r5t,--@WTqBe$hPin+2h<B\je5?ArE<Q_g);hF-Teuf4*Skf9<L;b:C]oo-%5/,/RDOjEimc'@!3#V\!@B\W#Tp__?5P=M`H*qucoI4fRN.4.PdMk_TuYu3?5$+?q,P>t.fVbhlB96BEhY^0#[email protected],]]_mO[$4")$o+b(Sd\%:^d?lWH9N=qj;c!3L^2@FaVLb(+=:r&aiuf?b[`Q7g`15,[&1'N)mQ[bJ%>F_;[X%43nAFlRU"ML8Wik*C`Vc!R>))Vb(g`(,TE?Ec$k)&\'akCV2sW$+b_$.>NCQ`Wo5-H<:8V@krQP"&$>-XM[f79)G6.^n5mp*s;p5a&T?(#:83]-Q*%>#_H&&5NR-,#(;_Cs/B9GI;@0p+`Q.9XPFTKtnteL?8;OkYSd$a0C&3kPeEQg5&:he"[nK]MImckdCLb[d'd&1nN(+6%YGShkYKhmNs?UOup_SHd4q3f%7XPK\E,K]N4GC(<!e$Gr.!l-G\gkjjH\^0p[&:2Qb-H"%OXF)K>=@EbVVn(sUaP60HJf5)\`^*6$tCC@'I+DSjrcDBh`:`_O(B$J<'.ld]cUWgp**FCBi6R4%;FO5l[K.BYO$1:`PA[nV7M'n(=QHCh[j]KM)q)7Bm;/N454.$!UA%1?m5]NOS?9_05r/ZoTR"kj,Y$`Lj>q5@iL'*\\gRKemS+/S4SXR67MP3+oiC.[Inf^G#E2o';6"kd3Ua'6Eb/EX<mWBsLj"R#u#/\tg]m8-#Rf+K&o"K-->R^2giVI0Od?@abh'cEd'kG$E^L"Yso"EdaL0S%2'>%3HRD"=6?pAB,O_6L8V/VLE7GKDRX$SXi,g_QROHtHTm3K$8^(nbM+C1Dc>pg4pA`;X7*#)Kq4C(/]QNo^@ jpAG=/,/?jI0erIkK'.^#F.N#_'[j&57[C+Go70?bDfjXLj(J$c>\/qNja4,;2rU&4$mEaEmZfirK&^8`^K;id">6s,bT2J`;W"dt6_8+<;F^*p!l^^?gV11%agM$4&4Z6hHaYBlGs0>%5%\f*98WAgA:E%:-1Y$UAY';*V"QI[b#*o~> +endstream +endobj +23 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 22 0 R +>> +endobj +24 0 obj +<< /Length 1910 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gau0F>Ap9+'Roe[5jCud,qO,t;QVEcG.Ub`8hZ&DW]&Cb^c84.K*sY5qWg3F$k-_V1NJZ"(;sitcM9H_4.#_S^&!2kqI]u%8,i?n'mZtFpqG)30bN$h3:pLK3$i\g<kkbSVXfD`'E/J\,ijLm\Srb]\Y7&npo;FC^gC>mUQl<6/k60Z>7*Xr5e"@3*[8c2NB0sDUX-Qu^]=Lmok*;C7XP%L3"Zp<&EG&!XEVs^(SB\J?C-m_3e'0U04U4h[YAM-A/6P.]9+tVGQB7M%)g35r5`d?XsdZ>+@>dn1gMjEOgW0H)Ug!FOq==DpY=;=SQ0fu<0tlf$pq\pU0tl]]qrV@VL5U`OR3TBg)i]6$ekRZ@n!EaORadh&6JL=pf!\aKmjuZ/aUt<p9`n<(/.T3/sK(nKN?6.RuGa8\@oY5=fO[hE3)-,\Nu+Q8[7"llK6GQcX0WcC<ERCM;DV)\+INYhT?%/!KO1$F\&ruM3[ck&d:GNFMFY6%TKT7EFAJ<V5mrBOriTB=A]cm9<)>?i#]L@S)n?U("8&bE;`:(r'Vu`L3L"P&e@[email protected]"L$R7;Y6,Alo<^^q)EQ`q>jJ$l]c_81=l3>od7$[RKP?>L7f@sV@Je-;fkHb]!G.Blca+9fU507uBc14\k'b4dSk&"r/H+un]A#TWaJJ(Q8h?)]FW!%/R0DlLZ-"[jSl&PS!u$6W-'Ej7RKuZY0R/)%L8kWYh\g`'J^iGK)R6J.W3W<hT"cS8e?n"BXO3qS6+QXNU8B;O\9Re<T<-id7q%H3Mg&oNXA8-53N+-il8c.QV)smm_,L.%8U3t$PoNnj43=2b4sL<J[[NH8K+PXKnf@'e/k3?6@3%SnMY>u_iVN8&`iQ`iBq-VD<WJk+%Ajubkr^E$IB.Xk&Xd=^1]`t/(D3Xl[KX*R#qftl>^Msg3mMd-o.RSf%l`;Ai?fTuGtM[_S/4lPWG;4Y*WE9lfk6.8qkr&Faq[U85#a@=jGs2R[? P_5OHud9M<;d+f0j%sAl^#-=;iL'JKNrQQPctUR>*cRTHP5U0Z]3c-1Mp7B[RD/Mmp:)dL4;2:mrON$b-Fod.P#TCqOirX=iPcTVYe#Oto`45aLp!H,098l%^mJL^kRGR_Nrdf/$pSC\.<EHZ.@a1!-JnJ.PA`(E?30-UKXN_XGs,bGH#S](<=j%H?lQ._7<%QuJ(%"F]/M%aF)SAYch*S&m&[nW\jAoV=/3279Fn4A2i+VSU=h:qV>*\6)bi\a)%BMpL"';:b3NR42BXE*@;H1[QNt\1W'T\B6hKah2=?%ub)d;(]9\[TD0d$AF$=\hIHn>1EX@8Lmu*<2fHN)WL-Qe/8nNFdYB4lDBn2<I)UW$-QrG:rIduf@Q]IaU]g`<K5-V?eu/$*1*G3dg562bu&?4LA=Z<O-Q[SRn`T=9HU,o3V!]E:4C3VF@7SK?YJ<<)iHYd8ElsG*[0$[h=@r(#*MD13mUE/M'4cFV5$K`(@t,"%6TOgFIp1a&ku<&5ngGIM^^7;-'BOR1T%NM,b3ePVmJ.8H3S\l.4ktG*o=Aud_`fg_-W_]:3gm@2'tFGj(:?D";-lDh1R/8`>`*YoFaqdiqKTd1@_^PAW`J-ZP-K9L^e?<R8O4.CuT.2bp"g3B.L5TdaVjTe7W*'iX'nM^i)!uKF%=Ro842W#[pL^Y<29-!1^&Ghe_9Y4\l1[.o&2mLg9De`"TlD`"P2Ea\`ei60'4TS,i%`mP]%JWRUVMZ@Cf?bE[,f@gnH/6qJbD_MhRFjFA$_pD#sS`M8.]YUF9hd`5LRq^=OFYY%Y>Y:!#'MM7X1ik'8M2I+DA7\=R9D;luB'_(&*di"^]L_LV'tZ2]q`U5*c#W@T3:GX3(>s:QoMQfns-daH]0IS?4mddC/R5Ot)mmIiSWmV>~> +endstream +endobj +25 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 24 0 R +>> +endobj +27 0 obj +<< + /Title (\376\377\0\61\0\40\0\112\0\115\0\130) + /Parent 26 0 R + /Next 28 0 R + /A 9 0 R +>> endobj +28 0 obj +<< + /Title (\376\377\0\62\0\40\0\123\0\164\0\141\0\162\0\164\0\151\0\156\0\147\0\40\0\132\0\157\0\157\0\113\0\145\0\145\0\160\0\145\0\162\0\40\0\167\0\151\0\164\0\150\0\40\0\112\0\115\0\130\0\40\0\145\0\156\0\141\0\142\0\154\0\145\0\144) + /Parent 26 0 R + /Prev 27 0 R + /Next 29 0 R + /A 11 0 R +>> endobj +29 0 obj +<< + /Title (\376\377\0\63\0\40\0\122\0\165\0\156\0\40\0\141\0\40\0\112\0\115\0\130\0\40\0\143\0\157\0\156\0\163\0\157\0\154\0\145) + /Parent 26 0 R + /Prev 28 0 R + /Next 30 0 R + /A 13 0 R +>> endobj +30 0 obj +<< + /Title (\376\377\0\64\0\40\0\132\0\157\0\157\0\113\0\145\0\145\0\160\0\145\0\162\0\40\0\115\0\102\0\145\0\141\0\156\0\40\0\122\0\145\0\146\0\145\0\162\0\145\0\156\0\143\0\145) + /Parent 26 0 R + /Prev 29 0 R + /A 15 0 R +>> endobj +31 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F3 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding >> +endobj +32 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F5 +/BaseFont /Times-Roman +/Encoding /WinAnsiEncoding >> +endobj +33 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F6 +/BaseFont /Times-Italic +/Encoding /WinAnsiEncoding >> +endobj +34 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding >> +endobj +35 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F2 +/BaseFont /Helvetica-Oblique +/Encoding /WinAnsiEncoding >> +endobj +36 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F7 +/BaseFont /Times-Bold +/Encoding /WinAnsiEncoding >> +endobj +1 0 obj +<< /Type /Pages +/Count 4 +/Kids [6 0 R 17 0 R 23 0 R 25 0 R ] >> +endobj +2 0 obj +<< /Type /Catalog +/Pages 1 0 R + /Outlines 26 0 R + /PageMode /UseOutlines + >> +endobj +3 0 obj +<< +/Font << /F3 31 0 R /F5 32 0 R /F1 34 0 R /F6 33 0 R /F2 35 0 R /F7 36 0 R >> +/ProcSet [ /PDF /ImageC /Text ] >> +endobj +9 0 obj +<< +/S /GoTo +/D [17 0 R /XYZ 85.0 659.0 null] +>> +endobj +11 0 obj +<< +/S /GoTo +/D [17 0 R /XYZ 85.0 498.266 null] +>> +endobj +13 0 obj +<< +/S /GoTo +/D [17 0 R /XYZ 85.0 406.332 null] +>> +endobj +15 0 obj +<< +/S /GoTo +/D [23 0 R /XYZ 85.0 624.6 null] +>> +endobj +26 0 obj +<< + /First 27 0 R + /Last 30 0 R +>> endobj +xref +0 37 +0000000000 65535 f +0000010806 00000 n +0000010885 00000 n +0000010977 00000 n +0000000015 00000 n +0000000071 00000 n +0000000685 00000 n +0000000805 00000 n +0000000851 00000 n +0000011111 00000 n +0000000984 00000 n +0000011174 00000 n +0000001121 00000 n +0000011240 00000 n +0000001258 00000 n +0000011306 00000 n +0000001394 00000 n +0000003955 00000 n +0000004078 00000 n +0000004119 00000 n +0000004343 00000 n +0000004569 00000 n +0000004789 00000 n +0000007054 00000 n +0000007162 00000 n +0000009165 00000 n +0000011370 00000 n +0000009273 00000 n +0000009382 00000 n +0000009694 00000 n +0000009899 00000 n +0000010139 00000 n +0000010252 00000 n +0000010362 00000 n +0000010473 00000 n +0000010581 00000 n +0000010697 00000 n +trailer +<< +/Size 37 +/Root 2 0 R +/Info 4 0 R +>> +startxref +11421 +%%EOF http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperOtherInfo.html ---------------------------------------------------------------------- diff --git a/_released_docs/r3.1.2/zookeeperOtherInfo.html b/_released_docs/r3.1.2/zookeeperOtherInfo.html new file mode 100644 index 0000000..24b594c --- /dev/null +++ b/_released_docs/r3.1.2/zookeeperOtherInfo.html @@ -0,0 +1,230 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<meta content="Apache Forrest" name="Generator"> +<meta name="Forrest-version" content="0.8"> +<meta name="Forrest-skin-name" content="pelt"> +<title>ZooKeeper</title> +<link type="text/css" href="skin/basic.css" rel="stylesheet"> +<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet"> +<link media="print" type="text/css" href="skin/print.css" rel="stylesheet"> +<link type="text/css" href="skin/profile.css" rel="stylesheet"> +<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script> +<link rel="shortcut icon" href="images/favicon.ico"> +</head> +<body onload="init()"> +<script type="text/javascript">ndeSetTextSize();</script> +<div id="top"> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://hadoop.apache.org/">Hadoop</a> > <a href="http://hadoop.apache.org/zookeeper/">ZooKeeper</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> +</div> +<!--+ + |header + +--> +<div class="header"> +<!--+ + |start group logo + +--> +<div class="grouplogo"> +<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a> +</div> +<!--+ + |end group logo + +--> +<!--+ + |start Project Logo + +--> +<div class="projectlogo"> +<a href="http://hadoop.apache.org/zookeeper/"><img class="logoImage" alt="ZooKeeper" src="images/zookeeper_small.gif" title="The Hadoop database"></a> +</div> +<!--+ + |end Project Logo + +--> +<!--+ + |start Search + +--> +<div class="searchbox"> +<form action="http://www.google.com/search" method="get" class="roundtopsmall"> +<input value="hadoop.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google"> + <input name="Search" value="Search" type="submit"> +</form> +</div> +<!--+ + |end search + +--> +<!--+ + |start Tabs + +--> +<ul id="tabs"> +<li> +<a class="unselected" href="http://hadoop.apache.org/zookeeper/">Project</a> +</li> +<li> +<a class="unselected" href="http://wiki.apache.org/hadoop/ZooKeeper">Wiki</a> +</li> +<li class="current"> +<a class="selected" href="index.html">ZooKeeper Documentation</a> +</li> +</ul> +<!--+ + |end Tabs + +--> +</div> +</div> +<div id="main"> +<div id="publishedStrip"> +<!--+ + |start Subtabs + +--> +<div id="level2tabs"></div> +<!--+ + |end Endtabs + +--> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> + + + </div> +<!--+ + |start Menu, mainarea + +--> +<!--+ + |start Menu + +--> +<div id="menu"> +<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Overview</div> +<div id="menu_1.1" class="menuitemgroup"> +<div class="menuitem"> +<a href="index.html">Welcome</a> +</div> +<div class="menuitem"> +<a href="zookeeperOver.html">Overview</a> +</div> +<div class="menuitem"> +<a href="zookeeperStarted.html">Getting Started</a> +</div> +<div class="menuitem"> +<a href="releasenotes.html">Release Notes</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Developer</div> +<div id="menu_1.2" class="menuitemgroup"> +<div class="menuitem"> +<a href="api/index.html">API Docs</a> +</div> +<div class="menuitem"> +<a href="zookeeperProgrammers.html">Programmer's Guide</a> +</div> +<div class="menuitem"> +<a href="javaExample.html">Java Example</a> +</div> +<div class="menuitem"> +<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a> +</div> +<div class="menuitem"> +<a href="recipes.html">Recipes</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Admin & Ops</div> +<div id="menu_1.3" class="menuitemgroup"> +<div class="menuitem"> +<a href="zookeeperAdmin.html">Administrator's Guide</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Contributor</div> +<div id="menu_1.4" class="menuitemgroup"> +<div class="menuitem"> +<a href="zookeeperInternals.html">ZooKeeper Internals</a> +</div> +</div> +<div onclick="SwitchMenu('menu_selected_1.5', 'skin/')" id="menu_selected_1.5Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Informal Documentation</div> +<div id="menu_selected_1.5" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> +<a href="http://wiki.apache.org/hadoop/ZooKeeper">Wiki</a> +</div> +<div class="menuitem"> +<a href="http://wiki.apache.org/hadoop/ZooKeeper/FAQ">FAQ</a> +</div> +<div class="menuitem"> +<a href="http://hadoop.apache.org/zookeeper/mailing_lists.html">Mailing Lists</a> +</div> +<div class="menupage"> +<div class="menupagetitle">Other Info</div> +</div> +</div> +<div id="credit"></div> +<div id="roundbottom"> +<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> +<!--+ + |alternative credits + +--> +<div id="credit2"></div> +</div> +<!--+ + |end Menu + +--> +<!--+ + |start content + +--> +<div id="content"> +<div title="Portable Document Format" class="pdflink"> +<a class="dida" href="zookeeperOtherInfo.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br> + PDF</a> +</div> +<h1>ZooKeeper</h1> +<div id="minitoc-area"> +<ul class="minitoc"> +<li> +<a href="#ch_placeholder">Other Info</a> +</li> +</ul> +</div> + + + + + +<a name="N10009"></a><a name="ch_placeholder"></a> +<h2 class="h3">Other Info</h2> +<div class="section"> +<p> currently empty </p> +</div> + +<p align="right"> +<font size="-2"></font> +</p> +</div> +<!--+ + |end content + +--> +<div class="clearboth"> </div> +</div> +<div id="footer"> +<!--+ + |start bottomstrip + +--> +<div class="lastmodified"> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<div class="copyright"> + Copyright © + 2008 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a> +</div> +<!--+ + |end bottomstrip + +--> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperOtherInfo.pdf ---------------------------------------------------------------------- diff --git a/_released_docs/r3.1.2/zookeeperOtherInfo.pdf b/_released_docs/r3.1.2/zookeeperOtherInfo.pdf new file mode 100644 index 0000000..bbefa13 --- /dev/null +++ b/_released_docs/r3.1.2/zookeeperOtherInfo.pdf @@ -0,0 +1,151 @@ +%PDF-1.3 +%���� +4 0 obj +<< /Type /Info +/Producer (FOP 0.20.5) >> +endobj +5 0 obj +<< /Length 376 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gau`Mb>,r/&A7ljp=L?eeuq2r'N#/r+G<Ne%Vb2bPtG<0!:&H?4/G[aGO0rFp<;0q4#QAF-:'%*0Jt)i</b5(37))S./[5J#\BHWH%VI*ZZGllDJb`U/"!qV:^m1VO\R4"ngI].:[AM"qMVL5''BAQP`(Mqi'M+,20!co=0Cq-g[@md)E=;bE>%,)E0Ns*L3uZ2^Z[t57XsV@TC:sfgU;83KJ!2\3;b.*./e[Q3!QrKlod0V'Tl=KR0FD?9dhi?(2EQaVS:I;<%5[hA;@CocWk6:;@S=JSIJ#tG2%GS?8]DL7$d`BF.mkIJgc]$1cBrdD-;kgPH4SaZ5]@Ygdet-qmC3Z,hm,Z#]K0$f^<SMBpT[3Ifn6SQt$~> +endstream +endobj +6 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 5 0 R +/Annots 7 0 R +>> +endobj +7 0 obj +[ +8 0 R +] +endobj +8 0 obj +<< /Type /Annot +/Subtype /Link +/Rect [ 102.0 529.541 160.316 517.541 ] +/C [ 0 0 0 ] +/Border [ 0 0 0 ] +/A 9 0 R +/H /I +>> +endobj +10 0 obj +<< /Length 385 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gar'$0i,\@&;>?.MAt<DY0X@_H_cHA?iWTl!^gXl[Se%L2[/m3@jaPPaO<5AhtPtZ$8Ps<5X?8%'k+<m#V8(@_nmr@)9".^iWu_$Uf3Y#)<[4(G%Z5dGBN#En.*E#\LGU40Sr9.Uc6BueThY!gRW>[*5$t9nk9g]0*-@Es2tn16M9R8fm?r4LJ'tfA(+`gk'Y9:;_b]l-4GP.KqSN+^!4^1#A]fr4CsMK4!6:IPoO6gb%47LrMIO5"<!^cSUh+7e,X_C[l-]TMAhb$R.*s>AAa\3k"<_BX\h]*EX>p&XOp`_]B8,IgKiS0kudb@92(4!VNWKQ2MnK3>`\Q9X4m$jO![MDXuBq(G;UCh3ujFIfVak?-gSP6L8N`(!1BR4[K~> +endstream +endobj +11 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 612 792 ] +/Resources 3 0 R +/Contents 10 0 R +>> +endobj +13 0 obj +<< + /Title (\376\377\0\61\0\40\0\117\0\164\0\150\0\145\0\162\0\40\0\111\0\156\0\146\0\157) + /Parent 12 0 R + /A 9 0 R +>> endobj +14 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F3 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding >> +endobj +15 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F5 +/BaseFont /Times-Roman +/Encoding /WinAnsiEncoding >> +endobj +16 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding >> +endobj +17 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F2 +/BaseFont /Helvetica-Oblique +/Encoding /WinAnsiEncoding >> +endobj +18 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F7 +/BaseFont /Times-Bold +/Encoding /WinAnsiEncoding >> +endobj +1 0 obj +<< /Type /Pages +/Count 2 +/Kids [6 0 R 11 0 R ] >> +endobj +2 0 obj +<< /Type /Catalog +/Pages 1 0 R + /Outlines 12 0 R + /PageMode /UseOutlines + >> +endobj +3 0 obj +<< +/Font << /F3 14 0 R /F5 15 0 R /F1 16 0 R /F2 17 0 R /F7 18 0 R >> +/ProcSet [ /PDF /ImageC /Text ] >> +endobj +9 0 obj +<< +/S /GoTo +/D [11 0 R /XYZ 85.0 659.0 null] +>> +endobj +12 0 obj +<< + /First 13 0 R + /Last 13 0 R +>> endobj +xref +0 19 +0000000000 65535 f +0000002095 00000 n +0000002160 00000 n +0000002252 00000 n +0000000015 00000 n +0000000071 00000 n +0000000538 00000 n +0000000658 00000 n +0000000683 00000 n +0000002375 00000 n +0000000818 00000 n +0000001295 00000 n +0000002438 00000 n +0000001403 00000 n +0000001539 00000 n +0000001652 00000 n +0000001762 00000 n +0000001870 00000 n +0000001986 00000 n +trailer +<< +/Size 19 +/Root 2 0 R +/Info 4 0 R +>> +startxref +2489 +%%EOF http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperOver.html ---------------------------------------------------------------------- diff --git a/_released_docs/r3.1.2/zookeeperOver.html b/_released_docs/r3.1.2/zookeeperOver.html new file mode 100644 index 0000000..9e50018 --- /dev/null +++ b/_released_docs/r3.1.2/zookeeperOver.html @@ -0,0 +1,666 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<meta content="Apache Forrest" name="Generator"> +<meta name="Forrest-version" content="0.8"> +<meta name="Forrest-skin-name" content="pelt"> +<title>ZooKeeper</title> +<link type="text/css" href="skin/basic.css" rel="stylesheet"> +<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet"> +<link media="print" type="text/css" href="skin/print.css" rel="stylesheet"> +<link type="text/css" href="skin/profile.css" rel="stylesheet"> +<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script> +<link rel="shortcut icon" href="images/favicon.ico"> +</head> +<body onload="init()"> +<script type="text/javascript">ndeSetTextSize();</script> +<div id="top"> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://hadoop.apache.org/">Hadoop</a> > <a href="http://hadoop.apache.org/zookeeper/">ZooKeeper</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> +</div> +<!--+ + |header + +--> +<div class="header"> +<!--+ + |start group logo + +--> +<div class="grouplogo"> +<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a> +</div> +<!--+ + |end group logo + +--> +<!--+ + |start Project Logo + +--> +<div class="projectlogo"> +<a href="http://hadoop.apache.org/zookeeper/"><img class="logoImage" alt="ZooKeeper" src="images/zookeeper_small.gif" title="ZooKeeper: distributed coordination"></a> +</div> +<!--+ + |end Project Logo + +--> +<!--+ + |start Search + +--> +<div class="searchbox"> +<form action="http://www.google.com/search" method="get" class="roundtopsmall"> +<input value="hadoop.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google"> + <input name="Search" value="Search" type="submit"> +</form> +</div> +<!--+ + |end search + +--> +<!--+ + |start Tabs + +--> +<ul id="tabs"> +<li> +<a class="unselected" href="http://hadoop.apache.org/zookeeper/">Project</a> +</li> +<li> +<a class="unselected" href="http://wiki.apache.org/hadoop/ZooKeeper">Wiki</a> +</li> +<li class="current"> +<a class="selected" href="index.html">ZooKeeper 3.1 Documentation</a> +</li> +</ul> +<!--+ + |end Tabs + +--> +</div> +</div> +<div id="main"> +<div id="publishedStrip"> +<!--+ + |start Subtabs + +--> +<div id="level2tabs"></div> +<!--+ + |end Endtabs + +--> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> + + + </div> +<!--+ + |start Menu, mainarea + +--> +<!--+ + |start Menu + +--> +<div id="menu"> +<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Overview</div> +<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> +<a href="index.html">Welcome</a> +</div> +<div class="menupage"> +<div class="menupagetitle">Overview</div> +</div> +<div class="menuitem"> +<a href="zookeeperStarted.html">Getting Started</a> +</div> +<div class="menuitem"> +<a href="releasenotes.html">Release Notes</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Developer</div> +<div id="menu_1.2" class="menuitemgroup"> +<div class="menuitem"> +<a href="api/index.html">API Docs</a> +</div> +<div class="menuitem"> +<a href="zookeeperProgrammers.html">Programmer's Guide</a> +</div> +<div class="menuitem"> +<a href="javaExample.html">Java Example</a> +</div> +<div class="menuitem"> +<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a> +</div> +<div class="menuitem"> +<a href="recipes.html">Recipes</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Admin & Ops</div> +<div id="menu_1.3" class="menuitemgroup"> +<div class="menuitem"> +<a href="zookeeperAdmin.html">Administrator's Guide</a> +</div> +<div class="menuitem"> +<a href="zookeeperQuotas.html">Quota Guide</a> +</div> +<div class="menuitem"> +<a href="zookeeperJMX.html">JMX</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Contributor</div> +<div id="menu_1.4" class="menuitemgroup"> +<div class="menuitem"> +<a href="zookeeperInternals.html">ZooKeeper Internals</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" class="menutitle">Miscellaneous</div> +<div id="menu_1.5" class="menuitemgroup"> +<div class="menuitem"> +<a href="http://wiki.apache.org/hadoop/ZooKeeper">Wiki</a> +</div> +<div class="menuitem"> +<a href="http://wiki.apache.org/hadoop/ZooKeeper/FAQ">FAQ</a> +</div> +<div class="menuitem"> +<a href="http://hadoop.apache.org/zookeeper/mailing_lists.html">Mailing Lists</a> +</div> +</div> +<div id="credit"></div> +<div id="roundbottom"> +<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> +<!--+ + |alternative credits + +--> +<div id="credit2"></div> +</div> +<!--+ + |end Menu + +--> +<!--+ + |start content + +--> +<div id="content"> +<div title="Portable Document Format" class="pdflink"> +<a class="dida" href="zookeeperOver.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br> + PDF</a> +</div> +<h1>ZooKeeper</h1> +<div id="minitoc-area"> +<ul class="minitoc"> +<li> +<a href="#ch_DesignOverview">ZooKeeper: A Distributed Coordination Service for Distributed + Applications</a> +<ul class="minitoc"> +<li> +<a href="#sc_designGoals">Design Goals</a> +</li> +<li> +<a href="#sc_dataModelNameSpace">Data model and the hierarchical namespace</a> +</li> +<li> +<a href="#Nodes+and+ephemeral+nodes">Nodes and ephemeral nodes</a> +</li> +<li> +<a href="#Conditional+updates+and+watches">Conditional updates and watches</a> +</li> +<li> +<a href="#Guarantees">Guarantees</a> +</li> +<li> +<a href="#Simple+API">Simple API</a> +</li> +<li> +<a href="#Implementation">Implementation</a> +</li> +<li> +<a href="#Uses">Uses</a> +</li> +<li> +<a href="#Performance">Performance</a> +</li> +<li> +<a href="#Reliability">Reliability</a> +</li> +<li> +<a href="#The+ZooKeeper+Project">The ZooKeeper Project</a> +</li> +</ul> +</li> +</ul> +</div> + + + + + +<a name="N10009"></a><a name="ch_DesignOverview"></a> +<h2 class="h3">ZooKeeper: A Distributed Coordination Service for Distributed + Applications</h2> +<div class="section"> +<p>ZooKeeper is a distributed, open-source coordination service for + distributed applications. It exposes a simple set of primitives that + distributed applications can build upon to implement higher level services + for synchronization, configuration maintenance, and groups and naming. It + is designed to be easy to program to, and uses a data model styled after + the familiar directory tree structure of file systems. It runs in Java and + has bindings for both Java and C.</p> +<p>Coordination services are notoriously hard to get right. They are + especially prone to errors such as race conditions and deadlock. The + motivation behind ZooKeeper is to relieve distributed applications the + responsibility of implementing coordination services from scratch.</p> +<a name="N10015"></a><a name="sc_designGoals"></a> +<h3 class="h4">Design Goals</h3> +<p> +<strong>ZooKeeper is simple.</strong> ZooKeeper + allows distributed processes to coordinate with each other through a + shared hierarchal namespace which is organized similarly to a standard + file system. The name space consists of data registers - called znodes, + in ZooKeeper parlance - and these are similar to files and directories. + Unlike a typical file system, which is designed for storage, ZooKeeper + data is kept in-memory, which means ZooKeeper can acheive high + throughput and low latency numbers.</p> +<p>The ZooKeeper implementation puts a premium on high performance, + highly available, strictly ordered access. The performance aspects of + ZooKeeper means it can be used in large, distributed systems. The + reliability aspects keep it from being a single point of failure. The + strict ordering means that sophisticated synchronization primitives can + be implemented at the client.</p> +<p> +<strong>ZooKeeper is replicated.</strong> Like the + distributed processes it coordinates, ZooKeeper itself is intended to be + replicated over a sets of hosts called an ensemble.</p> +<table class="ForrestTable" cellspacing="1" cellpadding="4"> +<tr> +<td>ZooKeeper Service</td> +</tr> +<tr> +<td> + + <img alt="" src="images/zkservice.jpg"> + + </td> +</tr> +</table> +<p>The servers that make up the ZooKeeper service must all know about + each other. They maintain an in-memory image of state, along with a + transaction logs and snapshots in a persistent store. As long as a + majority of the servers are available, the ZooKeeper service will be + available.</p> +<p>Clients connect to a single ZooKeeper server. The client maintains + a TCP connection through which it sends requests, gets responses, gets + watch events, and sends heart beats. If the TCP connection to the server + breaks, the client will connect to a different server.</p> +<p> +<strong>ZooKeeper is ordered.</strong> ZooKeeper + stamps each update with a number that reflects the order of all + ZooKeeper transactions. Subsequent operations can use the order to + implement higher-level abstractions, such as synchronization + primitives.</p> +<p> +<strong>ZooKeeper is fast.</strong> It is + especially fast in "read-dominant" workloads. ZooKeeper applications run + on thousands of machines, and it performs best where reads are more + common than writes, at ratios of around 10:1.</p> +<a name="N10045"></a><a name="sc_dataModelNameSpace"></a> +<h3 class="h4">Data model and the hierarchical namespace</h3> +<p>The name space provided by ZooKeeper is much like that of a + standard file system. A name is a sequence of path elements separated by + a slash (/). Every node in ZooKeeper's name space is identified by a + path.</p> +<table class="ForrestTable" cellspacing="1" cellpadding="4"> +<tr> +<td>ZooKeeper's Hierarchical Namespace</td> +</tr> +<tr> +<td> + + <img alt="" src="images/zknamespace.jpg"> + + </td> +</tr> +</table> +<a name="N1005B"></a><a name="Nodes+and+ephemeral+nodes"></a> +<h3 class="h4">Nodes and ephemeral nodes</h3> +<p>Unlike is standard file systems, each node in a ZooKeeper + namespace can have data associated with it as well as children. It is + like having a file-system that allows a file to also be a directory. + (ZooKeeper was designed to store coordination data: status information, + configuration, location information, etc., so the data stored at each + node is usually small, in the byte to kilobyte range.) We use the term + <em>znode</em> to make it clear that we are talking about + ZooKeeper data nodes.</p> +<p>Znodes maintain a stat structure that includes version numbers for + data changes, ACL changes, and timestamps, to allow cache validations + and coordinated updates. Each time a znode's data changes, the version + number increases. For instance, whenever a client retrieves data it also + receives the version of the data.</p> +<p>The data stored at each znode in a namespace is read and written + atomically. Reads get all the data bytes associated with a znode and a + write replaces all the data. Each node has an Access Control List (ACL) + that restricts who can do what.</p> +<p>ZooKeeper also has the notion of ephemeral nodes. These znodes + exists as long as the session that created the znode is active. When the + session ends the znode is deleted. Ephemeral nodes are useful when you + want to implement <em>[tbd]</em>.</p> +<a name="N10074"></a><a name="Conditional+updates+and+watches"></a> +<h3 class="h4">Conditional updates and watches</h3> +<p>ZooKeeper supports the concept of <em>watches</em>. + Clients can set a watch on a znodes. A watch will be triggered and + removed when the znode changes. When a watch is triggered the client + receives a packet saying that the znode has changed. And if the + connection between the client and one of the Zoo Keeper servers is + broken, the client will receive a local notification. These can be used + to <em>[tbd]</em>.</p> +<a name="N10084"></a><a name="Guarantees"></a> +<h3 class="h4">Guarantees</h3> +<p>ZooKeeper is very fast and very simple. Since its goal, though, is + to be a basis for the construction of more complicated services, such as + synchronization, it provides a set of guarantees. These are:</p> +<ul> + +<li> + +<p>Sequential Consistency - Updates from a client will be applied + in the order that they were sent.</p> + +</li> + + +<li> + +<p>Atomicity - Updates either succeed or fail. No partial + results.</p> + +</li> + + +<li> + +<p>Single System Image - A client will see the same view of the + service regardless of the server that it connects to.</p> + +</li> + +</ul> +<ul> + +<li> + +<p>Reliability - Once an update has been applied, it will persist + from that time forward until a client overwrites the update.</p> + +</li> + +</ul> +<ul> + +<li> + +<p>Timeliness - The clients view of the system is guaranteed to + be up-to-date within a certain time bound.</p> + +</li> + +</ul> +<p>For more information on these, and how they can be used, see + <em>[tbd]</em> +</p> +<a name="N100BA"></a><a name="Simple+API"></a> +<h3 class="h4">Simple API</h3> +<p>One of the design goals of ZooKeeper is provide a very simple + programming interface. As a result, it supports only these + operations:</p> +<dl> + +<dt> +<term>create</term> +</dt> +<dd> +<p>creates a node at a location in the tree</p> +</dd> + + +<dt> +<term>delete</term> +</dt> +<dd> +<p>deletes a node</p> +</dd> + + +<dt> +<term>exists</term> +</dt> +<dd> +<p>tests if a node exists at a location</p> +</dd> + + +<dt> +<term>get data</term> +</dt> +<dd> +<p>reads the data from a node</p> +</dd> + + +<dt> +<term>set data</term> +</dt> +<dd> +<p>writes data to a node</p> +</dd> + + +<dt> +<term>get children</term> +</dt> +<dd> +<p>retrieves a list of children of a node</p> +</dd> + + +<dt> +<term>sync</term> +</dt> +<dd> +<p>waits for data to be propagated</p> +</dd> + +</dl> +<p>For a more in-depth discussion on these, and how they can be used + to implement higher level operations, please refer to + <em>[tbd]</em> +</p> +<a name="N100FD"></a><a name="Implementation"></a> +<h3 class="h4">Implementation</h3> +<p> +<a href="#fg_zkComponents">ZooKeeper Components</a> shows the high-level components + of the ZooKeeper service. With the exception of the request processor, + each of + the servers that make up the ZooKeeper service replicates its own copy + of each of components.</p> +<table class="ForrestTable" cellspacing="1" cellpadding="4"> +<tr> +<td>ZooKeeper Components</td> +</tr> +<tr> +<td> + + <img alt="" src="images/zkcomponents.jpg"> + + </td> +</tr> +</table> +<p>The replicated database is an in-memory database containing the + entire data tree. Updates are logged to disk for recoverability, and + writes are serialized to disk before they are applied to the in-memory + database.</p> +<p>Every ZooKeeper server services clients. Clients connect to + exactly one server to submit irequests. Read requests are serviced from + the local replica of each server database. Requests that change the + state of the service, write requests, are processed by an agreement + protocol.</p> +<p>As part of the agreement protocol all write requests from clients + are forwarded to a single server, called the + <em>leader</em>. The rest of the ZooKeeper servers, called + <em>followers</em>, receive message proposals from the + leader and agree upon message delivery. The messaging layer takes care + of replacing leaders on failures and syncing followers with + leaders.</p> +<p>ZooKeeper uses a custom atomic messaging protocol. Since the + messaging layer is atomic, ZooKeeper can guarantee that the local + replicas never diverge. When the leader receives a write request, it + calculates what the state of the system is when the write is to be + applied and transforms this into a transaction that captures this new + state.</p> +<a name="N10128"></a><a name="Uses"></a> +<h3 class="h4">Uses</h3> +<p>The programming interface to ZooKeeper is deliberately simple. + With it, however, you can implement higher order operations, such as + synchronizations primitives, group membership, ownership, etc. Some + distributed applications have used it to: <em>[tbd: add uses from + white paper and video presentation.]</em> For more information, see + <em>[tbd]</em> +</p> +<a name="N10137"></a><a name="Performance"></a> +<h3 class="h4">Performance</h3> +<p>ZooKeeper is designed to be highly performant. But is it? The + results of the ZooKeeper's development team at Yahoo! Research indicate + that it is. (See <a href="#fg_zkPerfRW">ZooKeeper Throughput as the Read-Write Ratio Varies</a>.) It is especially high + performance in applications where reads outnumber writes, since writes + involve synchronizing the state of all servers. (Reads outnumbering + writes is typically the case for a coordination service.)</p> +<table class="ForrestTable" cellspacing="1" cellpadding="4"> +<tr> +<td>ZooKeeper Throughput as the Read-Write Ratio Varies</td> +</tr> +<tr> +<td> + + <img alt="" src="images/zkperfRW.jpg"> + + </td> +</tr> +</table> +<p>Benchmarks also indicate that it is reliable, too. <a href="#fg_zkPerfReliability">Reliability in the Presence of Errors</a> shows how a deployment responds to + various failures. The events marked in the figure are the + following:</p> +<ol> + +<li> + +<p>Failure and recovery of a follower</p> + +</li> + + +<li> + +<p>Failure and recovery of a different follower</p> + +</li> + + +<li> + +<p>Failure of the leader</p> + +</li> + + +<li> + +<p>Failure and recovery of two followers</p> + +</li> + + +<li> + +<p>Failure of another leader</p> + +</li> + +</ol> +<a name="N10179"></a><a name="Reliability"></a> +<h3 class="h4">Reliability</h3> +<p>To show the behavior of the system over time as + failures are injected we ran a ZooKeeper service made up of + 7 machines. We ran the same saturation benchmark as before, + but this time we kept the write percentage at a constant + 30%, which is a conservative ratio of our expected + workloads. + </p> +<table class="ForrestTable" cellspacing="1" cellpadding="4"> +<tr> +<td>Reliability in the Presence of Errors</td> +</tr> +<tr> +<td> + + <img alt="" src="images/zkperfreliability.jpg"> + + </td> +</tr> +</table> +<p>The are a few important observations from this graph. First, if + followers fail and recover quickly, then ZooKeeper is able to sustain a + high throughput despite the failure. But maybe more importantly, the + leader election algorithm allows for the system to recover fast enough + to prevent throughput from dropping substantially. In our observations, + ZooKeeper takes less than 200ms to elect a new leader. Third, as + followers recover, ZooKeeper is able to raise throughput again once they + start processing requests.</p> +<a name="N10192"></a><a name="The+ZooKeeper+Project"></a> +<h3 class="h4">The ZooKeeper Project</h3> +<p>ZooKeeper has been + <a href="http://wiki.apache.org/hadoop/ZooKeeper/PoweredBy"> + successfully used + </a> + in many industrial applications. It is used at Yahoo! as the + coordination and failure recovery service for Yahoo! Message + Broker, which is a highly scalable publish-subscribe system + managing thousands of topics for replication and data + delivery. It is used by the Fetching Service for Yahoo! + crawler, where it also manages failure recovery. A number of + Yahoo! advertising systems also use ZooKeeper to implement + reliable services. + </p> +<p>All users and developers are encouraged to join the + community and contribute their expertise. See the + <a href="http://hadoop.apache.org/zookeeper/"> + Zookeeper Project on Apache + </a> + for more information. + </p> +</div> + +<p align="right"> +<font size="-2"></font> +</p> +</div> +<!--+ + |end content + +--> +<div class="clearboth"> </div> +</div> +<div id="footer"> +<!--+ + |start bottomstrip + +--> +<div class="lastmodified"> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<div class="copyright"> + Copyright © + 2008 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a> +</div> +<!--+ + |end bottomstrip + +--> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/zookeeper/blob/af1e0ff1/_released_docs/r3.1.2/zookeeperOver.pdf ---------------------------------------------------------------------- diff --git a/_released_docs/r3.1.2/zookeeperOver.pdf b/_released_docs/r3.1.2/zookeeperOver.pdf new file mode 100644 index 0000000..cb3073f Binary files /dev/null and b/_released_docs/r3.1.2/zookeeperOver.pdf differ
