Roman Grebennikovã¯ãåæŖãˇãšãã ãŽæ§į¯ãŽč¤éããĢã¤ããĻčĒŦæããĻããžãã ããã¯ã Highload ++ 2016ãŽãŦããŧãã§ãããŋãĒããããããĢãĄã¯ãã°ãŦããŗããŗããģããŧããŗã§ãã Findifyã§åããĻããžãã ãĒãŗãŠã¤ãŗãšããĸãæ¤į´ĸããžãã ããããäŧ芹ã¯ãããĢã¤ããĻã§ã¯ãããžããã Findifyã§ã¯ãåæŖãˇãšãã ãæąãŖãĻããžãã
åæŖãˇãšãã ã¨ã¯äŊã§ããīŧ

ãšãŠã¤ãããããææã¨æããŋãã¯ITã§ãããããã¨ã§ãããåæŖãˇãšãã ã¯ããžãä¸čŦįã§ã¯ãĒããã¨ã¯æããã§ãã ãžããåæŖãˇãšãã ã¨ã¯äŊãããĒãããŽãããĒįãŋããããŽãââããĒãããŽãŦããŧããåŋ
čĻãĒãŽããįč§Ŗãããã¨ããžãã
ãŠããã§åäŊããäŊãããŽãĸããĒãąãŧãˇã§ãŗãããã¨æŗåããĻãã ããã ãĩãŧããŧå´ã§ããã¨äģŽåŽããžãããé常ãŽãĸããĒãąãŧãˇã§ãŗã¨ã¯į°ãĒããäŊãããŽå
é¨įļæ
ãæãŖãĻããžãã ãã¨ãã°ãã˛ãŧã ãããå ´åãå
é¨įļæ
ã¯å°ããĒįˇãčĩ°ãä¸įãĒãŠã§ãã é
ããæŠãããããĒãã¯æéˇããããĒããŽå
é¨įļæ
ã¯č¨åŧĩããå¤åãã1ã¤ãŽãĩãŧããŧãĢåãžããŽããããžãã

ããŽåįã§ã¯ãããžãŽããŧãããįŠ´ãĢåŧãŖãããŖãĻããžããã
æéˇãå§ããåããĩãŧããŧãĢåãžããĒããĒãŖãå ´åã¯ãäŊããããåŋ
čĻããããžãã
ããã¤ããŽãĒããˇã§ãŗããããžããããåŧˇåãĒãĩãŧããŧãäŊŋį¨ã§ããžããããã§ãĢæéãŽãĩãŧããŧã§äŊæĨããĻããå¯čŊæ§ããããããčĄãæĸãžããŽããšãĢãĒãå¯čŊæ§ããããžãã
æéŠåãããã¨ã¯ã§ããžãããæįĸēãĢãããã¨ã¯ã§ããžãããããšãĻãã¯ãĒãã¯ããĻå éãããŽã¯2åå°éŖã§ãã
ããĒãã¯é常ãĢä¸åŽåŽãĒéãĢįĢã¤ãã¨ãã§ããžã-åæŖãˇãšãã ãäŊæããžãã
ããŽããŠãã¯ã¯ä¸åŽåŽã§æãã§ããäģæĨã芹ããããã¨
ãžããåæŖãˇãšãã ãĢã¤ããĻčĒŦæããžãã å°ããŽæŠå¨ããããéčĻã§ããįįąãåŽå
¨æ§ã¨ã¯äŊããããŽåŽå
¨æ§ãįĩãŋåãããæšæŗãããŧãŋãå¤ąãŖãããå°ãã ãå¤ąããĒãåæŖãˇãšãã ãč¨č¨ãããããŽãĸãããŧããåæŖãˇãšãã ãįĸēčĒãããããŽããŧãĢããšãĻãããŧãŋã§åĒããĻãããããģã¨ããŠããšãĻãåĒããĻããžãã
1ã¤ãŽįčĢã¯éåąãĒãŽã§ãããŽåéĄã¨å°ããŽįˇ´įŋãĢã¤ããĻå°ãã芹ããžãã ããŽãŠããããããäŊŋį¨ããĻãįŦčĒãŽå°čĻæ¨Ąã§ãˇãŗããĢãĒåæŖããŧãŋããŧãšãäŊæããžãã åŽéãĢã¯ããŧãŋããŧãšã§ã¯ãĒããããŧå¤ãšããŦãŧã¸ã§ã¯ãĒããå¤ãšããŦãŧã¸ããããžãã æŦĄãĢãåŊŧåĨŗãããŧãŋã2åäģĨä¸ãįšãĢã˛ãŠãããŧãēã§å¤ąããĒããã¨ãč¨ŧæãããã¨ããžãã
æŦĄã¯ããããã¨ã¨ããĢįããæšæŗãã¨ããå°ããĒå˛åĻã§ããåæŖãˇãšãã ã¯ãŠããé ãã§æŠčŊããããŽã§ãããį§ããĄã¯ãããĢåē§ãŖãĻããã¨æããžãã ãĩãŧããŧã§ããå ´åãããã°ãäēããĢéäŋĄãããĸãã¤ãĢãĸããĒãąãŧãˇã§ãŗã§ããå ´åããããäŊãããŽå
é¨įļæ
ãæãŖãĻããžãã åéã¨ãããšããĄããģãŧã¸ãéäŋĄããĻããå ´åãããĒããåæŖãˇãšãã ãŽä¸é¨ã§ãããä¸čŦįãĒæĄäģļãããããããĢåæãããã¨ããĻããžãã ä¸čŦãĢãåæŖãˇãšãã ã¯ããã¤ããŽé¨åã§æ§æãããã¸ã§ãŧã¯ã§ãããããããŽé¨åã¯äēããĢéäŋĄããžãã ããããé
åģļã¨ã¨ãŠãŧã§éäŋĄããã¨ããäēåŽãĢãããããšãĻãč¤éãĢãĒããžãã ããã¯äēæ
ãé常ãĢč¤éãĢããžãã
äēēįãããŽå°ããĒäžãį§ããĄã¯ãã¤ãĻã¤ãŗãŋãŧãããããĩãŧããŖãŗããWebãšãã¤ããŧãæ¸ããããããį¨ŽéĄãŽį°ãĒãããŧã¸ãããĻãŗããŧãããžããã åŊŧãĢã¯éˇãčǞéĄãããããããĢããšãĻãįŠãŋä¸ããžããã ããĨãŧãĢã¯ããã¤ããŽåēæŦįãĒæäŊããããžãã ããã¯ãããĨãŧããåãåēãããŽãããĨãŧãĢå
ĨããããŽã§ãã ãžããããĨãŧãĢ3įĒįŽãŽæäŊããããžãããããĨãŧãĢãĒãã¸ã§ã¯ããããããŠãããįĸēčĒããåãããŽã2åå
ĨããĒããããĢããžãã

