ã³ã³ã¹ã¿ã³ãã³ã»ãªã·ããïŒ kostja ïŒãã¢ã¬ã¯ã»ã€ã»ãªãã¯ ïŒ fisher ïŒ
Konstantin OsipovïŒãã®ã¬ããŒãã¯ã次ã®äŒè©±ããçãŸããŸããã ç§ã¯ãã€ãã®ããã«ãã¢ã¬ã¯ã»ã€ã«ãã£ãšã¿ã©ã³ããŒã«ã䜿ããã説åŸããããšããŸãããã圌ã¯ãŸã ããã«ã·ã£ãŒãã£ã³ã°ã¯ãªããäžè¬çã«ã¯é¢çœããªããšèšããŸããã ããããç§ãã¡ã¯ãªãããã§ãªããã«ã€ããŠè©±ãå§ããŸããã æ®éçãªè§£æ±ºçã¯ãããŸãããèªååãããªãã®ããã«å®å
šã«æ©èœããè·å Žã§ã³ãŒããŒã飲ãã ãã§ãããããã¹ãŠã§ã...
ãããã£ãŠããã®ã¬ããŒãã¯çãŸããŸãããã·ã£ãŒãã£ã³ã°ãçºçããç¶æ³ãã©ã®ã·ã¹ãã ã§ã©ã®æ¹æ³ã䜿çšãããã®ããå©ç¹ãšæ¬ ç¹ã¯äœãããªãç¹å¹è¬ã解決ã§ããªãã®ã§ããããã
ã·ã£ãŒãã£ã³ã°ãåé¡ãšããŠè©±ãå Žåãäžè¬çã«èšãã°ããã®ãããªåé¡ã¯ãããŸããã åæ£ã·ã¹ãã ã®åé¡ããããŸãã æ°Žå¹³æ¹åã«æ¡åŒµãã倧èŠæš¡ãªããŒã¿ããŒã¹ããããå€ãã®ã¿ã¹ã¯ããããŸãããããããªã¹ãããŸããã
ãŸããããŒããå€ãã»ã©ãé害ã®åé¡ãæ·±å»ã«ãªããŸãã 1000å°ã®ã³ã³ãã¥ãŒã¿ãŒãã1å°ãã€ãå¹³åããŠ1æ¥ãŸãã¯ãã以äžã®é »åºŠã§æ
éããããšãæ³åããŠãã ããã ãããã£ãŠãããŒã¿ã倱ããªãããã«ãããŒã¿ã®åé·æ§ã®ã¿ã¹ã¯ã«çŽé¢ããŠããŸãã ãããŠãããã¯ã·ã£ãŒãã£ã³ã°ã§ã¯ãããŸããã ãããè€è£œã§ãã
åæ£ã·ã¹ãã ã§æãé£ããåé¡ã¯ãã¡ã³ããŒã·ããã®åé¡ã§ãã ãã·ã³ã«é害ãçºçãããšã©ãŒãçºçããåæ£ã·ã¹ãã ã®æ°žç¶çãªã¡ã³ããŒã·ãããå€æŽãããããã誰ã䟵å
¥ãããã誰ã䟵å
¥ããªããã ããã«ã€ããŠã話ããŸããã
è€éãªã¯ãšãªã®åæ£å®è¡ã®ã¿ã¹ã¯ããããŸãã MapReduceãŸãã¯åæ£SQLã ãããããã§ã¯ãããŸããã
ããã§ãç§ãã¡ã¯äœã«ã€ããŠè©±ãã€ããã§ããïŒ
1ã€ã®ãããã¯ãã€ãŸãã1å°ã®ãã·ã³ã«åãŸããªãäžå®éã®ããŒã¿ãæ°Žå¹³ã¯ã©ã¹ã¿ãŒå
šäœã«æ°Žå¹³ã«åæ£ããæ¹æ³ãšãããããã¹ãŠåŸã§ç®¡çããæ¹æ³ã®ãããã¯ãåãäžããŸãã
Alexey RybakïŒè¿œå ããŸãã ãã®çšèªã¯ãã§ã«ç¢ºç«ãããŠããŸãããããã§ããã·ã£ãŒãã£ã³ã°ãšã¯äœã§ããïŒ çªç¶ã誰ããç¥ããŸããã ã·ã£ãŒãã£ã³ã°ã¯ãååãšããŠãæ°Žå¹³æ¹åã®ããŒã¿åé¢ã®æ¹æ³ã§ãã ã»ãšãã©ã®å Žåãã·ã£ãŒãã£ã³ã°ã¯åæ£ããŒã¿ããŒã¹ã ãã§ãªããäžè¬ã«åæ£ã¹ãã¬ãŒãžã«ã€ããŠãèªãããŸãã äž»ã«ããŒã¿ããŒã¹ã«çŠç¹ãåœãŠãŸãã
Konstantin OsipovïŒã¬ããŒãã§ã¯ãã·ã£ãŒãã£ã³ã°èªäœãæ§æãã3ã€ã®èŠçŽ ãåãäžããŸããã
- ã·ã£ãŒãã£ã³ã°é¢æ°ã®éžæ
- ããŒã¿ã®å ŽæïŒèŠã€ãæ¹ïŒã
- ããŒã¿ãåé
åžããæ¹æ³ã
ãã®ã¬ããŒãã¯çè«çãªãã®ã§ã¯ãªããç§ãã¡ãç¥ã£ãŠãããããžã§ã¯ãã§ã©ã®ããã«æ©èœããããã€ãŸã 人çã®ç©èªããããŸãã
Alexei RybakïŒäœãè¡ãããã®ããããã«ãããããããã¬ããŒãã®åºç€ã¯æ¹æ³è«çã§ãããã«ã€ããŠãããããçš®é¡ã®ç©èªãèªããšããäºå®ã«ããããããã ãã¹ãŠãéåžžã©ã®ããã«è¡ãããããæ³åãïŒäœããã®æ¹æ³ã§ãã¹ãŠãããã€ãã®æ¹æ³ã§ã®ã¿è¡ãããïŒãçšèªã決çããããã«ãã次åãããã€ãã®ãããã¯ãæãäžããå Žåãåãèšèªã話ããŸãã
Konstantin OsipovïŒãã®è£œåã䜿çšããããã«èª¬åŸããã¿ã¹ã¯ã¯ãããŸãããããã®ã¬ããŒãã®å©ããåããŠããã®è£œåããå
éšãã§ã©ã®ããã«æ©èœããéçºè
ãéžæãããœãªã¥ãŒã·ã§ã³ã®é·æãšçæãç解ã§ãããããããŸãããã®è£œåã®ã
ã©ã®ããã«åäœããããç解ããããšã«ãã£ãŠã®ã¿ãã·ã¹ãã ãå¶åŸ¡ã§ããŸãã
å®éãè¡šé¢ã®ã·ã£ãŒãã£ã³ã°ãšã¯äœã§ããïŒ ããã¯æ¹æ³ã®éžæã§ãã ãã®éžæè¢ã次ã®ããã«æå®ããŸãã
ç¹å®ã®ããŒããããã·ã£ãŒããå®çŸ©ããå¿
èŠããããŸãã ã·ã£ãŒãã¯éåžžããããé
眮ãããŠããã³ã³ãã¥ãŒã¿ãŒã®IPã¢ãã¬ã¹ãŸãã¯DNSã¢ãã¬ã¹ã§ãã
å®éã«ã¯ãäžè¬çãªã±ãŒã¹ã§ã¯ããŒãšãµãŒããŒã®æ°ã®é¢æ°ãã€ãŸã ç§ãã¡ãæã£ãŠãããã·ã³ã®æ°ããŸãã¯äžè¬çã«ã¯å€ãã®ãµãŒããŒããã ãŸãããµãŒããŒã®æ°ãç°ãªããšåäœãç°ãªããããé©åãªãµãŒããŒãäœæããå¿
èŠããããŸãã
ããããããã«ã€ããŠè©±ãåã«ããã£ãšæ¥œããããšãã€ãŸãããã®ããŒãã£ã·ã§ã³ãå®è¡ããããã®é©åãªããŒãéžæããããšã«ã€ããŠè©±ããããšæããŸãã ããã§ã®ã¹ããŒãªãŒã¯ãäžè¬ã«ããã§ãïŒããŒã¿ã1åæçåããããŒãéžæãããããäžçããŸãããŸãã¯é·æéïŒæ°å¹ŽïŒäœ¿çšããŠããã®ããžãã¹ã®ãã¹ãŠã®é·æãšçæãååŸããŸãã
ãããŠãã®åŸãäœããã§ããªããªã£ããšãïŒããŒã¿ãç¹å®ã®æ¹æ³ã§æ¢ã«é
åžãããŠãããããã·ã¹ãã ãæ¢ã«æ©èœããŠãããããããŠã³ã¿ã€ã ã¯äžå¯èœã§ãïŒãã©ããªåé¡ããããŸããïŒ
1ã€ã®ã¹ããŒãªãŒ-2001幎ãSpyLOGã®è¥ããã-ã·ã£ãŒãã£ã³ã°ã¯ããã«ãããŠãŒã¶ãŒã«åºã¥ããŠããŸããã SpyLOGãšã¯äœã§ããïŒ ä»ã§ã¯Openstatã§ãã 蚪åã®çµ±èšãã€ãŸã ããã¯ãã®ãããªãã©ãã«ãŒãã«ãŠã³ã¿ãŒãããŒãžäžã®å°ããªãã¿ã³ã§ãã
äžè¬ã«ã倧èŠæš¡ããã³å°èŠæš¡ã®ãã¹ãŠã®ãµã€ãã¯ããã®æç¹ã§40å°ã®ãã·ã³ã«åæ£ãããŠããŸããã ãããŠãããã«å¿ããŠã倧ããªãµã€ãã¯å°ããªãµã€ããšäžç·ã«äœãã§ããŸããã ã·ã£ãŒãã£ã³ã°ããŒã¯ãµã€ãIDã§ããïŒããšãã°ãanecdote.ruãrambler.ruãYandex.ruãªã©ïŒã
1ã€ã®ã·ã£ãŒãã£ã³ã°ããŒã«ãã£ãŠçæããã1ã€ã®ãã©ãã£ãã¯ãè€æ°ã®ãã·ã³ã§åãå
¥ããããããã倧èŠæš¡ãªãµã€ããå®éã«ãã·ã³ãã¹ã¿ãã¯ããŠããŸããã
ãããã£ãŠãããŒã¿ãåå²ãã察象ãéžæãããšãã¯ãã·ã¹ãã ãé
眮ããªãããã«ååã«å°ãããªããžã§ã¯ããéžæããå¿
èŠããããŸãã
Facebookã®å Žåããžã£ã¹ãã£ã³ããŒããŒã®ããŒãžãããããŠãŒã¶ãŒãããŒã¿ãåå²ããããšã«ãããšããŸãã åœç¶ãJustin Bieberã«ã¯ã100äžäººã®ãã©ãã¯ãŒãã©ã€ã«ãŒãåã¡ãã»ãŒãžã®åæçš¿ãªã©ããããŸãã ãããã£ãŠãããããããžã£ã¹ãã£ã³ããŒããŒãç Žçã®çžæãšããŠéžæããã®ã¯æè¯ã®ã¢ã€ãã¢ã§ã¯ãããŸããã
ã·ã£ãŒãã£ã³ã°ãæ£èŠåã«é¢ãããã®ã§ã¯ãªãããšãã·ã£ãŒãã£ã³ã°ãããšãã«çæãã¹ã2çªç®ã®ãã€ã³ããã€ãŸã ããŒã¿ãèŠãŠãããããã·ã³ã«ã©ã®ããã«é
åžãããã決å®ããæšæºçãªæ¹æ³ããããšæãå Žåãããã§ã¯ãããŸããã ã€ãŸããããŒã¿ã§ã¯ãªãããŠãŒã¹ã±ãŒã¹ãã¢ããªã±ãŒã·ã§ã³ãããžãã¹ãèŠãŠãããžãã¹ã®ã©ã®ãŠãŒã¹ã±ãŒã¹ãæãéèŠã§ãããæãçç£æ§ãé«ãããèããå¿
èŠããããŸãã ã·ã£ãŒãã£ã³ã°ã«ã¯åžžã«ãã¬ãŒããªããããããã§ãã ããã€ãã®ã¯ãšãªã¯è¿
éã«ãå³åº§ã«æ©èœããäžéšã®ã¯ãšãªã¯ã¯ã©ã¹ã¿ãŒå
šäœã§å®è¡ããå¿
èŠããããŸãã ãããŠãã©ã®ããŒã§ã·ã£ãŒããéžæããããããã決å®ããŸãã
Alexey RybakïŒ Justin Bieberã«ã€ããŠã å®éãã»ãšãã©ã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ã§ã¯ãã·ã£ãŒãã£ã³ã°ããŒãšããŠãŠãŒã¶ãŒãéžæããã®ãè¯ãéžæã ãšæããŸãã ãã ãããã¹ãŠã®æçš¿ãã³ã¡ã³ããªã©ãåãã·ã£ãŒãã«ããã¯ããå Žåã¯ãããæç¹ã§ããŒã¿ã®åæ£ãéåžžã«ç°ãªãããšã«ãªãããããã䜿çšããå¿
èŠãããããšã«æ³šæããŠãã ãããããžã§ã¯ãã«ã¯2çš®é¡ã®ã·ã£ãŒãã£ã³ã°ããããŸãã1ã€ã¯ãŠãŒã¶ãŒã«ãããªãªãžãã«ã§ããã1ã€ã¯ã³ã¡ã³ããªã©ã«ããè¿œå ã§ãã
ããã¯åœç¶ãããŒã¿ãïŒäžå®ã®ç¢ºçã§ïŒççŸãããšããäºå®ã«ã€ãªããã1ã€ã®èŠæ±ã§ã¯ãªã2ã€ã®èŠæ±ãè¡ãå¿
èŠããããŸãã ããã¯æãããããšã§ã¯ãããŸãããåæã«ãäœããã®åœ¢ã§æé·ããæ©äŒãåŸãããããã§ãã
ãããŠããã¹ãŠã1ã€ã®ã·ã£ãŒãã«è©°ãããšããã¹ãŠãéåžžã«äžåè¡¡ã«ãªãããŠãŒã¶ãŒã®ãœãããŠã§ã¢ãšãµãŒãã¹ã®å質ãéåžžã«äœããªãå¯èœæ§ããããŸãã ãããã£ãŠãããã°ã©ãã³ã°ãããè€éã«ããããšã¯æããããŸãããããã¹ãŠãååã«é«éã«ãªããŸãã ã€ãŸããããã¯éåžžã«åççãªãã¬ãŒããªãã§ãã
ã³ã³ã¹ã¿ã³ãã£ã³ã»ãªã·ããïŒããäžã€ã話ããããç¹ããããŸãã ã·ã£ãŒãã£ã³ã°ããŒãåžžã«ä¿åãããããã§ã¯ãããŸããã ããšãã°ãã»ãã·ã§ã³ãmail.ruã«ä¿åããŸãã ID mail.ruããããšããŸããkostea.mail.ruãŸãã¯ãã®ãããªãã®ããããŸãã ã»ãã·ã§ã³ã¯ããã°ã€ã³ããããã€ã¹ãèå¥ãããªããžã§ã¯ãã§ãã ãããã£ãŠã1ã€ã®ãã°ã€ã³ã«ã¯å€ãã®ã»ãã·ã§ã³ããããŸãã Mail.ruã¯ã1人ã®ã·ã£ãŒãã«1人ã®ãŠãŒã¶ãŒã®ãã¹ãŠã®ã»ãã·ã§ã³ãä¿åããŸãã ã·ã£ãŒãã£ã³ã°ããŒã¯ãã°ã€ã³ã§ãã ããããã»ãã·ã§ã³èªäœãã€ãŸã ãªããžã§ã¯ãèå¥å-äž»ããŒ-ããã¯ã·ã£ãŒãã£ã³ã°ããŒã§ã¯ãããŸããã ã€ãŸãããªããžã§ã¯ãã®èå¥åãã·ã£ãŒãã£ã³ã°ããŒã§ãããšã¯éããŸããã ãã¹ãŠã1ã€ã®ã·ã£ãŒãã«ä¿åããããããããã¯äŸ¿å©ã§ãã ããšãã°ããã¹ã¯ãŒãããããã³ã°ãããçããããå Žåãªã©ã1人ã®ãŠãŒã¶ãŒãã©ãã§ãåæã§ããŸãã ããã¯ç°¡åã«ç®¡çã§ããŸãã
è¯ãæçéµãšæªãæçéµã®äŸã次ã«ç€ºããŸãã
Alexey RybakïŒãã®äŸã«äœåºŠãæ»ã£ãŠããã®ã§ãç¶ããŸãã
ã·ã£ãŒãã£ã³ã°ã«çŽé¢ããŠããå Žåãããããç§ãã¡ã®ã¬ããŒããèããŠããªãã£ããšãã«èµ·ãããŸããã ã€ã³ã¿ãŒãããã§æ€çŽ¢ããããšãããšãããç¹å¥ãªãã®ã¯èŠã€ãããŸããã§ããã éå»ããããã10幎ã«ããã£ãŠãå€ãã®ããŒã ãèªè»¢è»ãçºæããããã®åãæ¹æ³ãè¡ã£ãŠããŸããã ãããã£ãŠãã·ã£ãŒãã£ã³ã°ãæŽçãããã¿ãŒã³ãŸãã¯æ¹æ³ã®æ€èšããæãäžè¬çã§ææªã®æ¹æ³ã§ã¯ãªããã®ããå§ããŸãã
æåã®2ã€ãšããŠã次ãéžæã§ããŸãã
ååãšããŠãããã¯ãã¹ãŠåäžã®ãµãŒããŒããå§ãŸããã·ã¹ãã 管çãå«ããã·ã¹ãã 管çè
ãšãŒã°ã«ããã®ããã®ãã®ãããªå®å
šã«ç°¡åãªæ¹æ³ããããŸãã ããšãŒã°ã«ãã-ããã¯è»œããŠå¥åº·çã ããã§ãã
ãã®æ¹æ³ã«ç§»ãåã«ã1ã€ãŸãã¯2ã€ã®ãµãŒããŒã§éå§ãããšããäºå®ã«ããããããã倧èŠæš¡ãªã·ã¹ãã ãäœæããå Žåãæé·ããéã®æãéèŠãªããšã¯ãµããŒãã®ã³ã¹ãã§ã-æ¯èŒçèšãã°ãæäœäžã®åé¡ã®æ°ãã®ãã¹ãŠã®çµæžãçºçããŸãã ãããã£ãŠãã·ã¹ãã 管çè
ã®å©äŸ¿æ§ã¯ããã®ãããªã·ã¹ãã ãèšèšãããšãã«ããããæåã«æ¥ãå€ã§ãã
ãã®ããã1å°ã®ãµãŒããŒããããã¬ããªã«ãäœæãããã®äžã«ããŒã¿ãã¬ããªã±ãŒãããŸããããã°ããããŠãããèšé²ãªã©ã«ãã£ãŠè² è·ãåæ£ãã次ã«äœããã¹ãããèããŸãã ãããŠãããã«2å°ã®ãµãŒããŒã賌å
¥ããŸããåãµãŒããŒã«ã¯ç¬èªã®ã¬ããªã«ããããŸãã ãªãã¬ããªã«ãªã®ãïŒ ã·ã¹ãã 管çã®èŠ³ç¹ããèŠããšãéåžžã«ç°¡åã§ã-ã¬ããªã«ãèšå®ããŠãããã°ããã®éçŠæ¢ãšã³ããªããã£ãã®ã§ããã®å³ã«ç€ºãããã«ãã¢ã¡ãŒãã®ããã«å
±æããã ãã§ãã
åé¡ã¯ãåžžã«åå¢ããå¿
èŠããããéåžžã«é«äŸ¡ã«ãªãããšã§ãã ãããã£ãŠãä»ã®äœãã䜿çšããå¿
èŠããããŸãã
ããžãã¯ãã³ããŒã«åºã¥ããããã€ãã®çµã¿åããããããŸãã ããã«48ãæžããããå®éããã¯åãªãã¢ã€ãã¢ã®äžäŸã«éããªãã ãªã48çªã䟿å©ãªã®ã§ããïŒ 12ã6ã4ã3ã«åå²ãããŸããåããµãŒããŒäžã«48ã®åè·¯ãŸãã¯48ã®ããŒãã«ãä¿æããæåã¯ãã®ãããªæ°ã§ã«ãããããšããäºå®ããå§ããããšãã§ããŸãã 次ã«ãã·ã¹ãã 管çè
ã®ç°¡åãªæäœããã³ããããŒã¿ã®äžéšãä»ã®ãµãŒããŒã«è»¢éã§ããŸãã ãã¡ãããã®å Žåãã©ããã§èª¿æŽããžãã¯ãçšæããå¿
èŠããããŸãã調æŽããžãã¯ã«ã€ããŠã¯åŸã§èª¬æããŸãã ãã®æ¹æ³-åå²ããããç¹å¥ãªæ°åã䜿çšãããšãããšãã°æ倧48ã50å°ã®ãµãŒããŒãªã©ãéåžžã«ç°¡åã«æé·ã§ããŸãã
Konstantin OsipovïŒäžè¬çã«ãã·ã£ãŒãã£ã³ã°ã«ã€ããŠèãããšãããŸã察象é åãã€ãŸã ä¿åããããŒã¿ã®çš®é¡ã
倧éã®ããŒã¿ã¯ååšã§ããŸããã ããšãå°çäžã®ãã¹ãŠã®äººã
ã«ã€ããŠè©±ããŠãããã£ã70åãã80åã§ãã ããã¯ããã»ã©ã§ã¯ãããŸããã ããã€ãã®avitoã®ãã¹ãŠã®åºåã«ã€ããŠè©±ããŠããå Žåãããããæ°çŸäžã§ããããããã¯äžŠå€ãã䟡å€ã§ã¯ãããŸããã ã€ãŸã 倩äºããããŸãã ã©ã®ã·ã¹ãã ãæé·ããŸãããæé·ããã«ã€ããŠæé·ã¯é
ããªããŸãã ãããã£ãŠãå¯èœãªéããã¹ãŠãã¹ã±ãŒãªã³ã°ããããã«ãæãè€éãªæ±ºå®ãäžãå¿
èŠã¯å¿
ããããããŸããã æ倧10å°ã®ãµãŒããŒãããããšãããã£ãŠããå Žåã¯ãããããç°¡åãªãœãªã¥ãŒã·ã§ã³ãå¿
èŠã§ãã
ãŸããã·ã£ãŒãã£ã³ã°åŒã®éžæïŒã¹ã©ã€ãäžã§ã¯ããã®åŒ-ååã«åå²ããã ãã§ãïŒã¯åžžã«ãªã·ã£ãŒãã£ã³ã°ã«é¢é£ããŠããããšã«æ³šæããŠãã ããã
Alexey RybakïŒããŒéã§ããŒã¿ãã©ã®ããã«åé
ããŸããïŒ ãµãŒããŒéã§ããã€ãã®ã¹ããŒã ã転éãããšãã話ãããŠããŸããã ãã®åŸãçåãçããŸããäžè¬ã«ãã©ã®ããã«ããŒã¿ãåæ£ãããã®ã§ããããïŒ ãµãŒããŒäžã«æ£åšããéèŠãªããŒã¿ãéžæããŸããã æ倧ã®æ¹æ³ã¯2ã€ãããŸãã
æåã®æ¹æ³ã¯ãããã·ã¥ã®ãããªãã®ã§ãã äžè²«ããŠããå¿
èŠã¯ãããŸãããã€ãŸãã倧ãŸãã«èšã£ãŠãæ°ãããµãŒããŒãè¿œå ãããšãéåžžã«ã·ã£ããã«ã§ããå€ãã®ããŒããããŸãïŒããã¯ã次ã«èª¬æãããã€ã³ãã§ãïŒã ãšã«ãããäœãããŠããã®ïŒ ãããæ°åããŒã®å ŽåããµãŒããŒã®æ°ã§åçŽã«é€ç®ããé€ç®ã®æ®ããååŸã§ããŸã-ããããµãŒããŒçªå·ã«ãªããŸãã ãããæååããŒïŒé»åã¡ãŒã«ãªã©ïŒã®å Žåãæ°å€ããã·ã¥ãååŸããŠåãããšãå®è¡ã§ããŸãã
ãã°ã€ã³ã®æåã®æåãéžæãããªã©ãããå€ãã®ãã¬ã¬ãŒãžãæ¹æ³ããããŸãããæåã§ãã°ã€ã³ã®ååžã決å®ããªããããæåã«èšèªã§ã®æåã®ååžãèæ
®ããå¿
èŠããããŸããããããéåžžã«å°é£ã§ãã ããã«ã1ã€ã®ãµãŒããŒã«1ã€ã®æåãé
眮ãã1ã€ã®ãµãŒããŒã«1ã€ã®æåãåãŸããªãå Žåããã®æåãåŸã§åæ£ãããããã«æ§æã倧ããå€æŽããå¿
èŠããããŸãã éåžžã«æªãèãã§ãã ã¢ã³ããã¿ãŒã³ã ãšæããŸãã
ç§ãã¡ã¯ãããã·ã¥ã«é¢ããå Žæãããåé¡ã1ã€ã ãæŠèª¬ããŸãã ããã¯ãæ°ãããµãŒããŒã®è¿œå ã§ãã ãµããŒãã®èŠ³ç¹ãããªã·ã£ãŒãã£ã³ã°ãè¡ããšã©ããªããŸããïŒ ããŒããé£ã³åºããŸãããã®éšåã®ã¬ããªã«ãããã¹ã¿ãŒããŒããéžæããã§ããã ãæ©ãå®è¡ããå¿
èŠããããŸãã 第äºã«ãè² è·ãå¢å ãããããæ°ãããµãŒããŒã賌å
¥ããŠãã§ããã ãæ©ãéçšããå¿
èŠããããŸãã ãããã£ãŠããªã·ã£ãŒãã£ã³ã°ã¯éèŠãªåé¡ã§ãã
æ®ãã®éšéã ãã䜿çšãããšãããå€ãã®ãµãŒããŒã衚瀺ããããã¹ãŠã®ããã·ã¥ããåã¹ãã¢ãããããã¹ãŠã®ããŒããã¹ãŠã®ããŒã¿ã移åããå¿
èŠããããŸãã ããã¯éåžžã«é£ãããæªãæäœã§ãã ãã¹ãŠã念é ã«çœ®ããŠæ©èœããŸãã
ããšãã°ãBadooã«memcachedã¯ã©ã¹ã¿ãŒããããŸãã æ®ãã®éšéã§ãã¹ãŠãé
åžããæ°ãããµãŒããŒãè¿œå ãïŒããã¯ããã»ã©é »ç¹ã«ã¯çºçããŸããïŒã5ã10ååŸã«ãã¹ãŠã®ããŒã¿ãåãœãŒããããŸããã ãããã¯ãŒã¯ãä»ããŠããŒã¿ã移åããå¥ã®ãã·ã³ã®ã¡ã¢ãªã«ä¿åããããšã¯ãŽãã§ãããããããã¯ãã¹ãŠåé¡ãªãè¿
éã«è¡ãããŸãã
ãŠãŒã¶ãŒããŒã¿ããã£ã¹ã¯äžã«ããå ŽåïŒããšãã°ãäœããã®éä¿¡ãªã©ïŒãããã¯ã¯ããã«è€éãªãã®ã§ãã
Konstantin OsipovïŒ ãæ人åããã®ã·ã£ãŒãã£ã³ã°ããããŸãã ãããŠãããã¯ã¬ããŒãã®2çªç®ã®éšåã§ãã
ããã¯äœã§ãã é
ããæ©ãããäžè¬çã«ã¯ã©ãŠãããããããŒã¿ããŒã¹ãå埩åã®ããã¹ã±ãŒã«ã«ããããšããèãããããŸãã ã·ã£ãŒãã£ã³ã°ã¹ããŒã ã¯ãããããã¹ãŠã®è©³çŽ°ãèæ
®ããå¿
èŠããªããããªãã®ã§ãªããã°ãªããŸããã ããã¯éåžžã«é
åçã§ãã
ãããå¯èœãã©ããã確èªããŸãã ã©ã®ããã«æ©èœããããåæããç¬èªã®çµè«ãå°ãåºããŸãã
Alexey RybakïŒ 2ã€ã®éåžžã«åºæ¬çãªãã€ã³ãã2ã€ã®æ¹æ³ããããŸãã ãã®ãã¡ã®1ã€ãè¡šé¢æ°ãæ€èšããŸãã
ããã¯åãªãè¡šé¢æ°ã§ãã
ãã®ã¬ããŒãã®éèŠãªã¿ã¹ã¯ã®1ã€ã¯ãç¹ã«æ¡ä»¶ã«åæããããšã§ãã ããšãã°ãããã瀺ãããã«ä»ã®åèªã䜿çšããŠããŸããã ã¡ãœããã決å®è«çãªæ¹æ³ã«åå²ããŸããã ç¹å®ã®æ°åŒããããé決å®çã§ããå Žåããã®ããŒãŸãã¯ãã®ããŒãããããããå Žæãèªç±ã«æ§æã§ããå Žåã
æŠããŠãããã¯è¡šé¢æ°ã§ãããäžè²«ããããã·ã¥ã§ãã
è¡šé¢æ°-ããã¯ãããçš®ã®æ§æãæã£ãŠãããšãã§ãã ã·ã£ãŒãã£ã³ã°ã«å¯ŸããããŒãã«é¢æ°ã¢ãããŒãã®äœ¿çšã¯ãä»®æ³ãã±ãããªã©ã®æŠå¿µãšéåžžã«å¯æ¥ã«çµã³ã€ããŠããŸãã
ããŒãã·ã£ãŒãã«ãããããæ©èœãããããšãå¿ããªãã§ãã ããã çãäžã«ããçš®ã®äžéãã£ã¹ãã¬ã€ãã€ãŸã ãã®ãããã³ã°ã¯2ã€ã«ãªããŸãã ãŸããããŒãä»®æ³ãã±ããã«ãããã³ã°ãã次ã«ä»®æ³ãã±ãããã¯ã©ã¹ã¿ãŒã®ç©ºéå
ã®å¯Ÿå¿ãã座æšã«ãããã³ã°ããŸãã
ããããã¹ãŠè¡ãæ¹æ³ã¯å€ããããŸããã ãŸããæãéèŠãªããšã¯ãã·ã¹ãã 管çè
ã«èªç±ãšå©äŸ¿æ§ãäžããããšã§ããããšãèŠããŠããŸãã
ååãšããŠãä»®æ³ãã±ããã¯ååã«å€ãéžæãããŸãã ãªãä»®æ³çãªã®ã§ããïŒ å®éã«ã¯ãå®éã®ç©çãµãŒããŒãåæ ââããŠããªãããã§ãã ãŸããããã€ãã®æ¹æ³ã䜿çšããŠãããŒãã·ã£ãŒãã«çŽæ¥ãããããŸãã
1ã€ã®æ¹æ³ã¯ããããŒãããã±ãããžãé¢æ°ã®æåã®éšåããããçš®ã®ããã·ã¥ãŸãã¯äžè²«ããããã·ã¥ã§ããå Žåã§ãã æ°åŒã«ãã£ãŠæ±ºå®ãããäžéšãšãã·ã£ãŒãã«çŽæ¥ç§»åãããã±ãããconfigãéããŠè¡šç€ºãããŸãã
2çªç®ã¯ãã£ãšè€éã§ã-configã§äž¡æ¹ã衚瀺ãããšãã æ¯èŒçèšãã°ãåããŒã«ã€ããŠããããã©ãã«ããããèŠããŠããå¿
èŠãããããã§ãã ä»»æã®ããŒãã©ãã«ã§ã移åã§ããããã«ãªããŸãããäžæ¹ã§ãããã±ãããç Žçãã«å°ããªèšå®ããããããŒãããã±ãã決å®ããé©åãªå Žæã«ç§»åããã®ã«ååãªéãã§ããã£ã³ã¹ãç°¡åãã€è¿
éã«å€±ããŸãã
Konstantin OsipovïŒãªããããã®ãªãã·ã§ã³ãäžè¬çã«çºçããã®ã§ããïŒ æ¬¡ã«ãã«ãŒãã£ã³ã°ãšãªã·ã£ãŒãã£ã³ã°ã«ã€ããŠèª¬æããŸãã ããã®ãã¹ãŠã¯ãååãšããŠãçŸããã䟿å©ã§ãå®å
šã«å¶åŸ¡å¯èœã§ãããç¹å®ã®æ¡ä»¶ããããŸãã ãã®ç¶æ
ãã©ããã«ä¿åããå¿
èŠããããå€æŽããå¿
èŠããããŸãã ãµãŒããŒã®æ°ãå¢ãããããããŒãã«ãå€æŽããå¿
èŠããããŸãã 2ã€ã®ã¢ãããŒãããããŸãã1ã€ç®-ç¶æ
ããããšããäºå®ã確èªãããã®ç¶æ
ã管çããããšããŸãã 2çªç®ã®ã¢ãããŒã-æ°åŒãå¯èœãªéãæ°åŠåããŠãç¶æ
ãç¹å®ããã«å¯èœãªéãå€ãã®çµè·¯ã決å®ããŸãã
ã·ã£ãŒãã£ã³ã°ã¹ããŒã ãäœããã®åœ¢ã§æ©èœçã«èª¬æã§ãã1ã€ã®ã¢ãããŒãã次ã«ç€ºããŸãã ããã¯äžè²«ããããã·ã¥ã¢ãââããŒãã§ãã
ãŸãããã®ä»çµã¿ã説æããŸãã ããã·ã¥é¢æ°ã®å
šç¯å²ã0ã2
32 ïŒçŽ40åïŒã®çŽç·ã§ã¯ãªãããªã³ã°äžã«è¡šç€ºããããšæ³åããŸãã ã€ãŸã ããã0ã®å Žæã«40åããããŸãã
ããã·ã¥é¢æ°ã䜿çšããã ãã®å Žåãæ°ããããŒããè¿œå ãããšãã«ããããã¹ãŠåããã·ã¥ããå¿
èŠããããŸãã ããŒãã®æ°ã§å²ã£ãæ®ãã䜿çšããããšãããããŸãã
ãããŠãããã§ã¯ãããŒãæ°ã«ããé€ç®ã®æ®ãã䜿çšããŸããã ãããè¡ããŸã-ããã·ã¥é¢æ°ïŒããããå¥ã®é¢æ°ïŒããããããããµãŒããŒèå¥åã«é©çšãããµãŒããŒããã®ãªã³ã°ã«é
眮ããŸãã ãããã£ãŠãåãµãŒããŒã¯ãªã³ã°äžã§ç¹å®ã®ç¯å²ã®ããŒãæ
åœããŠããããšãããããŸãã ãããã£ãŠãæ°ãããµãŒããŒãè¿œå ãããšããã®ååŸã®ç¯å²ãã€ãŸã 圌ã¯ç¯å²ãéšåçã«åå²ããŸãã ã·ã£ããã«ã¯ãŸã£ããå¿
èŠãããŸããã
Alexei RybakïŒãã£ãšåã«ãããåããŠèãããšããç§ã¯ãŸã äœãç解ããŠããŸããã§ããã äœãç解ããŠããªããŠãæããªãã
ããã§ã®èãæ¹ã¯æ¬¡ã®ãšããã§ããäžè²«ããããã·ã¥ã§ã¯ãæ°ããããŒããè¿œå ãããšãã«ãããŒã®ããäžéšã®ã¿ãã·ã£ããã«ããŸãã ãããŠããã ãã§ãã
ãããã©ã®ããã«è¡ãããããé¢é£ããããŒã¯ãŒããèŠãããšãã§ããŸãã
Konstantin OsipovïŒãã®ããã·ã³ã°ã¹ããŒãªãŒã®æ¬ ç¹ã«ã€ããŠããå°ã説æããŸãã çµå±ã®ãšãããããã¯ããã€ãã®ã©ã³ãã å€æ°ã«ã€ããŠã§ãã ããã·ã¥é¢æ°ã¯äžçš®ã®ã©ã³ããã€ã¶ãŒã§ãããèªç¶ãªæå³ãæã¡ãããã«å¿ããŠã©ã³ãã ãªå€ãæäŸããŸãã ãã¹ãŠã誀ã£ãŠãªã³ã°ã®ã©ããã«èœã¡ãŸãã ãããŠãåçŽãªå Žåãããã¯çæ³çãªååžãæäŸããŸããã ãµãŒããŒ3ããµãŒããŒ1ã®é£ã«ããããµãŒããŒ2ãšãµãŒããŒ3ã®éã§ãã®ãããªå€§ããªããŒããªã³ã°ãããŒã¿ã®ã»ãŒååã«ãªã£ãŠããããšããããŸãïŒåçãåç
§ïŒã
äžè²«ããããã·ã¥ãæ£ããæ©èœããããã«ã¯ãä»®æ³ãã±ããããããã³ã°ããŒãã«ã®åœ¢ã§ããã€ãã®ç¶æ
ãè¿œå ããå¿
èŠããããŸãã ãŸããä»®æ³ãã±ããã¯ã©ããã«ä¿åããå¿
èŠããããŸãã ä»®æ³ãã±ãããšãµãŒããŒéã®ãããã³ã°ã ã€ãŸã ããªãã«ã¯æ¡ä»¶ããããŸãã ããã¯çŽç²ãªæ°åŠã§ã¯ãããŸããã
ããŒã¯ãŒãGuava / Sumburã䜿çšããå¥ã®èå³æ·±ãã¹ã©ã€ãããããŸãã
ã°ã¢ãã®èãæ¹ã¯ãäžè¬çã«ããªãã®ç¶æ
ãæ¶ããããšã§ãã åºæ¬çã«ãããã¯ããŒãšãµãŒããŒã®æ°ãååŸããserver_idãæäŸããé¢æ°ã§ãã , , - â â server_id.
. , â , , , .
â , . , , .. , . , , .
, , â , , , .. , .
: , , .
, .
, â :
«».
« » â .
, , bucket. - , - . config, , , 1000 , 1000 , 1000 -. , - . , , , .
, , . â , , - - , , , â -. -, - , maintenance subwindow, , â , . - , - , - .. , , .
â .
â .
: , ? , - , : «, ! ».
: , highload- ( ), , « â , , . , . , API, , , - ⊠».
, . , , : «, , ».
, , . .
, : , , , , , .
- , , , , , . , , , , , - , , .
, . , , . â , , . â .
, â .
: . . , . , ? load balancing-, , , .. , failover . ã€ãŸã .
, , .
â , .. , . , â â .
: â , (.. , - , ), . â , « ?». , .. , , -. , .
« ». - , . . - in-memory .
â , â , , .
. , . , â -, -.
: , , - , , , .. .
: , ( ) , , . .
: . , , , , . â . ã€ãŸã , . , . , .
â - , , , . ã€ãŸã , , , . , , . , , . , .
, 100 , .
, , Redis. , .
, , , , .. . .
.
? , . , . .
: , .
- , . , , . â â , - . .
: -. , , , . ã€ãŸã - , , , , , . , , . â - , , â , « ».
: , , , , , .. , .
: . , , , , , , , . , . , , .
, - , , , , , , , .
: , , â . , ?
: â , - , .. , , . .
â «update is a move». â , - , . , â , , timestamp. , timestamp, . - . ã€ãŸã , .
., , e-mail-. , e-mail ( ), -. , .. , timestamp.
, , , . . , .
, , , .
: , , , , - ⊠- .
: â «data expiration».
memcached Badoo. , , â .
, . - . .
: â . , , - , , , , (, twitter )âŠ
: , twitter . , , , ⊠- , , â . .
: , , , .
. Badoo, , , . .
â , .. Badoo - â - , - . , 10 , «». äœããŠãã®ïŒ «», , ( ) . , - , - . , ( , , , ) .
« ». , , .
: , â . - schema-less, , .
: â , ? , ..
, . â , . , , , . , .
, , .
: timestamp- . â ? ã€ãŸã - , , ? ?
: Timestamp , . , . , .. , . , , .
: , . .
: . : ? , - . . , . ããã¯å¥ã®ãããã¯ã§ãã
â . .
â «», , , .
: Timestamp ?
: , .
: Newdata â . sharding function?
: sharding function . Badoo. . , . , -, , , Badoo , , y.
sharding function , . , , , , .
, Badoo. , -. bucket, bucket config-. config , - bucket- . , bucket-, , . - .
- , , -, . .
: , .. , , ⊠- , ?
: .
-, - , . , .. « », - â , â Redis, Mongo â , , . , . åäœããŸãã Cassandra, Hadoop, Mongo, Redis Cluster. Tarantool- .
, â . , , , , â . - , , . ã€ãŸã , , .
, , , â .
: , , . , , . , - - , - . : « ? ». , , « », , â , - .
, . , , , .
é£çµ¡å
kostjafisherMail.ruBadooããã°â HighLoad++ . 2016 â HighLoad++ , 7 8 .
â HighLoad++. , â :)
- HighLoad.Guide â , , , . 30 . !