ã¿ãªããããã«ã¡ã¯ã ãåç¥ãããããŸããããç§ã¯ä»¥åãã¹ãã¬ãŒãžãVerticaãããã°ããŒã¿ã¹ãã¬ãŒãžãããã³ãã®ä»ã®åæã«ã€ããŠæžããŠè©±ããŠããŸããã çŸåšãåæããŒã¿ããŒã¹ã ãã§ãªããOLTPïŒPostgreSQLïŒãNOSQLïŒMongoDBãRedisãTarantoolïŒãªã©ãä»ã®ãã¹ãŠã®ããŒã¿ããŒã¹ãç§ã®è²¬ä»»ç¯å²ã«å«ãŸããŠããŸãã
ãã®ç¶æ³ã«ãããè€æ°ã®ããŒã¿ããŒã¹ãæã€çµç¹ãã1ã€ã®åæ£ããç°çš®ïŒç°çš®ïŒããŒã¿ããŒã¹ãæã€çµç¹ãšããŠèŠãããšãã§ããŸããã å€æ°ã®PostgreSQLãRedisãããã³Mongã§æ§æãããåäžã®åæ£ç°çš®ããŒã¿ããŒã¹ããŸããå Žåã«ãã£ãŠã¯ã1ã€ãŸãã¯2ã€ã®VerticaããŒã¿ããŒã¹ã
ãã®åäžã®åæ£ããŒã¹ã®äœæ¥ã«ãããå€æ°ã®èå³æ·±ãã¿ã¹ã¯ãçæãããŸãã ãŸããããžãã¹ã®èŠ³ç¹ããããã¹ãŠãæ£åžžã§ãããããŒã¿ããã®ãããªããŒã¹ã«æ²¿ã£ãŠç§»åããŠããããšãéèŠã§ãã æŽåæ§ãäžè²«æ§ãšããçšèªã¯ç¹ã«äœ¿çšããŸããã ãã®çšèªã¯è€éã§ãDBMSïŒA C IDãšC APã®å®çïŒãèæ ®ããéã®ãã¥ã¢ã³ã¹ãç°ãªããããæå³ãç°ãªããŸãã
äŒæ¥ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«åãæ¿ããããšãããšãåæ£ããŒã¹ã®ç¶æ³ã¯æªåããŸãã ãã³ã®äžã§ãåæ£ãã©ã³ã¶ã¯ã·ã§ã³ãç·å¯ãªæ¥ç¶æ§ãæããªããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã§ããŒã¿ã®æŽåæ§ã確ä¿ããæ¹æ³ã«ã€ããŠèª¬æããŸãã ïŒãããŠæåŸã«ããªããã®ã€ã©ã¹ããèšäºã«éžãã ã®ãã説æããŸãïŒã
Chris RichardsonïŒãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®æãæåãªäŒéè ã®1人ïŒã«ãããšããã®ã¢ãŒããã¯ãã£ã«ã¯ãããŒã¿ããŒã¹ãæäœããããã®2ã€ã®ã¢ãããŒãããããŸãïŒå ±æããŒã¿ããŒã¹ãšãµãŒãã¹ããšã®ããŒã¿ããŒã¹ã§ãã
å ±æããŒã¿ããŒã¹ã¯è¯ã第äžæ©ã§ãããéå¿çãªæé·èšç»ã®ãªãäžå°äŒæ¥ã«ãšã£ãŠã¯çŽ æŽããããœãªã¥ãŒã·ã§ã³ã§ãã ããã«ããã®ãã¿ãŒã³èªäœã¯ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®èŠ³ç¹ããã¯ã¢ã³ããã¿ãŒã³ã§ãã å ±éã®ããŒã¹ãå ±æãã2ã€ã®ãµãŒãã¹ãåå¥ã«ãã¹ãããã³ã¹ã±ãŒãªã³ã°ããããšã¯ã§ããŸããã ã€ãŸã ãããããããã®ãµãŒãã¹ã¯ã¢ããªã¹ã«ãªãåŸåããã1ã€ã®ãµãŒãã¹ã§ãã
ããŒã¿ããŒã¹ããšã®ãµãŒãã¹ãã¿ãŒã³ã¯ãåãµãŒãã¹ã«ç¬èªã®ããŒã¿ããŒã¹ãããããšãåæãšããŠããŸãã ãµãŒãã¹ã¯ããã®ããŒã¿ããŒã¹ã«çŽæ¥æ¥ç¶ããããšãªããAPIãä»ããŠïŒåºãæå³ã§ïŒå¥ã®ãµãŒãã¹ã®ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããŸãã
ããŒã¿ããŒã¹ããšã®ãã¿ãŒã³ã䜿çšãããšã察å¿ãããµãŒãã¹ã®ããŒã ã奜ããªããã«ããŒã¿ããŒã¹ãéžæã§ããŸãã 誰ããMongoDBã䜿çšã§ããã誰ããPostgreSQLãä¿¡ããã誰ããRedisãå¿ èŠãšããïŒãã®ãµãŒãã¹ã§ã¯ã·ã£ããããŠã³æã®ããŒã¿æ倱ã®ãªã¹ã¯ã¯èš±å®¹ã§ããïŒããããŠèª°ãã¯éåžžãã£ã¹ã¯äžã®CSVãã¡ã€ã«ã«ããŒã¿ãä¿åããïŒãããŠå®éããªãããããïŒïŒã
ãã®ãããªããŒã¿ããŒã¹ã®ãåç©åãã§äœæ¥ãããšãããŒã¿ã®é åºããŸã£ããæ°ããã¬ãã«ã®è€éãã«åŸ©å ããã¿ã¹ã¯ãçºçããŸãã
ACIDããã³ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£
DBMSããŒã¹ã®å€å žçãªACIDèŠä»¶ã»ããã®ããªãºã ãéããŠç©äºãæŽçããã¿ã¹ã¯ãèŠãŠã¿ãŸããããç¥èªã®åæåã®æ¬è³ªãæ¡å€§ãããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ããããã®æåã®é£ããã説æããŸãã
ïŒAïŒCID-ååæ§ã ååæ§-ãã¹ãŠãŸãã¯äœããªãã
ã¢ãããã¯æ§ã®èŠä»¶ã«åŸã£ãŠããã¹ãŠã®ã¹ããããïŒå¯èœãªç¹°ãè¿ãã§ïŒå®äºããããšãäžå¯æ¬ ã§ããéèŠãªã¹ãããã倱æããå Žåãå®äºããã¹ãããããã£ã³ã»ã«ããŸãã
äžèšã®å³ã¯ãVIPãµãŒãã¹ãè³Œå ¥ãããã¹ãããã»ã¹ã瀺ããŠããŸãïŒãéã¯è«æ±ïŒ1ïŒã§äºçŽãããããŒãã¹ãµãŒãã¹ïŒ2ïŒã¯ãŠãŒã¶ãŒã«å¯ŸããŠæå¹åããããŠãŒã¶ãŒã®çš®é¡ã¯ProïŒ3ïŒã«å€æŽãããè«æ±ã§äºçŽããããéã¯åŒãèœãšãããŸãïŒ4ïŒã 4ã€ã®ã¹ãããã¯ãã¹ãŠå®äºããå¿ èŠããããŸãã
åæã«ãããã»ã¹ã®éäžã§ãã³ã°ããããšã¯ã§ããŸããããããã£ãŠãéåæãæãŸããã§ãã極端ãªå Žåã¯ãçµã¿èŸŒã¿ã®ã¿ã€ã ã¢ãŠããšã®åæãå¿ èŠã§ãã
AïŒCïŒID-äžè²«æ§ã äžè²«æ§-åã¹ãããã¯å¢çæ¡ä»¶ãšççŸããã¹ãã§ã¯ãããŸããã
ããšãã°ããµãŒãã¹1ã®ã¯ã©ã€ã¢ã³ãAãããµãŒãã¹2ã®ã¯ã©ã€ã¢ã³ãBã«ééããããã®æ¡ä»¶ã®å€å žçãªäŸïŒãã®ãããªééã®çµæãšããŠã以äžïŒééäžã«ãéã倱ã£ãŠã¯ãããŸããïŒä»¥äžïŒ2人ã®ãŠãŒã¶ãŒã«åããéãéã£ãŠã¯ãããŸããïŒåæã«ïŒã ãã®èŠä»¶ã«æºæ ããã«ã¯ãæ¡ä»¶ãã©ããã«ã³ãŒãã£ã³ã°ããæ¡ä»¶ã®ããŒã¿ã確èªããå¿ èŠããããŸãïŒçæ³çã«ã¯ãè¿œå ã®åŒã³åºããªãã§ïŒã
ACIïŒDïŒ-èä¹ æ§ã èä¹ æ§ã®èŠä»¶ã¯ãæäœã®åœ±é¿ãæ¶ããªãããšãæå³ããŸãã
Polyglotã®æ°žç¶æ§ã®æ¡ä»¶äžã§ã¯ããµãŒãã¹ã¯ããŒã¿ããŒã¹ã§åäœããããŒã¿ããŒã¹ã«èšé²ãããããŒã¿ãå®æçã«ã倱ããããšããããŸãã éåæã¬ããªã±ãŒã·ã§ã³ãæå¹ã«ãªã£ãŠããå ŽåãPostgreSQLãªã©ã®å ç¢ãªããŒã¿ããŒã¹ãããåæ§ã®ããªãã¯ãååŸã§ããŸãã ãã®å³ã¯ããã¹ã¿ãŒã«èšé²ãããããéåæã¬ããªã±ãŒã·ã§ã³ãä»ããŠã¹ã¬ãŒãã«å°éããªãã£ãå€æŽãããã¹ã¿ãŒãµãŒããŒãçŒãä»ããããšã«ãã£ãŠç Žæ£ããæ¹æ³ã瀺ããŠããŸãã èä¹ æ§ã®èŠä»¶ã確ä¿ããã«ã¯ããã®ãããªæ倱ãé©åã«èšºæããŠå埩ã§ããå¿ èŠããããŸãã
ãããŠãç§ã¯ã©ãã«ããŸããïŒ
ãããŠã©ãã«ããããŸããã ããã€ãã®ç¬ç«ããéåæãµãŒãã¹ã®ç°å¢ã§ã®åé¢ã¯æè¡çãªèŠä»¶ã§ãã çŸä»£ã®ç 究ã¯ãå®éã®ããžãã¹ããã»ã¹ãåé¢ããã«å®è£ ã§ããããšã瀺ããŠããŸãã åé¢ã¯åæå®è¡æ§ãæå°éã«æããããšã§æèãç°¡çŽ åããŸãïŒããã°ã©ããŒã«ãšã£ãŠäžŠåã³ã³ãã¥ãŒãã£ã³ã°ã®éçºã¯ããå°é£ã§ãïŒãããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã¯æ¬è³ªçã«å€§èŠæš¡ãªäžŠåã§ããããã®ãããªç°å¢ã§ã®åé¢ã¯åé·ã§ãã
äžèšã®èŠä»¶ãžã®ã³ã³ãã©ã€ã¢ã³ã¹ãéæããããã®å€ãã®ã¢ãããŒãããããŸãã ãããã2ãã§ãŒãºã³ãããïŒ2PCïŒã«ãã£ãŠæäŸãããåæ£ãã©ã³ã¶ã¯ã·ã§ã³ã®æãåºãç¥ãããŠããã¢ã«ãŽãªãºã ã æ®å¿µãªããã2ãã§ãŒãºã³ããããå®è£ ããã«ã¯ãé¢é£ãããã¹ãŠã®ãµãŒãã¹ãæžãæããå¿ èŠããããŸãã ãããŠæãæ·±å»ãªã®ã¯ããã®ã¢ã«ãŽãªãºã ã®çç£æ§ãããŸãé«ããªãããšã§ãã æè¿ã®ç 究ã®äžèšã®å³ã¯ããã®ã¢ã«ãŽãªãºã ã2å°ã®ãµãŒããŒã®åæ£ããŒã¹ã§ç¹å®ã®ããã©ãŒãã³ã¹ã瀺ããŠããããšã瀺ããŠããŸããããµãŒããŒã®æ°ãå¢ãããšãçç£æ§ã¯çŽç·çã«å¢å ããŸãã...ããæ£ç¢ºã«ã¯ããŸã£ããå¢å ããŸããã
ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®äž»ãªå©ç¹ã®1ã€ã¯ããµãŒããŒãè¿œå ããã ãã§ããã©ãŒãã³ã¹ãçŽç·çã«åäžã§ããããšã§ãã åæ£æŽåæ§ã確ä¿ããããã«2ãã§ãŒãºã³ãããã䜿çšãããšããµãŒããŒã®æ°ãå¢ããŠãããã®ããã»ã¹ãããã«ããã¯ã«ãªããçç£æ§ã®åäžãå¶éããããšã«ãªããŸãã
2段éã®ã³ããããªãã§ãããã©ãŒãã³ã¹ãçŽç·çã«æ¡åŒµããæ©èœãåããåæ£æŽåæ§ïŒACiDèŠä»¶ïŒãã©ã®ããã«ç¢ºä¿ã§ããŸããïŒ
çŸä»£ã®ç 究ïŒããšãã°ã åæ£åæå®è¡å¶åŸ¡ã®è©äŸ¡ãVLDB2017 ïŒã¯ãããããã楜芳çã¢ãããŒããã圹ç«ã€ãšäž»åŒµããŠããŸãã 2ãã§ãŒãºã³ããããšäžè¬åãããã楜芳çã¢ãããŒããã®éãã¯ãæ§ãœããšãåºïŒã«ãŠã³ã¿ãŒä»ãïŒãšAuchanã®ãããªçŸä»£ã®ã¹ãŒããŒããŒã±ããã®éãã«ãã£ãŠèª¬æã§ããŸãã ã«ãŠã³ã¿ãŒã®ããåºèã§ã¯ããã¹ãŠã®é¡§å®¢ãçããããšèŠãªãããæ倧éã®ã³ã³ãããŒã«ãæäŸãããŸãã ãããã£ãŠãç·ãšç«¶åã ãããŠãã¹ãŒããŒããŒã±ããã§ã¯ãè²·ãæã¯ããã©ã«ãã§æ£çŽã§ãããšèŠãªãããæ£ã«è¿ã¥ããŠã«ãŒããåããæ©äŒãäžããŸãã ãã¡ãããè©æ¬ºåž«ïŒã«ã¡ã©ãã»ãã¥ãªãã£ïŒãæãŸããããã®ç£èŠããŒã«ããããŸãããã»ãšãã©ã®è²·ãæã¯ãããã«å¯ŸåŠããå¿ èŠã¯ãããŸããã
ãããã£ãŠãããå€ãã®ãã£ãã·ã¥ãã¹ã¯ãé 眮ããã ãã§ãã¹ãŒããŒããŒã±ãããæ¡å€§ãæ¡åŒµã§ããŸãã ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã§ãåãããšãèšããŸããåæ£åã®æŽåæ§ãã楜芳çãªã¢ãããŒããã«ãã£ãŠä¿èšŒãããŠããå Žåãäœãåé¡ãçºçããããã»ã¹ã ãã«ãã§ãã¯ãè¿œå ã§ããŒããããŸãã ãŸããéåžžã®ããã»ã¹ã§ã¯è¿œå ã®ãã§ãã¯ã¯è¡ãããŸããã
éèŠã§ãã ã楜芳çã¢ãããŒããã«ã¯ãããã€ãã®ã¢ã«ãŽãªãºã ãå«ãŸããŸãã ã¯ãªã¹ã»ãªãã£ãŒããœã³ãæšå¥šãããåæ£å®å šæ§ãç¶æããããã®ã¢ã«ãŽãªãºã ã§ãããµã¬ã«ã€ããŠã話ãããããšæããŸãã
Sagas-ã¢ã«ãŽãªãºã ã®èŠçŽ
sagã¢ã«ãŽãªãºã ã«ã¯2ã€ã®ãªãã·ã§ã³ããããŸãã ãããã£ãŠãæåã«ãã¢ã«ãŽãªãºã ã®å¿ èŠãªèŠçŽ ãæ®éçã«èª¬æããŠãäž¡æ¹ã®ãªãã·ã§ã³ã«é©ãããã®ã«ããããã«ããŸãã
èŠçŽ 1.ãµãŒãã¹éã®ä¿¡é Œæ§ã®é«ãæ°žç¶çãªã€ãã³ãé ä¿¡ãã£ãã«ããå°ãªããšã1åã®é ä¿¡ããä¿èšŒããŸãã ã€ãŸã ããã»ã¹ã®ã¹ããã2ãæ£åžžã«å®äºããå Žåãããã«é¢ããéç¥ïŒã€ãã³ãïŒãå°ãªããšã1åã¹ããã3ã«å°éããé ä¿¡ã®ç¹°ãè¿ãã¯èš±å®¹ãããŸãããäœã倱ãããã¹ãã§ã¯ãããŸããã ãæ°žç¶çããšã¯ãããŒã¿ããŒã¹ã倱ãããããã«ææ°ã®å€æŽã倱ã£ããµãŒãã¹ïŒå³ã®ã¹ããã2ã§ããèä¹ æ§ã®äŸãåç §ïŒã埩å ã§ããããã«ããã£ãã«ãéç¥ãäžå®æéïŒé±ã«2ã3æ¥ïŒä¿åããå¿ èŠãããããšãæå³ããŸããããã®å€æŽã¯ããã£ãã«ããã€ãã³ããåçããããšã«ãã£ãŠè¡ãããŸãã
èŠçŽ 2.äžæã®içæ§ããŒã䜿çšãããµãŒãã¹åŒã³åºãã®demçæ§ã ç§ïŒãŠãŒã¶ãŒïŒãVIPããã±ãŒãžã®è³Œå ¥ããã»ã¹ãéå§ãããšæ³åããŠãã ããïŒã¢ãããã¯æ§ã®äŸãåç §ïŒã ããã»ã¹ã®éå§æã«ãäžæã®ããŒãããšãã°42ã®içæ§ããŒãäžããããŸãã次ã«ãåã¹ãããïŒ1â2â3â4ïŒãžã®åŒã³åºãããiçæ§ããŒãæå®ããŠå®è¡ããå¿ èŠããããŸãã äžèšã®æ®µèœã§ã¯ãåãã¡ãã»ãŒãžããµãŒãã¹ã«ïŒã¹ãããã§ïŒç¹°ãè¿ãå°çããå¯èœæ§ãèšåãããŠããŸãã ãµãŒãã¹ïŒã¹ãããïŒã¯ãåŠçãããã€ãã³ãã®ç¹°ãè¿ãå°çãèªåçã«ç¡èŠããã¹ãçããŒã«ããç¹°ãè¿ãããã§ãã¯ã§ããå¿ èŠããããŸãã ã€ãŸãããã¹ãŠã®ãµãŒãã¹ïŒããã»ã¹ã¹ãããïŒãã¹ãçã§ããå ŽåãAtomicityããã³Durabilityã®èŠä»¶ãæºããããã«ã¯ããã£ãã«ããã®ã€ãã³ãã«å¯Ÿå¿ããã¹ãããã«ãªãã€ã¬ã¯ãããã ãã§ååã§ãã ã€ãã³ããã¹ãããããã¹ãããã¯ããããå®äºããæ¢ã«ã€ãã³ããå®äºããã¹ãããã¯ãã¹ãçæ§ã®ããã«ããããç¡èŠããŸãã
èŠçŽ 3.ã¹ãçããŒã«ãããµãŒãã¹åŒã³åºãïŒã¹ãããïŒã®ãã£ã³ã»ã«ã
ã¢ãããã¯æ§ïŒäŸãåç §ïŒã確ä¿ããããã«ãããšãã°ãdemçæ§ããŒ42ã®ããã»ã¹ãã¹ããã3ã§åæ¢/äœäžããå ŽåãããŒ42ã®ã¹ããã1ããã³2ã®æ£åžžãªå®è¡ããã£ã³ã»ã«ããå¿ èŠããããŸãããã®ãããå¿ é ã®åããã»ã¹ã¹ãããã«ã¯ãè£åãã¹ããããå¿ èŠã§ããæå®ãããã¹ãçããŒïŒ42ïŒã«å¿ èŠãªã¹ãããã®å®è¡ããã£ã³ã»ã«ããAPIã¡ãœããã 代ååŒã³åºãã®å®è£ ã¯ããµã°ã¢ã«ãŽãªãºã ã®å®è£ ã®äžéšãšããŠã®ãµãŒãã¹ã®æŽç·Žã«ãããŠå°é£ã§ããå¿ èŠãªèŠçŽ ã§ãã
äžèšã®3ã€ã®èŠçŽ ã¯ãããµã°ãã®å®è£ ã®äž¡æ¹ã®ããŒãžã§ã³ã«é¢é£ããŠããŸãïŒãªãŒã±ã¹ãã©ãšã³ã¬ãªã°ã©ãã£ãã¯ã
ãªãŒã±ã¹ãã©ãµã¬
ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããããµã¬ã®ããåçŽã§æçœãªã¢ã«ãŽãªãºã ã¯ãç解ãšå®è£ ãç°¡åã§ãã åªããèšäºã§ã Kevteevã¯Avitoã§ç·šæããããµã¬ã®ã¡ã«ããºã ã®ã¢ã«ãŽãªãºã ãšå®è£ ããã»ã¹ã«ã€ããŠèª¬æããŸããã 圌ãã®ã¢ã«ãŽãªãºã ã¯ããµãŒãã¹å¯Ÿè±¡ããžãã¹ããã»ã¹ã®äžéšãšããŠãµãŒãã¹åŒã³åºããã調æŽãããå¶åŸ¡ãµãŒãã¹ã®ååšãåæãšããŠããŸãã åãç£èŠãµãŒãã¹ã«ç¬èªã®ããŒã¿ããŒã¹ïŒããšãã°ãPostgreSQLïŒããããä¿¡é Œã§ããæ°žç¶çãªã€ãã³ãé ä¿¡ãã£ãã«ïŒèŠçŽ 1ïŒãšããŠæ©èœããŸãã
æ¯ãä»ããµã¬
æ¯ãä»ãã®ç©èªã¯ãã£ãšããªãããŒã§ãã ããã§ã次ã®èŠä»¶ãå®è£ ããããŒã¿ãã¹ã¯ãä¿¡é Œã§ããæ°žç¶çãªãã£ãã«ãšããŠæ©èœããå¿ èŠããããŸããfire-and-forgetpublishingãpublish-subscribeã€ãã³ãé ä¿¡ãå°ãªããšã1åã®é ä¿¡ã ã€ãŸã åããã»ã¹ã®åã¹ãããã¯ããã¹ããæäœããã³ãã³ããåãåããæåããå®è¡ã次ã®ã¹ãããã®éå§ã«é¢ããã¡ãã»ãŒãžãããã«æããŠããã¹ãããããèªã¿åã£ãŠããã»ã¹ãç¶è¡ããå¿ èŠããããŸãã ããã«ãåã¡ãã»ãŒãžã«ã¯è€æ°ã®ãµãã¹ã¯ã©ã€ããŒãååšããå ŽåããããŸãã
æ¯ãä»ãã®ç©èªã«ã¯ãå¶åŸ¡ãµãŒãã¹ããµã¬ã®ãµãŒãã¹ãå¿ èŠã§ãããããªãã軜éãã§ãã ãµãŒãã¹ã¯ãã·ã¹ãã ã«ç»é²ãããŠããããžãã¹ããã»ã¹ãåããã»ã¹ã«å«ãŸããã¹ãããã®æ§æã«ã€ããŠç¥ã£ãŠããå¿ èŠããããŸãã ãŸãããã¹ã«è³ãåŸããåããã»ã¹ïŒåã¹ãçæ§ããŒïŒã®å®è¡ãç£èŠããäœãåé¡ãçºçããå Žåã«ã®ã¿ãç¹å®ã®ã¹ãããã®ãç¹°ãè¿ãããè¡ãããå®è¡ããã¹ãããã®ããã£ã³ã»ã«ãããè£åããè¡ããŸãã
ãã¥ã¢ã³ã¹
å€å žçãªååŒãšåºå¥ãããµã¬ã®æãéèŠãªãã¥ã¢ã³ã¹ã®1ã€ã¯ãåã¹ãããã®ç·åœ¢æ§ãé åºãããã³çŸ©åããã®éžè±ã§ãã ãµã¬ã¯å¿ ãããã€ãã³ãã®ç·åœ¢ãã§ãŒã³ã§ã¯ãªããæåã°ã©ãã§ãããŸããŸããïŒæ°ãããŠãŒã¶ãŒç»é²ã€ãã³ãã¯ãããã€ãã®ã¹ãããã䞊è¡ããŠçæã§ããŸãïŒSMSã®éä¿¡ããã°ã€ã³ã®ç»é²ããã¹ã¯ãŒãã®çæãé»åã¡ãŒã«ã®éä¿¡ïŒããã®äžéšã¯ãªãã·ã§ã³ã§ãã æåã®è¿äŒŒã§ã¯ããªãã·ã§ã³ã®ã¹ããããåãããã®ãããªãåå²ããµã¬ã§ã¯ããµã¬ïŒããã»ã¹ïŒã®å®äºãå€æããããšã¯å°é£ã§ããããã«èŠããŸãããå®éã«ã¯ãã¹ãŠãåçŽã§ãïŒãµã¬ïŒããã»ã¹ïŒã¯ãã¹ãŠã®å¿ èŠãªã¹ããããä»»æã®é åºã§å®äºãããšå®äºããŸãã
æ¯ãä»ããµã¬ã§ã¯ããå žåçã§ããããªãŒã±ã¹ãã©ã®ãµã¬ã§ã¯å¯èœæ§ã®ãã2çªç®ã®ãã¥ã¢ã³ã¹ã¯ãããžãã¹ããã»ã¹ããµã¬ãµãŒãã¹ã§ã®ãµã¬ã®ã¿ã€ããç»é²ããæ¹æ³ãéžæããããšã§ãã Atomicityã®äŸã§ã¯ã4ã€ã®é£ç¶ããå¿ é ã¹ãããã®ããã»ã¹ã説æããŠããŸãã
誰ããã®ããã»ã¹ãç»é²ãããã¹ãŠã®ã¹ãããã瀺ããäŸåé¢ä¿ãšå¿ é ã¹ããããé 眮ããŸãããïŒ æããã§ãããæãªããã®çãã¯ãããã»ã¹ç»é²ã¯sagãµãŒãã¹ã®äžå€®ã§è¡ãå¿ èŠããããšããããšã§ãã ãããããã®çãã¯ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãšããŸãæŽåæ§ããããŸããã ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã§ã¯ãããã ã¢ããããã»ã¹ã®ç»é²ãããææã§ãçç£æ§ãé«ããé«éã§ãã ã€ãŸã ãµã°ãµãŒãã¹ã®ããã»ã¹ã®ãã¹ãŠã®ãã¥ã¢ã³ã¹ãæžãçããã®ã§ã¯ãªããåã ã®ãµãŒãã¹ãæ¢åã®ããã»ã¹ã«ç¬èªã«ãé©åãããããã«ãããããã®ãã€ã³ãã£ã³ã°/ãªãã·ã§ã³ã®æ§è³ªãšå¿ é ã®å è¡ã瀺ããŸãã
ã€ãŸã ãŠãŒã¶ãŒããµã°ãµãŒãã¹ã«ç»é²ããããã»ã¹ã¯ãæåã¯3ã€ã®ã¹ãããã§æ§æã§ããŸãããã®åŸãã·ã¹ãã ã®éçºäžã«ãããã«7ã€ã®ã¹ããããåãŸãã1ã€ã®ã¹ããããæžãââåºããã9ã€ãããŸãã ãã®ãããªãã¢ããŒããŒãããã³ãåæ£ãã¹ããŒã ã¯ãå³å¯ãªèª¿æŽããã»ã¹ãå®è£ ããããã«ãã¹ãããã®ãå°é£ã§ãããã¢ãžã£ã€ã«ããŒã ã«ãšã£ãŠã¯ãç¶ç¶çãªå€æ¹åã®è£œåé²åã«ãšã£ãŠã¯ããã«äŸ¿å©ã§ãã
å®ã¯ããã çå£ãªãã¬ãŒã³ããŒã·ã§ã³ã§ãç§ã¯ãããçµäºãã䟡å€ããããšæããŸãã
ãã®è³æã®ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ã¯æ¬¡ã®ãšããã§ããHighloadSiberia 2018ã§ãã®ãããã¯ã«é¢ããã¬ããŒããäœæããŸããã
UPD-ããã³äŒè°ã®ãããªïŒ
ãšãããŒã°
æåŸã«ãäžèšã®ãã¹ãŠãããæ¯languageçãªèšèªã§èª¬æããããšæããŸãã
çµå±ã®ãšããããµã¬ãšã¯å
ã
äœã§ããïŒ ãã®ããããããã®äžäžããã®åéº...ãŸãã¯ã²ãŒã ã»ãªãã»ã¹ããŒã³ãºããã ã€ãã³ããçºçãïŒæŠéãçµå©åŒã誰ããæ»äº¡ïŒããã®ãã¥ãŒã¹ã¯ã¡ãã»ã³ãžã£ãŒãäŒæžé³©ãå人ãéããŠäžçäžã«é£ã³ãŸãã ïŒ1é±éã1ãæã1幎ã§ïŒèå³ã®ãã人ã«ãã¥ãŒã¹ãå±ããšã圌ãã¯åå¿ããŸããè»éãéããæŠäºã宣èšãã誰ããåŠåããæ°ããã¡ãã»ãŒãžãé£ã³ãŸãã
ã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ãç£èŠããèŠå¶æ©é¢ã¯ãããŸããã ã¢ã¯ã·ã§ã³ãåãæ¶ããšããæå³ã§ã®ãã©ã³ã¶ã¯ã·ã§ã³ãããŒã«ããã¯ã¯ãããŸããã ãã¹ãŠå€§äººã®æ¹æ³ã§ããã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯æ°žé ã«è¡ãããŸãã ããã¯è£åããããšãã§ããŸãããããã¯æ£ç¢ºã«è¡åïŒæ®ºäººïŒãšè£åïŒé ã®æ¯æãããã©ïŒã§ãããæ»ã®å»æ¢ã§ã¯ãããŸããã
ã€ãã³ãã¯é·ãæéãããããããŸããŸãªãœãŒã¹ããçºçããã¢ã¯ã·ã§ã³ã¯å³å¯ã«é£ç¶ããŠã§ã¯ãªãã䞊è¡ããŠçºçããŸãã ãããŠãããªãé »ç¹ã«ãæ°ããåå è ãçªç¶ããããã«çŸããåå ããããšã決å®ããŸãïŒãã©ãŽã³ãå°çããŸã;ïŒïŒ...ãããŠãå€ãåå è ã®ããã€ãã¯çªç¶æ»ã«ãŸãã
ãã®ãããªããšã æ··ä¹±ãšæ··ä¹±ã®ããã«èŠããŸããããã¹ãŠãæ©èœããäžçã®å éšã®äžè²«æ§ãå£ããŠãããããããããçºå±ããŠãããäžè²«ããŠããŸã...æã«ã¯äºæž¬äžå¯èœã§ãã