åéĄã¯ãčĄãé常ãĢ大ããããĄãĸãĒãĢåãžããĒããã¨ã§ããã į§ããĄã¯čããžããīŧäŊããããĒãĢč¤éãĒãŽã§ããīŧ į§ããĄã¯čŗĸããHighLoadãĢčĄããžãã ããããŖãĻãããŽããĨãŧãį´°ããåå˛ããĻãåĨãŽãĩãŧããŧãĢããŧãĢããĻãŋãžãããã åãĩãŧããŧã¯įŦčĒãŽããĨãŧãåĻįããžãã ã¯ããããĨãŧããæåãŽčĻį´ ãååžã§ããĒãã¨ããæåŗã§ãå°ãæ´åæ§ãå¤ąãããžããããģã¨ããŠæåãŽčĻį´ ãååžã§ããžãã ãˇãŖãŧããąãŧãšãé¸ãã§ãããããåãåēããĻãããšãĻãé čĒŋã§ãã ã¤ãžããããĨãŧããååžããå ´åããģã¨ããŠããšãĻãæŖå¸¸ã§ããããã¸ãã¯ã¯ããå°ãč¤éãĢãĒãŖãĻããžãã ããĨãŧãĢå
ĨãããŽãį°Ąåã§ãããŠãŽãˇãŖãŧããå
ĨããããčĒŋãšãĻå
Ĩããžãã ããĨãŧãããããŠãããįĸēčĒããĻãã ãããåéĄããããžããã ã¯ãããã¸ããšãã¸ãã¯ã¯ããå°ãč¤éãĢãĒããžããããå°ãĒãã¨ãéčĻã§ã¯ãĒããĒãŖãĻããããããĢã¯čĄãæĩããĻããĒãããã§ãã
ãŠãŽãããĒåéĄããããžãã
äŊãããŽãããã¯ãŧã¯ã¤ãŗãŋãŠã¯ãˇã§ãŗãčŋŊå ãããŗãŗããŧããŗããåĸããã¨ããˇãšãã ãŽäŋĄé ŧæ§ãäŊä¸ãããã¨ãįč§ŖããĻããžãã äŋĄé ŧæ§ãäŊãã¨ãééããįēįããžãã ãŊãããĻã§ãĸã¨ãââãŧããĻã§ãĸãŽå ´åãããšãĻãæįĸēã§ãã éãäŊŋį¨ããã¨ããŊãããĻã§ãĸãäŊŋį¨ããĻãĩãŧããŧãããæ°ããããŽãĢãããã¨ãã§ããžã-éææĨãĢé
ãŖãĻåąéããĒãã§ãã ããã ãããĻããããã¯ãŧã¯ã§ã¯ãããŽãããĒãã¨ã¯ããĒããããããŠãããããĢéĸäŋãĒãåŖããžãã MicrosoftãĢã¯ãWindows AzureãŽãšã¤ãããŽį¨ŽéĄãĢåēãĨãããããã¯ãŧã¯ããŧããĻã§ãĸéåŽŗįĩąč¨ãĢéĸããåĒããč¨äēããããžãã ããŧãããŠãŗãĩãŧããŧããåš´éãéããĻããĒãįĸēįã¯į´17īŧ
ã§ãã ã¤ãžããæåĻããå ´åãĢäŊãããšãããæäžããĒãã¨ãé
ããæŠããããĒãã¯čǰãč¯ãäēēã丸willãŋããã§ãããã
ãããã¯ãŧã¯ã§įēįããæãä¸čŦįãĒåéĄã¯ãNETSPLITã§ãã ãããã¯ãŧã¯ãååãĢå´ŠåŖããã¨ããããã¯įĩļããå´ŠåŖããããããąããæå¤ąããããžãã ããŽįĩæãããã¯ããŠããŠãĢãĒãããããŠããŠãĢãĒããžããã§ããã
ãããã¯ãŧã¯ãĢåéĄãããå ´åããˇãŖãŧããŖãŗã°ãŽããĨãŧã¯ãŠããĒããžããīŧããĨãŧããäŊããååžããå ´åãããĨãŧããæåãŽčĻį´ ãååžããæēåãã§ããĻããå ´åã¯ãåŠį¨å¯čŊãĒãˇãŖãŧãããååžãããã¨ãã§ããžãã
ããĨãŧãĢãŗãŗããŧããŗããããããŠãããįĸēčĒããåŋ
čĻãããå ´åãäŊŋį¨ã§ããĒããˇãŖãŧããĢį§ģåããåŋ
čĻãããå ´åã¯äŊãã§ããĒãã¨ããäēåŽãĢãããããšãĻãč¤éãĢãĒããžãã
ããããããĨãŧãĢäŊããå
Ĩããåŋ
čĻãããã¨äēæ
ã¯č¤éãĢãĒãããˇãŖãŧãã¯åŠį¨ã§ããžããã ããŽį ´įã¯ãŠããé ããĢãããŽã§ããããįŊŽãå ´æã¯ãããžããã ãããå¤ąããããŠãããĢåģļæããĻããããäŊããããäģĨå¤ãĢäŊãæŽãŖãĻããžããã ãˇãšãã ãŽč¨č¨ãĢå¤ąæãå
ĨããĒããŖãããã§ãã

ããããã¯åįã§æ˛ããã åŊŧã¯ãˇãšãã ãŽč¨č¨ãĢå¤ąæãããĒããŖãããã§ãã į§ããĄã¯čŗĸããé常ãĢčŗĸããããŽåéĄãĢ寞åĻãããããŽå¤ããŽį°ãĒã鏿čĸãčãåēããäģãŽåįļããããã¨ã¯įĸēãã§ãã
æŦĄãĢãCAPåŽįããˇãŧãŗãĢ襨į¤ēãããžããCAPåŽįã¯ãåæŖãˇãšãã ãŽč¨č¨ãŽåēį¤ã§ãã ããã¯æŖåŧãĢã¯åŽįã§ã¯ãĒããįĩé¨åã§ããåŽįã§ãããčǰããåŽįã¨åŧãã§ããžãã
æŦĄãŽãããĢčãããžãã åæŖãˇãšãã ãäŊæãã3ã¤ãŽæąããããžãã ããã¯ãæ´åæ§ãå¯į¨æ§ããããŗãããã¯ãŧã¯ãŽåéĄãĢ寞ããčæ§ã§ãã ã¯ã¸ãŠã¯3åšããžããã2åšãé¸ãļãã¨ãã§ããžãã 2ã¤ã ãã§ãĒãããģã¨ããŠ2ã¤ã§ãã ãããĢã¤ããĻã¯åžã§čĒŦæããžãã
é åē-æ´åæ§ããĸã¯ãģãˇããĒããŖãæįļå¯čŊæ§ã¨ã¯äŊã§ããã ããã¯ä¸į¨ŽãŽåŽįã§ãããæŖåŧãĒčĒŦæãåŋ
čĻã§ãã
å¨åēĢįļæŗ
ããã¯å¯į¨æ§ã§ãããįļįļįãĒå¯į¨æ§ãæåŗããžãã ãˇãšãã ã¸ãŽåãĒã¯ã¨ãšããįããĻããããŧãã¸ãŽãˇãšãã ã¸ãŽãĒã¯ã¨ãšãã¯ããšãĻæŖå¸¸ãĢåĻįãããĒããã°ãĒããžããã ã¤ãžãããĒã¯ã¨ãšããŽä¸é¨ãåžã§åģļæããããäŊããããžããããĒããŖããããĢé˛éŗãå´æšãĢåģļæããå ´åãããã¯ä¸č˛Ģæ§ãŽãĒãå¯į¨æ§ã§ãã ããšãĻãŽããŧããčĻæąãĢåŋįããĒãå ´åããžãã¯ããšãĻãŽããŧããããšãĻãŽčĻæąãĢåŋįããĒãå ´åãããã¯CAPåŽįãŽčĻŗįšãããä¸č˛Ģæ§ãŽãĒãå¯į¨æ§ã§ãã
ãããããĒããĢįãããīŧ

ãããå¯å¤å¯į¨æ§ã§ãã
čĒ åŽã
æŦĄãŽé
įŽã¯æ´åæ§ã§ãã æ´åæ§ãŽčĻŗįšãããåæŖãˇãšãã ãĢã¯é常ãĢå¤ããŽį°ãĒããŋã¤ããŽæ´åæ§ãããã¨č¨ããžãã

ããããŽį´50ããããžãã CAPåŽįãĢãããŽã¯ãŠãã§ããīŧ
CAPåŽįã¯æãåŗæ ŧãĒãŋã¤ãã§ãã įˇåŊĸåå¯čŊæ§ãåŧãŗåēãããžããæ´åæ§ãįˇåŊĸåå¯čŊæ§ã ã¨ãĻããˇãŗããĢãĢčãããžãããããŽä¸ãĢã¯å¤§ããĒåŊąéŋããããžãã æäŊAãŽåžãĢæäŊBãéå§ãããå ´åãBã¯AãŽįĩãããžãã¯ããæ°ããįļæ
ã§ãˇãšãã ãčĻãã¯ãã§ãã ã¤ãžããAãåŽäēããã¨ãæŦĄãŽæäŊã§ã¯AãŽåãĢäŊãčĩˇããŖããŽããčĻããã¨ãã§ããžãããããšãĻãčĢįįã§ãč¤éãĒãã¨ã¯äŊããĒãããã§ãã č¨ãæããã¨ãããˇãŧãąãŗãˇãŖãĢæäŊãĢã¯ä¸č˛ĢããåąĨæ´ããããžããã
æŦĄãĢãããããŽãšããŧãĒãŧãĢã¤ããĻčŠŗããčĒŦæããžãã

äŊãããŽãŦã¸ãšãŋãããã¨æŗåããĻãã ããã ããã¯į§ããĄãčĒããã¨ãã§ããããŽã§ãããäģĨåãĢãããĢæ¸ããããŽã ãã§ãã 夿°ãŽãããŽãã ä¸ã¤ãŽįŠ´ã ãĒãŧããŧã¨ãŠã¤ãŋãŧã¯1äēēã§ãã ããã§ããšãĻãčĒãŋæ¸ãããžãããč¤éãĒãã¨ã¯äŊããããžããã čĒč
ã¨äŊåŽļã褿°ããã¨ããĻãããããģãŠč¤éãĒãã¨ã¯ãããžããã

ãããããšãŠã¤ãããåŽéãŽä¸įãĢį§ģåããã¨ãããĢããããã¯ãŧã¯ãŽé
åģļããããããããŽåŗã¯å°ãį°ãĒãŖãĻčĻããžãã æŖįĸēãĒææã¯ããããžããã é˛éŗã¯wã¨w1ãŽéã§čĄãããæŖįĸēãĢãŠãã§čĩˇããŖããã¯ããããžããã æ¸ŦåŽå¤ãåãã§ãã ãã¨ãã°ãæ´å˛ãŽčĻŗįšãããããŽãããĒåį´ãĒ3ã¤ãŽãšããŧãĒãŧãæ¸ãįãããã¨ãã§ããžãã

