
Redditã®AMAïŒç§ã«è³ªåããŠãã ããïŒåœ¢åŒãæ¬åœã«å¥œãã§ãã誰ãïŒãã®å Žåã¯éçºããŒã ïŒãAMA subredditã«æ¥ãŠã質åã«çããæºåãã§ããŠãããšèšããŸãã æãèšæ¶ã«æ®ããAsk Me Anythingãã»ãã·ã§ã³ã®ãã¡ãããšãã°Space X ãšã³ãžãã¢ãŸãã¯Googleãšã³ãžãã¢ã®ããŒã ããããŠçŸåšã®ç±³åœå€§çµ±é ãã©ã¯ã»ãªããã§ããã4幎åã«Redditã«é¢ãã質åã«çããŸãã ã æè¿ã AndroidããŒã ãAMAãå®æœããéçºè ããã®ãªã³ã©ã€ã³ã®è³ªåã«åçããŸããã
ãããããã·ã¢ã«ã¯Redditã¯ãããŸããã ããããHabrããããŸãã ãã®ãããã質åããã圢åŒã§ããã«æ¥ãããšã«ããŸããã ãããŠãAMAã®ã«ãŒã«ãèšãããã«ãæã¶ãã§ã¯ãããŸããã ãããã¯ãç解ããããããããã«ãããŒã ã®1ã€ïŒããã©ãããã©ãŒã ãïŒãéžæããåäŸãã¡ã«äœãããŠããŠãäœãããã°ã©ãã³ã°ããŠããŠãããŒã ã®ååšäžã«éæããããšãæããŠããããŸããã ãããŠã2016幎ã®çºä¿¡ã®å°ããªçµæãèŠçŽããŸããã è¡ããïŒ
ç®æ¬¡
1.ããã©ãããã©ãŒã ãã®æ©èœ
2.ãµãŒãã¹ïŒãã³ãããœããã¢ãã¯ãªã©
3.ã·ã¹ãã ããã°ã©ãã³ã°ã Goã®äœ¿çšãéå§ããæ¹æ³ãšãããããããããã®
4.åç
5.ã¹ã¯ãªããã¯ã©ãŠã
6. LSDïŒã©ã€ãã¹ããªãŒãã³ã°ããŒã¢ã³
7. Cassandra Time SeriesïŒå 容ãšä»çµã¿
8. Badoo AMAïŒãã©ãããã©ãŒã ã®éçºè ã«è³ªåãã
ãããæ¬åœã«ç§ãã¡ã§ããããšã®èšŒæ ã
ãã©ãããã©ãŒã ã¯äœãããŸãã


