ã¯ããã«

ç§ã¯é·ãéCAPå®çã«é¢ããç¥è©±ã«ã€ããŠæžããããšæã£ãŠããŸããããã©ãããããã誰ãããããæã«å
¥ããããšãã§ããŸããã§ããã ãããã å¥ã®äœåãèªãã åŸã圌ã¯é ãã€ããã§ããã¹ãŠãæ£ã«çœ®ããŠãè³ã«èª¿åã®ãšããçµµãçŸããããã«ããŸããã
èšäºãææ
ã®åµãåŒãèµ·ããã€ãã³ãã¯éåžžã«ãŸãã§ãã ãã§ãŒã³ã¬ããªã±ãŒã·ã§ã³ã«ã€ããŠèªãã ãšãã«ãããåããŠçºçããŸããã 圌ãã¯ãããã匷åãªã¢ãããŒãã§ããããããäžè²«æ§ã®ããã¬ããªã±ãŒã·ã§ã³ã§èµ·ããåŸãæé«ã®ã¢ãããŒãã§ãããšç§ã«çŽåŸãããããšããŸããã ãªããããããŸãæ©èœããªãã®ãã«ã€ããŠã¯è°è«ããŸããããåã«Chain Replicationã¡ã¿ããŒã¿ç®¡çã®èšäºããåŒçšããã ãã§ãïŒ
ã¹ããªãããã¬ã€ã³ç®¡çã¯åä»ãªåé¡ã§ãã ããã§çŽ¹ä»ããæ¹æ³ã¯ãèªçšè«ã«åºã¥ãããã®ã§ãã åäœããªãå Žåãæ·±å»ãªå¿é
ã¯ãããŸãããMachiã®æåã®æ·±å»ãªãŠãŒã¹ã±ãŒã¹ã¯ãã¹ãŠAPã¢ãŒãã®ã¿ãå¿
èŠãšããããã§ãã æçµçã«ãRiak Ensembleã䜿çšããŸãã¯ãZooKeeperã䜿çšãã«ãã©ãŒã«ããã¯ããå Žåãããããããã§ååã§ãã
ç§ã®èªç±ãªèšãæãã§ã¯ãããã¯æ¬¡ã®ãããªããšãæå³ããŸãããããã«ã¯ç¹å®ã®ã¢ã«ãŽãªãºã ããããŸããæ£ããæ©èœãããã©ããã¯ããããŸãããã¯ããç§ãã¡ã«ãšã£ãŠã¯éèŠã§ã¯ãããŸãããã å°ãªããšãæ£çŽãªãšãããèè
ã®ãããã§å€ãã®æéãç¯çŽã§ããŸããã
ãããŠãããã§ã SpannerãTrueTimeãããã³CAP Theoremã®èšäºãç®ãåŒããŸãã æŠå¿µãšç¥èãåãããçµããã«è¿ãæ£ã§åæããŸãã ãã®åã«ãCAPå®çã«é¢é£ããæãäžè¬çãªç¥è©±ãåæããŸãã
ç¥è©±1ïŒAã¯ã¢ã¯ã»ã·ããªãã£ãæå³ãã
Aã¯ãã¡ãããã¢ã¯ã»ã·ããªãã£ãšããèšèããæ¥ãŸããã ããããã¢ã¯ã»ã·ããªãã£ãšã¯äœã§ããïŒ ã©ããªçš®é¡ïŒ
ç°ãªãã³ã³ããã¹ãã§ã®å¯çšæ§ã¯ãç°ãªãããšãæå³ããŸãã ãããŠãããã§ã¯ã䜿çšãããå°ãªããšã2ã€ã®ç°ãªãã³ã³ããã¹ããåºå¥ããå¿
èŠããããŸãã
- å®éã®ãµãŒãã¹ã®å¯çšæ§ã ãã®å¯çšæ§ã¯ããŒã»ã³ããŒãžã§è¡šãããŸãã1幎éã®åèšããŠã³ã¿ã€ã ã枬å®ãããå²åãããŒã»ã³ããŒãžã§è¡šãããé·æéã®å¯çšæ§ã®å¯èœæ§ã瀺ããŸãã
- CAPå®çã®ã¢ãã«ã®ãã¬ãŒã ã¯ãŒã¯å
ã§ã®å¯çšæ§ã
CAPå®çã¯ãçšèªãç·å¯çšæ§ãã«æãæå³ãè¿ãæŠå¿µã䜿çšããŸãã
åæ£ã·ã¹ãã ãç¶ç¶çã«äœ¿çšå¯èœã«ããã«ã¯ãã·ã¹ãã å
ã®é害ã®ãªãããŒããåä¿¡ãããã¹ãŠã®èŠæ±ãå¿çããå¿
èŠããããŸãã
ããã¯ããããã次ã®ããšãæå³ããŸãããã·ã¹ãã å
ã®é害ã®ããããŒãã¯ãã¹ãŠãèŠæ±ã«å¿çããå¿
èŠããããŸããã ãã®å®çŸ©ã«ã¯ã匷調ãããç¹ãããã€ããããŸãã
- ãæ³£ãå«ã¶ãã åããããŒããäœããã®æ¹æ³ã§å¿çã§ããªãããšã¯æããã§ãã ãã ãããã£ããã¯ããã¹ãŠã®ããŒããèœã¡ãå Žåãå®çŸ©ã®èŠ³ç¹ããããã®ãããªãµãŒãã¹ãå©çšã§ããããšã§ãã ååãšããŠãã¯ã©ã€ã¢ã³ããå¿çãåä¿¡ããå¿
èŠããããšããäºå®ãè¿œå ããããšã«ãããå®çŸ©ãä¿®æ£ã§ããŸãã
- ãçããå¿
èŠããããŸããã å®çã¯ãæ£ç¢ºãªææãèšã£ãŠããŸããã 圌女ã¯æéãã©ã¡ãŒã¿ã«ãŸã£ããèå³ããããŸããã ããŒããå³åº§ã«å¿çã§ããªãããšã¯æããã§ãã ãããã§ããªãå Žåã¯ãäžåºŠçããã°ååã§ãã
ãŠãŒã¶ãŒã®èŠ³ç¹ããèŠããšã100åã®ããŒããããã99åãèœã¡ãæ®ãã®ããŒãã1æéããã1ã€ã®ãªã¯ãšã¹ãã®é床ã§å¿çãç¶ããå Žåããã®ãããªãµãŒãã¹ã¯ã¢ã¯ã»ã¹å¯èœãšã¯èšããŸããïŒããã¯ã³ã³ããã¹ã1ã§ãïŒã ãã ããCAPå®çã®èŠ³ç¹ããã¯ãããã§ãã¹ãŠãåé¡ãªãããã®ãããªã·ã¹ãã ãå©çšå¯èœã«ãªããŸãïŒã³ã³ããã¹ã2ïŒã
ãããã£ãŠãAã¯äžè¬ã«åãå
¥ããããŠããæå³ã§ã¯ã¢ã¯ã»ã·ããªãã£ã§ã¯ãªããããããå®å
šãªã¢ã¯ã»ã·ããªãã£ã§ããããŠãŒã¶ãŒã¯ãŸã£ããèå³ãæããªãå¯èœæ§ããããŸãã
ç¥è©±2ïŒPã¯ãããã¯ãŒã¯ã®åŸ©å
åãè¡šã
ãã®ãããªå®çŸ©ã¯ãã»ãŒãã¹ãŠã®èšäºã«èšèŒãããŠããŸãã ããã§äœãééã£ãŠããã®ããç解ããã«ã¯ãå¥ã®è§åºŠããåé¡ãèŠãå¿
èŠããããŸãã
ä»»æã®ã¡ãã»ãŒãžã³ã°ã·ã¹ãã ã䜿çšããŸãã ã·ã¹ãã ã®ãªããžã§ã¯ãã§ããã¢ã¯ã¿ãŒéã§ã®ã¡ãã»ãŒãžã®éä¿¡æ¹æ³ãæ€èšããŠãã ããã ãããã®ã¡ãã»ãŒãžã¯ãå¥ã®ã¢ã¯ã¿ãŒã«å±ãå Žåãšå±ããªãå ŽåããããŸãã ãããŠãããã§ã¯2ã€ã®ã±ãŒã¹ãåºå¥ããå¿
èŠããããŸãïŒ
- ã·ã¹ãã ã§ã¯ãã¡ãã»ãŒãžã倱ããããšç¶æ³ã¯äžå¯èœã§ãã
- ã·ã¹ãã ã§ã¯ãã¡ãã»ãŒãžã倱ãããå Žåã«ç¶æ³ãçºçããå¯èœæ§ããããŸãã
ãã®ãªã¹ãã¯ç¶²çŸ
çã§ãããšæšæž¬ããã®ã¯ç°¡åã§ãã ãã®æç¹ã§ãåé
ç®ãã·ã¹ãã ã®ããããã£ã説æããŠããããšã«æ³šæãã䟡å€ããããŸãã ã€ãŸã ã¢ã«ãŽãªãºã ã«ãå°éããŠããŸããã ããã¯ãåºç¯å²ã«ãããçµæããããããŸãã
ã¡ãã»ãŒãžã倱ãããããšã®ãªãæåã®ã±ãŒã¹ãèæ
®ãããšããã®ãããªç¶æ³ã§ã¯ã ãããã¯ãŒã¯ã®åé¢ã¯ãŸã£ããäžå¯èœã§ãã å®éãåã¢ã¯ã¿ãŒããã®åã¡ãã»ãŒãžã¯æ倱ãªãå°éã§ããããã ãããã¯ãŒã¯ã®åé¢ã«ã€ããŠè©±ãæå³ã¯ãããŸããã 2çªç®ã®ã±ãŒã¹ã§ã¯ãéã®ããšãèšããŸããæ倱ã®ãããã»ã°ã¡ã³ãå
šäœãå¥ã®ã»ã°ã¡ã³ãããåé¢ãããå¯èœæ§ããããŸãã ã¢ã¯ã¿ãŒã®ã°ã«ãŒãéã®æ¥ç¶ã倱ãããŸããã ãã®å Žåã圌ãã¯ãããã¯ãŒã¯åé¢ãèµ·ãã£ããšèšããŸã ã
俳åªã®ã°ã«ãŒããäºãã«éé¢ãããå¯èœæ§ã®ç¹æ§ã¯ããã©ã°ã©ã2ã®çŽæ¥çãªçµæã§ããããšã«æ³šæããå¿
èŠããããŸãã
å®éã®ãããã¯ãŒã¯ã§äœæ¥ããå Žåããæ³åã®ãšããã2çªç®ã®ãã€ã³ãã«è©²åœããŸãã åæã«ãç§ãã¡ã¯ãŸã ã¢ã«ãŽãªãºã ã«ã€ããŠèãå§ããŠããããã¢ã¯ã¿ãŒã®ã°ã«ãŒãéã®æ¥ç¶æ§ãåé¢ããŠå€±ãèœåããã§ã«æã£ãŠããŸãã P-ããã¯ãã·ã¹ãã ã§åå²ãå¯èœãªããšã§ãã ãããŠãããã¯ã¢ã«ãŽãªãºã ã®ç¹æ§ã§ã¯ãªããã¢ã«ãŽãªãºã ãæ©èœããã·ã¹ãã ã®ç¹æ§ã§ãã
ã¡ãã»ãŒãžã倱ãããå Žåã«ãããã¯ãŒã¯ã®åé¢ãèæ
®ããããšãéèŠãªã®ã¯ãªãã§ããïŒ æ®ãã®åé¡ã¯ããã»ã©å€ãã®ãã©ãã«ãåé¡ãåŒãèµ·ãããªããããã©ãã ãã·ã¹ãã ãç¬ç«ããéšåã«åå²ãããã®ãã
ãã®ç¥è©±ãç· ããããããã«ãããã°AphyrïŒPercona XtraDB ClusterããåŒçšããŸãã
ããŒãã£ã·ã§ã³ãã¬ã©ã³ã¹ã§ã¯ãèŠæ±ãåŠçããããã«ãã¹ãŠã®ããŒãããŸã å©çšå¯èœã§ããå¿
èŠã¯ãããŸããã ããŒãã£ã·ã§ã³ãçºçããå¯èœæ§ãããããšãæå³ããŸãã äžè¬çãªIPãããã¯ãŒã¯ã«å±éããå ŽåãããŒãã£ã·ã§ã³ãçºçããŸãã ãããã®ç°å¢ã§ã®ããŒãã£ã·ã§ã³èš±å®¹å€ã¯ãªãã·ã§ã³ã§ã¯ãããŸããã
ãããã£ãŠãå®éã®ä¿¡é Œæ§ã®äœããããã¯ãŒã¯ã§åäœããã·ã¹ãã ãæ€èšããå Žåããããã¯ãŒã¯æ¥ç¶é害ã¯äŸå€çãªç¶æ³ã§ã¯ãªãã察åŠããå¿
èŠããããã®ã§ãã ãŸãããã®ã³ã³ããã¹ãã®æåPã¯ããããã¯ãŒã¯æ¥ç¶éåãçºçããå¯èœæ§ãããããšãæå³ããã ãã§ãã
ç¥è©±3ïŒACã·ã¹ãã ã¯ååšããªã
åã®ç¥è©±ãããACã·ã¹ãã ã¯ååšããªããšããæèŠãæãããããããŸããããªããªãã ããŒã¿ãéä¿¡ã§ããä¿¡é Œã§ãããããã¯ãŒã¯ã¯ãããŸããã ããã«ãåé·ã³ã³ããŒãã³ããå«ãã¹ããŒã ãææ¡ããŠã¿ãŠãã ããã ãã ããåç·ã§ã®ãã±ããæ倱ã®ç¢ºçã0ãã倧ããå Žåããã£ãã«ãã©ã®ããã«è¿œå ããŠããæ°åŠçãªèæ
®ããçŽç²ã«ç¢ºçã0ã«ããããšã¯ã§ããŸããã ãã®å Žåãäžèšã®ããã«ããããã¯ãŒã¯ãåå²ãããå¯èœæ§ããããŸãã
ããããCAPã¯ãããã¯ãŒã¯ã«æ¥ç¶ãããã·ã¹ãã ã®ã¿ãèšè¿°ãããšèª°ãèšã£ãã®ã§ããããïŒ CAPã¯ãéåžžã«å¹
åºãã¯ã©ã¹ã®ã¿ã¹ã¯ã«é©çšã§ããçè«ã¢ãã«ã§ãã ããšãã°ããã«ãã³ã¢ããã»ããµã䜿çšã§ããŸãã
- åã³ã¢ã¯åå¥ã®ã¢ã¯ã¿ãŒã§ãã
- ã¢ã¯ã¿ãŒïŒã«ãŒãã«ïŒã¯ã¡ãã»ãŒãžïŒæ
å ±ïŒã亀æããŸãã
CAPå®çã«ã€ããŠèª¬æããã«ã¯ããã§ååã§ãã
æåã«èª¬æããŸãããA.ã«ãŒãã«ã¯å©çšå¯èœã§ããïŒ ãã¡ãããã¯ãããã€ã§ãã³ã¢ã«ã¢ã¯ã»ã¹ããŠãã¡ã¢ãªããå¿
èŠãªããŒã¿ãååŸã§ããŸãã
Pã¯ã©ãã§ããïŒ ããã»ããµã¯ãå¿
èŠã«å¿ããŠããŒã¿ãåé¡ãªãå¥ã®ã³ã¢ã«è»¢éãããããšãä¿èšŒããŸãã äœããã®çç±ã§ãããçºçããªãå Žåããã®ãããªããã»ããµã¯æ¬ é¥ããããšèŠãªãããŸãã ãããã£ãŠãæåPãæ¬ èœããŠããŸãã
äžè²«æ§ã®åé¡ã次ã®ããã«å¯ŸåŠãããŸãã ã¡ã¢ãªã¢ãã«ã¯ããã®ãããªã·ã¹ãã ã®æé«ã¬ãã«ã®äžè²«æ§ã§ããé 次äžè²«æ§ãå®çŸ©ããŸãã åæã«ãMESIãMOESIãªã©ã®ãã£ãã·ã¥ã³ããŒã¬ã³ã¹ãããã³ã«ã¯ãéåžžãããã»ããµå
ã«å®è£
ããããããäžå®ã¬ãã«ã®äžè²«æ§ãä¿èšŒãããŸãã
ãããã£ãŠãææ°ã®ããã»ããµã¯ãã³ã¢éã®ã¡ãã»ãŒãžé
ä¿¡ãä¿èšŒãããACã·ã¹ãã ã§ãã
ç¥è©±4ïŒCã¯äžè²«æ§ãæå³ãã
Cã¯ééããªãäžè²«æ§ãæå³ããŸãã ããããäžè²«æ§ãšã¯äœã§ããïŒ çµå±ã®ãšãããæçµçãªäžè²«æ§ã¯äžè²«æ§ã§ããããéåžžã«åŒ±ãã ãã§ãã ããã¯ã©ãããæå³ã§ããïŒ äžè²«æ§ã®ã¢ãã«ã¯æ°å€ããããŸããèšäºã éãã©ã³ã¶ã¯ã·ã§ã³åæ£ã¹ãã¬ãŒãžã·ã¹ãã ã®äžè²«æ§ãã®å³ãã芧ãã ããã