æåãĢaãčĒãã§ãããbãæ¸ããĻãããbãčĒãŋãžããåįãŽãããĢã¯ãŖããã¨ã ååã¨ããĻãåĨãŽãšããŧãĒãŧãå¯čŊã§ããaãčĒãã ã¨ããaãããä¸åēĻčĒãã§ãããbãæ¸ããžããīŧåįãŽãããĢããšãĻãããå ´åīŧã
įŦŦä¸čŠąã aãčĒãã åžãįĒįļbãčĒãã§ããbãæ¸ããå ´åãããã¯ããã¨įįžããžãã įˇåŊĸåå¯čŊæ§ãŽčĻŗįšãããããŽãããĒãšããŧãĒãŧã¯įˇåŊĸåã§ããžããããCAPåŽįã§ã¯ãįįžããĒããšããŧãĒãŧãå°ãĒãã¨ã1ã¤åå¨ããåŋ
čĻããããžãã ããŽåžããˇãšãã ã¯įˇåŊĸåå¯čŊã§ãã ããã¤ããããããããžããã
æįļå¯čŊæ§
æåžãŽé
įŽã¯ãæåPã§ããããŧããŖãˇã§ãŗãŽč¨ąåŽšį¯å˛ã¯ãããˇãĸčĒã§ã¯ããããã¯ãŧã¯ãŽåæĸãĢ寞ããæĩæãã¨č¨ããžãã æŦĄãŽãããĢãĒããžãã

æ°å°ãŽãĩãŧããŧããããæåæŠãæŠæãããĢéčģĸããããããŽéãŽé
įˇãåæããã¨æŗåããĻãã ããã ã¯ãŠãšãŋãŧãååãĢããŠããŠãĢãĒãŖãå ´åã2ã¤ãŽãĒããˇã§ãŗããããžãã æåãŽæšæŗīŧ大ããæšãŽååãįåããå°ããæšãčąčŊããžãã å°ããæšãčąčŊããĻããããããĸã¯ãģãˇããĒããŖãå¤ąãããĻããžãã ãããã大ããĒããŽã¯įããĻããžãã ããããåŊŧãã¯åŽå
¨æ§ãå¤ąããžããã§ããã 严æšã¨ãæŠčŊããžããį§ããĄã¯ããĄããĄã§č¨é˛ãåãå
ĨããããšãĻãåãå
ĨããžããããšãĻã¯åéĄãããžããã ããããĻã¯ãããĻãã¯ã¤ã¤ãã¯ãã äģããããã¨ã1ã¤ãŽãˇãšãã ãããã2ã¤ãŽãˇãšãã ãããããããã¯čĒåããĄãŽįæ´ģãéããã¨ãããããžãã
CAPåŽįãŽčĻŗįšããããˇãšãã ãŽč¨č¨ãĢã¯3ã¤ãŽãĸãããŧãããããžãã ãããã¯ã3ã¤ãŽ2ã¤ãŽįĩãŋåãããĢäžåããCP / AP / ACãˇãšãã ã§ãã
ACãˇãšãã ãĢåéĄããããžãã 䏿šã§ãåŊŧãã¯į§ããĄãéĢå¯į¨æ§ã¨æ´åæ§ãæãŖãĻãããã¨ãäŋč¨ŧããžãã ãããã¯ãŧã¯ãåŖãããžã§ãããšãĻãã¯ãŧãĢã§ãã ãžããããã¯é ģįšãĢįēįãããããåŽéãĢã¯ACãˇãšãã ãäŊŋį¨ã§ããžãããACãˇãšãã ãäŊŋį¨ããã¨ããĢįããåĻĨåįšãįč§ŖããĻããå ´åãĢéããžãã
įžåŽãŽä¸įãĢã¯2ã¤ãŽæšæŗããããžãã æ´åæ§ããˇããããĻãĸã¯ãģãˇããĒããŖãå¤ąããããĸã¯ãģãˇããĒããŖãĢãˇããããĻãæ´åæ§ãå¤ąããã¨ãã§ããžãã 3įĒįŽã¯ãããžããã
åŽéãĢã¯ãããžããžãĒCP / AP / ACãˇãšãã ãåŽčŖ
ããå¤ããŽãĸãĢã´ãĒãēã ããããžãã 2ãã§ãŧãēãŗããããPaxosãã¯ãŠãŧãŠã ãããŗããŽäģãŽããã ãã´ãˇãããããŗããŽäģãŽãĸãĢã´ãĒãēã ããŧãã
æŦĄãĢãããããŽããã¤ããåŽčŖ
ããĻãäŊãčĩˇããããįĸēčĒããžãã ããĒãã¯č¨ããã¨ãã§ããžãīŧã10åãįĩéãããį§ããĄãŽé ã¯ãã§ãĢįįēããį§ããĄã¯ãĄãããŠå°įããžãããã ããããŖãĻãį§ããĄã¯åŽéãĢäŊãããããã¨ããžãã
åŽéãĢčĄããã¨
åį´ãĒããšãŋãŧ/ãšãŦãŧãåæŖãˇãšãã ãäŊæããžãã ããŽãããĢãScalaãDockerãäŊŋį¨ããããšãĻãããã¯ããžãã éåæ/åæãŦããĒãąãŧãˇã§ãŗãåããããšãŋãŧ/ãšãŦãŧãåæŖãˇãšãã ãã§ããžãã æŦĄãĢãJepsenãååžããåŽéãĢããšãĻãæŖãããééãŖãĻããããį¤ēããžãã JepsenãåŽčĄããåžãįĩæãčĒŦæããĻãŋãžãããã ã¸ã§ããģãŗã¨ã¯äŊã§ããīŧ å°ãåžã§čĒŦæããžãããããããããĒããŽå¤ãã¯čãããã¨ãããã§ãããããįŽã§čĻããã¨ã¯ãããžããã
ããšãŋãŧãšãŦãŧã ä¸čŦįãĢãããã¯åēæŦįãĒããŽãŽãããĢčĻããžãã ã¯ãŠã¤ãĸãŗãã¯ãããšãŋãŧãĢæ¸ãčžŧãŋčĻæąãéäŋĄããžãã ããšãŋãŧã¯ããŖãšã¯ãĢæ¸ãčžŧãŋãžãã ããšãŋãŧã¯ãåæãžãã¯éåæã§ããšãĻããšãŦãŧããĢåæŖããžãã ãŦãŗãŧãã¨ããĻæŖå¨ããåããžãã¯åžãĢãã¯ãŠã¤ãĸãŗããĢåæįãžãã¯éåæįãĢåŋįããžãã
CAPãŽåŽįãŽčĻŗįšãããįŠäēããŠãŽãããĢæ´åæ§ããĸã¯ãģãšå¯čŊæ§ãĒãŠãåããĻããããįč§Ŗãããã¨ããžãã
äŊãčŠĻããĻãŋãžãããã
ãããĢã¯å°ããĒã¯ãŧã¯ããŧãšããããžããŽã§ããĢãŠãĒãąã§ããŖã¨æ¸ããžãã äģãŽãĩãŧããŧã¨éŖæēãããŽãĢåŊšįĢã¤2ã¤ãŽæŠčŊããããžãã ã¤ãžããåæŖãˇãšãã ãŽããŧãéã§éäŋĄããæãį°ĄåãĒæšæŗã¨ããĻHTTPãäŊŋį¨ããžãã ãŠãããĻīŧ
2ã¤ãŽæŠčŊããããžãã ããŽããŧããĢããããŽããŧãŋãæ¸ãčžŧãŋãžãīŧ

ããŽããŧãããããŧãŋãčĒãŋåãããããããšãĻéåæįãĢåŽčĄããåĨãŽéĸæ°īŧ

ãžããResponseãč§ŖæããäžŋåŠãĒæŠčŊã åŋįãåãåããæååãčŋããžãã

č¤éãĒãã¨ã¯äŊããããžããã
ãžããåæŖãˇãšãã ãŽåį´ãĒãĩãŧããŧãäŊæããžãã

ãžãããããĢåŽŋéĄããããžãã ãˇãšãã å
ãŽããŧãŋãããã§ã¯åŽéãŽããŧãŋããŧãšã§ã¯ãĒããŠã¤ãããĸããããããįĩąč¨å
¨äŊã1ã¤ãŽå¤æ°ãĢæ ŧį´ããžãã

ããããŖãĻãåį´ãĢæååãäŋåããč¤čŖŊãĒãŠãčĄããžãã ããžããžãĒäžŋåŠãĒã¸ã§ãŧã¯ããããžãããã¨ãã°ã夿°į°åĸHOSTNAMEãããŽčĒãŋåããčŋéŖãŽããŧããĒãŠã§ãã

ããã§ã¯ã2ã¤ãŽæŠčŊãŽããŠã°ãäŊæããžãã

åæŖãˇãšãã ãããŽčĒãŋåãã¨åæŖãˇãšãã ãããŽæ¸ãčžŧãŋã ããĄãããäģã¯åŽčŖ
ããžããããå
ãĢé˛ãŋãžãã
ããã§ããŠãŠã¤ãĢãčĩˇåããžãã

ããšãĻãé常ãĢį°Ąåã§ãã ãžã åŽčŖ
ãããĻããĒããĢãŧãéĸæ°ããããžãããããã¯äŊããããžãã äŊŋį¨ããæŽããŽãĢãŧããĢã¤ããĻčĒŦæããžãã

ãããããšãĻ8000įĒįŽãŽããŧãã§ååžããžãã

ãŠãŽãããĒãĢãŧãããããžããīŧ 2ã¤ãŽãĢãŧãããããžãã æåã¯dbã§ãã

ããŽãĢãŧãã¯ãããŧãŋããŧãšã¯ãŠã¤ãĸãŗãåãã§ãã į§ããĄã¯åŊŧã¨ååããĻãããåŊŧåĨŗã¯å
é¨ã§äŊããããĻããžãã
ãããĢįãããããžã åŽčŖ
ããĻããĒãéæŗãŽéĸæ°readãåŧãŗåēããžãã