ã¢ã³ãã³ã»ãããã ã einstein_man ããã©ãããã©ãŒã é·
ããã€ã«ã»ã¯ã«ããšã ã demi_urg ãAããŒã 代衚
ããã©ãããã©ãŒã ããšã¯ãä»ã®éšéãæ¯æŽããã€ã³ãã©ã¹ãã©ã¯ãã£ããŒã ã§ãã ç§ãã¡ã®äž»ãªç®æšã¯ããã¹ãŠã®äººã幞ãã§ããããšããã¹ãŠãæ©èœããããšãããã°ã©ããŒã幞ãã§ããããšãããããçš®é¡ã®è€éãªãã®ãèŠãããšãªãå®å šã«ã³ãŒããæžãããšãã§ããããšã確èªããããšã§ãã ç§ãã¡ã¯ããã¯ãšã³ãã®ããã¯ãšã³ãã§ãã
ããã©ãããã©ãŒã ãã¯2ã€ã®ããŒã ã§æ§æãããŸããCããã°ã©ããŒã®ããŒã ïŒCã§èšè¿°ãããŠããŸãããæè¿ã§ã¯Goã§èšè¿°ãããŠããŸãïŒãšAããŒã ïŒPHPã§èšè¿°ãããGoã§èšè¿°ãããããšããããŸãïŒã Syshersã¯ãµãŒãã¹ãèšè¿°ããPHPæ¡åŒµæ©èœãäœæããŸãã A-Teamã¯ãPHPãšããŒã¿ããŒã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ãããã³ä»ã®ããŒã åãã®ããŒã«ã®éçºãšãµããŒãã«åŸäºããŠããŸãã
ãŠãŒã¶ãŒãèŠããã®ïŒäœ¿çšãããã®ïŒã®èŠ³ç¹ããç¹å®ã®ãããžã§ã¯ãã«ã€ããŠè©±ãå Žåãç§ãã¡ã¯æ¬¡ã®ããšã«åŸäºããŸãã
- åçïŒã¹ãã¬ãŒãžãšé ä¿¡ã®ã€ã³ãã©ã¹ãã©ã¯ãã£å šäœãç§ãã¡ã«ãããŸãã
- ç¬èªã®ã¹ã¯ãªããã¯ã©ãŠãããããŸãïŒããã¯ãåæ£ã¯ã©ãŠã³ãã§ããããã·ã³ã®ã¯ã©ãŠãäžã§ãªãã©ã€ã³ãã³ãã©ãŒãå®è¡ã§ããŸãïŒã
- ãµãŒãã¹ã®ãã¹ãŠã®ãã©ãããŒããæ åœããŸãïŒä»ã®BadooããŒã ã«ãµãŒãã¹ãžã®äŸ¿å©ãªã¢ã¯ã»ã¹ãæäŸããŸããã·ã£ãŒãã£ã³ã°ããããããèªå·±èšè¿°åã®è€è£œæ¹æ³ããããŸãïŒã
ç§ãã¡ã¯ãã©ãããŒãã«è²¬ä»»ããããŸãããªããªããäœæ¥ãåçŽåããã¡ã€ã³ã¿ã¹ã¯ããã®ãã¹ãŠãçªç¶äžæãããšãã®äºæããªãç¶æ³ãé²ãããã«ãä»ã®ããŒã ã®ããã¯ãšã³ãéçºè ãããããã®å éšããã¹ãŠé ãããããã§ãã
ãµãŒãã¹ïŒãã³ãããœããã¢ãã¯ãªã©
åœç€Ÿã®å éšãµãŒãã¹ã®äžéšã¯ãæéã®çµéãšãšãã«æ¬æ Œçãªè£œåã«æé·ããPHPãšã³ã·ã¹ãã ã®äºå®äžã®æšæºã«ãªããŸããã ãããã®äžã§æãæåãªã®ã¯PHP-FPMïŒçŸåšã¯Webã®æšæºPHPé ä¿¡ã®äžéšã«ãªã£ãŠããŸãïŒãAndrey NigmatulinïŒ ãã®ãããã¯ã«é¢ããã¬ããŒãã¯ãã¡ãã§ç¢ºèªã§ããŸã ïŒãããã³PinbaïŒhttp://pinba.org/ïŒåéãããªãŒããŒãããïŒUDPïŒãªãã§å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ãããªã¢ã«ã¿ã€ã çµ±èšãåä¿¡ããŸã ãããã«ããããã€ã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã§äœãèµ·ãã£ãŠããããç°¡åã«ç解ã§ããŸãã
ãã³ãã¯ãåžžã«ããŒã¿ãåéã§ãããšããç¹ã§äŸ¿å©ã§ãã ãããŠãåé¡ã®åå ãç解ããå¿ èŠãããå Žåããã®ããŒã¿ã¯åžžã«æå ã«ãããŸãã ããã¯äŸ¿å©ã§ãåé¡ãèŠã€ããŠä¿®æ£ããã®ã«ãããæéãå€§å¹ ã«ççž®ããŸãã ããã«éèŠãªããšã¯ãPinbaããŠãŒã¶ãŒã«ãŸã 圱é¿ãäžããŠããªããšãã«ãåé¡ãäºåã«ç¢ºèªããã®ã«åœ¹ç«ã€ãšããäºå®ã§ãã
ãŸããSoftMocksãçºæããŠäœæããŸãããããã¯ããŠããããã¹ãã容æã«ããç¬èªã®ãã¬ãŒã ã¯ãŒã¯ã§ããããã¹ãã§ã¯ã©ã¹ãšé¢æ°ã眮ãæããããšãã§ããŸãã ã€ã³ã¿ãŒããªã¿ãŒã®å éšã¢ãŒããã¯ãã£ãå€§å¹ ã«åèšèšãããå€ãRunkitãæ©èœããªããªã£ãPHP7ãžã®ç§»è¡ã«é¢é£ããŠäœæããå¿ èŠããããŸããã åœæãçŽ5äžã®ãŠããããã¹ããããããã®å€§éšåã¯äœããã®æ¹æ³ã§mokiã䜿çšããŠå€éšç°å¢ãåé¢ããRunkit / Uopzãã匷åãªå¯èœæ§ã®ããå¥ã®ã¢ãããŒããè©Šãããšã«ããŸããã
SoftMocksã®äž»ãªå©ç¹ã®1ã€ã¯ãã€ã³ã¿ãŒããªã¿ãŒã®å éšæ§é ããã®ç¬ç«æ§ãšããµãŒãããŒãã£ã®PHPæ¡åŒµæ©èœãäžèŠã§ããããšã§ãã ããã¯ãåœç€Ÿãéžæããã¢ãããŒãã«ããå®çŸãããŸã-å®è¡äžã®ããã°ã©ã ã®ãœãŒã¹ã³ãŒããæžãæããã€ã³ã¿ããªã¿å ã®åçãªçœ®æã§ã¯ãããŸããã çŸæç¹ã§ã¯ã ãããžã§ã¯ãã¯ãªãŒãã³ãœãŒã¹ã§ã¬ã€ã¢ãŠããããŠãã ã誰ã§ã䜿çšã§ããŸãã
Badooã«ã¯éåžžã«åŒ·åãªPHPéçºè ããŒã ãããããšããåç¥ãããããŸããã ãããã£ãŠã2016幎ã«ãã®ãããªèŠæš¡ã®ãããžã§ã¯ãïŒBadooãªã©ïŒãPHP 7ã«ç§»è¡ããæåã®äŒæ¥ã®1ã€ã§ããããšã¯é©ãããšã§ã¯ãããŸããã ãã®èšäºã«åºãŠããçµç·¯ãåºäŒã£ãããšãåŸããã®ã«ã€ããŠèªãããšãã§ããŸãã
ã·ã¹ãã ããã°ã©ãã³ã°ã Goã®äœ¿çšãéå§ããæ¹æ³ãšãããããããããã®

