From 909879df452479723ead31cf9fbb79105b9c5197 Mon Sep 17 00:00:00 2001 From: Clinton Gormley Date: Thu, 7 Aug 2014 09:51:37 +0200 Subject: [PATCH] Added diagrams for 410_Scaling --- 410_Scaling/15_Shard.asciidoc | 4 + 410_Scaling/20_Overallocation.asciidoc | 4 + 410_Scaling/35_Replica_shards.asciidoc | 8 + images/410_15_one_shard.png | Bin 0 -> 7934 bytes images/410_20_two_shards.png | Bin 0 -> 12328 bytes images/410_35_four_nodes.png | Bin 0 -> 17240 bytes images/410_35_three_nodes.png | Bin 0 -> 22042 bytes svg/410_15_one_shard.svg | 182 ++++++++++ svg/410_20_two_shards.svg | 266 ++++++++++++++ svg/410_35_four_nodes.svg | 413 ++++++++++++++++++++++ svg/410_35_three_nodes.svg | 469 +++++++++++++++++++++++++ 11 files changed, 1346 insertions(+) create mode 100644 images/410_15_one_shard.png create mode 100644 images/410_20_two_shards.png create mode 100644 images/410_35_four_nodes.png create mode 100644 images/410_35_three_nodes.png create mode 100644 svg/410_15_one_shard.svg create mode 100644 svg/410_20_two_shards.svg create mode 100644 svg/410_35_four_nodes.svg create mode 100644 svg/410_35_three_nodes.svg diff --git a/410_Scaling/15_Shard.asciidoc b/410_Scaling/15_Shard.asciidoc index 4d98eb610..f38930fa3 100644 --- a/410_Scaling/15_Shard.asciidoc +++ b/410_Scaling/15_Shard.asciidoc @@ -36,6 +36,10 @@ _replica_ shards later on in <>. One glorious day, the Internet discovers us, and a single node just can't keep up with the traffic. We decide to add a second node. What happens? +[[img-one-shard]] +.An index with one shard has no scale factor +image::images/410_15_one_shard.png["An index with one shard has no scale factor"] + The answer is: nothing. Because we have only one shard, there is nothing to put on the second node. We can't increase the number of shards in the index, because the number of shards is an important element in the algorithm used to diff --git a/410_Scaling/20_Overallocation.asciidoc b/410_Scaling/20_Overallocation.asciidoc index dd9411e88..7ad2cfe1c 100644 --- a/410_Scaling/20_Overallocation.asciidoc +++ b/410_Scaling/20_Overallocation.asciidoc @@ -21,6 +21,10 @@ point of view of our application, everything functions as it did before. The application communicates with the index, not the shards, and there is still only one index. +[[img-two-shard]] +.An index with two shards can take advantage of a second node +image::images/410_20_two_shards.png["An index with two shards can take advantage of a second node"] + This time, when we add a second node, Elasticsearch will automatically move one shard from the first node to the second node and, once the relocation has finished, each shard will have access to twice the computing power that it had diff --git a/410_Scaling/35_Replica_shards.asciidoc b/410_Scaling/35_Replica_shards.asciidoc index e07dd0f61..08020d9b9 100644 --- a/410_Scaling/35_Replica_shards.asciidoc +++ b/410_Scaling/35_Replica_shards.asciidoc @@ -31,6 +31,10 @@ POST /my_index/_settings Having two primary shards, plus a replica of each primary, would give us a total of four shards: one for each node. +[[img-four-nodes]] +.An index with two primary shards and one replica can scale out across four nodes +image::images/410_35_four_nodes.png["An index with two primary shards and one replica can scale out across four nodes"] + ==== Balancing load with replicas Search performance depends on the response times of the slowest node, so it is a good idea to try to balance out the load across all nodes. If we had @@ -51,6 +55,10 @@ POST /my_index/_settings As a bonus, we have also increased our availability. We can now afford to lose two nodes and still have a copy of all of our data. +[[img-three-nodes]] +.Adjust the number of replicas to balance the load between nodes +image::images/410_35_three_nodes.png["Adjust the number of replicas to balance the load between nodes"] + NOTE: The fact that node 3 holds two replicas and no primaries is not important. Replicas and primaries do the same amount of work, they just play slightly different roles. There is no need to ensure that primaries are diff --git a/images/410_15_one_shard.png b/images/410_15_one_shard.png new file mode 100644 index 0000000000000000000000000000000000000000..7280920a902fa580249dc5200d4967eaf28078c4 GIT binary patch literal 7934 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 DmsNjm literal 0 HcmV?d00001 diff --git a/images/410_20_two_shards.png b/images/410_20_two_shards.png new file mode 100644 index 0000000000000000000000000000000000000000..ef91c64f53a786d17049ae438c92d9400b556548 GIT binary patch literal 12328 zcmdUVXHZmIxMeFUSK?Jr1O!w-k^~8oK?TGH1cWAs7Ksg#Lz9C6u0&~a2FY1KXfi00 zlca9RIX2x0*yM)U+&5M8XMW79S5t4s!a8umKKtzOeQT|6ebiJ}rlw$`fIuMB(C3O; z5XeOW1ad*-uPfk;gHCWBI9zgl3Wfaz{`vl8@ela>s?&1=R|w?h+WG$r$xeYu;3T7) zlD?a^qm>)d%*7IdL?Q(c4tB2QW=@s@jxN?I1Q{j>NHT=Fs2QS-i3{AotBv;=W+1F z|6?q$zKa?_!8jqUDN0(yG*AubQRpo5TBRf{xESDfov8wEC<`9U)!UHJ7ILk%Ir|#V7 zfXoXJ2@F#M83ZC+_v1qWByh-flLi9mTB?)=qXY@0%dQ32AT*Di$-&`v-~zY^k$|+b zfP)hx^!%nd2t5)US}$;eselBMX--`LNAk@7<_BBNk%8u%BUfd8e#_x;(?vDk{8aK5 zJ(Qoa3R5YFymc=UG%cy7)+-X#v`6NY)YQn9VWrbw?#?+V(U~0!WgcU7_$p0t`^Of|nyji^sg78}FP8S}s!DEy zH7(f4fz{2(i{uZf6mU$B*6@^PQv`11srmgY4mHx3Aaezcw|HYzxZL+KlRWsuull^7 z;Vq|vwk%V2Ncvuqbc+U}Gbbsp@C7+xD6AjMCI#e<#!|dsYbFXMOkFs7D{xkg$0`cM&4D~VJvhz?5Y!f4H!GzPkNMG5q zOs(|fEvk_@x_lM#Nq*;ZEt;B8C4KR>faU!$Nw+S-t;U3CI{ZADhcX1Rl-0;h=wp3n z+!eC_QqCf9ce$-x84`FB!|?A4Xg&Df&iP!0^kX>@Dg}o&J6ZJXj-pjElfwk zC@#xj+|LOpkQQ9eMa zz*G+Tt@ijU)n<~L2LzHDx*!*+BZ9@XS^KwpPyIShZr-0-72fljd@Dbce1wED)j9X9 z#D|E~kTU?Q%dH8cZ>uEe+4x zJKBg$LwNInHD+=CM_}{e5BE@x@0fZ^9fmc(-e)tj<<+uTv-ksaxN9vHdZzjJpqqc2 z&y7Df4R9k?D*a>)L>&I?bKYqhW9Nh7`p4LklS+!lyNtpm#5^_X_M=gznf!d_tubbn z!5-L3$S`f`37=T30L#An^iBxT++nwl(#?U?0Mo0~AN$}M`$*fCR(vBjkNj&35?8x= z8FGj1t1X%+NY|Te~#z2&O~nX0*t9(cs!`r%>!>aF?{ro|K3Iioj;{Ky}BW_s_!p&h5WLA=vW7_4ZqMR$Q~9TnOt z?!i$0><-Ix%i^(j(Y7ArDwQXtGK+baW>$+DC27@WKHPQmQLV<=>36s-_e??zR=nId zu1tEjn0F_^y2O#&q)3dIfcr?2$C9K^Ww{0~Lt5RkYBh#$gvn=t{Vz8^cyhrpt4to} zNWT-Og1Yj0+Pi++l&EM3gI6l9_Isl#WbWQLQgNS7f{&roYt@IAei!VD?ltG-)1DZj zV2sJRRd#~fVELiktom~|qC6rE9R zhHP6Y*VO*T4YXmdY?8Xo$SJ(Q(y5$Rq3UZrA&r+7(`E1ZCp|X<6EuUD8f`Hjl|0He zIch6o<4zB^dGkWhchE35P(Bb0JDBKvP^Up`uGpN6Y=7(l26XCNfB>&a5i!(PJM!{u+D7M*s5fk?g zxQ+X?G-m|;C)w$g>Z;ujFFTv3PCiKm)2MF{tEmWMI~(p3Lx+tNGEe$>j2;#)&fj)O zP}X~JnnRd45nm)Ab@91|LW>We>mn zsG)-CNZz@JcX8Wv#{p&4RprCS@qW6)UFfBR2eqaFQzUqHMNk zV)B`3X@hn?$0I6vbiCBC^|s>X&ytqb&zTrI6hNAjxLVbt_VaY66ocMO=xdo_Qu*{q zJA2Q)K}M>4ej2m5N<+f%;*~{-Tcf)n1T<@gI4<<+^7A~pddFk*7#qG4!(XH?vd!Rf zadIMkv_)>0hjfr@G$uQRs@lC5K=q@3?3&yisNuuid$_i7eTL$)l-&z+UvcuKovuB)1;V0sPYu%LoXS1in`~rFQ``1;1Z(`Y%WLEuraycY9L`#$C1EB^ zZzd*HtzLw@lKLHSeCdOElXup-e^c(fAB87nwf~I!(RAb%PrRk4s-;c*RL79~1a>l` z+j~IIh;2;CRh}D4;TZYq;Dq9eoBe$RUA+u?(}d*34Y#j*+q3%KN83 zjxc`Hsl}B8Yr|es)R8^!#ImiB(K(fm2h$IC*ZHy)!*thpRe)bsNJf0>M)23sw1v{|-|UnMujrQz9WAvZ0? zLN@=d!g6Ogqa)>3hEuxvY_Gz$KT%m)8DCYn%_`ft+9HBUv$4u&Hx5=kk9fLc;eChx zU$)$*n}}yGB-p@k-4kqf*2n>XOd^ZjGGBfo*P3RE3$c{He?vr&soD|iZ0?f)OV1#t zsul};iT7c*rxO?hGygSn;SFwE9~l*%{~07r#xs^WOOGG=ixr0aIH3fHrygvG+O ztAhbKUo&)$A3?QzYG2CxuVb#V*yYEPoxZpPQELG}h>o<Qag6$6H=bL z{E^u9T@s!`<&@e-;a<%$qdEkZ1s{>V8JfZ>40n6y(~OcZ?z0J$R%l>(U9go2-+OfQr7IgtbqfX(-oE_tbQxQ{+6;M zRxb6{XtvK8h^~i<9Y^M*y@)M@^K#uztuMu)irdKH?9jW0fD%klQxTs*4qC8wC|Rr0 zx>hF&e{6u+jlBs&K$pFEc?w|eL&j-F0bU*LZ)pif70Kit*0LVco5gO=;!}7?4xKG8 z4({o5L07(^V-G)>y^d^l+?w6?^V>L)?(h|qcb&sZwahnRKIF3*kY31s!6{E*tCT>( zF_Bn(XUlEEi?FC4o^9MNHyB(*l2_O67=Q511zUBkWCCp&yNAbXtRE`0^m=cidUlnk zFYBPvWe=Ef?>Z}d2^Y`t!B_AEl%36~Atc59a3RXzSP`XgG>fgWu4Y!4fI!BVl$;aD zLXWr4V<||wTDhI!+VZ*@IXXy3QovCwBRqDN4h8@Yo8jT|%VX*v^~9=D=FSJcs=R|E z;FZrxHBt~wqkqU{E4Eh6tx^LH@+3QbZ1w{X&-3BVgR}!af?HeDMF2kxRhkDou<%*l zCywyLvDDT9FP4Lt0FG?3UVo9jr<(J+ev2qAZ1qu6*XzqOFc$qKlY4t_h6Lfqm_$bF zoBd;bpX;(QTbsUj?VMXYXR37(3D5i=N>{B6hx>i6m}%q(6w4xpt9{xFwO-5miQ~GehT7Zv7}IXmxqjcZAmiFO zPCLuuj9cxsv|y9P%6u_8+Zk0R&g5nc?QBrq_<6_FX^S0RBTLDwQ^Cr@w8>#^0n9v%JX@Rik&@i}UQ4!N-JFp0y-1L-JKa7bZ!jj8a#;uaG;25SZc*i04y&s_;Sb~UqT>wGue;; z2qj|lTWm<1p$ayd4wMSleNmZ0QO#U{@`t-{Y~jSz-?yZvJ@=mV3l5(0wYeQ)@^GSw zAq)jq8b2^1ANyGhnq-$<)t6XI&2B^AD>Z28misKDpS|((4e^=usHB@y9}aeL=AO<6 zre`y~=@%JY5O*-Sr#1;!%%@eNM4ECYm!qBE_Bv@<-NT(J3$)osEV88}p&9JT3mc5L zOpXj1%>NgY<8F3lQ=XjjucnTaElmSMHL-W_ejpCOYUZi@nyXVuU*#u~+*KMsb}iq+ zH9rqIx;O4vOJ@C%?F3pq_?DTzlmU=5AR34PVnk9a0b z)#1JTNTz-}HNvAa=$#uadaW6|^@#(phAK&FKnMWyL^eEoeW^*w(AcZ2A2G+lqCj41 z*}`RGj=FX^{S!yG5Y6>7v?guWUD;)cv zHwdKx`RVhz4cXy^KDA2aNE!BjiDbr^nTgcdl{%Bg8{qC8Mtgp8)cSkYUql6a+ml?i zk+0GN?{oWdSZ7@GYpNZG$@Qi_gXT9QF9BKRp-=~j9ta9-O`c)tQ)iUQaeL;~)C4Rt zgY=bVugL*P51I@QTJR5jBsP=XBx|%8>D)7HW!U10Hv%}>Lm7xVk8jfNYyZ3^mr3qH z`boGYIRbtS@i@yr*BT(7E}Ktjd~=*Rh(xU)Bu>f-WLVwoj~--6?0}i8rXbwk)7nTp z6k3tfAha0SS;GraZ+j4GK(-5{%c{-D`I@8)gbH&9xVZH@0r;PXUel)tHL-_AhHOJk zlcxqlOFs+j5hCY<`LE*O6`Uo^RmeV7pvW8VK3S9;b{@UDdxr&}))?cW;(-Hsa|cJp zUm_6*&@-WH^!qVx1p%vxlOXupGR35(ir5M0{4`2+H*!5IL#Ttj^&h?1b6QNCETXX1 zfPc~!(jAD*dN+~^1`opZ)L9;i5D{B>)OI(ZM1b9AVB3@#oZp-e555YHjomN*&qXiR z2C~K^&g)mHsiTXV9;Ue8svDqg_gvzQ%bjeoVpQtCDMpw=t& z`!Y8^D!O4c{6DY6-<c{BbRzh7PMH_eN0Z*MpB8?g0i zGKCIn1ngppIou43hSeMRLSw}H3Gv{-0oWGMAyi@jf>pRTO_YagD&=>vvnEK%0ag2-5 zEf@k(NUW_}Uh@YxO2|4n+olV>&>oc84fpo;A)f3GuIDDeQ5<5TqBi{-VyK*f0d>2x z;I`QswwG|d^5$khWAya)MRUP=J=Y6XKUxSEo*fg*ElZ4q0)iY47Z^&{@36PEVQLl@ zK8O1$e7I{T$rPb(1_Wxzub_o=u8To|Z@*<0@fO42@O;++gHj>`{6U*giJuh=R*;X@ zLyb;M#5?;M+2MvrR(*--Kf!~EkH8c<<3q~ELdxo_ru=yM_(}`!M6q-_B1@745{Y!mqT z`HzO80?wyky(!rJGCZ>!ngqAY8oSb#^X_ za5%u70a-3zF@VlJCq<4!HMo{@1>FjKKMC{}Fo5nvkXtIFpQkc#D}2)TbLK(kSG zaKG*agxY2BksmW_Gv4Zm;fS!s@=6CBtHY26+SfdpF0DRPQ&zzeykqBY1xxjB%VBbP zp_)z84_!Khs7#s`R9zYlWWYB06ygDn<`wpuY5g6ktJA>188sew!_@d=+)QFmc+sW66~qX4Lo?w;G_Y$~TCX z2K5u|;02mH3KE!Nxc!+j5ECW{+;rD9ltzIneY%?~h)bNU5N4~e*AO5FSl%SmE&zw2mj}1wd;eUQngqD_j%*9wHna?`R;kNd{&eaD4)z1 zDH22tnq-3HXS+Fle?*OMj(;?CBh2EK0L$8BSRDu?l#6n~;~JO{$3bA+PP+p_Ct z$#8BFPjbE@Z=O9qg?-E8Vd~1+j|&iWHc>Rs zFzZY?=qOYrX94hkR1UyNNmhm^dgyzx*tG->cN#H+&OIu0m*`07{WgluX98D5EsJo! z<;W@=a4CneNw6)a6b>Nu6oGoeN$NvlXFUhhMBxPxJIBjS+P1$Hdd)kP9Gjli0PWYK zv+E<~o1ZtJ6CRzQAeax9sRdA61aYJ1i8iA_I>OWw3E|8&SSu~+faybfx zM_*Y+=YTkJaprrW_qtOih!l3Ny=|Zug`In+F#PD(;P6;As! zX!5GG{I9WM8GR93KZSLzv73UQEDV>8Q1QBH<%+!b6XxS5#dfgE&WAvf<_zUx->D_( z@(BKkTi={O^Q4D%Z(Y@2E#Q5lsZ^l*5oR1b-{Wce7-fp^vgxyDP0(W)Y|stk8`P-? z=n&0gf@3vf9--xm5|U3px%>2}ZA3(_0@2Uf``rbIkPAvT-$99{#hbK{jWM%Y_IS{y8}qb(vhZ}j{S*I)yvvZ>}v4tOrACZgQGZSv`8i^}6_tUwT%6MgDD7?h=-5xl_8kmT{6){r4% zr2(*(bFP+mYO=v(TO&>LW_Yy4uFu}JXCSeIgUiwXu&4yr5S&t}UO@qX;>#)5xvus+ zRIKh%E#v4eHaf|HgD06Ps)|e9I@IiqtMuu~!W|*K&UHAp#1bozp!)oY}*8b$ekGFU7@*_|wau1{6*OcP7VQ2bT{& zE~K-AE&loA7ZtKG59Op--{cuuaKSvgcJ;BSWDXDkVnkiobL*D*?A1jdwryX)Z~46d z^XJ;DC)@(+w2xU`2Wlf_9{nxropLZ^vxgw=yzHH0{jk`y5#~`~SI|w60L|SZZ@`+G_MLbGf*Pz#c@4i zEet*Nxr`ui9`XZazPA@j4vS5d=({|R%L={AvYUkFnvglTodv;-22Or!KJ zU%s6D(v&9yE55S5?q>MW;wfs$xnbEu@8i6Y08Q=yOlgC1b1axvD<#j$;#cHjgh6c!z-=Ok`_te-}uH&1j0;3k+;^gF=fQ@4lmc~t z+&asA|6NY>WcJQ*HXCGN``6Ga#U&kGt+LCm48=ljw%QsP`hM+Jqk^XaNxW}~`ECMB zGr0-IQnu54DdM=rjFb0-gFW=v@Pw^GQTO)oN&Q|jtwB^uN^Jv$Sq@u%^%!%d`PoVy>@X~I4Ra$B)Gp80NCW2ccdTSg?QutXKO76bq zFE`|C;d1I(Rd6sl!JvEatR&Uv!bzi~mKJ!x-fBQz1ln;lUDoH#b8%;KT9(RqJKIRp zke6_HdBp6mg7z?m$!mbqbppx~$fF(6H2D=&-7;kOrIl`lIqVI}k&5gcz zD0!Pr^MRzVR%dcvq2j$Pz;M71j5pU!iho4ZQg~)QHZC@HEwyTp(X|0c>A(Y z85u2yR&`SXO82hWO@Cl8El?Gx`%$9?xFZXQkJk&c&41E$uSxhs3flKyH|M6ODlDor z40=1qlgDhd<xGko{;Apbk&!oD#dL;b`>UBtYuMm|&mGvNo8atawi7l<-1hbe=33d;VkMUts;X-BQR+#{Bp=`<3eJPq66WRB zhaDJNxH7$#i#H>K9=aiscDwQXi-f8->st1;w(l@yCVUBDcKyH^l?HPCojCQ4h=Eml zRT_l)IAiiPnYwx55&k&!BA;3VP_+g{47x*G0%S`{cM_FvgrD@$^X*g#5leU0b2q%R{7)$>-&qw||t z9%5stlXWDVQN#_G;4lV63;ek_xdUmJRUWod*@lhot^dWb5n`t{gEl zRd@8Ap*a(^aQ&Q%2Fg4E5DpLxfOxcf)QXxdDgcY0U_m^6-EAgDy@~4leeT2#hz3Zc9EBpjKUYNQu)<%I0rMcb-ulqpXt=!9Foe%WJ6Tz22 zxW3=ozb#~81D1+MXX4i+C0CuzjJxPw_7>}%-7XLgUma;qxpLgz(iUaZ^~%&0Xp@w; zxa8Mf|TP%u(G4mS6eL@0Dcz2uwakPO^|ca%LtxMCZn(0{|;%ADK2HHh?4hkJLA} zORwLn&cx?%TO=pH)yT&D`me$wr@h3APFB%U1(Try&r5=Q0Dm(W6v^A zR=*opZbe1j%f(OT^9No&m3J=l9+#jvM^gU+MenxuLTwKFyfNWg<$3+`w==KDZVo1N zF2@vp^$wmCO}(XA5fBV&ubfc8fv4O0RdQYfy2ZW5l7#1szpcCP6vk0_4`zL16X+7& z?D(B}%5x3}IFjBt1O6u{Ts?8D0F`rL3vTcZI>bv3R$XZ3Q$XaHPZd860x)}S4lzLE z*L+RU@*WXD=GN)blj`s8z%V0#ZLLZz$($gP|E68^K9B`$Uryye2dS^0)W88H4XM{r zC2XkPEN1uB1lgDa%0H34Jca`mfU%%vJYXLv4&ZAW8Lv+0#_!lzV=4b9#l4vZ>>|L- zXusw8Y-OHu=ibK)z&Vo@WRu|G(frCX(Yj0vxI2KA0;hS#%swbttITI*YT+jY;aFer zV#5Gu+ZZ!quwE8e{AA`zC=(NOOfr>j6yqZ=KpqbW!K^}W1xIfmboJf*2wU--_Y`*V zBn@R8jacG^IREO<)sLRE6<0F2Ag-}o&V$sBfD+LvG<<$CLh%#F0A;&1C^t#qSf ze9asR9UqY%fuKysJaC};FI(02U6fO@x;YRx`8%8{Zu>^DFigI(*(OrU>M0;8Hx8`} zL^b)Lpa@)qxsY*vJ+X(Z8nY?7+cOC3oKKQ1qG0BT=ra~UzsdE!$A3Om+M;k2>}FzN z{lW)!1xw%dWCPLF->w7NK=(iaoj0?GDV^-L-D!B$SBHTs_O^|k1n&IJo@MdkF1W+F z=H&vcfFFRj3V5~RDh3vJEYrO1ukm9}7_B1=;b4sqzb$%+E2dyBxfk#wdS0RvxaCCi zH^aL-I#Yf&B+TUOyo&H|*_H2ToD<22qlaz0<7+NZx?u;ro?s|}2Bc5LXefQm%U>j+ zhjeT*AwQn^B0c;*O?#iF3At`fKbL+9Xtwn2EUnyeS>Drbr^r#6FRCv{(xqot7Mnbj zV?=i@WP?(rL3@}Eyk4FdZU}1FWE~RhnO^R!dDM01yC^%F(wlcQ2}3dgdpd(X_W<+!et+%;ltQ0U+&BaglpTsZXbMWf(*TIUD+pwX zJ6pgseP{5Od<_Whkk+eUuEFuY-9r7JpSC&Fs2TDv$m1DAHIN+c#HbEiH7J05H4x?j zq-qNnXnh;uZ%ANcrNMBFN67h^!=@nl=SO+x)^)Eeli>(|$2$n*-;l@mfyW)H_262a z@$f2V8fRh8fF>jm5f}SaVOSg0ys&?z{>=c8W*5%Lrt!*$FW3zW&W8@Fq^?-@^wrz{ E0Zq+C7XSbN literal 0 HcmV?d00001 diff --git a/images/410_35_four_nodes.png b/images/410_35_four_nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..5c9697ad6e946fb37a97b74208455c5cea854ead GIT binary patch literal 17240 zcmd74cQjn#+b%rPBq5{`q9xIS=)ETd8NG|1s6q5$q6|qSBx>~N(L2%m5F(w>^;x3?{Zz&ec$t0TT|uQ)w@?A5Xd#?v!}Wc z$hi#&giQGICGd=kL2w>8T<}zY>R$$5{+De&f#0vVJu~)%KxkLbe#nyD-X?)3>0wIG zVS281F!)OkTL>Hu=W}pz^0a>GX3OX5VV|-ga~A@+2Z26)qW>lpKMQ|jx|?~r6%`!v z$hC`y**#de+wMZU>b=Jk(4Js5R|mDsnFLEyLkhgJU*=+D0&Sz3>9^c<1Mi#4&(1;L zt~+ziX*So{nhtMLTX%-Cn=)?=LFdX>x_6$fFhW@*yS7zU{85s$<>Ne153gF@c!CDh zlRftec$;r^sMHSChdXp`M2fR@FYNj*t-U4{=J-)YoGtj?mkcE(iH(|Scr{-

fCo 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 xhoLDt$H7Uj1^J@zj~amy< + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/svg/410_20_two_shards.svg b/svg/410_20_two_shards.svg new file mode 100644 index 000000000..b140229a8 --- /dev/null +++ b/svg/410_20_two_shards.svg @@ -0,0 +1,266 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/svg/410_35_four_nodes.svg b/svg/410_35_four_nodes.svg new file mode 100644 index 000000000..bac8dff2d --- /dev/null +++ b/svg/410_35_four_nodes.svg @@ -0,0 +1,413 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/svg/410_35_three_nodes.svg b/svg/410_35_three_nodes.svg new file mode 100644 index 000000000..dc5ba8838 --- /dev/null +++ b/svg/410_35_three_nodes.svg @@ -0,0 +1,469 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file