ãããĢããŧãŋãæį¨ŋããå ´åãæ¸ãčžŧãŋéĸæ°ãåŧãŗåēããžãã č¤éãĒãã¨ã¯äŊããĒãããã§ãã

ãããĢå ããĻãããŧãĢãĢã¨åŧã°ããåĨãŽãĢãŧãããããžãã

ããã¯į§ããĄãŽããã§ã¯ãĒããåæŖãˇãšãã ãŽãĄãŗããŧã§ããį°ãĒãããŧããäēããĢéäŋĄã§ãããããĢäŊãããžããã äģãŽäēēã¯ãããĢæ¸ãããããŽãčĒããã¨ãã§ããžããã
ãããĢå°éãããããã¸ãã¯å¤æ°å¤ãčĒãŋåããžãã

ãããĢæį¨ŋããå ´åããããĢæį¨ŋããå
厚ãããŽå¤æ°ãĢæ¸ãčžŧãŋãžãã

č¤éãĒãã¨ã¯äŊããããžããã Scalaããå°ããĒčŗãįįēãããããããžãããã大ä¸å¤Ģã§ãã
ãĩãŧããŧãäŊæããžããã MasterSlaveãŽãã¸ãã¯ãäŊæããžãã æŦĄãĢãMasterSlaveãåŽčŖ
ããåĨãŽã¯ãŠãšãäŊæããžãã åŽéãéåæMasterSlaveãããŽčĒãŋåãã¯ããããĢãã夿°ãĢæ¸ãčžŧãžããããŽãŽããŧãĢãĢčĒãŋåããĢãããžããã

é˛éŗã¯ããå°ãč¤éã§ãã

į§ããĄã¯æåãĢčĒåčĒčēĢãĢæį´ãæ¸ããžãã

æŦĄãĢãææããĻããããšãĻãŽãšãŦãŧããčĒŋãšãĻãããšãĻãŽãšãŦãŧããĢæ¸ãčžŧãŋãžãã

ãã ããããŽéĸæ°ãĢã¯æŠčŊããããFutureãčŋããžãã

ããã§ã¯ããšãŦãŧãã¸ãŽããšãĻãŽæ¸ãčžŧãŋčĻæąãéåæãĢãŧãããã¯ãŠã¤ãĸãŗããĢæŦĄãŽãããĢč¨ããžãããããšãĻã¯åéĄãããžãããč¨é˛ããžããããããĢå
ãĢé˛ããã¨ãã§ããžããã čŊã¨ãįŠ´ãäŧ´ãå¯čŊæ§ãŽããå
¸åįãĒéåæãŦããĒãąãŧãˇã§ãŗã¯ãäģã§ã¯ããšãĻčĻããã¨ãã§ããžãã
ãããããšãĻãŗãŗãã¤ãĢããĻãŋãžãããã ããã¯Scalaã§ããåŊŧåĨŗã¯éˇãéããŖãĻããžãã ä¸čŦãĢããŗãŗãã¤ãĢããåŋ
čĻãããã¨ãĒããŧãĩãĢããžããã ãŗãŗãã¤ãĢæ¸ãŋã
æŦĄãĢãããã¨
æ¸ããžããããããšãĻãåŽčĄããåŋ
čĻãããããŠãããããã1å°ãããžãã ããããį§ããĄã¯åæŖãˇãšãã ãäŊãŖãĻããžãã åä¸ããŧããŽåæŖãˇãšãã ã¯ãåŽå
¨ãĢåæŖããããˇãšãã ã§ã¯ãããžããã ããããŖãĻãDockerãäŊŋį¨ããžãã

Dockerã¯ãĸããĒãąãŧãˇã§ãŗããŗãŗããåãããããŽãˇãšãã ã§ãããããããčǰããčãããã¨ãããã§ãããã ããšãĻãæŦįĒį°åĸã§äŊŋį¨ãããĻããã¨ã¯éããžããã äŊŋį¨ããĻãŋãžãã ããã¯ãããšãĻãį°Ąį´ åãããããŽčģŊãäģŽæŗåãˇãšãã ã§ãã DockerãĢã¯čąå¯ãĒã¨ãŗãˇãšãã ããããããŽã¨ãŗãˇãšãã ãŽããšãĻãäŊŋį¨ããããã§ã¯ãããžããã ãã ãã1ã¤ãŽãŗãŗãããŧã ãã§ãĒããã°ãĢãŧããä¸åēĻãĢčĩˇåããåŋ
čĻããããããDocker ComposeãäŊŋį¨ããĻããããä¸åēĻãĢããŧãĢããã¯ããžãã
åį´ãĒDockerfileããããžãããããã¯é常ãĢåį´ã§ã¯ãããžããã

æŦĄãĢãJavaãã¤ãŗãšããŧãĢããDockerfileãSSHããããˇãĨããžãã ãĒãåŋ
čĻãĒãŽãå°ããĒãã§ãã ããã ãĸããĒãąãŧãˇã§ãŗãããšãĻãčĩˇåããžãã
ãããĻã5ã¤ãŽããŧãããšãĻãč¨čŋ°ããComposeããĄã¤ãĢããããžãã

ãããĢããã¤ããŽããŧããŽčĒŦæããããžãã äģããįĩąåãčŠĻãŋãžãã ããŽãããŽãšã¯ãĒããããããžãã

åąéä¸ãĢč˛ã夿´ããžãã

ããã§ãDockerãŗãŗãããäŊæãããžãã ããã§čĩˇåããžãã 5ã¤ãŽããŧãããšãĻãčĩˇåããžããã

äģãį§ããĄã¯åæŖãˇãšãã ãįããĻãããã¨ãæģæãããŽãåž
ãŖãĻããžãã å°ãæéãããããžããããã¯Javaã§ãã MasterSlaveãčĩˇåããã¨č¨ãŖãĻããžãã

ãããĢå ããĻãããŽåæŖãˇãšãã ããäŊããčĒãŋåããã¨ãã§ãããˇãŗããĢãĒãšã¯ãĒãããããšãĻãããžãã
ããŧãn1ãĢããããŽãčĻãĻãŋãžãããã

ãããĢ0ãæ¸ãčžŧãžããžãã
čǰãããšãŋãŧã§ãããčǰããšãŦãŧãã§ããããĢ寞ããäŋčˇããĒããŖããŽã§ãn1ã¯å¸¸ãĢããšãŋãŧã§ããã¨ããäŋĄåŋĩãæãŖãĻããžãã ããšãĻãåį´åãããããĢã常ãĢæ¸ãčžŧãŋãžãã
ããŽããšãŋãŧã§äŊããæ¸ããĻãŋãžãããã
n1 1ãįŊŽããĻãããããããĢč¨é˛ãããžããã ããã§ãã°ãĢããããŽãčĻãĻãŋãžãããã

ãããĢãŦãŗãŧããĢå°ããĒããŽããããããšãĻãŽãšãŦãŧããĢ寞ããĻããŽãŦãŗãŧããåąéããžããããããĢč¨é˛ãããžããã

ããŧãn3ãĢį§ģåããĻããããĢããããŽãįĸēčĒãããã¨ãã§ããžãã

æ¸ãįãããˇãŗã°ãĢããããžãã
į§ããĄã¯ããŧããšãåžããã¨ãã§ããžããį§ããĄã¯čãŽä¸ãĢåæŖãˇãšãã ãæ¸ããžãããããã¯ããžããããžãã ããããããã¯ããžããããžããã
äģãį§ããĄã¯åŊŧåĨŗãį
æ°ãĢãããã¨ããžãã åŊŧåĨŗãį
æ°ãĢãããããĢãJepsenã¨åŧã°ããããŽãããĒããŦãŧã ã¯ãŧã¯ãäŊŋį¨ããžãã Jepsenã¯ãåæŖãˇãšãã ãããšããããããŽæåãŽããŦãŧã ã¯ãŧã¯ã§ããã1ã¤åžŽåĻãĒįšããããžããClojureã§æ¸ãããĻããžãã Clojureã¯įĨããĒãLispã§ãã ããã¯ãæĸåãŽããŧãŋããŧãšãããĨãŧãĒãŠãŽæĸčŖŊãŽããšããŽãģããã§ãã ãã¤ã§ãčĒåã§æ¸ããã¨ãã§ããžãã
ãããĢãã¨ããžããã¯ãĒããŽãé¤ããããããããšãĻãŽããŧãŋããŧãšã§ãčĻã¤ããŖãåéĄãĢéĸããč¨äēããããããããžãããããããZooKeeperã¨RethinkDBã ãããããååžã§ããžããã§ãããåŊŧãã¯ãããæãĢå
ĨããããäģãŽäēēã¨æ¯ãšãĻå°ãã ããããĒãã¯ãããĢã¤ããĻčĒããã¨ãã§ããžããJepsenãŽäģįĩãŋ
ãããã¯ãŧã¯ã¨ãŠãŧããˇããĨãŦãŧãããåæŖãˇãšãã ã§ãŠãŗãã æäŊãįæããžãã æŦĄãĢãããããŽæäŊãåæŖãˇãšãã ã¨åį
§åäŊãããŽåæŖãˇãšãã ãŽãĸããĢãĢéŠį¨ãããæšæŗããããŗãããĢåéĄãããããŠãããčĒŋãšãžãã
JepsenãåéĄãčĻã¤ããå ´åīŧ