Marco Kevats ã mkevac ãC / C ++ããã°ã©ããŒ
C / C ++éšéã§ã¯ãæ¯ç§æ°åäžä»¶ã®ãªã¯ãšã¹ããåŠçããæ°çŸã®ã¬ãã€ãã®ããŒã¿ãã¡ã¢ãªã«ä¿åããé«æ§èœã®ã€ã³ã¡ã¢ãªããŒã¢ã³ãéçºããŠããŸãã ãã®äžã§ããããããããã€ã³ããã¯ã¹ã䜿çšããæ€çŽ¢ããŒã¢ã³ãèªå·±èšè¿°JITã䜿çšããæ€çŽ¢ããŒã¢ã³ããŸãã¯ãã¹ãŠã®ã¢ãã€ã«ã¯ã©ã€ã¢ã³ãã®æ¥ç¶ãšãªã¯ãšã¹ããåŠçããã¹ããŒããããã·ãªã©ãèŠã€ããããšãã§ããŸãã å¿ èŠã«å¿ããŠãPHPèšèªãããŒãºã«åãããŠæ¡åŒµããŸãã ããã€ãã®ãããã¯ã¢ããã¹ããªãŒã ã«éãããããã€ãã¯ç§ãã¡ã«ãšã£ãŠããŸãã«ãå ·äœçã§ãããã€ãã¯ããŒãå¯èœãªã¢ãžã¥ãŒã«ã®åœ¢ã§è¡ãããšãã§ããŸãã NGINXã®ã¢ãžã¥ãŒã«ãäœæããã³ä¿å®ããURLãããŒã¿ã®æå·åãé«éã®ãªã³ã¶ãã©ã€åçåŠçãªã©ãåŠçããŸãã
ç§ãã¡ã¯çéå ¥ãã®ã·ã¹ãã ããã°ã©ããŒã§ãããC / C ++ããã°ã©ãã³ã°ã®ãã¹ãŠã®æ¬ ç¹ïŒéçºã®é 延ãæœåšçãªãšã©ãŒãã¹ã¬ããã䜿çšããããã°ã©ãã³ã°ã®è€éãïŒãå®å šã«ç解ããŠããŸãã
Googleã®æ°ãããè¥ã ãããææãªèšèªã§ããGoã®ç»å Žä»¥æ¥ãç§ãã¡ã¯ããã«èå³ãæã¡å§ããŸããã ãããŠã2012幎ã«æåã®å®å®ããŒãžã§ã³ããªãªãŒã¹ãããçŽåŸã«ãæ¬çªç°å¢ã§ã®äœ¿çšã®å¯èœæ§ãæ€èšãå§ããŸããã
Goã¯ãç§ãã¡ã®æããCã«ç²Ÿç¥ãšããã©ãŒãã³ã¹ãè¿ã¥ããããšãçŽæããŸãããããããã¿ã€ããæçµè£œåã§ããããããéãããšã©ãŒãå°ãªãããããšãã§ããŸããã ãããŠãGoããã®ãã£ãã«ãgoroutinesãšã®ç«¶äºã®å矩èªã§ãããšããäºå®ã¯ãç¹ã«ç§ãã¡ã®æ³ååãåºæ¿ããŸããã
ãã®ç¬éãç§ãã¡ã¯çŸå®äžçã®äººã ã®éã®äº€å·®ç¹ãèŠã€ãããšããæ°ããã¯ãŒã«ã§éåžžã«ç·æ¥ã®èª²é¡ãæ±ããŠããŸããã èŠä»¶ãèããåŸãç§ãã¡ã¯åå±ã§ã»ãšãã©å«ã³ãŸããïŒãããã¯Goã®ã¿ã¹ã¯ã§ãïŒãå€æ°ã®ãŠãŒã¶ãŒåº§æšã¹ããªãŒãã³ã°ãåŠçããæéãå«ãããã€ãã®ã座æšãã§æ£ãã亀差ãããäœããã®çµæãçæããããšãå¿ èŠã§ããã éšåéã®å€ãã®çžäºäœçšãå€ãã®äžŠåèšç®ã äžèšã§èšãã°ããŸãã«Goã®åºæ¬çãªã¿ã¹ã¯ã¯äœã§ããã
ãããã¿ã€ãã¯1é±éã§3人ã«ãã£ãŠäœæãããŸããã 圌ã¯åããã 圌ã¯ããåããã ãããŠãGoãç§ãã¡ãšå ±ã«å®çããããšãèªèããŸããã 2015幎ã Anton Povarovã Badooã®å²aboutã«ã€ããŠè©³ãã説æããŸããã
ããããç§ãã¡ã®ããã³ã¹ãå®ç§ã ã£ããšã¯èšããŸããã åœæã®Goã¯å€ãã®åé¡ãæ±ããéåžžã«è¥ãèšèªã§ãããããã«1ç§ãããæ°äžã®ãªã¯ãšã¹ããåŠçããã»ãŒ100ã®ã¬ãã€ãã®ã¡ã¢ãªãæ¶è²»ãã補åã®äœæãéå§ããŸããã
äžèŠãªã¡ã¢ãªå²ãåœãŠãçŽæ¥è¡ããªãããã«ããŸãGoã³ã³ãã€ã©ããããã®å²ãåœãŠãè¡ãããšã決å®ããªãããã«ããµãŒãã¹ãæé©åããå¿ èŠããããŸããã ãããŠãããã§Goã®çŸãããšäŸ¿å©ããåã³çŸããŸããã Goã¯æåãããã³ã³ãã€ã©ãã¹ã¿ãã¯ã§ã¯ãªãããŒãã«ããŒã¹ãå²ãåœãŠãããšã決å®ããããã«ãããã©ãŒãã³ã¹ãã¡ã¢ãªæ¶è²»ããããã¡ã€ãªã³ã°ããããã®åªããããŒã«ãæã£ãŠããŸããã ãããã®ããŒã«ã®ååšã«ãããæé©åã¯å°éºŠç²ã§ã¯ãªããèå³æ·±ãæçãªåéºã«ãªããŸããã
æåã®ãããžã§ã¯ãã§ã¯ãCã§èšè¿°ãããæ¢åã®å°çèšç®ã©ã€ãã©ãªã䜿çšããå¿ èŠããããŸããããã®ãããããã2ã€ã®èšèªã®çžäºäœçšã®åé¡ãšãã¥ã¢ã³ã¹ã®éåžžã«åãéšåã«çªå ¥ããŸããã
Goã¯ããã ã¢ããã®ã€ãã·ã¢ããã§ãã£ããããååããããŒãžã£ãŒãããã«ã¢ã€ãã¢ãæåŠããªãããã«ããå¿ èŠããããŸããã Goãããžã§ã¯ããæäœåŽã®Cãããžã§ã¯ããšå€ãããªãããã«ããå¿ èŠãããããšãç解ããŸããïŒJSONã®åãæ§æãåã察話ãããã³ã«ïŒJSONã®ã¡ã€ã³ã®protobufãšã»ã«ã³ããªïŒãåãæšæºçµ±èšRRDã Goã§ã®ãšã³ãžãã¢ãªã³ã°ãããžã§ã¯ãã®ãªãªãŒã¹ãCã®ãããžã§ã¯ããšãŸã£ããç°ãªãããšã確èªããå¿ èŠããããŸãããåãGit + TeamCity FlowãTeamCityã§ã®åããã«ããåãèšç®ããã»ã¹ã§ãã ãããŠããããã£ãã
管çè ãéçšãããã³ãªãªãŒã¹ãšã³ãžãã¢ã¯ããããžã§ã¯ãã®å 容ã«ã€ããŠèããŸããã æ°ããããŒã«ã¯å®éã«ã¯å®å šã«èšŒæãããŠãããããæ°ããããŒã«ã䜿çšããããšãæ¥ãããããå±ã§ã¯ãªãããšã«æ°ä»ããŸããïŒéèŠã§ã¯ãªãã¿ã¹ã¯ã§ãéå§ããå¿ èŠããããŸãïŒã
ãŒãããäœãäœæããŸããã§ãã-Goãé·å¹Žã«ããã£ãŠååšããã€ã³ãã©ã¹ãã©ã¯ãã£ã«çµã¿èŸŒã¿ãŸããã ãã®äºå®ã¯ãGoã®æšæºçãªãã®ã®äœ¿çšãå¶éããŸããã ããããç§ãã¡ãããã«æ·±å»ãªé«è² è·ãããžã§ã¯ããæžãå§ãããšããäºå®ãšçžãŸã£ãŠããã®äºå®ããç§ãã¡ãçã£å ã«èšèªã®é ã«çªå ¥ããããšãå¯èœã«ããŸããã ç§ãã¡ã¯æ±ãããšã§æåã§ããããã®è¿æ¥æ§ã¯ç§ãã¡ããã®çŸããèšèªãšãå ±ã«æé·ãããã®ã«åœ¹ç«ã¡ãŸããã
Goã®åããŒãžã§ã³ã§ãåäŸã倧人ã«ãªã£ãŠæé·ããæ§åãèŠãã®ã¯é¢çœãã£ãã§ãã æ°ããããŒãžã§ã³ããšã«ããŒã¢ã³ã®GCãäžæåæ¢ããã®ãèŠãŸããããããã¯ã³ãŒããå€æŽããããšãªãè¡ãããŸãïŒ
ãã®èšèªã§ã®4幎éã®äœæ¥ã®åŸã3ã€ã®ããŒã ã§Goã®çŽ10ã®æãå€æ§ãªãµãŒãã¹ãšãããã«ããã€ãã®æ°ããèšç»ããããŸãã å²ã¯ãã£ãããšå µåšåº«ã«å ¥ã£ãŠããŸãã ç§ãã¡ã¯ããããã調çãããæ¹æ³ãšããã€äœ¿çšããããç¥ã£ãŠããŸãã äœå¹Žãçµã£ãåŸãããã°ã©ããŒããGoã§ãããã¿ã€ãããã°ããã¹ã±ããããããã䞊ååŠçãšçžäºäœçšãéåžžã«å€ãã®ã§ãããã¯Goã«é©ããŠããããªã©ã®ããšãå®æçã«èšã£ãŠããã®ãèãã®ã¯èå³æ·±ãããšã§ãã
åç
Artyom Denisov ã bo0rsh201 ãã·ãã¢PHPããã°ã©ããŒ
åçã¯è£œåã®èŠ³ç¹ããBadooã®éèŠãªã³ã³ããŒãã³ãã®1ã€ã§ãããç§ãã¡ã¯åã«ãããã®ä¿ç®¡ãšè¡šç€ºã®ããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«å€ãã®æ³šæãæã矩åããããŸãã çŸæç¹ã§ã¯ãçŽ3 PBã®åçãä¿åãããŠãŒã¶ãŒã¯æ¯æ¥çŽ350äžã®æ°ããåçãã¢ããããŒãããåãµã€ãã§ã®èªã¿èŸŒã¿è² è·ã¯çŽ80k req /ç§ã§ãã
æŠå¿µçã«ã¯ã次ã®ããã«æ§æãããŠããŸãã åœç€Ÿã¯ã3ã€ã®ããŒã¿ã»ã³ã¿ãŒïŒãã€ã¢ãããã©ããéŠæž¯ïŒã«3ã€ã®æ ç¹ã眮ããŠãããã»ãšãã©ã®ã¿ãŒã²ããåžå Žã«å°åãæäŸããŠããŸãã
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®æåã®å±€ã¯ãçä¿¡ãã©ãã£ãã¯ã®98ïŒ ãåŠçããé«éSSDãåãããµãŒããŒããã£ãã·ã¥ããç¬èªã®ããCDNãå®è¡ããŸããããã¯ãè² è·ã®æ§è³ªã«æé©åããããã£ãã·ã¥ãããã·ã§ãããå€ãã®å®çšç/補åããžãã¯ïŒACLããµã€ãºå€æŽããªãŒããŒã¬ã€ãã£ã«ã¿ãŒãšãŠã©ãŒã¿ãŒããŒã¯ã®ãªã³ã¶ãã©ã€ããµãŒããããã¬ãŒã«ãŒãªã©ïŒã
次ã®å±€ã¯ãé·æä¿ç®¡ãæ åœãããµãŒããŒã®ãã¢ã®ã¯ã©ã¹ã¿ãŒã§ãã
ãã®ãã¡ã®ããã€ãã¯ãåçãçŽæ¥ä¿åãããããŒã«ã«ãã£ã¹ã¯ãæã¡ãããã€ãã¯3çªç®ã®å±€ã§ããã¹ãã¬ãŒãžãšãªã¢ãããã¯ãŒã¯ã«å åŠçã«æ¥ç¶ãããŠããŸãã
ãããã®ãã·ã³ã®ãã¢ã¯åããŠãŒã¶ãŒç¯å²ãæäŸãããã¹ã¿ãŒ-ãã¹ã¿ãŒã¢ãŒãã§åäœããéåæãã¥ãŒãä»ããŠçžäºã«å®å šã«è€è£œããã³ããã¯ã¢ããããŸãã ãã®ãããªãã¢ãååšããããšã«ãããããŒããã£ã¹ã¯ã¬ãã«ã ãã§ãªããç©çãã¹ãïŒã«ãŒãã«ãããã¯ãåèµ·åããã©ãã¯ã¢ãŠããªã©ïŒã®ã¬ãã«ã§ããã©ãŒã«ããã¬ã©ã³ã¹ãå®çŸã§ããŸãããŸããã¹ã±ãžã¥ãŒã«ãããäœæ¥ãå®è¡ãããµãŒãã¹ãäœäžãããããšãªãé害ã«èããããšãã§ããŸããã¹ã±ãŒã«ã¯çãããããŸããã
åçã䜿çšããäœæ¥ã®è©³çŽ°ã«ã€ããŠã¯ã Artyom Denisovãä»å¹ŽHighload ++㧠è¬æŒããŸãã ã
ã¹ã¯ãªããã¯ã©ãŠã
ã©ã®ãããžã§ã¯ãã§ãããŠãŒã¶ãŒã®ãªã¯ãšã¹ãã®ã³ã³ããã¹ãã§å®è¡ãããã¢ã¯ã·ã§ã³ã«å ããŠã延æãããããŸãã¯ç¹å®ã®ã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠå®è¡ãããããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãå€æ°ããããšã¯ç§å¯ã§ã¯ãããŸããã éåžžã圌ãã¯äœããã®çš®é¡ã®ããã¯ã°ã©ãŠã³ãã¯ãŒã«ãŒã¹ã±ãžã¥ãŒã©ã䜿çšããŸãïŒæãåçŽãªå Žåãããã¯cronã§ãïŒã
ãã®ãããªã¿ã¹ã¯ã®æ°ãšãããã«ãã£ãŠæ¶è²»ããããªãœãŒã¹ã®éãå¢å ãããšãåŸã ã«1ã€ãå Žåã«ãã£ãŠã¯æ°åã®ç©çãã·ã³ã«é©åããªããªãããããã®ã¯ã©ãŠã³ã管çããã¯ã©ã¹ã¿ãŒå ã®åããŒãã®è² è·ãæåã§èª¿æŽããããšãé£ãããªããŸãã ãã®ãããéçºã¿ã¹ã¯ãééçã«èµ·åããããã®æè»ãªã€ã³ãã©ã¹ãã©ã¯ãã£ã§ããã¯ã©ãŠããäœæããå¿ èŠããããŸããã
次ã®ããã«æ©èœããŸãã
1ïŒéçºè ã¯ãããã€ãã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒã¯ã©ãŠã³ã¹ã¯ãªããããã¥ãŒããŒãµãŒãããŒã¿ããŒã¹ã¯ããŒã©ãŒãªã©ïŒã®1ã€ãå®è£ ããPHPã¯ã©ã¹ã®åœ¢åŒã§ãžã§ãã説æããŸãã
2ïŒWebã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã¯ã©ãŠãã«è¿œå ããèµ·åé »åºŠãã¿ã€ã ã¢ãŠããããã³ãªãœãŒã¹å¶éã®ãã©ã¡ãŒã¿ãŒãéžæããŸãã
3ïŒæ¬¡ã«ãã·ã¹ãã èªäœãã¯ã©ãŠãã«å²ãåœãŠãããåæ£ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ãã®ãžã§ããèµ·åãããã®å®è£ ãç£èŠããã¯ã©ã¹ã¿ãŒã®è² è·ãåæ£ããŸãã éçºè ã¯ããžã§ãã®äœæ¥ã®ã¹ããŒã¿ã¹ãç£èŠããWeb UIãä»ããŠãã°ã確èªããããšããã§ããŸããïŒå®è¡ãããŠããã€ã³ã¹ã¿ã³ã¹ã®æ°ãèšå®ã®çµäºãéå§æ¹æ³ãªã©ïŒã
çŸæç¹ã§ã¯ãã¯ã©ãŠãã«ã¯2ã€ã®DCã48k CPUã³ã¢/ 84Tbã¡ã¢ãªã«çŽ2000ã®ãã¹ãããããŸãã 1800ã®ãŠãŒã¶ãŒãžã§ãã¯ã1ç§ãããçŽ4,000ã®éå§ãçæããŸãã
ãããšããã§ã¯ã©ãŠãã«ã€ããŠè©±ããŸãã ã
LSDïŒã©ã€ãã¹ããªãŒãã³ã°ããŒã¢ã³
äœããã®æ¹æ³ã§å€§éã®ããŒã¿ãæ±ããã¹ãŠã®äººã¯ãããããã¹ããªãŒãã³ã°ããã¿ã¹ã¯ã«çŽé¢ããŠããŸãã ååãšããŠãå€æ°ã®ç°ãªããœãŒã¹ããã®ããŒã¿ã1ãæã«ã¹ããªãŒãã³ã°ããŠãããã§äžå çã«åŠçã§ããããã«ããŸãã ããã«ããã®ããŒã¿ã®ã¿ã€ãã¯ãã°ãã°åœ¹å²ãæãããŸãããã¢ããªã±ãŒã·ã§ã³ãã°ãçµ±èšããŠãŒã¶ãŒã€ãã³ããªã©ãã¹ããªãŒãã³ã°ããŸãã æŠå¿µçã«ã¯ã2ã€ã®ç°ãªãã¢ãããŒãã䜿çšããŠãã®åé¡ã解決ããŸãã
1ïŒè£œå/ã¢ããªã±ãŒã·ã§ã³ããžãã¯ã«é¢é£ããã€ãã³ããé ä¿¡ããããã®ãã¥ãŒãµãŒããŒã®ç¬èªã®å®è£ ã
2ïŒããŸããŸãªãã°ãçµ±èšã¡ããªãã¯ãããã³å€æ°ã®ããŒãããã®åçŽã«å€§éã®ããŒã¿ãã¹ããªãŒãã³ã°ããããã®ã·ã³ãã«ãªã¡ã«ããºã ããããã¯ãäžå çã«éçŽããã1ã€ã®å Žæã§å€§ããªãã³ãã«ã§åŠçãããå¿ èŠããããŸãã
2çªç®ã®ã¿ã¹ã¯ã§ã¯ã Facebook Scribeãé·ãé䜿çšããŠããŸãããããããä»ããŠéãããããŒã¿éãå¢å ããã«ã€ããŠãäºæž¬ãã«ãããªããé·ãéå¿ããããŠããŸããã
ãã®çµæãããæç¹ã§ïŒãã®ã¿ã¹ã¯ã¯ããã»ã©é£ãããªãããã«èŠããã®ã§ïŒç¬èªã®ãœãªã¥ãŒã·ã§ã³ãäœæããã»ããåçæ§ãé«ããªããã¡ã³ããã³ã¹ã容æã«ãªããŸãã
ç¬èªã®ã¹ããªãŒãã³ã°ã€ãã³ãLSDïŒLive Streaming DaemonãåŒã³åºããŸããã
LSDã®äž»ãªæ©èœïŒ
- ãã¬ãŒã³ãã¡ã€ã«ããã®æåå圢åŒã®ãã©ã³ã¹ããŒãïŒã¯ã©ã€ã¢ã³ãã«ãšã£ãŠãããŒã«ã«FSãã¡ã€ã«ã«ããŒã¿ãæžã蟌ãããšã»ã©ä¿¡é Œã§ãããã®ã¯ãããŸããïŒã
- ãã¹ãŠã®å®å ãµãŒããŒãå©çšã§ããªãå Žåã§ããèšé²äžã«ã¯ã©ã€ã¢ã³ãã¯ãããã¯ãããŸããïŒãããã¡ãŒã¯ããŒã«ã«FSã«èç©ãããŸãïŒã
- ãããã¯ãŒã¯/ãã£ã¹ã¯ãªãœãŒã¹ã®æ¶è²»ã®å¶éã®ééçãªå¶åŸ¡/èšå®ã
- äºææ§ã®ããèšé²åœ¢åŒ/ã¬ã·ãŒããŒã§ã®ãã¡ã€ã«éçŽã®æ¹æ³ãèšé²ããŸãã
ä»å¹ŽãLSDã®ãœãŒã¹ã³ãŒããå ¬éããŸãããããããžã§ã¯ãã§äœ¿çšã§ããããã«ãªããŸããã
Cassandra Time SeriesïŒæŠèŠãšä»çµã¿