ãããŠãããã¯åæ£åã®éãã©ã³ã¶ã¯ã·ã§ã³ã·ã¹ãã ã«ã€ããŠã§ãïŒ èæ
®äºé
ã«ãã©ã³ã¶ã¯ã·ã§ã³æ§ãè¿œå ãããš ãéå§ããããšãªãããã«ãœãŒããããšããèããåããããšãã§ããŸãã
CAPå®çã«é¢ããå
ã®èšäºã§ã¯ãç·åœ¢åå¯èœæ§ã«ã€ããŠãããããšããã«èšåããŸããã ç·åœ¢åå¯èœæ§ã®æ¬è³ªã¯ãèŠããã«æ¬¡ã®ãšããã§ãã ã¢ã¯ã·ã§ã³ãçºçããå ŽåïŒåé¡ã§ã¯ãªããèªã¿åããæžã蟌ã¿ããŸãã¯æ··åã¢ã¯ã·ã§ã³ïŒè€æ°å¯ïŒïŒããã®ã¢ã¯ã·ã§ã³ã®çµæã¯ãåçãåãåã£ãçŽåŸã«å©çšå¯èœã«ãªããŸãã
è«ççãªåé¡ãçºçããŸãïŒä»ã®äžè²«æ§ã¢ãã«ã«ã€ããŠã¯ã©ãã§ããïŒ ãããã¯CAPå®çã«é©åããŠããŸããïŒ
ãããŠãé ã®äžã§å®å
šãªæ··ä¹±ãå§ããŸãã äžéšã®äººã
ã¯ãã¢ãã«ãç·åœ¢åå¯èœæ§ã«ã€ããŠèšŒæãããŠãããããç·åœ¢åå¯èœæ§ã«å¯ŸããŠå³å¯ãã€æä»çã«é©çšãããã¹ãã ãšèããŠããŸãã 匱ãæŽåæ§ã¢ãã«ã¯ãã¯ããã®å®çã«è©²åœããªããšèãã人ãããŸãã ããã«ãè°è«ã®æ¬è³ªãç解ããŠããªã人ãããŸãã
ãã®è³ªåã«çããããã«ãèšäºHighly Available Transactionsããæç²ããçŽ æŽãããåçãèããŠãã ããã

