From f5c849893f202e6bee30c1926724cacc1f5865fe Mon Sep 17 00:00:00 2001 From: CaiHQ Date: Fri, 18 Feb 2022 11:14:11 +0800 Subject: [PATCH] fix: MultiPointCooperationExecutor --- .gitmodules | 8 ++++ agent-backend | 2 +- .../ConsistencyPluginManager$1.class | Bin 0 -> 1191 bytes .../ConsistencyPluginManager$Inner.class | Bin 0 -> 856 bytes .../ConsistencyPluginManager.class | Bin 0 -> 7600 bytes .../api/ContractExecutorFactory.class | Bin 0 -> 425 bytes .../api/NotifiableResultMerger.class | Bin 0 -> 221 bytes .../consistency/api/context/ICMActions.class | Bin 0 -> 197 bytes .../consistency/api/context/IGlobalConf.class | Bin 0 -> 239 bytes .../IMasterServerRecoverMechAction.class | Bin 0 -> 440 bytes .../api/context/IMasterServerTCPAction.class | Bin 0 -> 360 bytes .../api/context/INetworkManager.class | Bin 0 -> 392 bytes .../consistency/api/context/ISDKContext.class | Bin 0 -> 613 bytes .../libs/consistency-sdk-1.0-SNAPSHOT.jar | Bin 0 -> 9503 bytes .../compileJava/source-classes-mapping.txt | 20 ++++++++ consistency-sdk/build/tmp/jar/MANIFEST.MF | 2 + .../AbstractContextContractExecutor.class | Bin 0 -> 1738 bytes .../plugin/pbft/ContractCluster.class | Bin 0 -> 2363 bytes .../plugin/pbft/PBFTExecutor$1$1.class | Bin 0 -> 2657 bytes .../plugin/pbft/PBFTExecutor$1.class | Bin 0 -> 1793 bytes .../pbft/PBFTExecutor$ResultMerger.class | Bin 0 -> 5865 bytes .../plugin/pbft/PBFTExecutor.class | Bin 0 -> 12899 bytes .../plugin/pbft/PBFTExecutorFactory.class | Bin 0 -> 1434 bytes .../ra/RequestAllExecutor$ResultMerger.class | Bin 0 -> 5944 bytes .../plugin/ra/RequestAllExecutor.class | Bin 0 -> 11571 bytes .../ra/RequestAllResponseAllFactory.class | Bin 0 -> 1462 bytes .../ra/RequestAllResponseFirstFactory.class | Bin 0 -> 1373 bytes .../ra/RequestAllResponseHalfFactory.class | Bin 0 -> 1470 bytes .../plugin/ro/RequestOnceExecutor$1.class | Bin 0 -> 2166 bytes .../plugin/ro/RequestOnceExecutor.class | Bin 0 -> 3890 bytes .../ro/RequestOnceExecutorFactory.class | Bin 0 -> 1210 bytes .../plugin/ro/ResponseOnceExecutor$1.class | Bin 0 -> 2720 bytes .../plugin/ro/ResponseOnceExecutor.class | Bin 0 -> 4411 bytes .../ro/ResponseOnceExecutorFactory.class | Bin 0 -> 1215 bytes .../MultiPointCooperationExecutor$1.class | Bin 0 -> 883 bytes ...ointCooperationExecutor$ResultMerger.class | Bin 0 -> 6653 bytes .../MultiPointCooperationExecutor.class | Bin 0 -> 13268 bytes ...MultiPointCooperationExecutorFactory.class | Bin 0 -> 1495 bytes .../SelfAdaptiveShardingExecutor$Block.class | Bin 0 -> 4248 bytes .../SelfAdaptiveShardingExecutor.class | Bin 0 -> 12103 bytes .../SelfAdaptiveShardingExecutorFactory.class | Bin 0 -> 1263 bytes .../single/SingleNodeExecutorFactory.class | Bin 0 -> 1467 bytes custom-plugin/build/libs/custom-plugin.jar | Bin 0 -> 55181 bytes .../compileJava/source-classes-mapping.txt | 43 ++++++++++++++++++ custom-plugin/build/tmp/jar/MANIFEST.MF | 1 + .../MultiPointCooperationExecutor.java | 17 ++++--- 46 files changed, 83 insertions(+), 10 deletions(-) create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager$1.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager$Inner.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/ContractExecutorFactory.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/NotifiableResultMerger.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/ICMActions.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/IGlobalConf.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/IMasterServerRecoverMechAction.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/IMasterServerTCPAction.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/INetworkManager.class create mode 100644 consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/ISDKContext.class create mode 100644 consistency-sdk/build/libs/consistency-sdk-1.0-SNAPSHOT.jar create mode 100644 consistency-sdk/build/tmp/compileJava/source-classes-mapping.txt create mode 100644 consistency-sdk/build/tmp/jar/MANIFEST.MF create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/common/AbstractContextContractExecutor.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/ContractCluster.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$1$1.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$1.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$ResultMerger.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutorFactory.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllExecutor$ResultMerger.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllExecutor.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseAllFactory.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseFirstFactory.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseHalfFactory.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/RequestOnceExecutor$1.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/RequestOnceExecutor.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/RequestOnceExecutorFactory.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/ResponseOnceExecutor$1.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/ResponseOnceExecutor.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/ResponseOnceExecutorFactory.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor$1.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor$ResultMerger.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutorFactory.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/SelfAdaptiveShardingExecutor$Block.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/SelfAdaptiveShardingExecutor.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/SelfAdaptiveShardingExecutorFactory.class create mode 100644 custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/single/SingleNodeExecutorFactory.class create mode 100644 custom-plugin/build/libs/custom-plugin.jar create mode 100644 custom-plugin/build/tmp/compileJava/source-classes-mapping.txt create mode 100644 custom-plugin/build/tmp/jar/MANIFEST.MF diff --git a/.gitmodules b/.gitmodules index 00d5032..d55741c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -39,3 +39,11 @@ path = agent-frontend url = https://gitea.internetapi.cn/bdware/bdcontract-web-ide.git branch = master +[submodule "consistency-sdk"] + path = consistency-sdk + url = git@gitee.com:BDWare/consistency-sdk.git + branch = master +[submodule "custom-plugin"] + path = custom-plugin + url = git@gitee.com:BDWare/custom-plugin.git + branch = master diff --git a/agent-backend b/agent-backend index f3f146b..b1bf67c 160000 --- a/agent-backend +++ b/agent-backend @@ -1 +1 @@ -Subproject commit f3f146b30a222fcf099150614729a96fa6def236 +Subproject commit b1bf67c802c8ff45bde76fe30735a106449381b2 diff --git a/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager$1.class b/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager$1.class new file mode 100644 index 0000000000000000000000000000000000000000..051aebd264ff191956139701af238ceb3ff2aef7 GIT binary patch literal 1191 zcmbVLT~8B16g@*rw=D})?9omI;x9)C1-c0ld zXpFzXXEia#7=D01%6O+@+JGj+?9Ms&%-nnD?#$gEKffIUxP^r@25~Wk4qQr+HKgQa z4Of&HR$wR?Q821tOhHz`xPq%1u4%ZzFkx8xP9!P?UN!unY?SPM9!Mh;MoDtdSn|Cn z;3CSskfL}{l?*Lg%M8hR;X0lZEilBgn(85DWRrJ1f3UvPJm z2aeK5lkHZ-#V&1G*Hkq_+VX3Gka9~Q^!qA>d4@Xjwwv*bV@S}11iLHxmPwBJ=y9(|pm{TyX;6A1qX6R_l-$!GH_O2-!^_l;w)tF?^mpxAgOD+#X88T!VwXBtP zq=*=%|06TQaC4L})m5oFj$Kt^kGnOsZ#Fx=wQ`D(Il4&8S2r+nN_Wi0Dxry`;?Pf%WcLxxp4Jo#I8ThiTLw0Sjh_GBZb=O|{;b^rL2 z$L2?Sy=1r0 o=%Znx>xoAB3x9!CHFpds)wz230L~M~ae?qUjWi|iAVwzn3nHW+dH?_b literal 0 HcmV?d00001 diff --git a/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager$Inner.class b/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager$Inner.class new file mode 100644 index 0000000000000000000000000000000000000000..3988cde8eb5b3531ad290ae09fc4fab059b515a7 GIT binary patch literal 856 zcmbVKO;6iE5Pg#`8`m^xD9}Pua>ya{fP-38K@gWnl`5ql5(tUodb0`(?ppFXt@^KM zdq8TX{s4XyVm3iE7cTa}^X7Tq%LYE`r|H*NWhWv|m}!nuDUwr>X_w!VmHb>=LiK|&DkFrmI821Kis?a-k-D=Q zJXj#4RMvL;{XXGcZ@Wk_F5@4{SYgJATeB}fg%J&*&PJ-yqj*Q4w+PRpv@qLxW?JQI&OduF~e5d*1;mirzB- literal 0 HcmV?d00001 diff --git a/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager.class b/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/ConsistencyPluginManager.class new file mode 100644 index 0000000000000000000000000000000000000000..44f035a3308a7e9df1cbe99bb0ad6888bb3b2d58 GIT binary patch literal 7600 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 K>(C3@LHq$NtTs;o literal 0 HcmV?d00001 diff --git a/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/IGlobalConf.class b/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/IGlobalConf.class new file mode 100644 index 0000000000000000000000000000000000000000..ef0c832b2712f6f6af8216c4bbcda1285838e0ee GIT binary patch literal 239 zcmYk1y-ou$5QJw#$dS-cq^1rHD@AmaL_rbZN4h8Q-7Ut!*pbiqeKZOlAP*H`OGu$w z?d&(B*~9Vs2f!UJ3-k*N2z@Q_#WymW5Qd|h`9iG~TjeyDF&L-s34??@$?i>=K)6nf z51RLT)?XiDmlC*q9{=4lUHVn1WooPtu4a$cSIRzk_kNqB3FGXpnvDv=ZS%>scdcoo txO&HGY4RRr8~L9z<(z80Rtu?Pk3i_8SAb5JaE30B<~e#vArx81#VVSohU%!vcrge-!0Ti$%b4dIh6|7 zEu8htKqJ8Y{J;F7SIS#i5IS$u?+tz<1hjHqJ}ERZYT0;4QLeRQm9ps-hkz3_krdJ- zctWKq!%$B`T?e0slC_+T{+hk1W_&MTScC?($y~){r?asnAp`gHETiiwX3}06l8w;cYg5=uZ^!zb8x;Ye+gSm-f={c zNEA8Clvlz!&`k=KZd@(2qsi1nrl7OWhwJ3VWyD7gH2$?^$pz7kbh!+Ai!#*3a4C3(u%&NB{r; literal 0 HcmV?d00001 diff --git a/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/INetworkManager.class b/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/INetworkManager.class new file mode 100644 index 0000000000000000000000000000000000000000..5ba4dd5efb6a010d6b09b44554ade19f687344e1 GIT binary patch literal 392 zcma)2%Sr=55UfsORucsg{RZ8Oa}h5&Nk9lh1tT8x)H~a(n;m9kW@7Z$Joo{AlsKD< zuN=H|(U0ot>i3V=HvlKt$uP{YO&A8T<&8V5#74s5(R9vFtPI;q&7!YuHTql0ZwY%3 z99E>UvsQGhoh2Nsq33smeeH##TuWG(IA&uC)(zo)&G^*$N)_djy{Mp-PTSQ_-e{8l zV~8-AxrNtqUK>dlOfDrZoo_DKawYz_wMjVru2wd!T&P17t6vm9)@>f;IjUc5!tU3b iu8Mi`-zN|{>9;_)N9dvlB-}uMg&8(ehp?4m2ZK*BJazK` literal 0 HcmV?d00001 diff --git a/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/ISDKContext.class b/consistency-sdk/build/classes/java/main/org/bdware/sdk/consistency/api/context/ISDKContext.class new file mode 100644 index 0000000000000000000000000000000000000000..38c7f5decf9be02b1214b9c201711334c721ef69 GIT binary patch literal 613 zcmb7?O-{ow5QU#h+dwJM?pU&f4VDnFfK^oliXeap7jWDmq>XIkm=>?KM{ulea4@YpIJAFlu;=;frA>{?_LIW890pIpI8X& z)nI+v7_;#s_7!Q%=_As&AMwK)=&$jAp?KX2uRFChwt_`fd0SG_AYybcN literal 0 HcmV?d00001 diff --git a/consistency-sdk/build/libs/consistency-sdk-1.0-SNAPSHOT.jar b/consistency-sdk/build/libs/consistency-sdk-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..dd8106543dd9ef55c032fee440b9825cd63851b8 GIT binary patch literal 9503 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 Y*-w6gf;24Ltw8|flL;A_5#Ij$KPL~g-v9sr literal 0 HcmV?d00001 diff --git a/consistency-sdk/build/tmp/compileJava/source-classes-mapping.txt b/consistency-sdk/build/tmp/compileJava/source-classes-mapping.txt new file mode 100644 index 0000000..caf624f --- /dev/null +++ b/consistency-sdk/build/tmp/compileJava/source-classes-mapping.txt @@ -0,0 +1,20 @@ +org/bdware/sdk/consistency/api/context/IMasterServerRecoverMechAction.java + org.bdware.sdk.consistency.api.context.IMasterServerRecoverMechAction +org/bdware/sdk/consistency/api/context/INetworkManager.java + org.bdware.sdk.consistency.api.context.INetworkManager +org/bdware/sdk/consistency/api/context/IMasterServerTCPAction.java + org.bdware.sdk.consistency.api.context.IMasterServerTCPAction +org/bdware/sdk/consistency/api/context/IGlobalConf.java + org.bdware.sdk.consistency.api.context.IGlobalConf +org/bdware/sdk/consistency/api/NotifiableResultMerger.java + org.bdware.sdk.consistency.api.NotifiableResultMerger +org/bdware/sdk/consistency/api/ContractExecutorFactory.java + org.bdware.sdk.consistency.api.ContractExecutorFactory +org/bdware/sdk/consistency/api/context/ISDKContext.java + org.bdware.sdk.consistency.api.context.ISDKContext +org/bdware/sdk/consistency/ConsistencyPluginManager.java + org.bdware.sdk.consistency.ConsistencyPluginManager + org.bdware.sdk.consistency.ConsistencyPluginManager$1 + org.bdware.sdk.consistency.ConsistencyPluginManager$Inner +org/bdware/sdk/consistency/api/context/ICMActions.java + org.bdware.sdk.consistency.api.context.ICMActions diff --git a/consistency-sdk/build/tmp/jar/MANIFEST.MF b/consistency-sdk/build/tmp/jar/MANIFEST.MF new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/consistency-sdk/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/common/AbstractContextContractExecutor.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/common/AbstractContextContractExecutor.class new file mode 100644 index 0000000000000000000000000000000000000000..ed4f89cebdb61a9f1b2bd1319d52a11df888154a GIT binary patch literal 1738 zcmbVMT~iY=6g`2$(rrLMLHs~LQ2~)CUm_q-i!h878F6?v-Nv%8-DS30z@O##;KzeM zz#rv!6KL52gOr!OC)wO{ZgO+-=kKrI049*J(S`vVkMKB!Cm2kk6+;>gYxGp35sjW{ zG^&x%=($EOER0zgw=ltA7rY=Ry-eVLW|&wD!h*=<4`irBDZeY6z%RL_NcqkeA@^K8 zj?`f!R#&Q7vkXb6n06wU)-sG=nj(`uP9lajUquH&xSN%}EU1uS`qDJ(HJQZKRg_e5 zxT(T@6@JWY9H}rYT$(a_9sx1;#+g4TCm?~Wa<(f9D_2rDLqtl=bFS}3^9+rHLt6}q zOpsR$*VbHLt(S{A+Lz3EG}E~jIMUmap{vKolZj~CrA{oztBE&q&np*PpL$s=2EIt= zN>M1Ch;D#xtqywl_E0(HC3ed;H9q|WsoDxPJStYa6|G@|Jsnp)2?%+$eE zn@fZ}M0l=a8Pav|o=ZXWeW&Qp*p*@RiZW-YW)uDNJhy?YjwTqF&|_~rVj?-jMDmA; z);qPEy&F^0NHk(Nc_XzW&1-Oqs8nvLmn*7Q90j7VT;U^jy wz9C^?lZMR(S{k+(nAFfVFr^{adh|}xx0^Pgxl>3Iwn-y}5u^No<{R+vACJETj{pDw literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/ContractCluster.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/ContractCluster.class new file mode 100644 index 0000000000000000000000000000000000000000..5ee2badfb68f8c99b399f6f5729ffac87718de15 GIT binary patch literal 2363 zcmbVNYg5}s6g@J=GDZzx2&E(;q)i$y548y;G!Uo8kd$ButqC-tFIg6fKu8`*ZsKqK z9sL#UOhTZU>GX4dRHtVp1I8(jc099Qt#;2n_uP9{fBpUY9{?s`rO<~d8K0*R!&DpI z$K7^JV@AyG$;hT4V=9UJNqixuxg-XXm`x#%xfJH{KnxGt@g)}8a1oEhp2c<)uq0zS zMU2NXR%Co7<7)}>j%exs|CvsrX{o$Ez{A0s%J>J)%1F%;CiN7 zD!R5rVu2f5lMs3+G8`D_=q;%H_JWUT4<|L#e1Y2`VwHSDoV{%7g#^S-O zgd0QezHSORJ-j9%o+r43j)LVF%T>XBRV&$CNf%sQv)44w63_L;c<|g}ZWE1U$;oGa zhNIWiid{7=N3E1L12tdgnzyTb>ycdVamZTb0QTY8WY3|GNT=O5obr<4`+pvoa&eQa~2ExoklSYM*Fy4T3==75-!KND$O?u%-Lm{8gqg>9} zwuBGr_6hHryldN038#mj(Gc9U;<**W3u+Q>o@lhjYeYo5betsfb=28fU_9Y{CPAUw z+19hU;{4*#hPN_kstlr4WG;YxUIENKp1>ya~Ev*7rF=IHFJJM_r^ zfDzXvaTp~qUQ(^e(_yrVCD@6*>OygDv3`yyjb-NOJg;hDf z%u5cydH^em>mZM$Sb7BcG10$o)!qs zv5<2=5}fxTNo6{zi{Nsdk?&C#!8;R0JLH|k2u4GeS&U(vC`n90#V6z?;Zxk=ir}g8 zNo3b52kgR literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$1$1.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c09972f98ce210202dda048aa45a80a0081a393f GIT binary patch literal 2657 zcmbVO3s)0I6#j-pHiWfcL}`^;u&5!T3n*5_+Dd!{2_i3RwU5bW2n(CtxH}7CAGWnm z?dz}f97U|>^au1u_4Ljr=whG;n{zTVd+*#k_xa8I{m-9&0XUA|o6w2()bPF<&Lz=> zVGY?NwqZDd^9fvN#zkC8;xcm07{QeUMw7^6EP<;@jN@7Y6B;Iy*n#0BrZBBmGYMQ* z^9O3Uk-&#dIE0%`wEb2RAK_!A?Gr`&GzpGEGfWgU2o19giA8RA7rEpN-J`BoG77~d z?g_&;je_8gk#!yEaZ^r++kx=q5W{vQ;Y;qxDXT0P*a$lVp{mQl+QV?ntfyeVF=iIN(1O>WO{&r;ttVqAI2Fc?+8HIG7{60S2L z{J@qByV9fce32VAcS^>j^em?|r0j|L(o=`mF^S~~5^Slm0%_Sso>wSR+Jaaf=N5@| zgm&G%Ym~}!!mbFh6Noq${HLUE-D&s>+nD+YIG>Cx$_#NjsS~ft0(*l6<JQySu`b98)#uXTKb`x?I0 z@g2U`@dJL;@e__~c%b7Ue%A1dj$iQ`^+Tk|wpu(4T@fj&XcBacY7nyAwhP=`VCawR z*_vi*f7i*n<+4Skb!c6uZPqqnm8R9W{YA>cbj2zGX*n6K?5l-&ValOM`P3*q^&|%4 z744_2a?=#P-`&^O$8aLu6KzbtxS+!H9Bz2UQr}YCkw)&4?H0J5b)8wN+Zz0beUJ@Re)T-Pl(+R?()DZ+T?0v~L1<@nE z>rB&vLMvVM!Ei7dyA9f*7EY??sJ{Oy=Jm!Atof9~Dfe87avZjGqy(y0O;CQbwWGdK)}URqs7j9x83Tjua%uuSh`G-SFSBbIrB_#ff! zBQ!SBZqP&KD2=;A4Q(*cM_(kVt^(o{bYY;Xl{G;_oOlnPVcU%-Xw3Jfv{d3Lnqs)V zisVx?GmQ17^dl?SUZwV?Uduc}!wOo~zFVJR2g#;Zv6DD4v4XbLt`+QFLHpX4*AG`$ z#AlE2hEnhddseV_6&+RDo4u>p_Y`l%pqz<8Ig>$>#yk=j!%kd92R*TRa1Ez0fm@iw zEWOBCLmZ<=AfYbqV-P1O936CTy@Qja{}gG~pYu)=FNPtaHQ)^1 Wr8!RTx3fsoDn+zIG^<}{IO1Qd4c}S- literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$1.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2c0fd70a70a03eeaec68f1dd9908378b694a679b GIT binary patch literal 1793 zcmb7F>rxXj6#hbMSIR1gh<638S_--#-th(%1cs_345Q<(G>v6to5f95>0|i=uQNV? z59N5W0&b}|*iLgc+3(!Hlm7Vm^*exTnC(OthU`+Z%WxhpM)J6fD-OIoav06y62`i4 z72|orUw3fB!A%FZ7~DCfWK<5g)>1P#?|4uU(r37|5Jq*cT6@nU>1pA`$~W4p#DVe4 zp)wH{rXmfWVCb!7`70yWc#_+8i0i(=PXtVPTAN+#jlP*l75Ms^5|&1znX~ zd0T~lF5kvdn~5a88aJGwkoLG6o*@%SvVMLCm?Bi(bE&DhWgY}oE>x52gEa#de!&G_6DsYU(yIVJA;=(r6Id9nPH+h*G{zdlUMCWw%eJaT~pyMHfeSm)DICykyJ^$Dt-`H7801+ z_Ns+SdkK=rxPu^nW#7CFCC`PBS{JU4(qLaN4z(!OR$J=E*L=G-a@}}y<;tWmJ`F!H zE!{G`Cna)Rm!`rMuiG{Z?rN1!q6@!+en-$xsH5~W zOZzOzzS8gpSZQPf9i__~$do=I`yoLeqculpU>e71?N2Q9;RH_7jx_Cf(tCzeIK63g zoiz5*y8%}DjD1tzkb7Ag9{dD{w)?-JlVNy-eMJ6`hyDa_qnRV!d5ZZ3&f;a_v6MtO yu>0{ZP+TlJ=APEq(#q&+|3_ literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$ResultMerger.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor$ResultMerger.class new file mode 100644 index 0000000000000000000000000000000000000000..1e2f3d5d1fb2291f6235c9acfb56624e6a03e476 GIT binary patch literal 5865 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 I*Ig+2FSPx# literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutor.class new file mode 100644 index 0000000000000000000000000000000000000000..217f7dd5ff564e1d93a691324410269df010619a GIT binary patch literal 12899 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 WSK$A$_z*rqag1D)Kf)j7kNqzprDHk( literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutorFactory.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/pbft/PBFTExecutorFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..1e5f40d59d84756fc9dd088c9d6f02abcc6660bd GIT binary patch literal 1434 zcmbVMOHUI~7(KVI8QManAc`O&AhuK(AH3wXKyA{bB1uUT<7zq`hkDgrSb>W))lR0HOz*iTUt}8S6suilzQpCqwMcy4_GCTXz2EdZYz%MvW{|<9aWSUHOsM?wv&t@L#l1C`oyJB0upXrboXnw~X1f!ywM!Al-jaSS6#w!L!+YjLdOxxnxR zjXBHF4c(4o1MKC-#X1(a*b%geYWuzF3Hugabh+9dbJYLt(ARIb*|EAl#zHP~vW zqfR4djzoeGN{fq3Dy>FrvP0J~&6_*6_fl`c{sa%%^{O57i(nojcBJN{|9|ara zuMyGz>Azca4;G8%&8k1 z>w*T)p?5GrFAw^QDI%P+nPl)ALIIp1{1uVyOj7c<@?Iu6&{=PUGRdgFiJc*~5&nVr z+sVc8(0KS1gI@MvtMD=Yeqf&o_Bg>VQ_Qx`6R(k-c1FJ%=EfxMvVjEFFok=pYyuff lldT|eQ<&i@MD!45F~_(M7^6*whny$!AuR#=3Zz@Bg}++jYexV8 literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllExecutor$ResultMerger.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllExecutor$ResultMerger.class new file mode 100644 index 0000000000000000000000000000000000000000..e9015f5a02904dad19c31bdc1648392b11f64cfc GIT binary patch literal 5944 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 literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseAllFactory.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseAllFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..02eaaa4aac90d24e97c5898448fa15e9b0363b91 GIT binary patch literal 1462 zcmbVMTTc@~6#k|yY+DM23MhgoBG`hkDi<&15=2RwR7_gZ#K-A&vMessx;u;FPw>~M z4-z#oKKrALXWOl80S)-FXU^I0+`pNhzrKD4u!z+pdNCcx?KsAIkVQ_zOcGs~jbmKH z9Sw5{%tKEifx8;+X}GUpfuVcFl9pOyh-PyYhS+AkCK%F1ONwo8zbc#^UbV@RDb@{c zSGZ&OdSHyHUCU)yFV-DXuh!mhN9aafx|XYiG!FHK?U|O;9j=$eYfrdp!?sJpZ4gAz zaf=(O?i}VRpDEO{x5Ds9-{$+2Z!nuH?(qYz+gzG@Svi(83D`rxf^-#^27#VrTNqDS zw*H(q^0{y&u5b>7qbtXwa%%h3n5}QtrE(~3I~j$HamS=4(kDVO#3i|ut#_1&6&RA# zS<|=h)E~zg#SM4P=&;eA(^6;bmDA24%ZuusFjRhxN=uY2Q*z}wRKo6wUe6iieLEW};sZi{J;kKBIeeHlqb< zeES;`FFzqUHg|*`KYp}XS|3SJj5KMZl*KP`rWGs5Ls4;+{`q~5U<}tN=P30*j_c%m XgYd1EeAEP?ZjvQ}NjlwXo~C{S#+Zd+ literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseFirstFactory.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseFirstFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..ac32f6553e7370414274217b0ed49e03e210c548 GIT binary patch literal 1373 zcmbVMTTc@~7(LULZd(??iXdJ=1Y2&Sg1(es5G5fgm=w~)$LV&mEN*w}>@3Q^QeTLg z7@z%7#&6rL*>W+!%Ur%a-}!E5_V=IfKLM;@rGNsaa(I}-#2}{e$iR$&**qSjR6rJG z19JxE4Jy5IcoP>^SqyI z^|W)s^0sjxEnQioT=Kh)?Fk(!DsKNoaTg@HN(&0ReyA)ON;K=~|4(Zv>VpXrL)5z3 zdTrCdqKPGNhLMvkVpzU}HhMEL@WjMZJd1)XGrYV6#aZ&|%d6XKh8GFap!vQ}x1#Nw z(n%~;hM`W4J;Bk#Awe?C#_&Ee5 zq)O>Rz^#M~<2P2WV+with0tT8|4Ev5nl-K0=*DShv=7W3gMFbx3d6K!JH|Xl=xlZY zxQ-&-7;a#c*2sC0_Q*M1Ons&;>1rli)Bjv=VvJCcYYPLE2{18VOn*Zrg*(8E`gV^jDcq;i IgU)I4FS`tN3IG5A literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseHalfFactory.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ra/RequestAllResponseHalfFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..f44f8c4faef7dbcff7bc1141aea3aa94372b3f70 GIT binary patch literal 1470 zcmbVMTT|0O6#ljs(w0D>BHj=M1Y2%Vxp*lsBFfO2iZdIl#&^^*O`7Q+<$mWVWe2;4uw+*c<9n&@l*iFEK?MiOz1bUQh zVLWMC+Ed=h=fbJD!r2p!CLNFRsqIo_mbO;6r9)xc!N_HdI|fyeKH`cYVUtPOd`E#; zfgweuHEj!z{eGN~++b&u_8aX+Ep+-`I&K^~c~;#Ky3DUoYRR%`*j#!JrLcXZ)>At9 zpN^!;b<=ES!k0RRy;@f^QMm7zR%s6~lPPwfKuY z@hzV{6|fLuYj87j6^uZoCy1e!-lHf<;smYzq-i7>$@t^}*hkt#kfF7!d6>jG+N&)9 z25_D~ZpB{A9H85e5pAZ|OA_QKP1+TTEthL3-X1ZBeX5#J!@l$_C ze?dR@d1@;C;N$21i2jg%usyTk5+U@l%|p(aGjqTQ3cxg~tvHR3HMx>T zFFr}*BV5hkQ_Q3>i)(3ohU+QZNaJ(d)WR*j%4hHe<}$dAFEzPiU|w(EP2nre3n?sU zzNpEPcDrogo`L%eE!*51_HBltg7O`!SbD~NVFk8jD=Dq}BB**{o_k)A+nckb9+ur; zc#`2tqdMsZZV(D-KesAg)p4ceD>8ms6+yTpZ85ha>}sfd?ctg$-S9fYTiD>+-14||td-Drr8BD|jBkqPI-FyNbQFX>Lu^AaoGaLB%W{-* zJYhM3lGa@!OT`UghdP~pR3e79m5@rbz$+0V11km|Fr-&h)wjiMS0nFjQjrOLJEdt( z+MWt1v;`5CRms5DCRVX#;w;XY=))Nk=kd_QH+W>=TN96Q(ZF{mzQ?+OCnh+Gl=Bh~ zIbChS#=40Tgoz*E7$}=?u|W};*o0?d3zDJZC~y-B6@tX=&{fjJQ>;^DO4hqa)bnY= zM_?k-#HuxLqsD& zRr;|>yEOJ8g<2F`T6rZypHj6~)Y&6Cboa6OZKkp$@9>~}Fyc{TW;IQ7+ZF*0`y`F~ zPlkqDAQh^5axg%@U%m8u7VGHHj|V`U zUJ|`S-}C4PbqlTXB*%%jkB+?n8_m5yZ1gw8e~Ax0*m+%Bxco@Mmj7A8jk;E;SbdseNp*X<0Lt0tF*a?Sp z$0!qnSVN9hag38@Ct`1qGcXbTS%1+*aZJ)d3{$vFJVF0QOj8Izn%tZwPM?1OnQ20u literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/RequestOnceExecutor.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/RequestOnceExecutor.class new file mode 100644 index 0000000000000000000000000000000000000000..58a66c95b5ae5602a3417095466a974fa366cbfa GIT binary patch literal 3890 zcmbVP{d*ME6@G6v+1Z^80xJQcSRs7434{SbN)rUbf)JY!B|xQ!?d;@|OxT@SXJ&z5 z6}6wX_ETH?rETfAZLLHJq&$y*K>s9v@acPJC(G<+6S4a|J9qB6=bn%EoO{ll|9<+P zj{)q(To&7KN=F{2HJs6r!dDdKS@k%p;j20{oKutMI&mJ)>-ZYJuBKKeimYyP>SfO&@SvCp;+7m0v8h_l!V$!JCi*D@Pnxo~V|K(m!Pt zOQhsRJliUrv3y6(V`6(a<`F2%W-%By(j<6hOb<&%!e zzV$8gXQzsafj(?EunW%!^xh2<;au({s14sSuoI?%9q4BUt0Vb&6L`yRCFi>azK7Q} zeBZzi@P>vT8u$@@Y~UyOsfM2!coT1F__={!;B5`RH1I3@TElM){1)#BtZP2mhpSF0 zI@kKSIF#oH47`iqsmJdP`~lZB{L#RlK;?hNUj$a)^;+dLL%{@Q<#0Tg@s1DJ!m)|M zUz*YIR|9{;-+A6Atk4q3R9%M<4<9k`9{!=>p9cPg_ci?6zz4V?F#2Lo5L#h1=o#oa z>ieGGv!ln4ju{C&XdBgu2{vx@E?i&~C0A<}aMg2b2VO4N(DM@0#K0_e3+(-WaM$pm zfsb%g;K=gZZLeJRTyv-xM72~IAg_cAb}ZB(R^)^j78-kT5g}0dVU?B7<&y`OocCDk zlDk@~7*yiB$`(tfKQ8@Cth|M%hvGOMYS=$PVyV?%>fD^vxda^k&j$_uE8p-Ll@TbBS%r9-FOW9I8$?_jaN>55&LU8#CzP;$+h`A(9ZVt-$G`f zV;0$Y==>h&?wCX8ER1=q5bToo^?ii&99GU@)j&G6PwUdU(;r{Q)mex;Sbg>ua=H8G zu!h7rbj@MyJl3^=vwfNFG`CXN`mRjn(Sht8bd&pm0liz#J($}tkB9gL#`iC5ufIOL zqyD-vrp{thceY!Zp$3DDj3=$7!K2UU<2LR!Edd80=W}|g!NgzohPUz za#ab;s|4f?Lh?3YxK1E$;7hzg4B|EpMzB>V;XF>0I)Ds!J;}9xWV!co9N=H4oNMGA z;8!AntHV2wLlL}+_5_9^@aJ(D1qNKvj^Jnn_WP7rKnJaQ9mjASX$*7SU_fdbo}z{? zld=+RpJI=O5e=i_6TG}CgA*95#f@$Xve0#c{{crfD?ZZ^bv4a?8qdU>n_|vvZrg1< a@*#vmEXkgur6);i!#H|5>ReTx@%KN-m0wW+ literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/RequestOnceExecutorFactory.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/RequestOnceExecutorFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..838932decec0fece94ccbdcfbca251f0a4a0dfea GIT binary patch literal 1210 zcmbVLT~8B16g|@|-O?6|2#BA6AK3D>FX&5=2T>A|0tpxrAE(>NGFW!&>@Lc`(kG%O z#%F(&@oc*#ThPStGI!?Ax%ZxX=ghC)-+lmC!)ghmm@8twh?z1T;jxV;HlCJHz=Dlu zHflEN0)=($>u5v3s?`q#@|!_h2~?ZfSG(~^OPRN_)uCsi8Mv}@D2-0esWTrP=}_Qh zGccahYJZeQId0&GI*gR>o;lr4>}lUIfwQkZ#43#Td{@2sq}(_P%$9Vyo;6s_Q_;Y? zD^FN$vQ}>%%Twuer0+QgkP2)wHGF>$0j&W`Lh>RBG4GN;Nok%>vB zeZsan&Sv08hGhrEm@+So#}=xWQVEpUNDsXII_dr|Y^H}ta@HM;<@s>3^{c@d&tB_T zxlv<-Tt*MH=gTNIZ0_h%bN`v-IwL3@1hH||mQLPz_TMkHn#`brGAewD49v!21xr{K z7{5Fvfwk*MBPp^X(6~-)Dytzf{TU0q$RrHg?}xN1yZVYgE^>|a8XE|WpM^pcSV-Tf zC(`sCv${=P0#jLFs^ljZCt)LxQJcszgO%6A>7JAMis@x|~ z0x*u7w3H}raZQ3(Xp=i@BKMgl8(PkUS{I>{m?A0()#PE(PAyGXUy;w@Cq{O@qwsF| z9Cnh->hUNM4u)4)JK-|d4@wg<9MiZ>4i&aHgF8guC92Ojxx2@^`}E}SfV+pi-RvI) C=03~- literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/ResponseOnceExecutor$1.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/ro/ResponseOnceExecutor$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a30bd7e27ec3bf54784a1af95218cb896f146da2 GIT binary patch literal 2720 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 A&j0`b literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor$1.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a1a3bac12d91c3b3e85c2a8a553d46ac8d45f0ab GIT binary patch literal 883 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 literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutorFactory.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutorFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..577352d051ad3388f15c7ab6bebd18f95be9fd10 GIT binary patch literal 1495 zcmb_cTTc@~6#k|yY+DM2iYS68BG7`cUH~se9t24m3!0QP@o~DHEQ8B#Go3~8C-`gB z2Z@>(pZ!tBv+WkPpb0U&%$YfR&UbF#*w)H z;!c$-8N5SfLhs5Z!&cc-wppvc6q)Ds}+Uq1S7}Eartma0hG<=R)2!tSYB z&k6EB9Z6R_Us+;P1~e#~XM~GEH!{d#klI!Whi_mhgJrBR44pKqk_v#zip8z~c;N@gzuz`uO4^FhjO>CEcDC!%8GTv;L-QC3r)gq1`c7f2#o<{?bko zzZqu2S+}?!@*%nop^AD0PjjMeCX!A?6S2&i;BHs&9U>*ebk~~v!;Jb?%%97! z6k%_;sf8*gk)i(+!vOuP;v|V2bPmzWB*{qj%pHM!qDu@pI(u8n6fV&{(>A~`F4K!) z1Xt(`oEJz2&hcFABZ;VMCgK`DcD;&GvI<;3(9bbJGC!Y-e?=mOpXm95-ly|9BYY;e zza#bfGt%P=N9YUiKw&5u2al0s(%7E$oD4M Vw@V7FCduj+X=0e7+wInE`Va3zm68Ae literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/SelfAdaptiveShardingExecutor$Block.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/sharding/SelfAdaptiveShardingExecutor$Block.class new file mode 100644 index 0000000000000000000000000000000000000000..a48261fd90c7c8646ce9ee3fedab5af7cfcd4df7 GIT binary patch literal 4248 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 L+~e(j|MuW7`$$ua literal 0 HcmV?d00001 diff --git a/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/single/SingleNodeExecutorFactory.class b/custom-plugin/build/classes/java/main/org/bdware/consistency/plugin/single/SingleNodeExecutorFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..32d864f7f2f824adcb4af5acbca9e4845bde09f3 GIT binary patch literal 1467 zcmbVMTT|0O6#lj?q?bssN>x-y#Y>Aq1PVUDFpdl`&J>uj4&&=Kjb$-SGMfbDUnxF# zdGH7Lqa4qs1p`%Zc<7$p({uUGIp4|8U*CTKsN-24IaIQ^mxG3>EbbTZ01tC`gsO&G z9@BWN;faPBhT+D}=H~hvV+MQL?^oHt1!`Winn7t_W8d($(57 zLuSou+YH5qaP94=+p^_r-f~D&YIqiRcDWSl-B)J9JrOWGkMp$J@42*1%X0$}gtluP zn!XcJPBWmqj%_w$u}ulqKiF0jdUAtXbRH6nV#f}TwcET)39nacjeUN=O@|ZeW+=&< z3=3rV(hWlHT4eO1+Ovs5;h0<8U#=yg1hzb|r5VbI@U**>*fG~UHNOuF;L0 zP|WzAa6?12T*Ism6HhhF>6pg?!>VHC<=LX4u455P45NSe(Q7ipQX+QHes_wE+!q7m z?=z5L@`6>NJ_z@%$1v8PTauP)bLNtn|3bXMUNdCH36mEtBJQ9+5o+o@)LY!;wB$rP z+L_+MGt`st*Bl-M{hc}QGl2?ybaG(G({Ef+fxbx@x)VX@EYiy)$w&@Oe*ybMmlQ_n z9FCO*T&26-Ge8N~=tUcjF*=p=3`ymjE~P$_NV<+DT+=76W!xYu<@$zXisZ-ot0?IhKtBF=jF6Y(Nadb&KN9)jCT>ykaq{Q^RGQnQxkH*1?jnnclPW7QOdwa% Wz9Rb>X;mo^k$X#57KYKKDr literal 0 HcmV?d00001 diff --git a/custom-plugin/build/libs/custom-plugin.jar b/custom-plugin/build/libs/custom-plugin.jar new file mode 100644 index 0000000000000000000000000000000000000000..b26c63e4435d83378a8bfde0e4686aa6ba683d7d GIT binary patch literal 55181 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 KK+f=wU;huzPGY$L literal 0 HcmV?d00001 diff --git a/custom-plugin/build/tmp/compileJava/source-classes-mapping.txt b/custom-plugin/build/tmp/compileJava/source-classes-mapping.txt new file mode 100644 index 0000000..b370711 --- /dev/null +++ b/custom-plugin/build/tmp/compileJava/source-classes-mapping.txt @@ -0,0 +1,43 @@ +org/bdware/consistency/plugin/ra/RequestAllResponseHalfFactory.java + org.bdware.consistency.plugin.ra.RequestAllResponseHalfFactory +org/bdware/consistency/plugin/ro/ResponseOnceExecutorFactory.java + org.bdware.consistency.plugin.ro.ResponseOnceExecutorFactory +org/bdware/consistency/plugin/ro/RequestOnceExecutorFactory.java + org.bdware.consistency.plugin.ro.RequestOnceExecutorFactory +org/bdware/consistency/plugin/pbft/PBFTExecutorFactory.java + org.bdware.consistency.plugin.pbft.PBFTExecutorFactory +org/bdware/consistency/plugin/sharding/SelfAdaptiveShardingExecutorFactory.java + org.bdware.consistency.plugin.sharding.SelfAdaptiveShardingExecutorFactory +org/bdware/consistency/plugin/ra/RequestAllResponseAllFactory.java + org.bdware.consistency.plugin.ra.RequestAllResponseAllFactory +org/bdware/consistency/plugin/ra/RequestAllResponseFirstFactory.java + org.bdware.consistency.plugin.ra.RequestAllResponseFirstFactory +org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutorFactory.java + org.bdware.consistency.plugin.sharding.MultiPointCooperationExecutorFactory +org/bdware/consistency/plugin/pbft/ContractCluster.java + org.bdware.consistency.plugin.pbft.ContractCluster +org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor.java + org.bdware.consistency.plugin.sharding.MultiPointCooperationExecutor + org.bdware.consistency.plugin.sharding.MultiPointCooperationExecutor$1 + org.bdware.consistency.plugin.sharding.MultiPointCooperationExecutor$ResultMerger +org/bdware/consistency/plugin/pbft/PBFTExecutor.java + org.bdware.consistency.plugin.pbft.PBFTExecutor + org.bdware.consistency.plugin.pbft.PBFTExecutor$1 + org.bdware.consistency.plugin.pbft.PBFTExecutor$1$1 + org.bdware.consistency.plugin.pbft.PBFTExecutor$ResultMerger +org/bdware/consistency/plugin/common/AbstractContextContractExecutor.java + org.bdware.consistency.plugin.common.AbstractContextContractExecutor +org/bdware/consistency/plugin/single/SingleNodeExecutorFactory.java + org.bdware.consistency.plugin.single.SingleNodeExecutorFactory +org/bdware/consistency/plugin/ra/RequestAllExecutor.java + org.bdware.consistency.plugin.ra.RequestAllExecutor + org.bdware.consistency.plugin.ra.RequestAllExecutor$ResultMerger +org/bdware/consistency/plugin/sharding/SelfAdaptiveShardingExecutor.java + org.bdware.consistency.plugin.sharding.SelfAdaptiveShardingExecutor + org.bdware.consistency.plugin.sharding.SelfAdaptiveShardingExecutor$Block +org/bdware/consistency/plugin/ro/RequestOnceExecutor.java + org.bdware.consistency.plugin.ro.RequestOnceExecutor + org.bdware.consistency.plugin.ro.RequestOnceExecutor$1 +org/bdware/consistency/plugin/ro/ResponseOnceExecutor.java + org.bdware.consistency.plugin.ro.ResponseOnceExecutor + org.bdware.consistency.plugin.ro.ResponseOnceExecutor$1 diff --git a/custom-plugin/build/tmp/jar/MANIFEST.MF b/custom-plugin/build/tmp/jar/MANIFEST.MF new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/custom-plugin/build/tmp/jar/MANIFEST.MF @@ -0,0 +1 @@ + diff --git a/custom-plugin/src/main/java/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor.java b/custom-plugin/src/main/java/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor.java index 81abd61..65689ca 100644 --- a/custom-plugin/src/main/java/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor.java +++ b/custom-plugin/src/main/java/org/bdware/consistency/plugin/sharding/MultiPointCooperationExecutor.java @@ -87,7 +87,7 @@ public class MultiPointCooperationExecutor extends AbstractContextContractExecut "[sendRequests] get cmNode " + node.substring(0, 5) + " not null " - + "org.bdware.consistency.plugin.ra.RequestAllExecutor 发送请求给 " + + "RequestAllExecutor 发送请求给 " + node.substring(0, 5)); networkManager.sendToAgent(node, sendStr); } @@ -137,9 +137,9 @@ public class MultiPointCooperationExecutor extends AbstractContextContractExecut // List nodes = info.members; int validNode = 0; for (String node : nodes) { - if (networkManager.hasAgentConnection(node) - && masterServerRecoverMechAction.getRecoverStatusMap().get(node).get(contractID) - == RecoverFlag.Fine) { + if (networkManager.hasAgentConnection(node)) { + //&& masterServerRecoverMechAction.getRecoverStatusMap().get(node).get(contractID) + // == RecoverFlag.Fine validNode++; } } @@ -151,7 +151,7 @@ public class MultiPointCooperationExecutor extends AbstractContextContractExecut @Override public void execute(String requestID, ContractRequest req, ResultCallback rc, OnHashCallback hcb) { - LOGGER.info("[org.bdware.consistency.plugin.sharding.MultiPointCooperationExecutor] execute " + JsonUtil.toJson(req)); + LOGGER.info("[MultiPointCooperationExecutor] execute " + JsonUtil.toJson(req)); // 获得action 函数名 LOGGER.info("action is : " + req.getAction()); req.setContractID(cmActions.getManager().getContractIDByName(req.getContractID())); @@ -208,13 +208,12 @@ public class MultiPointCooperationExecutor extends AbstractContextContractExecut private int getJoinCount(JoinInfo joinInfo, String contractID) { if (joinInfo == null) return resultCount; - if (joinInfo.joinCount.isJsonPrimitive() && joinInfo.joinCount.getAsJsonPrimitive().isNumber()) { - return joinInfo.joinCount.getAsJsonPrimitive().getAsInt(); - } + if (joinInfo != null) return joinInfo.joinCount; + try { ContractRequest cr = new ContractRequest(); cr.setContractID(contractID); - cr.setAction(joinInfo.joinCount.getAsString()); + cr.setAction("TODO"); //TODO Arg需要好好设计一下。 //TODO 又好用又简单的那种设计 //TODO