Evgeny Guguchkin ã che ãã·ãã¢PHPããã°ã©ããŒ
Badooã¯ãå€ãã®é¢é£ã³ã³ããŒãã³ãã§æ§æãããè€éãªã·ã¹ãã ã§ãã ãã®ã·ã¹ãã ã®ç¶æ ãè©äŸ¡ããã®ã¯ç°¡åãªããšã§ã¯ãããŸããã ãããè¡ãã«ã¯ã1ç§ãããçŽ200,000å€ã®é床ã§2å5,000äžãè¶ ããã¡ããªãã¯ãåéããŸãããã®ããŒã¿ã¯çŽ10 TBããããŸãã
æŽå²çã«ãæç³»åã®ä¿åãšèŠèŠåã«ã¯ãããç¥ããããŠãŒãã£ãªãã£RRDtoolã䜿çšããŸãããããã¯ãäœæ¥ã®å©äŸ¿æ§ã®ããã«ãã¬ãŒã ã¯ãŒã¯ã§ãã©ãããããŸããã
RRDtoolã§æ°ã«å ¥ã£ãã®ã¯ãèªã¿åãé床ã§ãã ãã ããé倧ãªæ¬ ç¹ããããŸãã
- å€æ°ã®ã©ã³ãã ã¢ã¯ã»ã¹I / Oã«ãã£ãŠåŒãèµ·ããããé«ããã£ã¹ã¯è² è·ïŒSSDãšRRDcachedã䜿çšããŠãã®åé¡ã解決ããŸããïŒã
- é¡åçã«èšé²ããæ©èœã®æ¬ åŠïŒã€ãŸããããæç¹ã®å€ã2016-01-01 00:00:00ã«èšé²ããå Žåã2015-12-31 23:59:59ã®å€ãèšé²ããããšã¯ã§ããªããªããŸãã
- çããŒã¿çšã®ãã£ã¹ã¯ã¹ããŒã¹ã®ããªãç¡é§ãªäœ¿çšã
- ããŒã¿ãžã®ã¢ã¯ã»ã¹ã¯ããŒã«ã«ã§å®è¡ãããŸããç®±ããåºããŠæ°Žå¹³æ¹åã«ã¹ã±ãŒãªã³ã°ããåæ£ã·ã¹ãã ãæ§ç¯ããããšã¯äžå¯èœã§ãã
ããããªããã°ãåããã£ãŒãã«ç°ãªããµãŒããŒããã®ã¡ããªãã¯ã衚瀺ã§ããªãã£ãããããããç§ãã¡ã«ãšã£ãŠæ±ºå®çã«ãªã£ãæåŸã®ãã€ã³ãã§ããã
ãã®çµæãæç³»åããŒã¿ããŒã¹ã®åéã«ãããæ¢åã®ãœãªã¥ãŒã·ã§ã³ã®è©³çŽ°ãªåæãè¡ãã誰ãé©åã§ã¯ãªãããšã確èªããCassandraã«åºã¥ããŠç¬èªã®ãœãªã¥ãŒã·ã§ã³ãäœæããŸããã
çŸæç¹ã§ã¯ãå®éã®ããŒã¿ã®ååãæ°ããã¹ãã¬ãŒãžã«è€è£œãããŠããŸãã æ°åã§ã¯ã次ã®ããã«ãªããŸãã
- 9å°ã®ãµãŒããŒã
- 10 TBã®ããŒã¿ã
- 1ç§ããã100,000å€ã
- 1å4000äžã®ã¡ããªãã¯ã
åæã«ãç§ãã¡ãçŽé¢ããã»ãšãã©ãã¹ãŠã®ã¿ã¹ã¯ã解決ããŸããã
- ã¯ã©ã¹ã¿ãŒå ã®1ã€ã®ããŒãã«é害ãçºçããŠããèªã¿åããŸãã¯æžã蟌ã¿ã¯ãããã¯ãããŸããã
- ãçã®ãããŒã¿ã1é±éïŒããŒã¿ãå€æŽã§ãããŠã£ã³ããŠãæäœäžã«æ§æããã³å€æŽã§ãããŠã£ã³ããŠïŒããå€ããã®ã§ã¯ãªãå Žåãè¿œå ããããšããçã®ãããŒã¿ãæžãæããããšãã§ããŸãã
- ã¯ã©ã¹ã¿ãŒã®åçŽãªã¹ã±ãŒãªã³ã°
- é«äŸ¡ãªSSDãã©ã€ãã䜿çšããå¿ èŠã¯ãããŸããã
- ããã«ãHDDã®RAIDã¢ã¬ã€ãåé·æ§ãªãã§äœ¿çšããªãããšãå¯èœã§ãããã£ã¹ã¯ã亀æãããšãããŒãã¯é£æ¥ã¬ããªã«ããããŒã¿ãå埩ã§ããããã§ãã
æ¢åã®ãœãªã¥ãŒã·ã§ã³ãåæããæ°ãããœãªã¥ãŒã·ã§ã³ãæ§ç¯ããããã«è¡ãããäœæ¥ãéåžžã«èªãã«æã£ãŠããŸãã Cassandraã§ã®äœæ¥äžã«ç¡æ°ã®ã¬ãŒããèžãã ã®ã§ãåãã§è³ªåã«çããçµéšãå ±æããŠãã ããã
Badoo AMAïŒãã©ãããã©ãŒã ã®éçºè ã«è³ªåãã
ãããŠä»ãå®éã«ããªããã®æçš¿ãå ¬éããã®ãã æ¬æ¥12:00ãã19:00ïŒã¢ã¹ã¯ã¯æéïŒããã©ãããã©ãŒã ããŒã ã質åã«çããŸãã ããŒã ã®åç¶äžã«å€ãã®ããšãçµéšããŸãããæ¡åŒµãå€æŽãç 究ãããã€ãã®åé¡ã«çŽé¢ããæ°ããããã°ã©ãã³ã°èšèªã«åãçµã¿ãŸããã ãããŠãç§ãã¡ã¯ããªãã®çµéšãããªããšå ±æããæºåãã§ããŠããŸãïŒfeylãfakapyãç§ãã¡ã®çã¿ã«ã€ããŠè©±ãããšãå«ãïŒã
ããšãã°ã次ã«ã€ããŠè³ªåããŸãã
- å éšãããžã§ã¯ãã®é 眮ïŒã·ã£ãŒãã£ã³ã°ã®é 眮æ¹æ³ãçµ±èšã®åéããã³æç»æ¹æ³ããµãŒãã¹ãšã®éä¿¡æ¹æ³ïŒ;
- ã©ã®ãããªã¬ãŒããèžãã ã®ããç¹å®ã®æ±ºå®ãäžããçç±ïŒ1ã€ã®DCã1ã€ã®ãµãŒããŒã«é©åããªããªã£ããšãã«äœãããã®ãïŒ
- PHP / Cããã°ã©ããŒã®åŒ·åãªããŒã ã®äœæ¥ã®ã«ã¹ã¿ãã€ãºã
- PHP 7ãžã®ç§»è¡ïŒçºçããå¯èœæ§ã®ããåé¡ïŒ;
- è² è·ã®é«ããããžã§ã¯ãã§äœæ¥ããæ©èœã
- PHPããã³Goããã°ã©ããžã®æšå¥šäºé ã
- äžèšã®æçš¿ã§èª¬æãããŠãããã¹ãŠã
ããããããã§æ¢ãŸããªãã§ãã ããïŒ
UPDïŒè³ªåãå¯ããŠããããã¹ãŠã®äººã«æè¬ããŸããAMAã»ãã·ã§ã³ãçµäºããŸãããåçã¯ç¶ããŸãããããã«ã¯çããŸããã ãããã£ãŠ-ããäžåºŠè³ªåããŠãã ããã