From a74492e8a41a086f82d73f640d0e69d187c38be6 Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Thu, 27 Sep 2018 11:11:01 -0700 Subject: [PATCH 1/3] Polling engine usage in client server --- ...grpc-client-server-polling-engine-usage.md | 32 ++++++++++++++++++ doc/images/grpc-call-channel-cq.png | Bin 0 -> 46078 bytes doc/images/grpc-client-lb-pss.png | Bin 0 -> 56397 bytes doc/images/grpc-server-cq-fds.png | Bin 0 -> 42096 bytes tools/doxygen/Doxyfile.core | 1 + tools/doxygen/Doxyfile.core.internal | 1 + 6 files changed, 34 insertions(+) create mode 100644 doc/core/grpc-client-server-polling-engine-usage.md create mode 100644 doc/images/grpc-call-channel-cq.png create mode 100644 doc/images/grpc-client-lb-pss.png create mode 100644 doc/images/grpc-server-cq-fds.png diff --git a/doc/core/grpc-client-server-polling-engine-usage.md b/doc/core/grpc-client-server-polling-engine-usage.md new file mode 100644 index 00000000000..8de3979a56a --- /dev/null +++ b/doc/core/grpc-client-server-polling-engine-usage.md @@ -0,0 +1,32 @@ +# Polling Engine Usage on gRPC client and Server + +_Author: Sree Kuchibhotla (@sreecha) - Sep 2018_ + + +This document talks about how polling engine is used in gRPC core (both on client and server code paths). + +## gRPC client + +### Relation between Call, Channel (sub-channels), Completion queue, `grpc_pollset` +- A gRPC Call is tied to a channel (more specifically a sub-channel) and a completion queue for the lifetime of the call. +- Once a _sub-channel_ is picked for the call, the file-descriptor (socket fd in case of TCP channels) is added to the pollset corresponding to call's completion queue. (Recall that as per [grpc-cq](grpc-cq.md), a completion queue has a pollset by default) + +![image](../images/grpc-call-channel-cq.png) + + +### Making progress on Async `connect()` on sub-channels (`grpc_pollset_set` usecase) +- A gRPC channel is created between a client and a 'target'. The 'target' may resolve in to one or more backend servers. +- A sub-channel is the 'connection' from a client to the backend server +- While establishing sub-cannels (i.e connections) to the backends, gRPC issues async [`connect()`](https://github.com/grpc/grpc/blob/v1.15.1/src/core/lib/iomgr/tcp_client_posix.cc#L296) calls which may not complete right away. When the `connect()` eventually succeeds, the socket fd is makde 'writable' + - This means that the polling engine must be monitoring all these sub-channel `fd`s for writable events and we need to make sure there is a polling thread that monitors all these fds + - To accomplish this, the `grpc_pollset_set` is used the following way (see picture below) + +![image](../images/grpc-client-lb-pss.png) + +## gRPC server + +- The listening fd (i.e., the socket fd corresponding to the server listening port) is added to each of the server completion queues. Note that in gRPC we use SO_REUSEPORT option and create multiple listening fds but all of them map to the same listening port +- A new incoming channel is randomly assigned to some server completion queue (see picture below) + +![image](../images/grpc-server-cq-fds.png) + diff --git a/doc/images/grpc-call-channel-cq.png b/doc/images/grpc-call-channel-cq.png new file mode 100644 index 0000000000000000000000000000000000000000..d73b987ee927277b4ecff934db115e4859487165 GIT binary patch literal 46078 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

sDJ#JwJ|>T3zhjB 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%0DBkKNx| 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

