以åã®èšäºã§ã Apache Igniteã®åçŽãªããããžãŒãæ§ç¯ããæ¹æ³ã«ã€ããŠèª¬æããŸããã 1ã€ã®ã¯ã©ã€ã¢ã³ããš1ã€ã®ãµãŒããŒã§æ§æãããã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«ã¡ãã»ãŒãžãéä¿¡ãããµãŒããŒã¯ããã衚瀺ããŸããã 補åãæ§æãããã®éèŠãªã¢ã¯ãã£ããã£ãç£èŠããæ¹æ³ã«ã€ããŠèª¬æãããŸããã ããã§ãããè€éãªäŸã®æéã§ãã è€éãªããããžã®æ§ç¯ãšãããè峿·±ãçžäºäœçšã®ã·ããªãªã瀺ãããŸãã èªè
ã¯ãæåã®èšäºã§èª¬æããApache Igniteã®åºæ¬æäœã«ç²ŸéããŠããããšãåæãšããŠããŸãã ããã2ã€ã®èšäºãèªãã çµæãèªè
ã¯èªåã®ãããžã§ã¯ãã§ãããèªåŒµããã«åŒ·åãªè£œåã«é©çšããæ¹æ³ã«ã€ããŠããã€ãã®ä»®å®ãæã£ãŠãããããããŸããã ãŸãããã®èšäºã¯ã髿§èœã·ã¹ãã ã®æ§ç¯ã«é¢å¿ããããèªè»¢è»ã®ã¿ãŒã³ããŒãœãªã¥ãŒã·ã§ã³ãèŠããã人ã«ã圹ç«ã¡ãŸãã
ããããžèšå®
Igniteããããžã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®2çš®é¡ã®ããŒãã§æ§æãããŠããããšãæãåºããŠãã ããã ã¯ã©ã€ã¢ã³ãã¯ãäžè¬çãªå ŽåïŒãã ãå¿
é ã§ã¯ãããŸããïŒãèŠæ±ãéä¿¡ãããµãŒããŒãããããåŠçããŸãã ããŒãã®åäœã¯ããã®æ§æã«ãã£ãŠæ±ºãŸããŸããããã¯ã察å¿ããIgniteãªããžã§ã¯ãã®Springæ§æã§ãã ããŒãã®æ§æã«é¢é£ããäž»ãªãã€ã³ãã¯ã
åã®èšäºã§èª¬æãããŠ
ããŸã ã æ¬¡ã«ããgridNameãããããã£ãç°ãªããä»ã®ç¹ã§ã¯åãã§ãã2ã€ã®ãµãŒããŒã¿ã€ãxmlæ§æãäœæããŸãã ãã®äŸã§ã¯ããããã¯ãtestGrid-serverãããã³ãtestGrid-server1ããšããååã«ãªããŸãã ããšãã°ãæåã®æ§æã§2ã€ã®ããŒããå®è¡ãã2çªç®ã®æ§æã§1ã€ã®ããŒããå®è¡ããŸãã ãããããåå¥ã®JVMã§èµ·åããããããããŒãã¡ã¢ãªã®æ§æã«æ³šæããå¿
èŠããããŸãããã®ãããignite.batã®-Xmsããã³-Xmxãã©ã¡ãŒã¿ãŒã®å€ãæžããããšãã§ããŸãã ignitevisorcmdãïŒBat | shïŒã³ãã³ãã䜿çšããŠãIgniteããããžã®ç£èŠã«äœ¿çšãããVisorãŠãŒãã£ãªãã£ãå®è¡ããŸãã èµ·åæã«ãããããã®æ§æãæå®ãããããããæå®ããå¿
èŠããããŸããçµæã¯åãã§ãã