ããã§åčĢãč¨ããããŖãã
JepsenãäŊãããŽåéĄãįēčĻããå ´åãåŊŧã¯ããĒããŽåæŖãˇãšãã ãŽåäžãčĻã¤ããžããã ããããã¸ã§ããģãŗããšãã¯æŦčŗĒįãĢįĸēįčĢįã§ãããããäŊãčĻã¤ãããĒããŖãå ´åãååãĢčĻæ ãããããĒããŖãå¯čŊæ§ããããžãã ããããåŊŧãããæ¤į´ĸããã°ãåŊŧã¯äŊããčĻã¤ããã§ãããã ãã¨ãã°ãRethinkDBãŽå ´åããĒãĒãŧãšãŽį´2éąéåãĢããšããåŽčĄããå¤å°ãĒãã¨ãæŠčŊãããã¨ãč¨ŧæããžããã
ããã§ã¯2éąéããšããåŽčĄããžããã5į§ããããžãã JepsenããšããŽãŋãšã¯ã¯ãããšãŋãŧã¸ãŽæ¸ãčžŧãŋãMasterSlaveãããŽčĒãŋåããįŠäēãŽæ´åæ§ã¨ãããšãŋãŧ/ãšãŦãŧãč¤čŖŊãæŖããč¨čŋ°ããããŠãããįč§Ŗãããã¨ã§ãã
Jepsenããšãã¯ãããã¤ããŽéčĻãĒé¨åã§æ§æãããĻããžãã

åæŖãˇãšãã ãĢéŠį¨ãããŠãŗãã æäŊãįæããã¸ã§ããŦãŧãŋãŧããããžãã åæŖãˇãšãã čĒäŊãããããčĩˇåããžããã Dockerã§ããåŽéãŽéãŽãĩãŧããŧã§ãããžããžããã ãžããåæŖãˇãšãã ãŽåäŊãč¨čŋ°ããåį
§ãĸããĢããããžãã į§ããĄãŽå ´åãããã¯ãŦã¸ãšãŋã§ããããããĢæ¸ããããŽã§ãããããčĒãåŋ
čĻããããžãã č¤éãĒãã¨ã¯äŊããããžããã JepsenãĢã¯ããããå ´åãĢč¨å¤§ãĒæ°ãŽãĸããĢããããžããããŦã¸ãšãŋã¨CheckerãŽãŋãäŊŋį¨ããžããããã¯ããĸããĢã¨ãŽå¯žåŋãĢã¤ããĻåæŖãˇãšãã ãĢéŠį¨ãããæäŊãŽåąĨæ´ãŽå¯žåŋããã§ãã¯ããžãã
åéĄã¯ãJepsenãClojureã§æ¸ãããĻãããããšããClojureã§æ¸ãããåŋ
čĻãããã¨ãããã¨ã§ãã ããããäģãŽäŊããĢæ¸ããã¨ãã§ããã°ãããã¯ã¯ãŧãĢã ããã ããããããŠããĢãããŠããĢã Clojureã¯ã常ãĢãĒãšããããč¨čĒã§ãã ãã¨ãã°ã2ã¤ãŽæ°åãčŋŊå ããå ´åã¯ãæåãŽčĻį´ ãčŋŊå ããããĒãšããäŊæããæŦĄãĢ2ã¤ãŽæ°åãčŋŊå ããĻãæåžãĢ3ã¤ãŽæ°åãååžããžãã

åŧãŗåēãéĸæ°ãdefnã¨ããåĨãŽéĸæ°ãĢč¨åŽããæåãŽåŧæ°ã¯éĸæ°ãŽååãåŧæ°ã¯éĸæ°ãéĸæ°ãŽæŦäŊãŽé ãĢãĒãã¨č¨ããã¨ãã§ããžãã åŊŧåĨŗãããŽãããĢåŧãļã¨ãåŊŧåĨŗã¯ããããŧããã¤ããŧãīŧãã¨č¨ãã§ãããã ããã¯ååŋč
åããŽããŽãããĒClojureãŗãŧãšã§ãã
ããŽClojureãŗãŧãšã¯æŦĄãŽãããĢčĻããã¨č¨ããžãã

ãããĻäģãããã¯ééããĒãåŗå´ãŽããŽãĢãĒããžãã åŽéãã¯ãã ãã ããClojureã¯å°ãå
ˇäŊįã§ãããããããŦãŧã ã§äŊãčĩˇããããå°ãĒãã¨ã大ãžããĢįč§Ŗããã°ååã§ãã
ã ãããã¸ã§ããģãŗã æåãĢãããšããĢã¤ããĻčĒŦæããžãã

ããŽãããã¯ããšã¯ãåˇĻããåŗãä¸ããä¸ãĢčĒããŽã¯æŖãããããžãããããã¯ãLispã§ãããããå
å´ã¨å¤å´ããčĒãæšãč¯ãããã§ãã ããšããŽčĒŦæãčŋãéĸæ°ããããžããããžã åŽčŖ
ããĻããžããã ããŽããšããåŽčĄããåĨãŽéĸæ°ãĢããŽčĒŦæãčŋŊå ããã¨ãããŖãŦã¯ããĒãčŋãããžãã ããŽããŖãŦã¯ããĒã§ãįĩæããŧãäŊŋį¨ããĻäŊãã鏿ããããŽããŖãŦã¯ããĒãĢvalidã¨ããããŧãããããŠãããįĸēčĒããžãã åå¨ããå ´åãããšããĢåæ ŧããžãã Clojureã¯ããŽãããĢčĒãŋãžãã æåãĢčŗãį ´åŖããåŋ
čĻããããžãããããšãĻãæãããĢãĒããžãã
æŦĄãĢãããšããĢã¤ããĻčĒŦæããžãã

ãžããããšãã¯åŧæ°ãŽãĒãéĸæ°ã§ãã åŊŧåĨŗã¯åĨãŽããšããæĄåŧĩããžãããããšãã¯ãžãŖããčĄããããããã¤ããŽããšããčŋŊå ãããžãã ãã¨ãã°ãJepsenã¯HTTPãĢã¤ããĻäŊãįĨããĒããããããŧãŋããŧãšã¨ãŽéäŋĄãĢäŊŋį¨ããã¯ãŠã¤ãĸãŗããŽååã ãã§ããĢãŧããžã äŊæããĻããžããããäŊæããžãã åæŖãˇãšãã ãŽæ¨æēã¨ããĻäŊŋį¨ãããĸããĢã ã¸ã§ããŦãŧãŋãŧã¯ããŠãŗãã ãĒčĒãŋåããããŗæ¸ãčžŧãŋæäŊãčĄããããããŽéãĢ10ããĒį§ãŽé
åģļãæŋå
Ĩããã¯ãŠã¤ãĸãŗãã§ããããéå§ãã5į§éããšãĻéå§ããžãã ãããĢãSSHã§ãŽäŊæĨãŽãããĢãããžãã
æŦĄãĢãčĒãŋåãã¨æ¸ãčžŧãŋãĢã¤ããĻčĒŦæããžãã ããããæŠčŊã§ãã ããã¯Clojureã§ãããããšãĻãŽæŠčŊããããäģãĢã¯äŊããããžããã

ã¯ãŠã¤ãĸãŗããĢã¤ããĻãčĒŦæããžãããæåã¯HTTPã¯ãŠã¤ãĸãŗãã§ãã

ãããĢã¯ãHTTPã¸ãŽæ¸ãčžŧãŋãHTTPã§ãŽčĒãŋåããŽãããŽããã¤ããŽéĸæ°ããããžãã ãããããšãĻčĄãããæšæŗãĢã¤ããĻã¯čĒŦæããžããã ãããåŽéãĢã¯ã200ãčŋãããå ´åãããšãĻã¯åéĄãããžããã 409ãHTTP 409 Conflictīŧé常ãĢäžŋåŠãĒãŗãŧãīŧã§ããå ´åãäŊããééãŖãĻããžãã ããå°ãäŊŋį¨ããžãã
ãããĢãã¯ãŠã¤ãĸãŗããĢã¤ããĻčĒŦæããžãã

ãžããããããč¨čŋ°ããããšããååžããã¯ãŠã¤ãĸãŗãã¨åŧã°ããã¤ãŗãŋãŧãã§ãŧãšãæĄåŧĩããéĸæ°ã 3ã¤ãŽæŠčŊããããžãã čĒåčĒčēĢãčŋããģãããĸããã ã¯ãŠã¤ãĸãŗããåé¤ããåŋ
čĻãŽãĒãåč§Ŗãå
é¨ãĢã¯äŊããããžããã ããŽããšããĢčģĸéããæäŊãéŠį¨ããinvokeã ããã§ã¯5į§ãŽãŋã¤ã ãĸãĻãããããžããã¤ãžãã5į§äģĨå
ãĢåæŖãˇãšãã ãæŠčŊããĒããŖãå ´åãæŠčŊããĒãã¨č¨ããžãã ããŽčĒãŋåããããå ´åãHTTPčĒãŋåããåŽčĄããGETčĻæąãčĄããžãã ãŦãŗãŧããŽå ´åãHTTPæ¸ãčžŧãŋãã¤ãžãPOSTãĒã¯ã¨ãšããčĄããžãã MasterSlaveããããMasterã¯1ã¤ãããĒããããããã§å°ã夿´ããžããMasterã§å¸¸ãĢæ¸ãčžŧãŋãžãã