I2#LFsz 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 Nc~_6KH0NN_e*jnh;79-f literal 0 HcmV?d00001 diff --git a/doc/images/grpc-server-cq-fds.png b/doc/images/grpc-server-cq-fds.png new file mode 100644 index 0000000000000000000000000000000000000000..e52bfac81c7064dbb601a89f8bd9cb915c527e55 GIT binary patch literal 42096 zcmeFZcT|&G7dNQaE`kCgA_5{!x`@(?Ql*0;NR3iO2$32g0lbP-DN@x?L_j)`mH>go zLJ<%m9TFfCz(@(Xp`;MXMD*VKe)G-DdS|VfS@XyD{K3k3o>TVOXPvue+tM|(^RuGv1sEwvu^^Kgk81s9zr zN^-sUEN}PVPTbipd4Qk~>I3s1Lm z!dfEpN0ZDSlmZrRq|4nYb&_j-Y6g>#rM2caP_P?J0?>KO`sJ8M}7Eqoevl#a7a^`_{=J|TN zEG~LPaqY1arn_`JN~G4;X2|wr&H9zqp0&+FW_qUnb(u49e)9l=GNNOM>{}=^xUhG( z?wJy^OIOk>K^1bSOwW`P5f`cQ<^BoLT)Q8?tr#?&>1F`yYb))tP9dvZ(){%O`DM)j zwb=R*i>F}iPKhp8?^+k+Nax)al_Kz)S~>eHZ-F_1{!4FL7C8kF_4)Tvl`W8T0!J5R z)zsY?uQkm1N8+cV5$z)l`l)6KbE(NJhnRO>@sv0Oz%Ej0w$8gWPz9qCgByp^RhBC zH8e=p%?|F&`KQr9`}t7KYYhbC8cVi#J|A{vd}0ukMR~sBY~NggBNgMl@pJ38_za1c zVMJ8*jPpoo~VfS&j7R?Nj4G*$G++VSw_f> zOT2AKla0m+FBmO`Xqre_psYN@idVEol^%8xY@jpNTkgf2yEA#v{iyA&T*27$lW$w^ zJEa|0>|9NI$t4Arl+Lw$V^^QgFPmPV9sw8v6O=WJR@OAH$)GMZ%pS(yJs$~_8LaJQ z*tyNp#|NlLwI=8^y0f;@>$5{PF9BJAKq||s*g!i!j^F(1XaTYE&1i0rHSap#aerzwC9k&V=Fhgvio(&WLOG z`P5Dhv5YtwNNg0o52<@Xq|+V~QQ0@)HBwF7)Fh=GlY!I0Ap>QI=Bm)K5A(-%DNFh) z9hUI%OtB>BWl&)DmA19_CQIe}u|3XHwKt4YZ**X}o5znitbSC<5Y2Yb%a%er@Y;{7 z31ZD`c)9m5uZR*w=q?8I+Hru7Dzk{21+P>{i<%y^Pa>w&`Fl? zLlcvS2PUj_v=hcn)L2@oyQ?>G6Q{Snu16Ix5zN}WoFjBfYkEJa%A>GnYy12Vy1GNT zTx&x)Qu$?=KzaIort9qM%cE!1vQ7a7=ekw|v1%i#%WB^G~+Z#2p8v3vc zEyCq+4h=hVx%Dk4avDO@uipD5m2zvK|S_}19rvChi? z{W~`vp9Sn(PUS9HU1*T7HQt+%NxB|WiEX5XRU*E={Jd#48VQK$h&A4~OZe4&ezB;X zsoODJzsl#(af-Vi_Wb+nSNZ=Rf3NZ~sUlllJM=?RQ9ou?6h*RiwgoAg{`ssABHI{$ z$V8;ucdMPCzDGUO!a?2bMP%!CN#qaXZP6=7eolb?7`ye&mYKgZ7!^{HO{J!|VknIf zJ8k(IXmUWE`?q6_XC;%_ZOn=(+HWLx_XgDv$_=;*-Ti$6(8j-8-etz`-);Q6rQP@J zR|kHUuCm+ge*Qmi_HP$^|LZpY^-%u~d*Hur!wvYCq@UF9mi~`s^&c}l@!z&F{I3|O zzVAOf{C}D+|Eur+SuFqG;>rKCYyR)b;iKcC=={x(@C;TYT{Tk{m8*c6LGJXe03L2U zeFfZJfNxe=A(;vAd(u0H2vm_Q%wMY*=WQT>zFvZvG^TDD?|gD)PJ>gjF$)#wjmruE zW+uR4d-=I>$>NO4&f46LLmq<>t26m_6&X3{;}^U06`ZROM|dOGL>EO%-laZ< zQoS+3GIcf&W}Y$uJMeAR%>ZRlLe?NpOUwqfm!}=%W}@2sqy zpNOUn>u%`kxPbD3TdG@AAg1k9rRpjL*jheLCoIpmB8jZQovuOiFs1pLbxHLRUjKaE zjV}hhDxpt4j1cZpbF1Z6GmBqTD&A|ACwGCw90ARoL|^UJdG))AlWXr_XF?;#IG>N5 z+ElSg{iRwS(a)hr(tY{A>8>>8YpudK`=QL^+w?(f=$|0|jd_)k#1KIHXbjvjCI3h= z0Hjnm7Ip-oR>E>p{3djY@Z>N5u}x?#x^&&s@7)IP&~~8BNu2%WQOeV;aH4PPtjbW+l*%dP z#FVJ-stS^=yNllE{9i)nM~@|I;tma82ppDN(dYM)d=l`fA0%slH^7Mt{c)Z`oTv-TOGu zzI3N?x%T;4JC(t@2qZ@s>MI>vjzfpu&6h%}-PQ4MPF^gJI3&XM z^NWdYxBD#TEBL+b?yOAdUEW#;M5Ga`gbKK%6NM`$X?pb)}fdZG6|2aOTjqL#bDFTmQGQ2= zh@nm(+jU^?3=0|(Sq#Thyqf9SkX#$6s*enM1n+q%VmR*`Y+FMN*78|$yLKERFG(A9 zbE}ERx4(?Ah$O#UU}%Wp`x4<6C%vc*4u6v2@mGkDpmtR>u_s2^$;Dx^!`|M(r9;I{ zHI^s~uT0vk(OuEb&r^+~9O4DACZ^tp@^b@FuL0#^Hlw2GeQ8sx2-a63-oatx%!%F# zQ=6JDBI<^eh=`M~SzR;L=9_H~A0bb&qvS!Cpb)+~_Z%B)p<6(KHB()TWml)AAepKW zUIBow2mdl{TwH+nHr#{VIk8^HV3-qC9vf7^4sQm(=jGfu=8tfjc%j?46fKO8M|X@1Rcq)>B+ z@8*)lj(&_@SF*a~ZWA;Zb=RpleL+(MvDdNKHhgnYPh^ zGXbpQ-|C5_%(GG1v!^kE;TqZ%-Z9$N7mhJsT5e{zdQyoj)omEYejBTU zdH7x6TTjPvYJ@HkGA?0xl)rs6Z!dD{o5%}BiX}dJQme-1l!`bGjlaOrhV&si9UB&{ zkbHnzCI-!=5%Fah#F~i=O+q)6J1Uryh%e_L>kB1jPA9D(5|{b;PZA8{O;ftJa4yl= z>-eJRJ5nuzUXEXzZ|7-I*Y$G&rjL#)U_<#a!tH-q*DOB2-FCMst1oZAn|0^rIWdgt z2EJm&NYo`WHMC-BE_HHI6@EHv;?jd;hGo-?mhEP9CZX;bId<4`Bjn2=jkiid?wDkt zRftf1FQR*}ilTUO@Wp7YPD;73rbL8h0_hRXBPDsxpw>Bc7N}+uS$t`&qSC$ktY89s zZp-fDMB&)+`4==jnl)*ki3@yT`ZkNzOu4y@SLYGL&Ya5aL|X{Q)D>zRH3i{v>tbbm zF+Hk?oB30bMuHSOC~Kk@761en-R8?6Joklx`05^3D)P;Y`9JAi)lfg=#q>VA=UYrX z2&%(J-LlUPAGTQf6FD_gIsTfPfRaMfMi=lg=J>cHzJj#UN7@|QW`NBVpOo6kv)7=o z^Jv#pVevl(C66?gGK_2z_}8%^HA@l;8ZjD>y|A?F1_u=`ptUVeF0E$qehe(t;b&fD z+uq2QqYc`(*4yZr(eyv}7hDmG#ERch+7dmYcM?EgHRNU}e@D(CURrND-NKO7StUeB zDPiUkB$=@>0~LF@WP`fjH5Ms0M7vF&e+Y=apW^qGO3}ExRzo9bo_r$AkFscJf2izb z+eyd@l2bAg>K>%GC7a~AqqkpvAMK`?oM#q>w2dB*(hXGA&y!R=gb3<;Qk&kkHA}C` z3Ac#VfV^}b)^Pwr?blQDltCv63jBkoz{+neNN+$eO@*X}BJECc7N2nxSIhVOfIW`{ zCDE=+CkTmbx87>$3Q2<_n{7}L(kEv_dK>V&ng{^V1k0RQkIixYsTfLwpD3lY{G zGX0q7>(e^az8>WABm0t@>f6LEvWLKZYv|0oKGkmDOHz>#fiREw`+1CNk2XTjjRz~~ zQfPjmg-vl=h}q1$RdK`G{_rz&mHRBR#sPiD6o`U*2O zJS}>x{lA@Mqta{xkM^vvwPz^L#t^EA7z@gqSI$%Ee_`Pl!Z&XS1)&)@rW?s3M`9B9 zXOtBpf<`%v5EPH2G{nJOiiDeijv;#?x2RX9sjX^3lxt8aiOLT`c*8b&$a!y=IuX_( zcMp?%unj3Oq$8yve#C4BdGfyZ68V8ADuIExer{{^l_E?W4dj_n8@iH(G&~P}@x0Gy zz|!bsKEFv$j6N_0l*b5-SxBAv{Cc4;+#cehg&a~yWW!*Wlf&au_C6f1bH}S2JInj` zbSb$QKnI0qYQEl1p?Xy~A_mYW3bQ~Sn6S&c68&5$MNzcA<@JLS z+OBWRuhvT1z6x11)(bi96^qxkg5pDJbPCpxiWks_(%$Kn>IA9ha%;|H&ej{_(a(c( zrO=|b`DMw>C6s##eE-7nVN&MIYEp&83BtJ=oQ;rtDOynsZCrrURI8Z5rTsvZ_ete^ z0eTkk=2L|Z4;ReuOKWYMa(k{b!#ETMgj@Vw*wJ>svPT$EVpos2#sB+qc|udK~3b9He`DP zby)-0V(%#wSOZz;V?M0A>*5J)eZ=S>y_;Fg&Wqi2m|^>|)K+bxFBXK88>2ldX_r%= zIbPWHtYIHbOKD>d3u;2Jdh0LWAE@%pK8&eM|9-WUtLN;I2JN?>EXRx{L!UI4D!8!M z!>{fdKc2&XN9~zf-+NSQoSxP;+st}7sCHSk&r)-#d&!-@=Y)5067P+ola@hBfE`J`9jhCw$yZ({VWk!yRi)-HRg-3ZTkove%) zJjK6w`_Mkq3Qcu>JtG0TG(kCE0iS()-dpezrghg`^10>=pjdv9bXagre9{R5N)c^` zrQLtWnABn2{i`@7@|zxshloGftk+;)`f_c-jTwQ~4c5QWR5laFQ{Ea*Pa+j)l%;k3 zc%DvS#dQsT;FPhF9$qXjlp*>AQwPb0Wn7I+QgrU8@z@832gixoXGk!9zH7_ zvkK7!qThhqW@V&(&dQ8?O&_Asoy^Nnl81n50i#=$FnAVsPs7WNm<^ zHHluU$v$kv*(Cgp9?@gsK#J2}T(nO{Ab&i5L3h5n& zMIh;YIw9+KLPP+h!8pcS)$7d?S?uFRCCNvd+OX0R@ka$Iw7c|KR z%4dU0>`^`vTEUBdV^(Omf+l?9%taq`XZsWX@E0vbz0w2=IbV0CoU*VqLQxFv7lA~~ zX!_4UEN57k$#l`|7>Z9Kg}-4<@)OGba65Q3RO7?Lg^`q4960=7wiT36u|AR{u~N4* z@FVb#%T={irJFR$M?IsBEsgINmIjxRQfcOe^0pAIL8#`X0rK^gRf4-CUIvzp;f^25 za?5_&en)i(jjzYYza=BnYXB(X*U!BvuQC=IP&PRjUBeDOk@vs-!;B_2XBWKV87Y4aXIJ!Xj#R zHq_qdmB-nb1%q2U7~c5XDbWhcJLZ=JpOS&e*Q>6#LB##w`VGeF=(Lh^qMBbfUgQZ8 z-Wf0&c-^r#kN9VF>PwYK72pyz%2yCF`6hF|Ow1SVx+gi5(4|C2)$c232Wn_2*om9! zf1oOW{1QE`f7$7iS$A%V=K5cS0;Ky4!TR5-cw2y7QPK{$GbaI`!pl;eHF5>;Z|9E> za}&_kWNL1I?~~MDJ0HD#KZ3ac$X|?r*S_!q`H41Rk@`oObaf z`7H~nBFE#yc^@(lwu3cIc1&WN=@%@8(*FAN?1i%dw8}pCT3Uo0x4(@BJT16Ra@lYwTJR{oFUq;gj9vEzC(`nfX}kNcjv zKYUq7F)c;s^&AiJzlC?yC246Wy0WQ_Q~aeZD4g7c8f)?#c~m8L+AjspUm7Z9Vb4dX z&kn9&?`dxrl0>L}TBGfP5u26Rbm$@5ENvmm;{jYC&x@nOx7AqXXM0wwSW}eli%SOb zrt6Qoi4Y{J9%yHtC$Wg*qlXr+OX?p?bc~wvji@zHusk|E@S5S(g>09$Jagr_*jsq; zm!t%cuu$5%TP@m5>GbClgx4=xkBnpON%0f|AqRHA{~vr$_cg=c%nu@dkw&qA>WoBt zSYw2Ia<%bI+~xWja2d36S`K&DT!0WYDezL|%366PglAfKYci-aHGvZFd3hen(`OmJ zjx!lgO_n<91MN`#&JwrHm#5X6zJANsVm?bU}Uk0w>E#6JWOqK zou^vo7RlAV-jqCv8n@OwyYYsI|DLRg$mfip_ryg;oufv*35Si;Sg6|&ZaR19hujOR z{B!}aDqvQymztz1P5e6d#w{SV?XquR#S!x8@N0%b%)*I92mYV&iGOsaHqqN5ng2&_ zTA}>>%lKF)3$G^uBM}F;ev?5JX z=QB59;7Yc{qJYaIqaVl3{n(KE-(sjZd#5#u2Abg5>V^3*BI4ldjL8!3%bK6YyP6g( z-X37yMoFLePgy7smgKBbH8{BU9y?a`kJe|8`tuO~-RsZ7za#9H{yrjiakT%j+3u%D zKMDWc1;_88(f>u8|9YrhivIWo-~Af)C(6Qp{$apw>F=Q+H|M`N5L_LOW){nn=n7j? zuU1i2lqxxGRmPZR@Go6cZ8nH1IYm0(VuX_kACdDw)ZWw1!)#)RFi7OSI~!z1(CyDS23rlFis64Qrcg{g9l&pVYsRYN zcm?n=K?6rky$vr36;CH6Yqs9KIOCR+Rd;hy@>24SMw`3gT%6K9J1nxHteXBc1}W%w z)4uqdzY+90)dEioNdRq7_Oe&xA1RnJHFxD#RtScOBS#jSQ)}{%{CHUFUsM~sxVmV- zc%0r_WtKpB@>eyu-hqfJYIm>2MVU}7RwMH2Fzs`nO>FJdM=#NU22gn;K^|pI1ed*P zAx{JgI3h$rFN9ykC#mfP4A2%$HM?0kSq!HUYnt$AXmf};2?$a(&%2Mh(&g1sc9Cs# zM0QLBI0#N28}8qer?ln8s*-6%O6v5mCj8|c6VUO#V&}QsH&dI zLj@uA=bWuuL(1hVz3clcH{yWa?U@ln4gJ!^D8Bo~IdbAaziUj!>R@N2h38Kr^&d;5 zaLkbKAm+>X)5>*I+}FuUS54Ht$O?|W@mV+2>qP3vStSVmHN$dIuc4G2DyB2G|N}EV!7k}qwdkFhq!=8eQ$0yz^Ob;Vj-Qalx;@Sartj3U9gg`={1I%Uf43-6|JD&(k1XG}jKm0;827 z?CWx^=Z*jEAu%9cC*KYnS=A)Se_)u2PIQoN+H0ppf=V|Da$i%uV3$FUPuBh3aK0>w zh+i0ZIE|1kO$wD_ay8PL=DPc<5u-fi+Wp%`oy!N>=(hp~Q-lG(&;JtyP4n@1$3h}r zxQ|OViPuoOpOh{>`T5>GzmH;3)3`VFqv?q|;eSjj22_AW0p@K*63+{Jj)l;c<{#c{ zwxy~0(atq}i-L)XlHx%l$_Yxz^B~tfwQZ`49Uszj2rK@V80)zSWYyMKV2V>jsF7Y#AM3{e6s-Fl?lbi(6DeJI5%9F-J z6ug86$r|Ci()j9(+QAY{%y&fpV4(L|V^QhFmIbj%mDc{jH)P`K@)pkjOQvWh-ap%3 zj0j1c?NLVmRz>H~;M1tarKZ=6(CdDKqF>R-`)u&;Vn^aQ`Jkf0Ajhaee7DCFBL2Ck znT=7Wi?DkaMU1DwD~{4q^j5+FbE3R8(*euCMZ!Og7ogZyRB&L>>sx8#RS^+Z#70^D zEJmoN(zCYdZgz^z5wMoFjQuFv6xVGUzf`<3l#cK=X^~7{Q`I9!`-tWU<)MR;8NyQd zk~d5FfTYfE2QG2x(mSD3)+8e~{NHSJblJ#UxgB{+)fXDUWh!%%DsI>}fIB&TF z&a7YqN_mc>$5p^;X5Zo}as<6Q*_lM?6E7T%{?;Z}p%evJSG#+mer|TiUiCt9Ud+Nf z+=X)1vR;UsZR{$-MGrc2U`4Q4s2!~1F5T!JCNUlV=`!7UTf*gpF6XelhLDDmYrvc3 z>>F&BEF_0H2i(paI>ok)TuLc1b^1T^v@DB-V#Ppe>N)mHZt8MaQTuFP9zMciL)p4v zG1D>3*$AqdX=Src)yNTAakheb+k*9Fb{4H8jKIpa`2p)~U0LS!vA44LyDYeP5#vRZ zy)sqmliyxeilJj=oKlEvBrq1AJ^VePfEMPfm>N`|v0uY-h%d!g#lvcBxGL01!x+kP z$vwU>#?J<{Ld~5_Wv!qy7BT$Y-p))Nw!zDI20E+$t|+KpLX5)Qj+ynhJ&Oueep^2i z?FZ>XDA8mKXw0>J$SA*?RKg$Z6o!A00!>pBJ))w@%z+1h(g?1Lp5`pv(>cAEhhv7z z^^t&)0|91F=3a4)>lYUe@dXx*CV~>hJ=#s~YdrCbDy1D$kl^1DQ=eyJshP%!$(kKL z8bdVy^{2Q|J?8pq{Ml3bWaT7>lj5qf3AZYEUloT-`TmjlDUWSO{lnCQHKd8W7LwMCrbAtp zXnE1RdF+y_Lt|6$3ASnYk1qlKqS$m%(AilWsAp>T6-F~ zmohKG;n%J%#)ItDSX@(!JOr9GxeHxJbSe${R8$xrlJuW;I^+PgVf5|olxeThhzL`g z#n4YE@cZvB@9}b9oCNUWUwT#2|B8vMds)ang&M%oT#`P$p0jr;5iT4Q*VcOBa>}1V zH=3~-osOk!=_d@{@1&h?fwgXEQIp*6cD^gxTpA;4>d99jyQSnu%Zn~%`O36FFr`}v zp7Odig$24LS+gn_na032hQH)!puA4{L#U^&iegw?R~THkKX`m@urQ+VGfvY}>LgM^ zXs}wRGu$QpfuKs;MpLqq|IO5ASRVqZTgr2|iZU8t^wu^jtpaA$Ho6dYjj0fed-+^m zSh2w(?{bF}36dpqNsC&NR9CqkNhM3nJ`=svq@U;p$zrNL|4M`Y|1*L2| zk6Es;W6#=bg1X7ogCm+QPWd*?vYY8g|HE#yr8aQTLtT!En4Aj#gc7aaviyT>35t9T z-Dm1<$WOkOPY)3lfk?*kQgclP8WL$W;wg4y%`z?1Zso{G*)sCTb|MaRt#d^51I}KZ zy;w_45Sb(QhIK$|VdkFmfpaqRtI^RFhKtD|Et5PiN=za{H>Df_4_3G(NW~-c^1K^m z_X6gmOU;eD>-1|r^AMz}K@;%F~@JtNR{-QAEGj1uH5JewZ4jFqpr{mRC zDWn{BKGnZg_F*d7vMtD&zonx2MaoJDPaju6#Hss)y%W_On_Mol*x~1o9a3y%-uXjmHu9a3ABw~r#=vVx4&yPPGOtFKTN(~(d6>^ zbW7(}M%E zHl(Ke&YG7I(hNKX94%#3o8H+93$6^IGV+@?o+%}?!ERk!|5|}y$oMSAssn}oRSpC} zY4rTljht=t000y0;ivn&GVyV$+3ub%nqeFA^_b9)7v3(eKAO3or8{#5E;PeTC5{A${qLs|v5a#0!R38DY5lN;=Msqj zJ9Yw`UdC(UR>)4ADRFB4O2Kl!+VYsJrd3FxW2cvtdy=?9lJzs5ctio*ei#O+4RLW? zk!;wy)ehE@(}I{dBZegjM|Y`e3Z8|_>)xG2&Z81 z(iVG_wU>MDV{4pIoQRPBP~jjpPhu8=a#78X6n?mc8R^w<*TyQ-uG>jwbR=4n8-TV@ zr{IFt?3+fct;_*=Qv}_%FPx}ZL5>lxidC;oR~=$LMTqn(h5D+G(Buv95J451}s+zMl+5;f>uHJN^u5YjVp1Ol?mdbJaHN9cb*b%7VfRAuw z!G;zqOdG8j^5s;b6gx#b!ZLrW>7sSXStkv2=qQ3X8&Xq6`Ck7&%=zqK^B&ic13|{; zxE2o}%Y>zI`Ju`Ipq zHqGK9XB$LG2H{32S)Ha|I~W+!82C(l?u^Nbuhs0OEw(rR^4Rb+N&2a^CKP2Ba_Rt3 zgY?2F(>~`V_}mbegJKM>V8qaV+ehjFI?23o=7nXlEc~pHiPLHG=%H*jpw6eaeUXq> zf$W;4Pg|4c`(QTeBXl>TR{r`(2kI+J+}FT?w^-lRFnHpbTk3gboaWLX0>Z4TiEp0m zK<~9mTMe5KBD`0h`+{Ft&e6~EKD|A&fV zib&MjN<=5QE?<6Y5ig7sVQhCreGquiwfcRA!dl0>?ubNfw(dN8wV&PaKc2=vRHQBO z2k6oh>0`l9*{CfW?qWZWoQyVJ70UUIOqVP}n8NWCNsC_%zbz+%L~|nemm)s6zEn0+ z{%L?bqMNEmyQ%L8z21WqSiD;g{;_PIManGhjQ{@1Y3J%9IX9Qqob9~Woq@{`nD0CaiA}q;^4_SjE%#TT^2Bc5bCKSJz*2cq2K~J{#P_&l7p#ih?JNM zf3p%Q$t)rmyPy$PiM+#T1LqmKztHHP$#vfbk^_)hF%#PeirFj4pX9e#%?p*vb5Qg18YP=@k8eAOk4&i1zx{7Fdo}nWV z!ne>_-cb+fXY%#dZM8gaS8VdssL9O3zc(9)oj){7Fk0gEVc zyu2y+68G0i(P5AT`8hvl9Ho4}W>%11r=u0rI7Dlkk$iGSs(JpRaII7w?np!H`=1=y zGb)MZIP)F)i1AUV=*4GGkIO?`)TCMscmzUu#F#6GQJte*Z243<0WKfAv7G&<1`#Gv z=XvD8#?pfkgwXVofrBi2AjE!kd0%a+{QT*Gh|1Bi@CNV9xACmzkz6VA??K+PXJ%-= zl$`s(0X`p7M7}u0)!HEZnaYs>rwGtmdu*&lJZ6=p<9m4lf^Rl2o6yxv=vrY~1Ch_O zWk4Ck+j%Be=Fij2Xb+{bc8MA}7(-~3TWcyYM*||Sn$yqf9li2Q4U4cf% zLmk_EYSLVkjL)Qo6yd^0TIDiF{9>JT1Y&G|xT@&=-_?UXSz-(#1-7OM}_ZQ{v(IU(3WD{LE&X?H4UB7zYg`vFLMW z=`U7tjt+Z6ll+Uf%$Y?@1+TMKFgN6zm1k=44Y$8|w$&Kkzz|mwjxEIOZewEN+BtOn z-ZuI{_w!8=X5FuJ3Rwl?jd$mMZfAC6pjC>92UMd0C)q~+G}O=QM}yOikt>;W$vfIZ zJ(oq;mDnB#fv$l5PvrV%5c=nof1%4N(H6_@>2tw91Jk>2*<((GQX2$3wwB(}rYw0C zU_PS@jX&=I{B~lBNGgdSXl&VzP6?KV%iv_w@jE^Kd7f7sycMuoTHBHd?YP@9B8Y;o z!~9!YqXrkgHP%+fg7wp##4A7_QLgwSK+STBRYPm5@=$nqNoIAG)7R#}QrgNX*&dU| zyZU+mrslUs5b-t+2=VfLX;$e2kJ|=4LQ8AMwnqfSdzbk)7>_k)7=UhoXg*Sn*Vu1p@XKq&d@nb3HLze z4jJ8*7svPAkMOOHH005O7cWIO%6;JKmO5H3vY@3XP0Pq6RPh2Tyem2xTi%h(k{;dd zwV)D`Y4fC1)GFzf9TvMY4v^m2+{jnlnIkLaFoAOz$jAef-Y;hVq-7ns1uNlSr7^(~ zH?5fT?LVWCoBB~S)+J;ehkqNrXO6JdyVF;;IYy!|+zEEeOl`vL?WMKb-$RuU>>Q!0 zLv#b;IH?V+HN>SYoN*3&F9J1k+*goyOe}smdYh(BCHK=*Dw&Kwh?*gS?V}6h3;jBH z&H}=k6Z-9DZqz0od$#@@5F$XWl0wFT z5R8#@JY5d$Zh5gJml0}et=gcYlZY3ynfkiH+x5V_lYOU=5+2gZaMVaoo4LYH;++Vy zO)MUM!&dKvuRwl6cp%=7+VCRcdk`Vwt-Zi6(Q2a~C9=p-45uCpRW|CA&+)P0?_DWbWx$yDsibM+HLuS1~Z zx7W@}`eP07*2DA*=uwNQx{nTi*He?c*`|mw@&Th=gSR-TDFSSr`z7vIl@)#zPZK|!;Y>z|i9!j;q)D}G-(h~|bCD0?ESfBEDwyltL*k0j~wd>M|`s7&0}AsU;B@<#uiKoPxd)Gk>gmN1nQf)6c{* zNNzx(PpJpzZ-TdMzEtU5gprzW@P_a=U=s%3P3OZiu^C09F?yhhlT_`@ zf$pab7DFD`N=HhTi(emX3DuQ}_W99pVZRKHNajzY-%sk*7F8fpK0- z;|waERiv8cpiIA7=k`EGE@6c_aim0)qeTlI3Z=z_VK2))8Og7m(3;2iJV$)Vv{?_#1 z-R@tfma`!=v8y>isuu5fs0N|(sg=W*9v4br9xjes~zqipAa&1+Z1Q+Z6O2z^Lw+2e9vz%^Q4Gp4X|~Fr zS$(e}jv`&!`x6>%WC6d~t46-vZ12W^1sAUUW_ms&YdL5aEnSWjWMt}YlS_y!`>68h zU7`9N6#F=Ne;*bAt=a4XZE~`|XUDQP+)q2CF?P&w^5=JJq_oc1n@dKMP*iEza0(_%w_qJ~2 zx%sdNm(I)E{S0{2T0f&dqfK48J)wDUQy0g85H-pRT(heP(y4<`|Xq*yS z3f#4*?#b}=zkpvKUj7t&93OYkIWytMcA_m5^N=<0-F}wrSYmwa_Sz;7GoyGDW1zYqxi&kbEs@oKF_bq z|BYqmTijPz?6nYmvzNd4e5;uxIzRg2-$WYS;GUA=Asl$KH~R#E#D;x-)2W(foFdFO zQ}K+w9(qu)1r&2qPvkebg7FsjZ#|!KPbb747YXIzZhXx^+oXUF{r$Ozy|#H3qez3x zuWcfgqE&i-K+XTAIFXXkmTf<9^%Hw0DQ)1Cd%GNXpY-;8i#88I|IOZ{+LIqsT|Mjn zCQ#)w|z@VjF5dyJ0NAN_?&oZuM#38U3f1LEL1x^p0KBhyeZFNM4`8b2sOw|M@Qfz^XatX5 zY>c`Hx9Bb_8n2v8Y|lzq6NYUjr=)`Go#MI{4W*z8V*qrZ8 zwbFYr&}N5?JN2ugjLyc7LjQP0tp5~*XLcJr@D&gdp^OHhAqM-j_@;#h+w58vf94kM+2gO+ z?pDK=ebCUN)4B8C+Q4?&Xbyv4*W3NC@Xfo7`X))n9W>B6GX1g*{OWHB<0qJKg1xTG zLQM@Hs*0n<{%N7o=0Ie{+UF&CuE9 zsD0-s+%c@dOk~~3kF{;! z$3MA!*&e!Rk{yo)E>N`_qf1A50r^v&ZOGFr`GYGwq3P}Pa&5Hh@~g=iO;?9giet;5 zG={5j3WZmQWYdV|KKg)j3|+#K=K^Co_oI{8%V8A_p$hBbeE*T=ars z(pGs4me6yJ=a2|1d}WeMyvMXuZwi;ZHeoMp<6)+eY>_!vhU({TM`AMxk+4B3CXi?R z?HV}KQZCA*6I0@z7s5K}>{PQU(%77PbCO(<2MJ7O79)=1s(ac;JE4|~cEQi65BVpk z8!HU0Sn>24E)_P!dL@?Uh)5vG7PGK?m6}3ocPn+Bs4nXZ9sa&)NO?Bmgojm%u|nnG zE)XFrama8(;X|F(llEAg zeEXyI*P8V*t--X6*Mj>s*@?A2FgKk-wZ01Teckk@yo;RemA9DaP~zxPI zsEzDMygbtyIqOd5>5-f5_We13prvR#>7QZQx|MG-g|hRRYW2zCz~u)zh$Zi8QS4D9 z=;GvnL_6xIqul%tdPNVs^PqlF3uEV5uf5W$M_r~P>cvWU>w$ulHvddy`QCx(#$#Gi z&_09q9t+8Iopz_G0g=@05PB9Euyi2n{t!sGGbM^1ZvL5dcDKzoOpr~xVO;%P#96+3 zZuL(xf&d`}zcNI$_F8Tgo_dlC9*5 z-S#6Z`{4Egh6&{veX8YsrKbO#`B(=DM~wuYmHaO^c=Qv`M~39J>n}iyVAuV|yPhU9 z3e+ew*~&5&=_J;WVT#BJN?a+mrw*~x`3!} zYqMiUEWV%Y(`{-Dh4?|+B5v-DC(eM&_jtijhRcEQa&56c1nRlI@c2_L+AI{^*=(^U zKp2_yCEFQH&PR3!Af_41=P#6^Wq*g)g6FsES>r=?`Fv4XRG8**fK!hK%Cr{i1rx1j zS7%&NChBHZp&SF$HMWWvZl&-|^8ofkH>)fD*tQ<4?EXVvj?R$JF3>spcnH&q4HKwO z19g3heoM;a)g6;CUbuS1F0OgC38<5~Bp8y6^Wgt{#ve<+>Bv$StCm-3hEAb`gUxL= zLwllT1FO-Roy6R22dTcM=u{?k&VSM?dB7G>**)|hKd`pQGJ_8LN_)v=O#jo}jnT{r z`FUN1m^^(k&TTCur=HVkJKsz2cJq!&$*^$G{*_=gvpfiH9xsgI=cLC;e;5#<%?KSY zVSGB!weKoB+;vM2gH$I1fa2Cze&L=fh#QD~tn%SD$1Fl{vhcEy#Ln}*^M`Lt*7SGS z_qjN7mP1f)9jol%usCnxwRXrOq_u49Yzd(BdKtEQx?KvkQ>ro{wX>{4Q}ZFar$F0p zjp5iVLu_@S4TxaHc+RAOT?$$e@b)O;;WK%6tQQ+p|HGfv+mYDc341 ze6fmI)}iyAK0kOvS=i?Xb9Hg@|Bk8-Ho~D#l|+Ql>BpdmizW9Y88eTou{@6xC~;3R1-8-D9BrM?;l`yK1zu3BLj7Jxc)KyeB2ya5zUW%|!;hH8sg%ShEK{?NB0f(3n8y>8$ z_}Hw$C`47-))x5Uq5o#ncquaJ$jeA2iZXI#bof&#>LFWC-~7F;$$8V1v6f9|S1(^I zbV%Y5FHFwJuCLqOOS zHtFs;BRz{coKF$Y5QnzJ!UR&!n7dl_+RG4Yb{ksUzIk1%gp0`DSerX*p@3uy(U2!PEOr7|QXj@hJRW>C4dLc{nu0Ta=p9{Bp7g+=8y?%<$;MoC-(XkTG;9G`}BH%@G=ioMn^IrPIiK*GK2|*?Nw#Pr#jr&+7 z$?O2xl9foiuqY0k-gi);WJaqfSmd@LJ5d3k-`HZ9|N4-RSb;5<-f_fCi!)5z64o5| z2%pJ5oV3TC@KWj8s?4wYY@5EDQPHQxEwaoehf~x#q12u?G@vn9+`6gpO z*LutYfX3#m1&u^7lQF<53FYG>rkGJrAue%53Ei;(2QD_vP(Zmp(45Bp#@MBryR=-eX;G zWNgrLW5-M-sS#$fKD)$jshgmN#iq_oo>|K*9 z;gSsLE}i$P_~le~z5-+@s&-^cx`BGaV+wvpi||f;w)=NQZ>AJ(P^()cF%Ayixc`*! zgdKG~UxSa6+8(Xe5CAR?*ZHQNN@Y3QMUW+9+P*y zHg-;_mSk`7bV704y2hm(T?dS6<4u+O^6To?W;2r+QpZTZ>xF8n)|%+$d^2c>khh!? zX^N|wcul3^Jn0gscQUl9^M}+ci#ozi!!5iTVqAM|E=(B{z&2R8*;$Q^B72p?KZR2t z@-Lt`?8me3T@VvC7TP;i9v5WncBD$<89WtQIy7y7m1*<~NF=7^wc_%fh)B@`$rNH% zJ<_}>=l<1gn30>Y{J`nvYxqJ0$_;QU?1n#`ibe(0{0ig!gS*;UGGCFewvPt z;SS8yvHCOF%71^6zDyKtx4lO3#6Lr5lz0--=B`V=U0mLQ+XDKrMHj*4 zgj-H@lAT*f#4Nqa+xqfs&9if~2i<=Ftb1?aS;p;3t)kl(IT~+L)cV{ zPrO!Fwgizzw<>?U4th^@#ya+%b50EN61nd=37Kq{GJxj3-pi`LouzVaS$}!%TZD7U zd&va~`8$g#@fIj*+PpK}$ZWY->NR*58l3 z1uybVG?qpPorC0Q6jnT4>YdZ)r%nO9_p7HLBTRUjQ$^4-`Ue_6+;S~RD)aVr)XiU= z$_aYzEn@N4-nC@+ujo(I%m-kMxRFjHAq~sqVy5S<-3BsY^B6^npk5kmWCsi@dF=?r zz{ncVG8c3KOzQqD-O(Z~uK_Xq-wazVy56L{G&v1*Q#x$*MM4nC`jcK=$tuXm%L3uV zp8@Nj=L^1&aU?#$rR$YSnuWday7%J86{4tyJA&EzN$tfz^t_vio2vW$?uCR#4S%BX z_jZ@6*xkb0BD;ZADtcJyYec<}k6QVg94oFZOD?lHH2)GVx(YUs(`r$7$nFVriq}#Wrbt#I{Lh_0@+vMR6@~Y0@rY ztVfl^j6H@Uo?+>pPD;A~toB)nxgJH0ji9nu>z)NroNq#|3G)RwosL@xfC~IB=uRQd zuR>(1@55wvPiSKmD3xX8GBJ>LAV0EG!~=K`j$Y1Bh@?6eUCLbRz9*b8YSHzf&T8aD@OrF2e*_3nez{?@W?Ox+g7b;DR)k-VCLpmthGqasyZYJD ztYttFs@4+3zI`(L@IqlR18_Nvcmd@AJPQq^)C1a_G<2ab+-BephZt#pqvL(7rCI3{UpI6rdoAmQZGYnAsehv^Dj(h^KgGkh%GMjHa2L%w$lYs1gj8xL z;ygLE|GgvW!AAz5$5Zr;?ZP@+*sJBOk=`44>$yQg>4rQsg+K0%gtkSxjcKnWZwBW0 zeFV%g4U?RV+!~aZRL+h@RC97jDHb_=9#ntQy;|@ieu&dBc2<=p*_3`(C?yL(mRwO(4L+u|1>e$i7e;rEtwUF3F6{Q!mZH8Zi3=r@5kEE+UX z;rxex1lbfM1qiNo{FbMY!`_}vTc>H|Z2+j_B82YInp@x8?N%y!(eHGOo(`yXJlxqB z3jn$CL=2lNtbr74| z&9Gn)tZ=DLWhn}mcuA;AOt^FK$Hw53dX}%H0@ppHKrBj657hF>SXV2En3Gm%qwc3x9=N5*x_Wg^F9@R+YHD<>SW4e4NvuwQNtg;G zn9lqnd_@tgt6;eN+dE!`3FF%ThPi*?Zw*5bd2_s7+8acVAv0iDDzdLQiO+1vPHHz@ zl;CN4;8dM;m&@wlsjLkCpRz*fPrA?@dH1H+b7o!+;P$8t#%)Ir)O7+CE0^oPT)A>G zi+XrEW_wfi0zJ4L@~lS1_;QSj1bU8*`0RfuIKZ$Oun{R*bN!Lj3;rc9w?Mxt5(j zf7+VF6F}R0*CRSIul`@WeIxX%i~rm_r^GGh1Sq7#TgoA%k(1K;u=^`TY|f zjim>0n|=nSIsV8vEokQJ<{QoDXZui>r-?uP4O<&-V;PG4=)OQ}&3Jd26R)?9UNpcn zJe_B0r`sEhncN>C5cV}ldQ#xC6~)Zxx<$Ty7&%^Xt7b+rR&Hf-UXmu|Z(WUnS61{@ zxKqt%hVLeEG8c{(bZ!MDJ z`()*&pEDMtunS-PS7|Bn;kMdJyq85st<>Ss4uM@5QAov0$=GAVFCYIq``4du?%x!C zaFg|H^_$xeSdt9mkC^2K++Y|$KJIA#9EPIr=81s@Skw8d8OBf7jW|>Y_eDNW= z9c34(s_jXwHt^r7OoM%IuPXipeeC6*y*e7eWNQ{PMSq=n9lP>PXr`m>L$$@!g>-2D z)Bd>D0j6J^U$0v8Wh>dG^^)6d%64w$e_Jffz9rJ11dZgJFFD|L#FUXoMm{_H{Q;L( zlv9j+77hwzyvm7cbTOy>ae|JdL*qu4(^ZI&6_)Z5tA4%&j1U96?;4SfrEh*FaaDAk z0m`VvWxTz810thdyAIxnivIuT&Hk ziW9Z{?7WNJdzy#Nv&4z`d6YI+WG-5ziJ(;`E3%;reF_WHHX8K0!vP@{deo##=PKrf zJv?^>-`rF&!I<)qT(TmVl+_z5THs{3)@r{8%s`Wm}R zJ4FhyN7pckE8m|ESG(nn`Q*R}rWLR|;V^+7QX|i<5I?$u)p&;6du&D7uU@fUKXcAInPJ2M!+a{13vL-h+fJ#j$~pH_(DoX0Sp+i6&$tC9 zooc{26C|M<%(Uupa}R>*GhHq3F_yZyKHb?bp*RO_CAGQ zkNBr3lYGKw_K&=*=?ng?W$7z1rfKHOtITQ_owIy>3ikKO7wDJk4US5>=#xS$-I*0a zHA*CvWyBeRk$3Yj?xgR&wg7gA6Hl2$-HL18Iny7upb`@INf@oWu>Y$ukN&Jpub~7B z=M7KsTWi1%nu6q9a+!%jzX$YNsYm#|PGVp-gV!aTnk)6^l(S{;r;TeMRz4e9lg?bn zp>+*+v@d|4n6l?zF->-^J*qdzGI425NZbYqIKfy)7$}DnRnNF~ysg%mUhOKkq2_Ke zNE+jAZhDl}FHqe(#@JIY&NNUscyZISr)lH?^x!T&0o5z1pVq*8jFNZH5K;1j)5{DLmw6FACM?)GH9_a70e6xls$az|i-QVwmG zA9ScafcDiQL;PTbL4`wgHoFv`%-%BWukUwo&;cYZk zv0??e76BHZG;>8!-`m6Uf1Q>cssbV5I!>5D1s}Odm$QHtKu<)qs+Kyex=eA8q}I8^ z8bwx3q)4yOl?C+038 z=yg3hPJsA=9ml@bYVv{;IZ z%@@%H+Sx2YfFc)o^MnWCuP_>`Jj1QpAbaixMuisLoLvbB2<4%uiy#LHV8qQMvMd6` zBnnCg>yAa6df9eIuUrI!Iv4mt6-ivDAEm9{MEf=`8ZOgO(NRmqj<3v)dX4)|Nf6-o zG@+SNUUZ#|{Zng?J7pFS$sG^R&?FZbW3|Mp%Q%CYLm<>8Wbva}l^U7k${*mn&(#>; zSaE!e32VUv;?&n3EgriSvWIR?$oBJZ(eP*nZ)xe)qC_~jkykD4sB`uY za)hHh!9zuW<03xQ0Z)(+L+f~;9Pfr}9^m?~j7p|N4^bO5?%i`T|DZSH9-;CS!>=}vZZpg|>Vu^-WMF&u7>>Xf|3*=FR`iZ5Ie;B6 z-z{|M%WaSlr(HT<|8`OOmgIlT_6b&C*yXYj<#K3sZs(|<0GZ)21`B-79(jQcg82k7 zEkt@pA2NbfHoD7z4PN^5Rq2tiP&V@O^8 zk0d|QHZn5ux>?!oN=#)B3nieH;dQ8fM(w|LfIHRMoHCY23rjAkJ+Yu%{$J|OI*U>= zfU-w)q+BBwSV2qw*Tzo>Efc}uWs8xPKp!3uboqa)GERJYi|p1TF@F}`NLK+j64;)4vU+V_x0C#~21&w&dCg@r%? zm2VD>jD_e+qTT=3^v#pMyM)@hAIjV*f2f7Nq>(Z8i6QkrDZp#){i1$bCai$KB6pxoTx_bcVc!+DgjxZ{=8toJ2E>WR_r^ z_kN*=y-!6_p-{J7jIKrhvIv7&(z4YAJHJnKU^x;eW+ngHSy3Z$<F^Fp;da;)Gk2=-@pIWwq8S%Jta=X4 z5JqC_lFx4imDH^^B&*O%M-}vj$SQj8ld9;~0pdi%pryntJ+2+%YhFs_A7t$BPc^9< zI{E!p1*waK{?aERxXU%6pe1u3l6Qsj5Ll}s`^IkI$2Ts2 zD}yZ_O;Lvnsbkl0z6q6T#uv*muhvdZ^nO;ZDsBe68dnNJ`(846*5KKgci$S7&iF1& zj~YI1qcn$Bx}vs<%1#}qfwZR&=53g6}IXH|Q9-*bF_IHfcU!YtFrp zUDmX7ov3?GKTz*g0g)nP>68!oC+~}x64!utMjG|BSu8rSMbm;}8R7h33HegP;K5RK znjc@1ogpSH5HMb;b?{6JyT~pTM4UWQ&!<*IzczG5=J5Xg_;an7zxqB^W4op(HB)RR z6lM`?-&*b|Zj~kuw_G~yW)rX^iO}|B$9j!rl-@+2g2CMdx3!qp%|05McE%d=pk%g} zpO8gGr5bb|YhF12$i4g>5W1x><9(?U@Y1j$L*!HF9~yC_qR@_~-dL=m*a0?L!DA-YuaS5s^F7~kUT z{k{y%bn~B+iNlf9mI-IwPI-=`8T^N^t1?^)G?uAn(La)UA#qPGF#XU0hMD*7vZ#Ki zG*4h$cUYEo*LS%VRB>tJLf9UN_`0JS@=Uw4{S%gXppDLBc(+P ziezLht1ug0bznwPoui-|!s+q09>Q?iCNlLmaCbBOf~<7>ng%&EXXBxgbK3^tr`zw-)M zpQK`NOnI>qRUhJK+Vog=YQ37y)3#-UF6S?S$3h7Ap{>yq=2N!>uA2V?D@~_P0!DKg z{$0$kZX}g;#B~RpmtgEI4WhV>?5-;M4dY|QytaT%w)JYcJ2I!UVbc&@&A6n$t{LTM z_c8TD^3vOg&SG_!h~)=nmFBj9QQks!Oefto75aSAoumxuj!goWem>#O8P!>>#`$72J!qKzTtgMP+)Yhp%#&qp_`al%bnR(;|{165| zDP)xZQU4B`VE{%azRj2U)*nL8BPwqihUkD$sQYM6P`5X> z))PdYT)bIQis+J2!!{0u;;z|Ar$X4Cz$@0iInIQGKaCrt)NT^QX5IpM7!j1}tC+L) z{k}h5m~he4eYkY_&G(p{b50lep^|`kW_TsfVu|x6(zID_-vFjmXH`CcAcRO`h-jFD z*EmiRox)~UfCTirjQL;rKawy_lC2ILr)Q`FymYNUNrK`@(KvL=mJ~;Ev+EFV#3pA~ z(Alp=wZeUS3}1{Re<(XdR-3borE=B) z)a7<;KJ?PNdmmD-_wHGiBju`Mx1xr#%x* zY!Z^+wR2ycn+(tJl`1J=?@J_$1x{?4{$dnI3g=Q={Q8&Zaj8Acdq(~mkCV2Cn$^jZ zl%o%jpGf$jSVJD&#XX3zvt}I;4ppYj050uw^vlHKOzkI2=(nHR!?-2X`lNNxf#GbX zK>?Na=g!a2z9RsN0gI))P)5eF+2O|6*@%H?r$7-P88aT835s?FuB2uj1&%q+Pw$I7 z>_K9Rx2RP-`iR(Q(OqQ7xKBX0~&hUl6Ql?v z;zwKEyhOO^r$inYUShT}S^hbP>*501c<3MPzQ1veLlyblQIfc?-IfTwUiX97^RECZ zkJB4u&Y7)hn9`CP^m1rJR@r3;HCT0Fnf?c?VF_WbErG}`^);+ol-mt!@@Wv#zSh3_ z{fEtU1E~RY!;^@x7=Sa;ruP%IED?sq~Bip1!nA@6}cB;*>jnwmeBuIaJ)E_ zr?~&4U$PgPsW#s<=l>hJCF@Kck>3~hO3SVI5OrpAL zI3pZHaqsFcMrmZ7I`?T!-CEw;;0iHDG%jao{n>5K1r)vlKM z2@5YC{M14m0yR{3h!Yh!bZlShb8E4B)y5rj^2WEHG9|f%V*W0cEV{|Pno;t!n3cgg z$AjLwhCPJAVzt*Cz?;KEp^=Q(Mj|mr)hHfV1hBI1LIDC~)N?48 z7@0OTov-)8P{TqQI}r&^>m@is@i7deM?Z(g6%aG>v@OY4be(^%T4kxPnsz&w0(iKAL{uKarvdqhATB5=H8+2ACt(8?|9g*@!O|N1$pD?%9T+jEZu>-(@; zSv^7|Jhy$cPB+&;;y#T{U3Vw)1Rj1SO(h_3Z#O^tuYqE8du8$?s0eqk6U%qA-~vW) zP_xnHya(-HrM01I?iH|+g~D)fxaGfknMbO7f0MYDvv}fzJA|lSoh%nV<|uPo*{+#A zvH+d|VT5Ymad)(cHwiREhU4m3uHGdh(rNNEkUU&bJIPzi$u@c!cbmi%1Gs4t%0OQI zOnSfJBPc!mIGDF2GlCzW1`Hch@_f%3X=0e$rHHt0iKxm>h<57;#WclFA=Yw~ehYJl zzL0E*$*%3jUA4nCV}-GEIuC8kC*AkfhlEZFsky=?!ok|ik83!aA#uPf*FcF)K1UuR zG>NKW)|=^^|DWjGdszBn9du>P>9= z_JiyD^aP%v60NC=I#U;#9p@L`=6$KCZMlEJiQ8BdSLP0H@co`BS3CJE$HzQp^MZ3? z=R(a5{il{e@;P(G`aa#=0@$y*Zt^xE1`B$L$OF~&O>1}$Tj9X7dQO-IFjvbm-vUT-|&3NjK{QX4PE%9n$vD7jle8|>kH@6|SAj82L(g_N-ps*&qQXh_$33nGY zP#t)V>~7%BZ0JgC=501FB(o2>HSQ#@n;5eaS#pG04W%&v2BN7oXBtjzUf2K${vMTu z0B-nY0Wp|%WWI3ui;M4m@AxU&2TUTBhylM;KVF-GabPToHvPTiA6|tT%zVbqVe1;+ zAH>}8@7$uz@Sj0eAv1kB4<7!Nhr7R^OJJ|onUYq-zvzo>oRaEmr`lasI0 zc?JFzn?hd)R^^}VSkvA-+Vq>ZssVfa8uz-eT)a{2qnZiexd>+1V3^7p5t?lVmq%uA zJJ$6ye=XgEl=&dja7gm=pDYf}&d$%NyS8jGEZ2x>z!l4nuLuf^U|7|Ic4`$X-yp36 zetqb)gul5bfS#GNCbx077>hx+ukZr*GxD$rM8*%XRO5+5FIC%VO2jv@;>MnWeC@L|*=3PEU#KoEtYW+Lm|#arbqGvp|* zaQ=$0k??N6+~8}?)o~K#tWicYS0FRP!6zIez?$Bh;;h&|Z*G ztL>1QgQH`+`uns+KL09V8yH}F zl6;{?P{uO1FSDe(;YVDBKfp+`XAWSiMoL}1?(#s z&C~9K0rmMW392{FK5Q0xa*1puPfFEJb)SfYSyqQSj-{Yji8AzB2)!EHAhMU?@4>Rq z_1cRD$`C?BwC38d^!ucq#Yx~s2Nb*;hOb0CWhFj}E#fvvGZI+Z{9aW?<(r+!x^@Kx(GRc zbX>7`-(rZ>ssmcOmMQo>z<=lM-G6qJ1}FogO?J#}2}vel^y^>ifXIk%O@$+(axGK^ zpwQ&c?1xlvQE#IY;%#_=g`IC_Y6i74HvQ3n5VhS|T>!I)#!i{9x4Qr)Dm~3gb`LJ$ zZJ6N%m{coQlatJbqe6Xd{KO>V@PJuh1xtzO2n(lX zT0uj8FK(*ZoJKZ7o9ubtA}isPA&6a8l2%ru<3N5|e7$Ko=2PCT{0?ZZR?i%YuLG-Y z`aF@X%a+a1C54E%S$@hWtV2gP?~Juk!l}vjazpuySp9KI9fLS*C0zfko)vEpu@N0g z?bdZoSRE#d$PP4)3OXpW0Nn;BCmjK(w6ca&&Jq#!P5 zWyY&Z`@CS4kPdvoT6!nVS9|j=c<6CRr~g16QJ_gb-KR*r%lcF8W6oKd_?FwKU-7w` zO%t0$Fc$UEMW>HY`K=`XINi(SDZ07is2 z!rnyDskkxkRIqiB&V@nRgK{|2TGY{w_%2SOVM%E zwV|v>Zzpb<<92}od;&yUn`(G!5DedIKQhuH!~v9A44d7;Qy}GdEfPhwm=~iu_p4ZK zXIv(x^nO-dog`91#YYpBDdfA+Bpct}zH@f3lYeEos@t7@9;|yelWW*aNB8%NmG#|X zt;7QU_S^1tZDMBqkEKK7^S=zNl+H`{V%SENq?-?6gn^d}ry5g+{{ryb6a^$zcrZ}o zKibptKaAe)%^e}rHzwaK+Ts?=t`jA4XrcSBDze{{FSZ|VKu*~GNqja4ao>?tbbo&m z%^50X*9A^;ZDB#@Tac{(doEY^F!wnQLh{L%rp!Ql;k`5KL}bm8Z@0Bs);sVgv>{z- zWE#J;vxZW`tBeeHON`7tXs=sD#CH=B|4J>-n;ylktkbN-eRB^_PAWr5u_U zDWt3dfc%f|BJ2AYyQo9Wd5$iw)splB{Pc={=J{dHUDY-Dhm}dkEvTY%-eZJpA0C() z9UiO(p15_C<&(Pb!>D!J=KF}vGknlDMND6Z1etEda)x)ha%^ihv3Y2oI6bv-z@%G7 zPxzF|Zrfu<%m^uup zel{Y?s=NcWOuY~AEG-N#x#zcl`&Es<$#PiWIeL(`HP-VHtoFCS+WMov4_YE1>l$*8 z@`g&eUTHj{wyHCen|*)yd9j>0At<4*^}sAYWEoNTODKN@+zl3DdnSv{O zUgmE%$@F~~d$$A`_C?jB`Ct+vn7`T=M)6ldpaY34eJ+SZrLcEz^g_B^{M_TPsl9jNNR+vVurc?pjrL zGUA-ENH!bYbu}%TGENg$?=*#FzhsW#Q98r zw9J6uwyn5-Qiru7x@dCOiXOcI5|8kr^hplN*+HLw=fKnj(Kg=lxMJC<<4i;5qem>HBdQM%X0gpUq*gW#(6%2cejLtXBSWQE_5n^$5vzd>kwN^!o{2Z|-=7@mI;rNW*CVZ} znyTm@JSvoHYmw+>)l&~_*o)-=-{`f^Sy_aE6Bg03`yBwYrAG=eI);yaHgW5}%4izI zC@L;p;Xs%S%NF5SoKdf?*eUj88k}|(e-sWyi?DsLO{kP(b9QpN|F+7_Yne;O@7;Zn z7HLIj;kG!=I7I`zYAKi;a6bp3<)HKD46yg8m)L%9&%5~SGkbLE-DsPzz-x)?Nq@P> zn68_tpMFg|pSr&HI&S7g?YfyiNep;rNYw=p zGD>_nN389^)nQc{$ovopl~$fOcUvB?R?bU}seP~9Fx}Zy2YtKchtL!dliAr8PEC)Z zHa4puSz{F0iRb=TkpG(EvpT8URr@C^=IDlcm{dV0BI3Cjr_R~6r%5-0yw6Mep!U2> zz9$L`wIY6AnVGKCAx(ule&GP#)D;9+O0FFIv@|{Z*gdWfU5QWSGjOE)+k~bo2^4Ti z9kl*Txe&|un8W9Ml!sB z?Pq28)sz=G1~h-R4W7&ux%SB{e2X%noN-qU0Bj~h%zOQBp;x5bW&?Qa&sKhG023cc zE*&hfAE{gpQVG2WWYFbz|67MsGWDuE1Ra7%Tvv#W%(2$scFD^nBPzt#Lpw7nN1w%bCcVQoFFOO>680 z-b`oH@WccElvg%dJb9LJ96lp+|?Xx2`Qbl1m`dC@R}AEBcxud-LC4ij?z+xCr*h z%9IaRX1?M5HF>fA2G!3~SUi?r0q8va#XqG3_RZO<<|^Uf8{F>tF;20E|ngWf|VJVSG>>=fNn1kY(&QG38dgG|3Q$sgN^oAZN(^6ZAn zLR}-(^Nq`h3R1!znuHi@zkCi~HdLa+!jmi{el6cr!Cs}1s;T%Qy<*rq&M6T##9ex= zZ9u4|le^QzkFfltY))Rc_Sa`W(665kvH~%IsNzIlggMd!R4QQ(t7v_uc&M5;XWd)W zP;ZoyGj~Id<=rZJPKx8TWN9pm4*4t6GccV1axw9R^+`GGe6yk&WHM6@@ zW{R(+h0rUu(89t(F0HxI_W!3RU?r|^kSkrF6lT8qzggc4Fhy zaVnmQO<8ZO>}8?c75tywLDoBD+^?a7mu{-Q`icumHHRJH_Gyeg`ovCcIbWb-XFe`& zg|ZA9J3K6g**&uSepRY1-cQO6^D+J@va@AO`tvrr&hO!pCn_($zT^OB-GdH|vv!WH z1t&-IlCjlxGEL^Uo%_6*`vKcCb?(TT@eYcX2H3jiU9L6Xx0Knb25^2dL%lW`d9=S} z{5iaZ_x~qz2oyhT9aV|2{{)h-y(W-n0Whaah_SAl|GH5dFB>YP`;B?;6-=CNI@UAf^n7$sG z)LAY3qVmz(lQ7||aOrP+SUQ!M(!!_@^SNg?-Nhh&m4Nys<&o{~^B90$`^P&MFydkjB$f1Al_@;-3v&vo)#|nP z=xP3Ef?WZx#C`4mBfGKf$5`Wq|Bo``XHy`@3=kd1tTdA1;Oumxq57K~p@}zL{QY-8 zK`BCg7E-P45M9|u(a)`l#9e=1P0 zEHHa<9X*7+zj`j|Dcp`PH&7Q5ihJj*LL@7;fJa3JZG4s_bFvVBh1fFN-(fC@VmR;w zAI{B631bz;NKxKIp^77xuBTB5Y^!<#FdMD;v!Tc~d}K%=*F?Oi*KDIm?!Cv(*v<;% zkMT<<)EgLMLdPYZCx77Xq2=l@*w@4algjVzNtq9^<4^ajG9rC5s2DN+*A>wdsLm%4NRr%QbckAq0<4kED7b-uRW<5X1moeREa4x*{KaCtR(VeiSXg1?-#eEz@kuKXR!_U*SmDutAgkZh4%!W0t5zHiyH(^#@j7^aPkHNucB zvV;)EJ~R3jkFrgO!Ng==#~3s-4C8yN_x{(VP0Ysf{h(}LR=uNK*HGQB3-T6X zhBY|(jLRdr!O`X1qI?by)P**ybs_>|h;+L1KFCvdZiJb6$-o`xF$*nG26_299=rIf6(fXYl| zh@JQ$zqHHCX94P_8hVjxYHg=Yd*RlcH)Z6)lRN3uK0s8B+SAQb)TNgl5~Nj#lVUeBKw_EH0H=#*ReTWn2el z&kpPP-oJMPqQki$$n#T|{YV~y76w)alCDMWZN{o`n!=@DIDZArH+c1A1I#q!d9VB` z;mlcsumdo=GMmDX!383k_C&D#x~`JFMkOf5vu8vfHq0!``VHmmZcd=bNJ&rUnGOeeI zJ$&zgsBx;zVZzb3#AbJYawAqAgClC+g+y#>Q_is;=^6ZzscAW?b^0;Kv>|fx82_An zC^!3J8DL2lGrEf^QpII_>&Rdji{nu2SOpA;1E$vFna&5X5VGgSMGC*I)2aDQ%2>J{ zfFpke!c0j{Vw6VL`SZ&LFh+=d6fK?uumbp^vRtAferi|6Cm=M6SRpn2?m-4BJiXk)*|DStJYf2lwApC$S*5Ni2RTX_%CP%XJ!_9CJ&2va2 z0?NO0_3J)!D&TQ*{q%&xvu?+5B&0ms3uDTg;%dqnS&DL}NK4wdwkvLZbTgf=S>@S_ zDN>5IWF#AY3be}d>0wX_v<8tR!yrh`V{xx`JyF6Fa+w`xI=q#>fWI$m`hx05UR z-e_8LByH!m4oo8($dW?r-(5bG&oiw6Zs3bu`=E(632 zXT1~e!RCzJfF{26Sz;KqI>23a zj7WSnZbPgzgtJ^a!c^F6$4D@k z$$SeStj2bm~E^OGwP&DWiEb zWM^U^s;^sO(-8Z2uR*-pH^x(8uy_8m%kao#yKd2P0gnEGg?e7|)xJSJli zm3yyn$^_Dir&40P#r9v1)>o3(f7Y76J8oFE_p%HfW3}uQ4Sh#66vLeJUmea>jBshC z+T1y4Cub=KZswUux!vQf6)klImAG~lRd@pUYVz;}RVmC1Pyoh;!NIM%ns^U~;Y zZyG(t@WC;bb=r=2l&Ip#5Lj3jbKIq3wV5BfgW*3tK<9Wkodq+ro89riM$u$hA?GCYHlhukyv=P(A`ep z=1de&E+Gg>&r-oup4aEr2g)3td3fDT4_l29+?G7GUX(&;qE6`-d=3`kMF9$%<+N+A z|7q$+iDpF$-b8YK8mX-_*i_;1gZ^%7H{eCDZ=r=#DftS0sDdu4uO2yI{L2PQTt~ zJ?Uat0`CmLXotWnKVN0=aW)tq+=+*Gq^Ac+mku1Z^#BVuHz-;i=BaO6`@#?J*X;S? z!73ME{5SivaqYatJj896HtPD9D5rRGQm49{r-v8{{m+7ED2|I56Wv4(w%-+=&H)ev ztn)Qedme-{=mxeNeDOmvN|6F05TYPsTG%Y( z8}_^U1D}DoF-%;vHN3F#J=qmAIlnW-b-A1Vrb8WdEv+-v_WugC9*UFW!wQg2tvm9 z^>869pCokYP2_YsO{W1EiWE&1@#hA+VH_v*zyL|h25YDC*JT~>&qR=o%fiVn_4v6; zs)Lms&PhQx7y#qHx%tSSopjG17|)?<$S;Pv6h_~eZyARh1C{S@fl;vHKM(*;=W13R z`(E8IcP}-=Mo0^mDA{cy0>>v9^CbDz7*g^_B2Lw@Qr;-8HghowyyM9gLn_LPlcP@~ z<}XaSU~jR@zX7pWTb3szj1&xEZnA500Q0s0nXQULmhj(UH;`om~}Nav)Q1g zunljT4jzG9tY z)?E-(!Qs~01waWcOKZ>9@0hmCO->kq`FV`KX>^L2M13!1f5=tNz37i8WM6tWo7l^< z$yyJ3+mbZ*qyH7o%4$@-t4h4oWV|geGhpv84Jy!*xzYAG;xhEx^&cC*Pyc1#KH~Dq z{ock3ee^DoD?H9@PoB=g)BfVn0RNxm%yOH3b;d9 z>dPNFsXg!v4W~c*mM+P@b-i1RG&vcPzLhVy3^nbL_1UR>?E8C|wYu!oUS-;ZKaCM; z^K?Pb!dpEd8n4bR_h%!TGZs1_9@sI%N|U`~4ofuE(+J##XxNgz-{`EQ8?3r;_R7fy zU+(6eaeyrZsX^NpJFnIbTx{bYer8=+uuSd6mmX(|{<(j&KuFu521Gg+(81f)SrD(= zjB#j?n!hyn1k`Rd3g|$6zwcx27d~tBz4dUtQ zLaPbpSb*gWyauIgWZ!Er>qyx4oEta$P=m_XpvupO&Bh4+r=`YS#TMNh#+EBdC_0ZW zL-fZYyloO0Ej>Xsh3*UYpS_@EqoXn7mg=_l_wp(8QweTZe{}*W+~_Rca>Yoq?pzr4 z(~t4{;mx5*wg&C*{b`Nl*rAmsQpX&zziOY47?1T9ou&(f9f zEErT}mA{{!7YEGfNl^-*s9C788U!jNjKrxj)8|w!bqkzcej7o5^p0czD$wVjtyJ~4 z>BAd4soWx-tCYI1@YAoqWT10e$K6y$4j8EqvV7@#YtwIs^V>E11iiNPo^44g|IiV?nH^P357?4Db9n5(=1(l2 zxo57Zybr*CN{St)LvVaP;0no(K>zML{z@?A%Hz`R9Y{4wdXbpE7(>N)#kmG1LPb&uy40c z=;SAlhmy#FwUr;#|LyhKAGpv7{Zb0uVfiCA-XCw6pPf|sVhrzi;pbHU$hXARCb;RE zYD?O7q>M;kReECC`DTdl>2Qv6_iqkbo_4rbjo&d)>xj6g374#?ahvK$y;2}+U-3O1 z>gC}vB}$%OU&`(UQ)z(wEJgByqMy?LF$dvex#N`y{fPo!%K zNs_bnZfc5ucV1$vOefT3o@dztCT`ut#XsC=Sjd2O=e-n0qLJu_0^wFpn=%{qDIq4m zmw)=vE>bWS0=Ernc}8;3pw(iQvv|_#dOGe=26%5=huGEalI(WJXY=%Y9>UEv)n8>X zk3d?BNXCUo^(iLkz%y$19aoDBS~6HpQFi!(zI~k(s%E|)U|SXH{#e1%iN a0So4-!>_Fs2c5%{(AP21uDSQ%*?$3Bmsnc> literal 0 HcmV?d00001 diff --git a/tools/doxygen/Doxyfile.core b/tools/doxygen/Doxyfile.core index aa75bc68283..43a9b846a2b 100644 --- a/tools/doxygen/Doxyfile.core +++ b/tools/doxygen/Doxyfile.core @@ -771,6 +771,7 @@ doc/compression_cookbook.md \ doc/connection-backoff-interop-test-description.md \ doc/connection-backoff.md \ doc/connectivity-semantics-and-api.md \ +doc/core/grpc-client-server-polling-engine-usage.md \ doc/core/grpc-error.md \ doc/core/moving-to-c++.md \ doc/core/pending_api_cleanups.md \ diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index 91860567339..6b08d49346d 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -771,6 +771,7 @@ doc/compression_cookbook.md \ doc/connection-backoff-interop-test-description.md \ doc/connection-backoff.md \ doc/connectivity-semantics-and-api.md \ +doc/core/grpc-client-server-polling-engine-usage.md \ doc/core/grpc-error.md \ doc/core/moving-to-c++.md \ doc/core/pending_api_cleanups.md \ From c1f880d9fe0e0ce810fb50f7ac6ebe5bedee3922 Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Thu, 27 Sep 2018 12:28:21 -0700 Subject: [PATCH 2/3] Minor change --- doc/core/grpc-client-server-polling-engine-usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/core/grpc-client-server-polling-engine-usage.md b/doc/core/grpc-client-server-polling-engine-usage.md index 8de3979a56a..fa54f946213 100644 --- a/doc/core/grpc-client-server-polling-engine-usage.md +++ b/doc/core/grpc-client-server-polling-engine-usage.md @@ -26,7 +26,7 @@ This document talks about how polling engine is used in gRPC core (both on clien ## gRPC server - The listening fd (i.e., the socket fd corresponding to the server listening port) is added to each of the server completion queues. Note that in gRPC we use SO_REUSEPORT option and create multiple listening fds but all of them map to the same listening port -- A new incoming channel is randomly assigned to some server completion queue (see picture below) +- A new incoming channel is assigned to some server completion queue picked randomly (note that we currently [round-robin](https://github.com/grpc/grpc/blob/v1.15.1/src/core/lib/iomgr/tcp_server_posix.cc#L231) over the server completion queues) ![image](../images/grpc-server-cq-fds.png) From 635e0bd1e5149aee941d6b6064bb7cef738e7537 Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Thu, 27 Sep 2018 12:30:51 -0700 Subject: [PATCH 3/3] fix typo --- doc/core/grpc-client-server-polling-engine-usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/core/grpc-client-server-polling-engine-usage.md b/doc/core/grpc-client-server-polling-engine-usage.md index fa54f946213..3a560e71a81 100644 --- a/doc/core/grpc-client-server-polling-engine-usage.md +++ b/doc/core/grpc-client-server-polling-engine-usage.md @@ -17,7 +17,7 @@ This document talks about how polling engine is used in gRPC core (both on clien ### Making progress on Async `connect()` on sub-channels (`grpc_pollset_set` usecase) - A gRPC channel is created between a client and a 'target'. The 'target' may resolve in to one or more backend servers. - A sub-channel is the 'connection' from a client to the backend server -- While establishing sub-cannels (i.e connections) to the backends, gRPC issues async [`connect()`](https://github.com/grpc/grpc/blob/v1.15.1/src/core/lib/iomgr/tcp_client_posix.cc#L296) calls which may not complete right away. When the `connect()` eventually succeeds, the socket fd is makde 'writable' +- While establishing sub-cannels (i.e connections) to the backends, gRPC issues async [`connect()`](https://github.com/grpc/grpc/blob/v1.15.1/src/core/lib/iomgr/tcp_client_posix.cc#L296) calls which may not complete right away. When the `connect()` eventually succeeds, the socket fd is make 'writable' - This means that the polling engine must be monitoring all these sub-channel `fd`s for writable events and we need to make sure there is a polling thread that monitors all these fds - To accomplish this, the `grpc_pollset_set` is used the following way (see picture below)