圌女ã¯äœã«ã€ããŠè©±ããŠããã®ã§ããïŒ CAPå®çã®ãã¬ãŒã ã¯ãŒã¯å
ã§æ©èœãããããããã¢ã¯ã»ã¹äžèœã¢ãã«ã¯èµ€ã§ããŒã¯ãããŠããŸãã ã€ãŸã åæã«ãAãšPã«åæã«å°éããããšã¯äžå¯èœã§ãã ãã ããå€ãã®ã¿ã¹ã¯ã«å¯ŸããŠååãªã¬ãã«ã®äžè²«æ§ãåããä»ã®ã¢ãã«ããããŸãããããã§ãAPãšåæã«å®è¡ã§ããCAPã·ã¹ãã ãå²åŒãªãã§åä¿¡ã§ããŸãã å
žåçãªäŸïŒ Read Committed ïŒRCïŒãšMonotonic Atomic View ïŒMAVïŒã¯CAPã®3æåãã¹ãŠã«åæã«æºæ ããŠããããã®ãããªã¢ãã«ãäžè²«æ§ã®ãªããã®ãšåŒã¶ããšã¯å°é£ã§ãã CAPå®çã«éåãããã®ãããªæŽåæ§ã¢ãã«ã¯ãé«å¯çšæ§ã¢ãã«ãšåŒã°ããŸãã
ãããã£ãŠãäžè²«æ§ã«ã€ããŠèšãã°ã 䜿çšäžå¯ã¢ãã«ãšåŒã°ããäžè²«æ§ã¢ãã«ã®å¹
åºãã°ã«ãŒãã念é ã«çœ®ããŠããŸã ã
ç¥è©±5ïŒCPã·ã¹ãã ã¯é«å¯çšæ§ã§ã¯ãªã
åã®æ®µèœã®åŸããã®æã¯éåžžã«è«ççã«èŠããŸãããæ ¹æ¬çã«ééã£ãŠããŸãã Aã¯ãã€ã³å
ã®ã¢ã¯ã»ã·ããªãã£ã§ã¯ãªããå®å
šãªã¢ã¯ã»ã·ããªãã£ãæå³ããããšãæãåºãããŠãã ããã CPã·ã¹ãã ã®å¯çšæ§ãé«ããããšã¯å¯èœã§ããïŒ
ããã§ã¯ãã¢ãã«ãšéãåé¢ããå¿
èŠããããŸãã çè«ãšçŸå®ã
ã¢ãã«ã®ãã¬ãŒã ã¯ãŒã¯ã§æåã«æšè«ããŠã¿ãŸãããã CAPå®çã®ãã¬ãŒã ã¯ãŒã¯å
ã®ã¢ã¯ã»ã·ããªãã£ãšã¯ãå®å
šãªã¢ã¯ã»ã·ããªãã£ãã€ãŸã çããŠããããŒãã¯å¿çããå¿
èŠããããŸãã ãããããªããããå¿
èŠãªã®ã§ããïŒ çµå±ã®ãšãããã¯ã©ã€ã¢ã³ãã®ããžãã¯ããŸã£ããç°ãªãæ¹æ³ã§æžãããšãã§ããŸãã ç°ãªãããŒã¿ã»ã³ã¿ãŒã«3ã€ã®ããŒãããããšããŸãã 2ããŒãã®ã¯ã©ãŒã©ã ãèšè¿°ããŸããã1ããŒãã¯ã·ã¹ãã å
šäœã®çåæ§ãšäžè²«æ§ã倱ãããšãªã暪ããããŸãã ãããŠãåžžã«2ã€ã®ããŒãããèªã¿åããŸãã ããã«ãäžæ¹ã®ããŒãã暪ããã£ãŠããå Žåãããäžæ¹ã®ããŒããæ£ããçããåºããŸãã 2ã€ã®ç°ãªãåçãããã°ãææ°ã®åçãéžæã§ããŸãã ãããã£ãŠããã®ã·ã¹ãã ã§1ã€ã®ããŒãã®ã¿ããã€ã§ãåäœäžèœã«ãªãããšãä¿èšŒãããŠããå Žåãã¯ã©ã€ã¢ã³ãã®èŠ³ç¹ããã¯ãã·ã¹ãã ã¯èªã¿åããšæžã蟌ã¿ã®äž¡æ¹ã§å®å
šã«100ïŒ
ã¢ã¯ã»ã¹å¯èœã«ãªããŸãã ããã«ãããã¯äžè²«ããŠããŸãã
å®éã«ã¯ã1ã€ã§ã¯ãªã2ã€ä»¥äžã®ããŒãã暪ã«ãªã確çã¯åžžã«ãŒãã§ã¯ãããŸããã ããã¯ç°¡åã«ç¢ºèªã§ããŸãããªããªã 1ã€ã®ããŒããèœã¡ãå¯èœæ§ããŒãã§ãªãå Žåãå¥ã®ããŒããèœã¡ãå¯èœæ§ã¯ãŒãã§ã¯ãããŸããã ããã«ã転åã¯ææªã®äºæ
ã§ã¯ãããŸããã æ©åšã®æ
éã«å ããŠãæ¥ç¶ã倱ãããå¯èœæ§ããããŸãã ãã©ã³ã¯æ©åšãå«ãããŸããŸãªãããã¯ãŒã¯æ©åšã®é害ã ãã®ãã¹ãŠã®ç¢ºçããŒã以å€ã§ããããšãæãåºã䟡å€ã¯ãªããšæããŸãã ãããã®ç¢ºçã¯ãã¹ãŠå ç®ãããããå°æ°ã®ãå Žåã«ãã£ãŠã¯éåžžã«å°ããæ°ã®9ãäžããŸãã ããŒãã®äºçŽã倧ããã»ã©ã9ã®æ°ãå€ããªãããšã¯æããã§ãã ãããŠãç§ã¯ãŸã ããã°ã©ããŒããšã©ãŒãåŒãèµ·ããå¯èœæ§ããŒã以å€ã§æžããŠããããã°ã©ã èªäœãèæ
®ããŠããŸãã...
ã€ãŸã çè«çã«ã¯ãæ£ããèšè¿°ãããã¯ã©ã€ã¢ã³ãã¯100ïŒ
ã®ã¢ã¯ã»ã·ããªãã£ãéæã§ãããšèããŠããŸãããå®éã«ã¯åžžã«ããå°ãªãæ°ã§ãã ãã¹ãŠã®ç§åŠã¯ãå¯èœãªéãå€ãã®9ãéæããããšã§ãã ãããŠããã®åŽé¢ã§ã¯ãCAPå®çã¯ãŸã£ãã圹ã«ç«ã¡ãŸããã 圌女ã¯äœãä»ã®ããšã話ããŠããããã§ãã
ãããã£ãŠãé«å¯çšæ§ãšããèãã¯ãAã§ã¯ãªããšããããšãšãŸã£ããççŸããŠããŸãããã€ãŸããCPã®å¯çšæ§ãé«ããšããããšã§ãã
ç¥è©±6ïŒCPã·ã¹ãã ã¯ããã©ãŒãã³ã¹ãäœããåŸ
ã¡æéãé·ããæ¡åŒµæ§ããããããŸããã
æããã«ãäžè²«æ§ã®ã¬ãã«ãé«ãã»ã©ãã·ã¹ãã ã®çç£æ§ã¯äœäžããŸãã åé¡ã¯ãããã©ãŒãã³ã¹ã®äœäžãã©ãã ããããããããŠãããç§ãã¡ã®ããã»ã¹ã«ãšã£ãŠéèŠãã©ããã«é¢ããŠçããŸãã
å³å¯ãªæŽåæ§ãŸãã¯Strong-1SR ïŒæé«ã¬ãã«ã®æŽåæ§ïŒã§ããããªã¢ã«ã¿ã€ã ã·ã¹ãã ã§äœ¿çšã§ããããšãããããŸãã ã ç§ã¯ãã®äºå®ã®å®éšç蚌æ ãæã£ãŠããŸãããããã§ã¯ãããæ¯æããããã€ãã®å®éçãªè°è«ãããŸãã
ã¢ã€ãã¢ã¯ãå€ãã®ç¬ç«ãããã§ãŒã«ãªãŒããŒãšã³ãã£ãã£ã䜿çšããããšã§ãã ãããã¯ã©ãã§ã§ãå®è¡ã§ãã䞊è¡ããŠåäœããå®éã«ã¯ã¯ã©ã¹ã¿ãŒã®ãµã€ãºã«ãã£ãŠæ°ãå¶éãããŸãã ãããã®ãšã³ãã£ãã£ã®äžã«ãã©ã³ã¶ã¯ã·ã§ã³å±€ãäœæããããããã®ãšã³ãã£ãã£ã®äœæ¥ããªã³ã¯ãããŸãã ãããã Spannerãä»ã®å€ãã®ã·ã¹ãã ã®ä»çµã¿ã§ãã ãããã£ãŠãã¹ã±ãŒã©ããªãã£ãšããã©ãŒãã³ã¹ãå®çŸãããŸãã
ç¥è©±7ïŒAPã·ã¹ãã ã¯æ¡åŒµæ§ãé«ããã䜿ãããã
APãæèŒããã·ã¹ãã ã§ã¯ãã¹ã±ãŒãªã³ã°ã容æã«ãªããŸãããçè«äžã®ã¿ã§ãã çŸå®ã«ã¯ããšã«ãããããçšåºŠãäžè²«æ§ã®åé¡ã解決ããå¿
èŠããããŸãã ãã®ãããªã·ã¹ãã ã«åºã¥ããŠã¯ã©ã€ã¢ã³ãã³ãŒããèšè¿°ããããšã¯éåžžã«ç°¡åãªã¿ã¹ã¯ã§ãããæã«ã¯éæã§ããªãããšããããããšãå®è·µã¯ç€ºããŠããŸãã ãã®çç±ã¯ãã·ã¹ãã ãããŒã¿ã®äžè²«ããä¿åã®ããã®åºæ¬çãªä¿èšŒãæäŸããªãå Žåããã®åŸã®åŠçã¯éåžžã«é
åçãªã·ã£ã¬ãŒãã«å€ãããŸãïŒæäœãé©çšãããŸãããïŒ ãŠãŒã¶ãŒã«è¡šç€ºãããŸããïŒ åœŒãã¯äœãèŠãŸããïŒ ããŒã¿ã®äžè²«ããã¹ã©ã€ã¹ãååŸã§ããŸããïŒ ç°ãªãã¯ã©ã€ã¢ã³ãã¯åãããŒã¿ã»ãããèŠãã§ããããïŒ ãªã©
ã€ãŸã ãã®ãããªã·ã¹ãã ã®äœæã¯æ¯èŒçåçŽã§ããããã®äœ¿çšã®è€éãã¯äœåã«ããªããŸãã
èšäºã®è§£æ
ããã§ã¯ãèšäºSpannerãTrueTimeïŒThe CAP Theoremã®åæãéå§ããŸãã æåããå§ããŸãããïŒ
CAPå®ç[Bre12]ã¯ã次ã®3ã€ã®æãŸããç¹æ§ã®ãã¡2ã€ããæã€ããšãã§ããªããšè¿°ã¹ãŠããŸãã
- CïŒäžè²«æ§ããã®è°è«ã®ã·ãªã¢ã©ã€ãºå¯èœæ§ãšèããããšãã§ããŸãã
- AïŒèªã¿åããšæŽæ°ã®äž¡æ¹ã§100ïŒ
ã®å¯çšæ§ã
- PïŒãããã¯ãŒã¯ããŒãã£ã·ã§ã³ã«å¯Ÿããèæ§ã
æåã«æ³šæããå¿
èŠãããã®ã¯ã2012幎5æä»ãã®ã12幎åŸã®CAPïŒãã«ãŒã«ãã®å€æŽããšããã¿ã€ãã«ã®[Bre12]ãªã³ã¯ã§ãã å
ã®èšäºãžã®ãªã³ã¯ãéžæããªãã£ãçç±ã¯äžæã§ãã ããã«ããã®èšäºã¯CAPå®çã«é¢ããè°è«ã§ãããå®çèªäœã®çµè«ã«é¢ãããã®ã§ã¯ãããŸããã
ãã§ã«èª¬æããCãAãPã®æåã«ã€ããŠã¯ããããŸããã 次ïŒ
ããŒãã£ã·ã§ã³ãé¿ããããªããšèãããšãåæ£ã·ã¹ãã ã¯äžè²«æ§ïŒAPïŒãŸãã¯å¯çšæ§ïŒCPïŒã®ããããã倱ãããã«æºåããå¿
èŠããããŸãã
æåã®éšåã¯ãç§ãã¡ã®è°è«ã®æ çµã¿ã§ã¯éåžžã«çã«ããªã£ãŠããŸãããAPãšCPã®åŸãå¥åŠãªããšãç¶ããŸã çªç¶ãã®éžæãããããªãããšãå€æããŸããã ãªããã®ãããªéžæãããããªãã®ãã«ã€ããŠã¯ãèšäºã«ã¯æžãããŠããŸããã ãããããã®åŸãæ£ããèšèãæžãããŠããŸãïŒ
å®éã®å®çã¯çŽ100ïŒ
ã®å¯çšæ§ã§ãããããã§ã®èå³æ·±ãè°è«ã¯çŸå®çãªé«å¯çšæ§ã«äŒŽããã¬ãŒããªãã«ã€ããŠã§ãã
ããã§ãããŠãSpannerã¯å¯çšæ§ã99.9 ...ïŒ
ã®CPã·ã¹ãã ã§ãããšèšã£ãŠãããã«çµæ¢ç¬Šãæã€ããšãã§ããããã«æããŸãã ãããããããèè
ã¯ç¶ããŠã圌ã¯ãµãã¿ã€ãã«ãæžããŸãïŒ
Spannerã¯ãäžè²«æ§ãããå©çšå¯èœã§ãããšäž»åŒµããŠããŸãã
Spannerã¯ãäžè²«æ§ãšå¯çšæ§ãé«ããšäž»åŒµããŠããŸããããã¯ãããŒãã£ã·ã§ã³ããªãããšãæå³ãããã®ããå€ãã¯æççã§ãã
äžã§ç€ºããããã«ãããããé«å¯çšæ§ã¯Aãæå³ãããã®ã§ã¯ãããŸãããããã«ãPãååšããªãããšãæå³ãããã®ã§ã¯ãããŸããã ãšã©ãŒã¡ãã»ãŒãžããå€ãã®é¢çœãå€æãæšæž¬ãããŸãã ãŠãŒã¶ãŒã¯åèªããPããŸã£ããå¿
èŠãšããªããããèè
ã¯ã·ã¹ãã ãCãšAã«åæã«ãããã®ã§ãã æ°ããæŠå¿µã ã€ãŸãCAãå°å
¥ãããŸããã äœè
ã¯æŠå¿µãããããå®çŸ©ãªãã«æ°ããæŠå¿µãçºæãå§ããããã§ãã å€ããã®ã¯ãã®ãããªçŽ æŽãããã·ã¹ãã ã説æããŠããŸããã§ããã
ç¶ããèªãïŒ
Spannerã®å€æ°ã®å
éšãŠãŒã¶ãŒã«åºã¥ããŠãSpannerã®å¯çšæ§ãé«ããšæ³å®ããŠããããšãããããŸãã
ãã¬ãŒãºèªäœã¯çŽ æŽãããã§ãã å
éšãŠãŒã¶ãŒããéåžžã«ã¢ã¯ã»ã¹ãããããšæ³å®ããŠããããšèšããšãããããã·ã¹ãã èªäœã«ã€ããŠäœããããã«ããããŸãã ãŠãŒã¶ãŒããã¯ããå¯çšæ§ãé«ãããšèšã£ãŠããã®å Žã§åœŒããæ³å®ããŠããããšã«ã€ããŠè©±ããšããã§ãããã
以äžã¯é
åçã§ãïŒ
Spannerã®åæ¢ã®äž»ãªåå ãããŒãã£ã·ã§ã³ã§ã¯ãªãå ŽåãCAã¯ããæå³ã§ããæ£ç¢ºã§ãã
ã€ãŸã ãããã¯ãŒã¯æ¥ç¶ã®éåã«é¢ä¿ããªãé害ãããå Žåããã®ãããªã·ã¹ãã ã¯ããæå³ã§ããæ£ç¢ºã«ïŒïŒïŒCAãšåŒã°ããã¹ãã§ãã ã€ãŸã ä»ã®é害ã®ç¢ºçãæ¥ç¶æ§ã®æ
éããã倧ããå ŽåãPã¯ããã§ã¯ãããŸããã ãã®æå³ã§ããã®ãã¬ãŒãºãç解ãã䟡å€ã¯ãããŸããïŒ
以äžã¯ãã°ã©ãã§ãµããŒããããä¿¡é Œæ§ã®é«ãã·ã¹ãã ãæ§ç¯ããããŒã±ãã£ã³ã°äžã®èãã§ãã æçµçã«ãCAã®åèªã»ããã®æå³ãæããã«ããå®çŸ©ãå°ãäžã«ãªããŸãã
... CAãå¹æçã«äž»åŒµããã«ã¯ãã·ã¹ãã ãçžå¯Ÿçãªç¢ºçã®ãã®ç¶æ
ã«ããå¿
èŠããããŸãã
- å°ãªããšããå®éã«ã¯éåžžã«é«ãå¯çšæ§ãåããŠããå¿
èŠããããŸãïŒãã®ããããŠãŒã¶ãŒã¯äŸå€ãç¡èŠã§ããŸãïŒã
- ããã¯ããŒãã£ã·ã§ã³ã«é¢ãããã®ã§ãããããããŒãã£ã·ã§ã³ã«ããåæ¢ã®å²åãäœãããå¿
èŠããããŸãã
Spannerã¯äž¡æ¹ãæºãããŸãã
ã€ãŸã ã·ã¹ãã ã¯ä»¥äžãè¡ãå¿
èŠããããŸãã
- å®éã«ã¯é«å¯çšæ§ãããããŠãŒã¶ãŒã¯äŸå€ãç¡èŠã§ããŸãã
- ãããã¯ãŒã¯åé¢ã®å¯èœæ§ã¯ä»ã®åé¡ãããå°ãªãã¯ãã§ãã
: high availability ? 5 ? 6 ? 9? , . " " , , .
, , CAP . , . , . .
. , , , "What happens during a Partition".
:
Spanner reasonably claims to be an âeffectively CAâ system despite operating over a wide area, as it is always consistent and achieves greater than 5 9s availability.
, , â X, X. , ? CAP . . , , , P, 2 , .. . CP â .
Even then outages will occur, in which case Spanner chooses consistency over availability.
CA: , .. , CA. , CA. .
: CAP
, , , . , â .
, . , , , CAP . . .
, , , .
ãããã«
, CAP . , . AP CP.
, , . , . , :
The CAP Theorem, in this light, is simply one example of the fundamental fact that you cannot achieve both safety and liveness in an unreliable distributed system.
ã€ãŸã CAP â , .
, YT