æåžãĢæŽãŖããĸã¤ãã ã¯Checkerã§ãã Jepsenå
ã§įˇåŊĸåå¯čŊãã§ããĢãŧã¨åŧã°ããããŽãäŊŋį¨ã§ããžãããč¸ãã ãŽã§äŊŋį¨ããžããã

ãŠãããããããŽãåãããžããã ããããŖãĻãį§ã¯čĒåčĒčēĢãæ¸ããžããããčŊãĄãžããã åŽéãåŊŧã¯åãããŽãäŊŋį¨ããžãããæįĩįãĢã¯åŊŧãé常ã¯čŊãĄãįžããįģåãįæãããã¨ããžããã

ãĄãŦããšããäŊæããžãããåŽčĄããĻãŋãžãããã

åæŖãˇãšãã ãããšãããããéå§ãããŽãåž
ãŖãĻããžãã
leinã¯ClojureãŽããŽãããĒããĢããˇãšãã ã§ãã
ããžããžãĒããšããããžããžãĒčĒãŋåã/æ¸ãčžŧãŋãæ¸ãčžŧãŋå§ãããã°ãĢãéæŗãįēįããžã-čĒãŋåã/æ¸ãčžŧãŋããŦããĒãąãŧãˇã§ãŗã æåžãĢãããã¯ãå¤ąæããåããžãã ããã§äŊããåŋããžããã įˇåŊĸåã§ããĒããšããŧãĒãŧãŽãĒãšãããããžãããããã§ã¯æãããĢæˇˇäšąããĻããžãã
ããŽįļæŗãčĻãĻãŋãžãããã

ããšãŋãŧ/ãšãŦãŧãã§éåæãŦããĒãąãŧãˇã§ãŗãčĄãã¨ããšãŦãŧãã¯å¸¸ãĢé
ãããã¨ãčǰããįĨãŖãĻããžãã įˇåŊĸåå¯čŊæ§ãŽčĻŗįšãããšãŦãŧãé
åģļã¨ã¯ãŠãããæåŗã§ããīŧ ã¤ãžããããã§é˛éŗãčĄããããã°ããããĻããé˛éŗãč¤čŖŊãããããã§čĒãŋåããčĄãããžããã ããŽįĩæãčĒããšãã§ã¯ãĒãããŽãčĒãŋãžããã BãčĒãã§ãAãčĒãžãĒããã°ãĒããžããã§ãããã¤ãžããæäŊãįĩäēããã¨æãããæéãĢæģããããããäŊãčĒãã§ãããŽããčĒãŋãžããã ãĒããĒããããšãĻãŽãšãŦãŧãããžã ãŦããĒãąãŧãˇã§ãŗãããŧãĢčŋŊãã¤ããĻããĒãããã§ãã ããããŖãĻããšãŦãŧãã¯å¸¸ãĢããšãŋãŧããé
ããžãã
ããĒãã¯įĸēããĢããã¯åšŧį¨åã ã¨č¨ãã§ãããã大äēēãŽæšæŗã§ããšãĻãããžãããã åæãŦããĒãąãŧãˇã§ãŗãæ¸ããžããããį§ããĄã¯čŗĸãã§ãã éåæã¨ãģãŧåãã§ãåæãŽãŋã§ãã

åæŖãˇãšãã ãĢæ¸ãčžŧã1ã¤ãŽéĸæ°ãååŽįžŠããžãã åŊŧåĨŗã¯äģã§ã¯čŗĸãããæšã§ãããããĻããžããåŊŧåĨŗã¯ããšãĻãŽåĨ´éˇããOKãã¨č¨ãįŦéãåž
ãĄãžãã ããŽæã ãåŊŧåĨŗã¯ãããšãĻãč¨é˛ãããã¨č¨ããžãã åĨ´éˇãŽä¸äēēãåŊŧãã大ä¸å¤Ģãã§ã¯ãĒãã¨č¨ãŖãããããã¯ããŠããĢãčĩˇããŖãĻãį§ããĄã¯ãããĢčĄããĒããã¨ãæåŗããžãã
æŦĄãĢãããŽããšãĻãŽããŠãŠã¤ãĢãåŽčĄããĻãŋãĻãã ããã ãããããããĒãã¯äģãäŊãããŽãģãããĸããããããããšãĻããããģãŠč¯ãããŽã§ã¯ãĒããã¨ãæããã§ãããã 25åãįĩéããã¨ãįˇãããšãĻãããĻãŗããŧãããĻæŠčŊãããŽã§ããŗãŗãã¤ãĢããããžã§åž
ãĄãžãã äģã§ã¯ããšãĻãåéããžããåįãĒč¨čĒã§ã¯ãĒããããšãĻããããĢæŠčŊããå ´åãããã§ã¯ããšãĻãéˇããĻčĻįã§ãã ãããã¤ãããžã§ããšãĻãæ¸ãį´ãããæ¸ãããčããæéããããžãã
ããšãŋãŧ/ãšãŦãŧããŽåæãéå§ãããžããã ããšãĻãããžããããã¨ãæåž
ããĻãJepsenããšããããä¸åēĻåŽčĄããžãããã åæãŦããĒãąãŧãˇã§ãŗãåŽčĄããžããããäŊãããžããããĒããŖããŽã§ãããã ããã¯å§ãžããæ¸ãå§ããžãããããããģãŠéãã¯ãããžããã åŊŧã¯åãŗæ¸ããĻãåãŗčĒãã§ãããã§äŊããčĩˇããŖãĻããã ããŽįĩæãåãŗäŊãæĒããã¨ãčĩˇãããžãã

į§ããĄã¯åãŗå¤ąæããžãããããã¯ãįˇåŊĸåå¯čŊæ§ãŽįšã§įˇåŊĸåã§ããĒãč¨å¤§ãĒæ°ãŽįŠčĒãį§ããĄãĢä¸ããžããã
åéĄã¯äŊã§ããīŧį§ããĄã¯ããšãĻãæŖããããŖãã¨æãŖãã ãŠãããããããããšãĻãã˛ãŠã夿ããžããã

åįã¯ãããšãĻãäģĨåãããããĢæĒåããĻãããã¨ãį¤ēããĻããžãã
ããŽįļæŗãæŗåããĻãã ããã

ããšãŋãŧããŧã1ããããžããæäŊBã¨Cãč¨é˛ãããããĢCãããããããĢč¤čŖŊããžããã HTTPãäģããĻããšãĻãéåæãĢåŽčĄããžãããããã¯ééãŖãĻããå¯čŊæ§ããããžãã æŗ¨2ã§ã¯ãįšåŽãŽé åēã§ãĩã¤ãŗãĸããããžããã ããããããŧã3ã§ã¯ããããã¯å°įĄããĢãĒããžããããčǤãŖãĻããããéäŋĄããžããã éčĒãĒãŠããããã¨ãåŋããĻããžããã ãããã¯éŠį¨ããããšãé åēã§éŠį¨ãããžããã§ããã ããŽįĩæãCãŽäģŖãããĢBãåžãããžããããããã§ã¯ãããäŊã§ãããæįĸēã§ã¯ãããžããã Bãžãã¯CãŽãããããCãčĒãåŋ
čĻããããžããããããŖãĻãããã¯ããŽãããĒįŊåŽŗã§ãã
ããšãŋãŧ/ãšãŦãŧãCAPãŽåŽįã¨æ´åæ§ãŽčĻŗįšãããč¤čŖŊã¯åæč¤čŖŊããŠãããĢäžåããžãã éåæãŽå ´åããšãŦãŧããé
ããããįˇåŊĸåãä¸å¯čŊã§ãããã¨ã¯æããã§ãã åæãŽčĻŗįšãããããã¯ããĒãããŠãã ãæ˛ããŖãĻãããããšãĻãæŖããåŽčŖ
ããããĢäžåããžãã éããããã°ãããã į§ã¨åããĒããããããæĒãã ãĸã¯ãģãˇããĒããŖãŽčĻŗįšããčĻãã¨ãåéĄã¯į§ããĄãŽåĨ´éˇã§ã¯æ¸ããã¨ãã§ãããčĒããã¨ããã§ããĒãã¨ãããã¨ã§ãã éĢå¯į¨æ§ãŽčĻŗįšããã¯ãį§ããĄãĢå¯ããããããšãĻãŽčĻæąãæēãããã¨ã¯ã§ããžããã čĒããã¨ããã§ããžããã ããããŖãĻãåŠį¨ã§ããžããã
ããããŖãĻãCAPåŽįã¯é常ãĢå
ˇäŊįãĒããŽã§ãã åŽįžŠã¯åŗå¯ã§ãããåŽéãŽããŧãŋããŧãšãŽå
厚ã常ãĢčĒŦæããã¨ã¯éããĒããããããŧãŋããŧãšãĢé常ãĢæ
éãĢéŠį¨ããåŋ
čĻããããžãã 1ã¤ãŽãŦã¸ãšãŋãč¨čŋ°ããããã ããšãĻãŽããŠãŗãļã¯ãˇã§ãŗã¨äģãŽæäŊãåããŦã¸ãšãŋãŧãĢæ¸ãããã¨ãã§ããã°ãããã¯č¯ããã¨ã§ãã ããããé常ããã¯éŖããããä¸å¯čŊã§ãã å¯į¨æ§ããã¯ããŽãããĒå¯į¨æ§ã§ãããåž
ãĄæéã¯äŊãč¨ããžããã åæŖãˇãšãã ãŽä¸č˛Ģæ§ãé常ãĢåĒããĻããããčĻæąãĢ1æĨãĢ1ååŋįããå ´åãæŦįĒį°åĸã§äŊŋį¨ãããã¨ãé常ãĢå°éŖã§ãã CAPåŽįã§ã¯čæ
ŽãããĒãããžããžãĒåŽį¨įãĒå´éĸããããžãã åãããŧããŖãˇã§ãŗããąãããŽæå¤ąãã¤ãžããä¸åŽåŽãĒãããã¯ãŧã¯ããŧããŖãˇã§ãŗãããã夿°ãããå ´åã5į§ãã¨ãĢããã¤ããŽããąãããå¤ąãããžãã
ããããŖãĻãåäēēįãĒįĩé¨ãĢããã¨ãäēēã
ãčåŧąãĒåŋã§åæŖãˇãšãã ãæ¸ãå§ããã¨ãé
ããæŠããįĨčãįĩæļåããããšãĻãŽæžčæãæ°ããããŗããåããããã¯æ˛įˇåžæãŗãŗãģãŗãĩãšãĸãĢã´ãĒãēã ãŽãããĢčĻããžãã ããšãĻãŽããŧããä¸čŦįãĒįļæ
ãĢåæãããã¨ããããããŽãĸãĢã´ãĒãēã ãæĨĩį̝ãĒå ´åãĢããžãããšããããĻããĒãå ´åããããã¯ãžãã§ããããĒããããåŋé
ããžãã ããããä¸čŦįãĒå ´åãŽãŗãŗãģãŗãĩãšã¯ãéåŽŗãįēįããå ´åãĢäŊãããŽåŊĸã§éåŽŗãäšãåãå¯čŊæ§ãããã¨ããä¸čŦįãĒæĄäģļãĢéĸããåæã§ãã
ããŽãããĒäžīŧ