ãã®ãããªè€éãªããããžãã§ããã®ã§ããã€ã¶ãŒã®äž»ãªæ©èœã«æ
£ãããšããæ¥ãŸããã 圌ã¯ã
helpã³ãã³ãã§ã³ãã³ãã®å®å
šãªãªã¹ãã衚瀺ããŸãã ãããã®ç°¡åãªèª¬æä»ãã®å®å
šãªãªã¹ãã¯
ã補åããã¥ã¡ã³ãã®ããŒãžã§èŠãããšãã§ã
ãŸã ã ããã¥ã¡ã³ãã«èšèŒãããŠããããšã«å ããŠããã€ã¶ãŒçšã«ãã©ã°ã€ã³ãäœæã§ã
ãScalaèªäœã§äœæãããŠããããšã«æ³šæããŠãã ããã ãã®èšäºã®ã³ã³ããã¹ãã§ã¯ããã€ã¶ãŒã³ãã³ã
configã«æ³šæãæãå¿
èŠããããŸãããã®ã³ãã³ãã¯ãæå®ãããããŒãã«é¢ãããã¹ãŠã®é¢é£è©³çްã衚瀺ããŸãã ããã¯éåžžã«å€§éã®æ
å ±ã§ãããããããã§ã¯èª¬æããŸããã
ã¡ãªã¿ã«ããã¯å¿
èŠã§ã¯ãããŸããã§ããããéJavaããŒãããããçŸåšã¯C ++ãš.NETã®ãµããŒãããããŸãã ãŸããããŒãã®ã©ã€ããµã€ã¯ã«ãã³ãã©ãå®çŸ©ã§ããããšãèšåããŠããŸããã ã€ãŸããããŒãã®éå§/忢ã®ååŸã«4ã€ã®ã€ãã³ãããããŸãã ããã§è¡ã䟡å€ã¯æç¢ºã§ã¯ãããŸããããã®ã³ã°ã¯æšæºçãªææ®µãããããããã€ãã®ã»ãã¥ãªãã£ãã§ãã¯ãŸãã¯ãµãŒããŒèšå®ã«ãã£ãŠæäŸãããŸãã Igniteã§æäŸãããLifecycleBeanã€ã³ã¿ãŒãã§ã€ã¹ã®å¯äžã®å®è£
ã¯ã.NETããŒãã®åæåã«äœ¿çšãããŸãã äžèŠãããšããããã®æ©èœã䜿çšããŠã䟿å©ãªããšã¯äœãã§ããŸããã
ãµãŒããŒã«æ¥ç¶ãã
åã®èšäºã§ã¯ãã¯ã©ã€ã¢ã³ãããµãŒããŒã«æ¥ç¶ãããHello WorldïŒããšããã¡ãã»ãŒãžãéä¿¡ããŸããã åã®äŸããå°ã倿ŽããŠããã¹ãã§ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®2ã€ã®ããŒããäœæããŸãã äœææ¹æ³ã«ãã£ãŠã¯ãåãJVMã§äœæãããŸãã ãããã¯ç°ãªãxmlæ§æã§æ§æããããµãŒããŒã®gridNameã¯ãtestGrid-server0ãã«ãªããŸãã ãã¹ãã³ãŒãã¯æ¬¡ã®ãšããã§ãã
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"/ignite/providerConfig.xml"}) public class IgniteHelloWorld { @Autowired @Qualifier("clientProvider") private IgniteProvider igniteClient; @Autowired @Qualifier("serverProvider") private IgniteProvider igniteServer; @Test public void sendHelloTest() { try (Ignite server = igniteServer.getIgnite(); Ignite client = igniteClient.getIgnite()) { client.compute().broadcast(() -> System.out.println("Hello World from client!")); server.compute().broadcast(() -> System.out.println("Hello World from server!")); } } }
AutoCloseableã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããIgniteãªããžã§ã¯ãã¯ã䜿çšåŸã«è¯å¥œãªããŒã³ã§éããããšã«æ³šæããŠãã ããã ãã®ãããã³ãã³ãã©ã€ã³ãã3ã€ã®ãµãŒããŒããŒããèµ·åããŸããã 3ã€ã®ã³ã³ãœãŒã«ã®ãããããããã³IDEã®ã³ã³ãœãŒã«ã§ãã¹ããå®è¡ããåŸãåãããšãããããŸãã
å¥ã®ã¯ã©ã€ã¢ã³ããšãµãŒããŒã3ã€ã®æ¢åã®ãµãŒããŒã«åå ããŸããã ãã®åäœã¯ã©ã®ããã«ä¿èšŒãããŸããïŒ ã¿ã¹ã¯ãå®è¡ãããµãŒããŒã®ã°ã«ãŒããæ±ºå®ããcomputeïŒïŒã¡ãœããã«ã¯ã2ã€ã®å®è£
ããããŸãã ãã¹ãã§åŒã³åºããã©ã¡ãŒã¿ãŒãªãã®å®è£
ã¯æ¬¡ã®ããã«ãªããŸãã
@Override public IgniteCompute compute() { return ((ClusterGroupAdapter)ctx.cluster().get().forServers()).compute(); }
ããã§äœãèµ·ãããèŠãŠã¿ãŸãããã
GridKernalContextImplåã®ctxãªããžã§ã¯ãïŒéçºè
ã¯ããã€ãã®éèŠãªäŒçµ±ã®ããã«ã
Kernal ããšããåèªã䜿çšããŸãïŒã§ãclusterïŒïŒã¡ãœãããåŒã³åºãããããããžãŒãšã®çžäºäœçšã«é¢ããŠæããã«ããŒãã象城ããClusterProcessorãªããžã§ã¯ããè¿ããŸãã å®éã«ãgetïŒïŒã¡ãœãããããã«åŒã³åºãããšã«ãããã·ã³ã°ã«ãã³ã¯ã©ã¹ã¿ãŒã®åœ¢åŒã§ããŒããååŸããŸããããã«ããã
IgniteClusterImplãªããžã§ã¯ããæäŸãããå€ãã®ããšãå¯èœã«ãªããŸãã ãŸããè¿°èªãããŒãã«é©çšããããšã«åºã¥ããŠããŒãã®ãµãã»ãããæ§ç¯ããŸããã€ãŸãããªããžã§ã¯ãã®ç¹å®ã®ã»ããã§èšç®ããããã£ã«ã¿ãªã³ã°ããæ¡ä»¶ã§ãã ãã®å ŽåãforServersïŒïŒã¡ãœããã¯ãATTR_CLIENT_MODE == falseããããã£ãæã€ããŒãã«å¯ŸããŠtrueãè¿ãè¿°èªãè¿ããŸãã 屿§ã®å®å
šãªãªã¹ã
ãå©çšå¯èœã§ã ã 屿§ã®è¿°éšã«å ããŠãIgniteã«ã¯ãä»ã®è峿·±ãè¿°éšã®å®è£
ãããã€ãä»å±ããŠããŸãã ããšãã°ããã£ãã·ã¥ã®å
容ã§ãã£ã«ã¿ãªã³ã°ããããšãã§ããŸããããã¯ãåŸã§å°å
¥ããã®ãçã«ããªã£ãŠããŸãããä»ã®å€ãã®ããããšããŸããã¯ãªãã®ã§ãæ§ããŸããã
ãã®ç¥èãããã°ãéžæããããŒãã«ã¡ãã»ãŒãžãéä¿¡ãããããã«ãã¹ãã倿Žããããšã¯é£ãããããŸããã èå¥ã®ããã«ãgridNameãã©ã¡ãŒã¿ãŒããããŸããgridName== "testGrid-server"ã®ãµãŒããŒã«éä¿¡ããŠã¿ãŸããããããã¯2ã§ãã
client.compute(client.cluster() .forAttribute(ATTR_GRID_NAME, "testGrid-server") .forServers()) .broadcast(() -> System.out.println("Hello World from client!")); server.compute(server.cluster() .forAttribute(ATTR_GRID_NAME, "testGrid-server1") .forServers()) .broadcast(() -> System.out.println("Hello World from server!"));
äºæ³ã©ãããã¯ã©ã€ã¢ã³ããã2ã€ã®ã¡ãã»ãŒãžãšãµãŒããŒãã1ã€ã®ã¡ãã»ãŒãžãåä¿¡ããŸãã è¿°èªãäœãè¿ããªãå ŽåãäŸå€ãã¹ããŒãããŸãïŒ "ClusterGroupEmptyCheckedExceptionïŒCluster group is empty"ã forServersïŒïŒã«å ããŠãforRemotesïŒïŒãforRandomïŒïŒãforOldestïŒïŒãforYoungestïŒïŒãªã©ãä»ã®å€ãã®è峿·±ãæšæºè¿°èªããããŸãã
æåŸã«ãbroadcastïŒïŒãåŒã³åºãããšã ããã§ããããã§ã¯ãããŸããã ããã§å®è¡ãããšã¯ãå®è¡ã®ããã«IgniteCallableãªããžã§ã¯ããæž¡ãããšãæå³ããŸãã ãŸããcallïŒïŒã¡ãœããã«ã¯ããã€ãã®ããŒãžã§ã³ããããbroadcastïŒïŒãšã¯ç°ãªããçµæãè¿ããŸãã
ããããäžèº«ã¯äœã§ããïŒ
ãããã©ã®ããã«æ©èœããããç¥ãããšã¯è峿·±ãã§ãããã 調ã¹ãããã«ã次ã®å®éšãå®è¡ããŸããã¯ã©ã€ã¢ã³ããããgridName ==â testGrid-server0âã§ãã¹ãã§äœæããããµãŒããŒã«ã¡ãã»ãŒãžãéä¿¡ãããããã°ã§äœãèµ·ãããã確èªããŸãã ããåèã«ãªãããã«ããã¹ããå°ã倿ŽããŸãã
int param = 1; Integer clientResult = client.compute(client.cluster() .forAttribute(ATTR_GRID_NAME, "testGrid-server0") .forServers()) .call(() -> { System.out.println("Hello World from client!"); return param + 1; });
callïŒïŒã¡ãœãããåŒã³åºãããšãã«æåã«èµ·ããããšã¯ãã¯ã©ã€ã¢ã³ãã§èªã¿åã/æžã蟌ã¿ããã¯ãèšå®ããããšã§ãã è峿·±ãããšã«ãIgniteã¯
sun.misc.Unsafeã«åºã¥ããŠã
thisã®GridSpinReadWriteLockã¯ã©ã¹ã§ãã®ã¡ã«ããºã ã®ç¬èªã®å®è£
ã䜿çšããŸãã äžæ¹ã§ãããã¯è¯ãããšã§ããIgniteéçºè
ã¯ããã©ãŒãã³ã¹ã«é¢å¿ããããŸãããäžæ¹ã§ãJava 9 Unsafeã§åãåããšã©ããªããŸããïŒ äžå®ãæã£ãŠã€ãã³ãã®çµéããã©ããŸã... Igniteéçºè
ãæšæºã®java.util.concurrent.Futureã¯ã©ã¹ãæåŠããŠã
IgniteFutureã€ã³ã¿ãŒãã§ã€ã¹ã®ç¬èªã®å®è£
ãæ¯æããŠããããšã¯ã
é©ãããšã§ã¯ãã
ãŸãã ã ããããã¯ããã«åªããŠãããã©ããã¯ããããŸãããã1ã€ã®ããšã¯æããã§ããApacheIgniteã§å¯èŒžããã人ã¯ãäžŠè¡æ§ã«ã€ããŠéåžžã«æ·±ãç¥èãæã£ãŠããå¿
èŠããããŸã...次ã«ãã©ã ãã«åºã¥ããŠãå®è¡ã®ããã«è»¢éãããã¿ã¹ã¯ãçæãããŸãã ãã®ã¿ã¹ã¯ã¯ãGridTaskProcessorã¯ã©ã¹ã®startTaskã¡ãœããã«å§ä»»ãããŸãã ããã§ã¯ã»ãã¥ãªãã£ãã§ãã¯ãæäŸãããŸãããå®è£
ãããŠããŸãããå°æ¥ã®ããŒãžã§ã³ã§è¡šç€ºãããå¯èœæ§ããããŸãã æ¬¡ã®éèŠãªã¹ãããã¯ãã¯ã©ã¹ã®åæ£å±éã§ããããããŸã§ãã®åŒ·åãªæ©èœã«ã€ããŠã¯èª¬æããŸããã
å
ã®ããã¥ã¡ã³ããåç
§ããŠãã ããã Igniteã¯ãã¿ã¹ã¯ãå®è¡ããããã¹ãŠã®ããŒãã§å®è¡å¯èœã³ãŒãã確å®ã«å®è¡ãããããã«å¯Ÿçãè¬ããå¿
èŠãããããšãæãåºãããŠãã ããã ã¿ã¹ã¯ã®å Žåãããã©ã«ãã®Long.MAX_VALUEã«çããã¿ã€ã ã¢ãŠããèšå®ã§ããå®éã«ã¯ç¡é倧ã§ãããåå®çŸ©ã§ããŸãã ã¿ã¹ã¯èµ·åãã°ãæ§æããããšãã§ããŸãã ãšã³ã¿ãŒãã©ã€ãºæ©èœã®ãã¬ãŒã¹ã衚瀺ãããŸã-è² è·åæ£ããã©ãŒã«ããã¬ã©ã³ã¹ãããã³ãã©ã³ã¶ã¯ã·ã§ã³æ§ã®èšå®ã«ã€ããŠã¯ã以äžãã芧ãã ããã åŠçæéã®ããæç¹ã§ãã¿ã¹ã¯ããã³ãããããµãŒããŒãèœã¡ãããã«èŠããå ŽåãåŠçã¯äŸå€ã§äžæãããŸãã éäžã§èœã¡ãªãã£ãå Žåããžã§ãã圢æãããGridIoManager I / OãããŒãžã£ãŒã«æž¡ãããŸãã ã¡ãã»ãŒãžã圢æãã
TcpCommunicationSpiã䜿çšããŠéä¿¡ã
ãŸã ã ãã®ãªããžã§ã¯ãã¯ããŒãã®xmlæ§æã§æå®ã§ããããšãæãåºããŠãã ãããã€ãŸããTcpCommunicationSpiã®åå«ãå®è£
ããããšã«ãããã¡ãã»ãŒãžã®éä¿¡ããã»ã¹ã«åœ±é¿ãäžããããšãã§ããŸãã ããã«ãç°¡åã§ã¯ãããŸããããæçµçã«NIOã䜿çšãããšã¡ãã»ãŒãžã¯æ¶ããŸãã ãããŠããµãŒããŒãååŸããŸãã èšç®ããåæ§ã«åçãéä¿¡ããŸãã ãããŠã圌ã¯åŒã³åºãã®å Žæã«æ¥ãŸããããã®å Žåãããã¯2çªã§ãã
è² è·ç®¡ç
è€æ°ã®ãµãŒããŒã§ã¿ã¹ã¯ãå®äºã§ãããšã©ããªããŸããïŒ ããã確èªããã«ã¯ãgridName ==â testGrid-serverâã䜿çšããŠãµãŒããŒã«èŠæ±ãéä¿¡ããŸãããã®äžãããŒãã®å¯çšæ§ã«é¢ããæ
å ±ãèæ
®ããŠãè€æ°ã®ããŒããã¿ã¹ã¯ã«äœ¿çšã§ããå ŽåãCollections.shuffleïŒïŒã䜿çšããŠæ··åããŸãããã®ãªã¹ãã¯æšæºã®ããŒããã©ã³ãµãŒã«è»¢éãããããŒã1ããéžæããå¿
èŠããããŸãã ããã©ã«ãã§ãã¹ãŠãæ®ããå Žåã
RoundRobinLoadBalancingSpiã¯ã©ã¹ã«ãã£ãŠæäŸããã
Round-Robbinã¢ã«ãŽãªãºã ã䜿çšãããŸãã ãã®SPIïŒIgniteã§ã¯ããã¹ãŠã®ãã©ã°ã€ã³ã¢ã«ãŽãªãºã ã¯
SPIãšåŒã°ããŸãïŒã¯ãã©ãŠã³ãããã³æ¹åŒã䜿çšããŠããŒããå埩åŠçããæ¬¡ã®ããŒããé çªã«éžæããŸãã setPerTaskïŒbooleanïŒãåŒã³åºãããšã«ããèšå®ããããã¿ã¹ã¯ãšã°ããŒãã«ã®2ã€ã®åäœã¢ãŒããå©çšå¯èœã§ãã ã¿ã¹ã¯ã¢ãŒããéžæãããŠããå ŽåãSPIã¯å®è¡ã®éå§æã«ããŒããã©ã³ãã ã«éžæããã¿ã¹ã¯ãå®äºãããšåšæçã«ç¹°ãè¿ããŸãïŒãã®å Žåãã¿ã¹ã¯ã¯1ã€ã ãã§ãããå®è¡ã®ããã«ã¿ã¹ã¯ã®ãªã¹ãã転éã§ããŸãïŒã ãã®ã¢ãããŒãã¯ããã©ã«ãã§äœ¿çšãããŸãã ã°ããŒãã«ã¢ãŒãã§ã¯ãããŒãã®å
±éã®é 次ãã¥ãŒããã¹ãŠã®ã¿ã¹ã¯ã«äœ¿çšãããŸãã ãã®å Žæã§ã¢ã«ãŽãªãºã ãéžæãããšãããŒãéã®è² è·åæ£ã«åœ±é¿ããå¯èœæ§ãããããšã¯æããã§ãã Round-Robbinãã©ã³ãµãŒã«å ããŠãããã«2ã€ãå©çšå¯èœã§ããadaptiveã¯ãããã©ã«ãã§ããŒããµãŒããŒã®CPUã®è² è·ã§ããã«ã¹ã¿ã ã¡ããªãã¯ã«åºã¥ããŠããŒãã®ããã©ãŒãã³ã¹ãèæ
®ããæ§æäžã«æå®ã§ãã
ããŒãã®éã¿ã«åºã¥ãã©ã³ãã éžæã§ãïŒããã©ã«ãã§ã¯ãã¹ãŠ10ã§ãïŒ ã æåŸã«ãé©åãªã€ã³ã¿ãŒãã§ãŒã¹ãå®è£
ããããšã«ãããç¬èªã®ãã®ãäœæã§ããŸãã ããŒãã®xmlæ§æã§ãã©ã³ã·ã³ã°SPIãæå®ã§ããŸãïŒããã§ã¯å°ãçè§£ã§ããŸãããããããã®ãªã¹ããæå®ã§ããŸããã©ã®ããã«ãã©ã³ã·ã³ã°ãå®è¡ããããèª°ãæ£ç¢ºã«ãã©ã³ã¹ãåããŸããïŒã³ãŒããã倿ãããšãã¯ã©ã¹åã¯æååã«ã¹ã¿ãã¯ããããã®åŸSPIã¯ã¯ã©ã¹åã«ãã£ãŠã€ã³ã¹ã¿ã³ã¹åãããŸãããã¯æ©èœããŸããïŒJavadocã®ãã³ããã倿ãããšãããŒãžã§ã³2.1ããæ©èœããŸããïŒ
ãã©ã³ã·ã³ã°ã«å ããŠãéçºè
ã¯ããã«2ã€ã®ãšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®æ©èœã管çã§ããŸãã ãã§ã€ã«ãªãŒããŒã¯ã
ãã§ã€ã«ãªãŒããŒSPIã䜿çšããŠå¶åŸ¡ã§ããŸãã ãããå¿
èŠã«ãªãå¯èœæ§ãããçç±ã«ã¯ãã¿ã¹ã¯ã®å®è¡ããã»ã¹ã§ã®ãšã©ãŒãããããžããã®ã¿ãŒã²ããããŒãã®æå€±ãããã³ã¿ã¹ã¯ã®å®äºãæåŠããããŒããå«ãŸããŸãã ãã®ã¿ã€ãã®SPIã®ç®çã¯ãæ¬ é¥ã®ããããŒããšåŒãæãã«ããŒããæäŸããããšã§ãã ããã«äœ¿çšã§ãã3ã€ã®å®è£
ãæäŸãããŸããNeverFailoverSpiïŒäœãè¿ããªãïŒãšã2ã€ã®ããªãããŒãª
å®è£
ã
AlwaysFailoverSpiããã³JobStealingFailoverSpiã§ãã AlwaysFailoverSpiã¯ãå¥ã®ããŒããææ¡ããåã«ãããŒãã«ããã€ãã®è©Šè¡ãäžããŸãïŒããã©ã«ã5ã¯ãªãŒããŒã©ã€ãã§ããŸãïŒã åæã«ãã¿ã¹ã¯ã®èŠªåæ§ãèæ
®ãããŸã-ã¿ã¹ã¯ãæ¥ç¶ãããŠããå Žåãäžå®ã®è©Šè¡åæ°ã®åŸã«ãããããçºçããããã§ãªãå Žåã¯ããã©ã³ãµãŒã®ããŒã¿ãèæ
®ããŠãæ°ããããŒããéžæãããæ¬ é¥ã®ããããŒãããã©ãã¯ãªã¹ãã«ç»é²ãããŸãã 詊è¡åæ°ãšããŒãã®ãã©ãã¯ãªã¹ãã¯ãã¿ã¹ã¯ã®ã³ã³ããã¹ãã«ä¿åãããŸãã JobStealingFailoverSpiã¯ããã«ããªãããŒã§ãããèæ
®ããŸããã ãã§ã€ã«ãªãŒããŒSPIãªã¹ããæ§æã§æå®ã§ããŸãã äœãæå®ããªãå Žåãããã©ã«ãã§AlwaysFailoverSpiãäœæãããŸãã
ãã®ã·ãªãŒãºã®æåŸã®SPIã§ãã
Checkpoint SPIã¯ãã
æ³åã®ãšãã ãã»ãŒããã€ã³ãïŒãã§ãã¯ãã€ã³ãïŒãã€ãŸããé·ãã¿ã¹ã¯ãŸãã¯è€éãªã¿ã¹ã¯ã®äžéãã€ã³ããäœæããããã«èšèšãããŠããŸãã ãã®ã¿ã€ãã®SPIã¯ããã§ãã¯ãã€ã³ããä¿åãåé€ãããã³ããŒãã§ããAPIãæäŸããŸãã Igniteã®äœæè
ãèæ¡ãããã®APIã¯ãã·ã¹ãã ã§ã®ã¿äœ¿çšããå¿
èŠããããŸãã ãã ããæè¡çã«ã¯ããã®æ©èœã¯ã¢ããªã±ãŒã·ã§ã³éçºè
ã«éå®ãããŸããã ãã®æ©èœã®æãããè
žã«é£ã³èŸŒãããšã¯ãããŸãã;ããã©ã«ãã§ã¯ãäœãããªãå®è£
ã¯æ¥ç¶ãããŠããŸããã
ãã©ãã¯ãæ€çŽ¢ãã
æåŸã«ãããããã¹ãŠã®èª²é¡ã®çè·¡ãèŠã€ããŠã¿ãŸãããã Igniteã¯å®å
šãªãã®ã³ã°ãæäŸããŸãã ããã©ã«ãã®ç¶æ
ã倿Žããããã«äœãããªããšãã³ã³ãœãŒã«ã«ã¡ãã»ãŒãžãæžã蟌ãããã©ã«ãã®ãã¬ãŒãäœæãããŸãã ããã¯éåžžã®
Javaãã®ã³ã°ã§ãããconfig / java.util.logging.propertiesæ§æãäœæã§ããæ§æçšã§ãã ããã
é©åã§ãªãå Žåã¯ã
IgniteLoggerã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããxml-configãä»ããŠæ¥ç¶ã§ããŸãã
ãã€ã¶ãŒãæ±ããããšãã§ããŸãã nodeã³ãã³ãã䜿çšãããšãããŒãã®è©³çްãªçµ±èšãèŠæ±ã§ããŸãïŒã©ã®çµ±èšæ
å ±ãå°ããã¹ããããã£ãŠããå Žåã¯ãèšç®ã«ã³ã³ãœãŒã«ã«åºåã远å ãããããç¥ãããšãã§ããŸãïŒã ãã®çµæãæ°åèµ·åãããšæ¬¡ã®ãããªãã®ã衚瀺ãããŸãã
ãã ããããããžã®ç£èŠã«ã€ããŠã¯å¥ã®æ©äŒã«è©±ããŸãã
çµè«
Igniteã®å
éšãè¯å¥œã§ãå
éšã«ãã£ããããŠããããšã¯æããã§ãã IgniteããŒãã«åºã¥ããŠãå€§èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºèŠæš¡ã§éåžžã«è峿·±ããœãªã¥ãŒã·ã§ã³ãæ§ç¯ããããå°ãªããšãè峿·±ãã¢ã€ãã¢ãåãå
¥ãããã§ããããšã¯çŽæçã«æããã§ãã ãã®èšäºãèªãã åŸãèªè
ãIgniteãæäŸããããŒã«ã䜿çšããŠãæ¬åœã«è€éã§éèŠãªããããžãæ§ç¯ããæ¹æ³ã«ã€ããŠã®ã¢ã€ãã¢ã圢æããããšãé¡ã£ãŠããŸãã
åç
§è³æ
GitHubãã¹ãã±ãŒã¹ã³ãŒã