åæŖãˇãšãã ãĢæ¸ãčžŧãã¯ãŠã¤ãĸãŗããããããããĢã¯7ã¤ãŽããŧãããããžãã ããã§æįĨ¨ããĻããžãã ãģã¨ããŠãŽããŧããããšãĻãæ¸ãįããĻãããã¨ãĢåæããå ´åãããšãĻãæŖå¸¸ã§ãããããĢčĻããžãã čĒæ¸ã§ãåããã¨ã å°æ°ãŽããŧãīŧ1-2-3īŧãčŊãĄãå ´åãããã§åéĄãããžããã ããšãĻãæŖå¸¸ã§ããããããĸã¯ãģãˇããĒããŖãžãã¯æ´åæ§ãå¤ąãŖãĻããžããã 夿°æ´žãčąčŊããå ´åããĸã¯ãģãˇããĒããŖã¯å¤ąãããžããč¨é˛ã§ããĒããĒãŖãããæ´åæ§ã¯ãžã å¤ąãããĻããĒãããã§ãã
čãŽä¸ã§ãŠã¤ãããĸãããžãããã

åŽčļŗæ°ãäŊããã¨ããžãã ã¸ã§ããģãŗãããä¸åēĻååžããĻãååžããããŽãčĒŦæããĻãŋãžãããã
ããã§ã¯ããšãĻãããå°ãč¤éãĢãĒããžãããĒããĒããį§ããĄã¯ãã§ãĢčŗĸãããã§ãã æåãĢãã¯ãŠãŧãŠã ãŽãĩã¤ãēãč¨čŋ°ããéĸæ°ãäŊæããžãã

3ã¤ãŽããŧããŽå ´åããããã¯2ã¤ã5ã¤ãŽããŧããŽå ´åã3ã¤ãĒãŠã§ããããããĒéåæ°ã§ãã
æŦĄãĢããã¸ãã¯ãŽčĒãŋåããããŗæ¸ãčžŧãŋæŠčŊãĢã¤ããĻčĒŦæããžãã

ã¯ãŠãŧãŠã ãäŊŋį¨ããĻåæŖãˇãšãã ããčĒãŋåãå ´åãHTTPãäģããĻããšãĻãŽããŧããĢãããĢããããŽãå°ããžãã

æŦĄãĢãã¯ãŠãŧãŠã ã§æŠčŊããéĸæ°ãåŧãŗåēããžããããã¯æŦĄãŽãããĢč¨čŋ°ããžãã

æåžãĢãæŦĄãŽãããĢååžããåŋ
čĻãããã¨č¨ããžãã

ãŦãŗãŧãã¨ãģãŧåãã ããšãĻãŽããŧããĢæ¸ãčžŧãŋãžããæ¸ãčžŧãžããå
厚ãįĸēčĒããžãã

ã¯ãŠãŧãŠã ãéãžãããŠããīŧ

æŦĄãĢããĻãŧãļãŧãĢ寞ããäŊãããŽåŋįãäŊæããžãã

åŽčļŗæ°ã§ãŠãįããã

ããã¯å°ãæ¨æēįãĒScalaã§ãã ããã§ã¯ãåæŖãˇãšãã ãŽããžããžãĒããŧãããããžããžãĒãĩãŧããŧããåąããä¸éŖãŽåįããããžãã ããã¯ããã¨ãã°0000ãŽãããĢããģã¨ããŠåãĒãčĄãŽãˇãŧãąãŗãšã§ãã

ããããčĒåã§ã°ãĢãŧãåããžãã

ãŠãŽã°ãĢãŧããäŧãé ģåēĻãčĒŋãšãžãīŧ

äēēæ°ã§ä¸Ļãšæŋãīŧ

æãäēēæ°ãŽããåįãåãä¸ããžãã

ããšãĻãæŖããããã§ãã
æŦĄã¯įããåŊĸæããéĸæ°ã§ãīŧ

åŊŧåĨŗã¯ScalaãĢã¤ããĻãé常ãĢčĻį¯įã§ãããäŊãčĩˇããŖãĻãããŽãåŽå
¨ãĢã¯æããã§ã¯ãããžããã
æãäēēæ°ãŽããåįã¨æįĨ¨æ°īŧ

ãããĻãæįĨ¨æ°ãį§ããĄãŽåŽčļŗæ°äģĨä¸ã§ããããããŽåŽčļŗæ°ãĢįããå ´åãããšãĻã大ä¸å¤Ģã§ããį§ããĄã¯æ¸ãįããžããã æŖå¸¸ã§ãããé˛éŗãæåããåŽčļŗæ°ãéãžãŖãã¨č¨ããžãã

äŊããããããŽã§ããããīŧ
äŊããæŖãããĒãå ´åãéæŗãŽHTTP 409 Conflictãč¨ããžãã

äģãį§ããĄã¯ãããããšãĻå°įĄããĢãããã¨ããžãīŧ

ãããĻããį´ããĻãã ããã
ããã§ãéæŗãŽãšã¯ãĒãããããä¸åēĻčŠĻããžãã ããŧãn2ãĢããããŽãčĻãĻãŋãžãããã

äģãããã¯æ˛éģããĻãããããŽãããĒįæŗįãĒãããģãšã ãããģã¨ããŠã åŊŧåĨŗããŋãããããŽãåž
ãŖãĻããžãã ããã¯ãĸãĻãã
ããŧãn2ãĢããããŽãčĻãĻãŋãžãããã

0ããããžããããã§äŊãčĩˇããŖããčĻãĻãŋãžãããã

ããŧãĢãĢčĒãŋåãã5įĨ¨ã§0ãŽčĒãŋåãããããé常ã¯ã¯ãŧãĢã§ãã įãŽåæŖãˇãšãã ã
ãããĢäŊããæ¸ããžãããīŧ

ãããĢå°ããĒããŽãæ¸ããžããã åŊŧåĨŗã¯ãĩã¤ãŗãĸããããžããīŧ

ããã§ã¯ãããŽãĻããããäģãŽããŧããĢåąéããžããã ãããĢã¯ã5įĨ¨ãŽåŽčļŗæ°ããããžãã ããšãĻãããžãããããã§ãã
ã¸ã§ããģãŗãĢæģããžãã ã¯ãŠãŧãŠã ããããããã¯ãŠãŧãŠã ãĢã¯å¤ããŽããšãŋãŧãåĢãããã¨ãã§ããžãã ä¸čŦãĢãåŽčļŗæ°ãŽãããĒããŽã¯ãããžããã
ã¯ãŠã¤ãĸãŗãã§æžčæãåé¤ããžãīŧ

ãããĻãããšãĻãåčĩˇåããĻãæ´åæ§ããšããååēĻåŽčĄããã¨ããĢã¯ãŠãŧãŠã ãĢäŊãčĩˇããããįĸēčĒããžãã ãŗãŧããæĒį¨ããå ´åã¯ãããšãĻãŽåã§ã
ããã¯æ¸ãå§ããžãããå¤ããŽããšãĻãããã§čĩˇããŖãĻããžãã
æåžãĢãããã¯į§ããĄãĢįåŽãåããžããīŧ

ããšãĻãããžãããããã§ãã ããããį§ã¯ãããĢã¤ããĻããĒããĢč¨ãŖããã¸ã§ããģãŗã¯ããšããŽããŽãããĒįĸēįčĢįæ§čŗĒã§ããã ããããŖãĻãããã§ã¯5į§ã§ã¯ãĒã15ããĒãŗãĢããžãã

ãããĻãäŋĄé ŧæ§ãŽãããĢãããŽããšããååēĻåŽčĄããĻãã ããã åŊŧãį§ããĄãĢäģãŽäŊãããããããããããĒãã¨ãã叿ã§ããã°ãŽįēčĻã¯įĸēįįã§ãã é常ãĢčåŗæˇąããĒãŠãã¯ãšãããããģãšã äēåēĻįŽãŽčŠĻãŋã§ããããį§ããĄãŽãããĢäŊããčĻã¤ãããã¨ãæåž
ããžãããã äģãį§ããĄã¯åŽčļŗæ°ããŠããã§ããĒãåŖ°ãä¸ãããã¨ãæåž
ããĻãåŊŧåĨŗãããéˇã15į§éčģĸããĻããžãã ãããģã¨ããŠã čǰããåŊŧãæããĻããããã¨ãæĨŊããŋãĢããĻããžãã ããã¯į§éãĢå¤ąæãåããīŧ

äŊãæåž
ããĻããžãããã ããã§äŊãå¤ąæããžãããīŧ
ããããŽ2ã¤ãŽéĸæ°ãį°å¸¸ãĢčĻãĻãŋãžãããã

ããã§äŊããééãŖãĻããžãã ãžããScalaã§ããããã常ãĢäŊããééãŖãĻããå¯čŊæ§ããããžãã įŦŦäēãĢããã¸ãã¯ãĢäŊãããŽåéĄããããžãã
ããŽä¸éŖãŽã¨ãŗããĒãčĻãĻãŋãžãããã

2ã¤ãŽã¯ãŠã¤ãĸãŗãããããžãã ããã§æäŊAãč¨é˛ããããŧãããOKãã¨č¨ãŖãĻãæ¸ãįããĻããããĢåŽčļŗæ°ãåžãžããã ããããAãč¨é˛ãããã¨ãã¯ãŠã¤ãĸãŗããĢäŧãããžã§ãããã§ã¯ããéĢéãĒã¯ãŠã¤ãĸãŗããåŽčĄãããBãč¨é˛ãããã¨ãã§ããžãããããŧãã¯ã¯ãŠãŧãŠã ãä¸įˇãĢãĒãŖããã¨ãåŊŧãĢäŧããžããã ããŽã¯ãŠã¤ãĸãŗããĢBãč¨é˛ãããã¨ãäŧãããããĢAãč¨é˛ããã¨č¨ããžãããããããäŊããčĒãŋãžãããããã§äŊãčĒãŋãžãããīŧ

æéãįããŽã§ãããã§BãčĒããã¨ããå§ãããžããããã¯ããšãĻįˇåŊĸåå¯čŊã§ã¯ãããžããã į§ããĄã¯AãčĒãžãĒããã°ãĒããĒããŖããŽã§ãããŽãããĒįļæŗããããšãã§ã¯ãĒããŽã§ã ãˇãšãã å
ãŽįĢļåãč§Ŗæąēããåŋ
čĻãããããã§ãã
ãããåéŋãããããĢãRAFTãžãã¯PAXOSãĸãĢã´ãĒãēã ãŽäŊæč
ã§ãĒãéããčģčŧĒãåįēæããĻåŽčļŗæ°ãčĒåã§č¨čŋ°ããåŋ
čĻã¯ãããžããã ããŽãĸãĢã´ãĒãēã ã¯ãį§ããĄå
¨åĄãé常ãŽåæŖãˇãšãã ãäŊæãããŽãĢåŊšįĢãĄãžãã
PAXOSīŧRAFTã¯ãŠãŧãŠã ãĸãĢã´ãĒãēã ã¯įļæ
ããˇãŗãč¨čŋ°ããįļæ
ããˇãŗã¯įļæ
éãčĄãæĨããžãã ããããŽéˇį§ģã¯ããšãĻč¨é˛ãããžãã

ããããŽãĸãĢã´ãĒãēã ã¯ãããŽãã°ã§æäŊåæãŽé åēãč¨čŋ°ããžãã ãĻãŖãļãŧããŽé¸æãæäŊãŽéŠį¨ãããŽã¸ãŖãŧããĢãããŧãã§ãŊãŧãããæšæŗãĢã¤ããĻčĒŦæããžãã ããããããšãĻãŽããŧããĢåãã¸ãŖãŧããĢãããå ´åãããŽã¸ãŖãŧããĢãæåããæåžãžã§åŽčĄããæéįļæ
ããˇãŗã¯ãããšãĻãŽããŧãã§åãįļæ
ãĢãĒããžãã ããã¯ã¨ãĻãč¯ãããã§ãã
åéĄã¯ãPAXOSãé常ãĢč¤éã§ãããã¨ã§ãã æ°åĻč
ãŽãããĢæ°åĻč
ãĢããŖãĻæ¸ãããĻããžãã ãããåŽčŖ
ãããã¨ããã¨ãPAXOSåŽčŖ
ãŽåĨãŽããĒã¨ãŧãˇã§ãŗããããžãããããŽä¸ãĢã¯å¤ããŽããĒã¨ãŧãˇã§ãŗããããžãããããŽæ°ãčãããŽã¯æããããã¨ã§ãã ããã¯åŽéãĢã¯äēēã
ãŽããã§ã¯ãĒãããã§ãŧãēãĢåå˛ãããĻããžããã ããã¯ãæ°åĻįæ§é ãč¨čŋ°ãã厍大ãĒãããã¯ããšã§ãã ããčããĒããã°ãĒããžããã PAXOSã¨PAXOSåŽčŖ
ãŽãããããšãĻãŽããĒã¨ãŧãˇã§ãŗã¯ãæŦæ¸ã§č¨čŋ°ãããĻããããŽããåŽį¨ŧåã§äŊŋį¨ã§ããåŽéãŽåŽčŖ
ãĢåããĻãŠãŽãããĢčããããĢã¤ããĻãŽããŽã§ãã
ãããé˛ããããĢãããŽãããĒRAFTãĸãĢã´ãĒãēã ããããžãã ããã¯ããæ°ãããããšãĻãŽåéĄãčæ
ŽããåĒãããŗãŗãģãŗãĩãšãĸãĢã´ãĒãēã ãåŽčŖ
ãããããĢåŋ
čĻãĒããšãĻãŽãšããããčĒŦæããĻããžãã ããã¯ããšãĻã¯ãŧãĢã§ãã č¨å¤§ãĒæ°ãŽį°ãĒãåŽčŖ
ããããžãã

ããã¯Javaå°į¨ã§ãããPHPã§ãããšãĻãŽč¨čĒãŽåŽčŖ
ãããã¨æããžãããįįąã¯æããã§ã¯ãããžããã ããŽãŠã¤ããŠãĒãäŊŋį¨ããĻãčĒåã§ããšãããĻãŋãĻãã ããã ããšãĻãæŖããRAFTãåŽčŖ
ããĻããããã§ã¯ãããžããã į§ã¯akka-raftãäŊŋį¨ãããã¨ããžããããããã¯åäŊãããããĢčĻããžãããäŊãããŽįįąã§JepsenããšããĢåæ ŧããžããã§ããã
åæãĸãĢã´ãĒãēã ã¯ãMongoDBãŽ3įĒįŽãŽããŧã¸ã§ãŗã§ãRAFTãįģå ´ããå ´æã§å¤ãäŊŋį¨ãããĻããžãã Cassandraã§ã¯ãPAXOSã¯ä¸įããŽã§ããã
å¤ããŽããŧãŋããŧãšãããĨãŧãˇãšãã ã§ã¯ãæįãĢéããã¨ãé
ããæŠãããŗãŗãģãŗãĩãšãĸãĢã´ãĒãēã ãįžããžããä¸čŦãĢãåæŖãˇãšãã ãäŊæããã¨ããå¤ããŽæšæŗããããã¨ãįč§Ŗããåŋ
čĻããããžããããããŽããšãåå¨ãããã¨ãįĨãŖãĻããåŋ
čĻããããįŦčĒãŽããšããã1ã¤åŽčĄããĒãã§ãã ãããããšã鏿ããã¨ãã¯ãããšãĻãŽããšãæ´åæ§ãé
åģļã帯ååš
ããããŗããŽäģãŽį°ãĒãããŽãŽéãŽåĻĨåįšã§ãããã¨ãįč§Ŗããåŋ
čĻããããžããããŽåĻĨåįšãįč§Ŗãããããå¯žčąĄåéãĢéŠį¨ã§ããã°ãããšãĻãåéĄãããžããã
ããããŽãĸãããŧããŽãŠããåĒããĻãããã¯č¨ããžãããããã¯ããšãĻããĒãæŦĄįŦŦã§ããããã¯ããšãĻããĒããŽãã¸ããšãŋãšã¯ãĢäžåããžãããããã¯åãĒãããŧãĢã§ãããŦããŧãīŧåæŖãˇãšãã ãŽææã¨å̿ǿã