UPDã å
ã®èšäºã¯ããªãå€ã-2010幎ã§ãã ä»ãç¶æ³ã¯ç°ãªããŸãã
2010幎12æãRedditã«ã¯8å2,900äžã®ãã¥ãŒãš119å°ã®ãµãŒããŒããããŸããã
2011幎æ«-2.07Bãã¥ãŒããã³240ãµãŒããŒã
æŽæ°ããŠããã
potomushtoã«æè¬ããŸãã
UPD 2.è²ç¥èŠã«åé¡ã®ãã人åãã®ã¹ããŒã ãä¿®æ£ããŸããã
second_pilotãš
spiritedflowã«æè¬ããŸã
Redditã®äœæè
ã®1人ã§ããSteve Huffmanã¯ãRedditã®æ§ç¯ãšéçºäžã«åŠãã ããšã1ãæãããæ倧750äžãŠãŒã¶ãŒã1ãæããã2å7åäžããŒãžãã¥ãŒã20ãè¶
ããããŒã¿ããŒã¹ãµãŒããŒã«äŒããŸããã
ã¹ãã£ãŒãã¯ãåŠãã æèšã®ã»ãšãã©ãæçœã§ããããããã¬ãŒã³ããŒã·ã§ã³ã«æ ¹æ¬çã«æ°ããã¢ã€ãã¢ã¯ãªãããšãæããã«ããŸããã ããããã¹ãã£ãŒãã«ã¯è±å¯ãªçµéšãããããã®ã¬ãŒããèŠãããšãã§ããªãã£ãå Žåã¯ããããããããã®ãæçœãªããšãã«æ³šæãæãå¿
èŠããããŸãã
7ã€ã®ã¬ãã¹ã³ã¯ããããã察å¿ããã»ã¯ã·ã§ã³ã§æ€èšãããŸãã
- é »ç¹ã«èœã¡ã
- ãµãŒãã¹å
±æ
- ãªãŒãã³ããŒã¿ã¹ããŒã
- ç¶æ
ãä¿åããªã
- Memcache
- åé·ããŒã¿ãä¿åãã
- ããã¯ã°ã©ãŠã³ãã§äœæ¥ãæ倧éã«æŽ»çšãã
Redditã¢ãŒããã¯ãã£ã®æãèå³æ·±ãç¹ã¯ããã¬ãã¹ã³6-åé·ããŒã¿ã®ä¿åãã§ãã åºæ¬çãªèãæ¹ã¯éåžžã«åçŽã§ã-ãã¹ãŠãäºåã«èšç®ããŠãã£ãã·ã¥ããããšã§é床ãéæããŸãã Redditã¯æ倧èšç®ã䜿çšããŸãã Redditã«è¡šç€ºããããã¹ãŠã®ãã®ã¯ãä¿åããããŒã¿ã®ããŒãžã§ã³ã®æ°ã«é¢ä¿ãªããäºåã«èšç®ãããŠãã£ãã·ã¥ãããŠãããšããå°è±¡ãåããŸãã ããšãã°ã誰ãããªã³ã¯ãè¿œå ãããšããã«ãã¡ãã»ãŒãžã®ãªã¹ãã®ã¡ãã»ãŒãžããœãŒããã1ââ5ã®æ¹æ³ïŒããããæ°ããããã¹ããªãŒã«ããä»é±ãªã©ïŒããã¹ãŠãã£ãã·ã¥ããŸãã éåžžã®éçºè
ã¯ããªãœãŒã¹ã®ç¡é§ã ãšèããŠããã®ãããªæ¥µç«¯ãªãã£ãã·ã¥ãäœæããããšãæããŠããŸãã ããããRedditããŒã ã¯ãé床ãèœãšãããããããããã®ãªãœãŒã¹ãè²»ããæ¹ãè¯ããšèããŠããŸãã ãŠãŒã¶ãŒãåŸ
ãããŠãããããããã£ã¹ã¯å®¹éãšã¡ã¢ãªã䜿ãæ¹ãè¯ãã§ãã ãããã£ãŠãäºåèšç®ãšãã£ãã·ã³ã°ãæ倧éã«äœ¿çšããããšã«æ¥ãããããæããŠããå Žåã¯ãåäŸããããŸãã
ã¬ãã¹ã³1ïŒé »ç¹ã«èœã¡ã
ã¬ãã¹ã³ã®æ¬è³ªã¯ç°¡åã§ã-ããããããããµãŒãã¹ãŸãã¯å€±æãããµãŒãã¹ãèªåçã«åèµ·åããŸãã
å°çšãµãŒããŒã䜿çšããå Žåã®åé¡ã¯ããã®ãµããŒãã«åžžã«è²¬ä»»ããããšããããšã§ãã ãµãŒãã¹ãã¯ã©ãã·ã¥ããå Žåãåå2æã«ãä»ãã修埩ããå¿
èŠããããŸãã ããã¯ããªãã®äººçã§äžå®ã®ããã¯ã°ã©ãŠã³ãã¹ãã¬ã¹ãçã¿åºããŸãã åžžã«ã³ã³ãã¥ãŒã¿ãŒãæã¡æ©ãå¿
èŠãããããã€ã§ã誰ããå¥ã®çœå®³ãå ±åããããã«é»è©±ã§ããããšãç¥ã£ãŠããŸãã ããéããªããã°ãªããŸããã ãã®ã¢ãããŒãã¯äººçãèããããªããã®ã«ããŸãã
ãã®åé¡ã解決ããæ¹æ³ã®1ã€ã¯ãåæ¢ãããµãŒãã¹ãŸãã¯èª€ã£ãåäœãéå§ãããµãŒãã¹ãåèµ·åããããšã§ãã Redditã¯ã¹ãŒããŒãã€ã¶ãŒã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãåèµ·åããŸãã ç¹å¥ãªç£èŠããã°ã©ã ã¯ãã¡ã¢ãªã倧éã«æ¶è²»ããããã»ã¹ãããã»ããµæéããŸãã¯ãã³ã°ããããã»ã¹ã匷å¶çµäºããŸãã å¿é
ãã代ããã«ãã·ã¹ãã ãåèµ·åããã ãã§ãã ãã¡ããããã°ãèªãã§è»¢åã®çç±ãç解ããå¿
èŠããããŸãã ãããããã®ãããªã¢ãããŒãã«ãããå·éããšçæ§ãä¿ã€ããšãã§ããŸãã
ã¬ãã¹ã³2ïŒãµãŒãã¹ã®å
±æ
ã¬ãã¹ã³ã®æ¬è³ªã¯ãç°ãªããã·ã³ã§åæ§ã®ããã»ã¹ãšããŒã¿ãã°ã«ãŒãåããããšã§ãã
1å°ã®ãã·ã³ã§å®è¡ããã¢ã¯ã·ã§ã³ãå€ããããšãã¿ã¹ã¯ã®ã³ã³ããã¹ãåãæ¿ããå€ãå¿
èŠã«ãªããŸãã åãµãŒããŒãç¹å®ã®æ¹æ³ã§ç¹å®ã®ããŒã¿åãåŠçããããã«ããŠãã ããã ããã¯ããã¹ãŠã®ã€ã³ããã¯ã¹ããã£ãã·ã¥ã«èœã¡ããã£ãã·ã¥ããèœã¡ãªãããšãæå³ããŸãã åæ§ã®ããŒã¿ãã§ããéãäºãã«è¿ã¥ããŠãã ããã Pythonã¹ã¬ããã䜿çšããªãã§ãã ããã 圌ãã¯é
ããªããŸãã Redditéçºè
ã¯ããã¹ãŠãããã€ãã®ãµãŒãã¹ã«åå²ããŸããã ãµãŒãã¹ã«ã¯ãã¹ãã ãã§ãã¯ãç»ååŠçãã¯ãšãªãã£ãã·ã¥ãå«ãŸããŸãã ããã«ãããããããè€æ°ã®ãã·ã³ã«ç°¡åã«ç²ç ã§ããŸãã ãããã£ãŠã圌ãã¯ããã»ã¹ã®çžäºäœçšã®åé¡ã解決ããŸããã ãããŠããã®åé¡ã解決ããããšãã¢ãŒããã¯ãã£ã¯ããã¯ãªãŒã³ã«ãªããæé·ãããããªããŸãã
ã¬ãã¹ã³3ïŒããŒã¿ããŒã¹ã¹ããŒããéã
ã¬ãã¹ã³ã®æ¬è³ª-ã¹ããŒã ãå¿é
ããªãã§ãã ããã
Redditéçºè
ã¯ãããŒã¿ã®æ§é ãšãã®æ£èŠåã«ã€ããŠå¿é
ããããšã«å€ãã®æéãè²»ãããŸããã ã¹ããŒãã®å€æŽã¯ãæé·ããã«ã€ããŠãŸããŸãé«äŸ¡ã«ãªããŸããã 1ã€ã®åã1,000äžè¡ã«è¿œå ããã«ã¯ã倧éã®ããã¯ãå¿
èŠã§ããããéåžžã«ããŸãæ©èœããŸããã§ããã Redditã¯ãã¹ã±ãŒãªã³ã°ãšããã¯ã¢ããã«ã¬ããªã±ãŒã·ã§ã³ã䜿çšããŸããã ã¹ããŒãã®æŽæ°ãšã¬ããªã±ãŒã·ã§ã³ã®ãµããŒãã¯å€§å€ãªäœæ¥ã§ãã ã¬ããªã±ãŒã·ã§ã³ãåèµ·åããªããã°ãªããªãå Žåããããããã¯ã¢ãããçµæ¥æ©èœããªãå ŽåããããŸãã ãœãããŠã§ã¢ã®æŽæ°ãšããŒã¿ããŒã¹ã¹ããŒãã®æŽæ°ãåæã«æž¡ãããããšãä¿èšŒããå¿
èŠãããããããªãªãŒã¹ãåé¡ãåŒãèµ·ãããŸããã
代ããã«ããšã³ãã£ãã£ããŒãã«ãšããŒã¿ããŒãã«ã䜿çšããŸãã Reddit-eã§ã¯ããŠãŒã¶ãŒããªã³ã¯ãã³ã¡ã³ãããµããã©ãŒã©ã ãè³ãªã©ããã¹ãŠããšã³ãã£ãã£ã§ãã ãšã³ãã£ãã£ã¯ãè³æ祚ãå察祚ãã¿ã€ããäœææ¥ãªã©ãããã€ãã®å
±éå±æ§ãå
±æããŸãã DataããŒãã«ã«ã¯ãThing IDãKeyãValueã®3ã€ã®åãå«ãŸããŠããŸãã åå±æ§ã®è¡ã ã¿ã€ãã«ããªã³ã¯ãäœè
ãã¹ãã ã®æ祚ãªã©ã®è¡ããããŸãã ããã§ãæ°ããæ©èœãè¿œå ãããšãã«ãããŒã¿ããŒã¹ã®æ§é ãå¿é
ããå¿
èŠããªããªããŸããã æ°ãããšã³ãã£ãã£ã«æ°ããããŒãã«ãè¿œå ããããæŽæ°ãå¿é
ããå¿
èŠã¯ãããŸããã éçºãšä¿å®ãç°¡åã§ãã äŸ¡æ Œ-ã¯ãŒã«ãªãªã¬ãŒã·ã§ãã«æ©èœã䜿çšã§ããªãã joinã䜿çšããããšã¯ã§ãããããŒã¿ã®æŽåæ§ãæåã§ç¢ºèªããå¿
èŠããããŸãã åå æã«å€éšããŒãå¿é
ããããããŒã¿ãåå²ããæ¹æ³ãå¿é
ããå¿
èŠã¯ãããŸããã äžè¬çã«ãããã¯ããªãããŸããããŸããã ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«é¢ããæžå¿µã¯éå»ã®ãã®ã§ãã
ã¬ãã¹ã³4ïŒç¶æ
ã®ä¿åãé¿ãã
åãµãŒããŒã®ç®æšã¯åçŽã§ã-ä»»æã®ã¿ã€ãã®ãªã¯ãšã¹ããåŠçããããšã§ãã Redditãæé·ããäžæ¹ã§ããŸããŸãå€ãã®ãã·ã³ã䜿çšããå¿
èŠããããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãã£ãã·ã¥ã«äŸåããããšã¯ã§ããªããªããŸããã æåã¯ãåã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®ç¶æ
ãè€è£œããŸããããããã¯RAMã®æµªè²»ã§ããã ã¡ã¢ãªã«å€§éã®å°ããªããŒã¿ãä¿æããŠãããããmemcachedã䜿çšã§ããŸããã§ããããé床ã¯åäžããŸããã§ããã memcacheããµããŒãããããã«ãµãŒãã¹ãæžãçŽããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«ç¶æ
ãä¿åããªããªããŸããã ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãã¯ã©ãã·ã¥ããŠãã寿åœã¯æ¢ãŸããŸããã ã¹ã±ãŒãªã³ã°ã¯ãæ°ãããµãŒããŒãè¿œå ããã ãã®åé¡ã§ãã
ã¬ãã¹ã³5ïŒMemcache
äžçªäžã®è¡ã¯ããã¹ãŠã«memcacheã䜿çšããããšã§ãã
Redditã¯memcacheã次ã®ç®çã§äœ¿çšããŸãã
- ããŒã¿ããŒã¹ããŒã¿
- ã»ãã·ã§ã³ããŒã¿
- çæãããããŒãž
- å
éšé¢æ°ã®ã¡ã¢åïŒä»¥åã«èšç®ãããçµæã®ãã£ãã·ã¥ïŒ
- ãªã¯ãšã¹ãæ°ã®å¶é
- äºåã«èšç®ããããªã¹ããšããŒãžã®ä¿å
- ã°ããŒãã«ããã¯
çŸåšã§ã¯ãPostgresã§ã¯ãªãMemcachedbã«ãã¹ãŠã®ããŒã¿ãä¿åããŠããŸãã ããã¯memcacheã®é¡äŒŒç©ã§ãããããŒã¿ããã£ã¹ã¯ã«ä¿åããŸãã éåžžã«è¿
éãªä¿®æ£ã ãã¹ãŠã®ãªã¯ãšã¹ãã¯åãã³ãŒãã§çæãããmemcacheã«ãã£ãã·ã¥ãããŸãã ãã¹ã¯ãŒããå€æŽãããšããªã³ã¯ã¯20åçšåºŠãã£ãã·ã¥ãããŸãã ãã£ããã£ã«ã€ããŠãåãããšãèšããŸãã æ°žä¹
ã«ä¿åããããªããªã³ã¯ã«å¯ŸããŠãåãã¢ãããŒãã䜿çšããŸãã
圌ãã¯ã¡ã¢åããã¬ãŒã ã¯ãŒã¯ã«çµã¿èŸŒã¿ãŸããã èšç®çµæããã£ãã·ã¥ãããŸãïŒæ£èŠåãããããŒãžããªã¹ãããã®ä»ãã¹ãŠã
memcacheã䜿çšããŠãªã¯ãšã¹ãã®æ°ãå¶éãããªã¯ãšã¹ãã®æå¹æéãå¶éããŸãã ã·ã¹ãã ãæ»æããä¿è·ããè¯ãæ¹æ³ã ãã®ãããªãµãã·ã¹ãã ããªããã°ãæªæã®ãããŠãŒã¶ãŒãã·ã¹ãã ãåæ¢ãããå¯èœæ§ããããŸãã 颚氎ãããªãã§ãã ããã ãããã£ãŠããŠãŒã¶ãŒãšã€ã³ãã¯ãµãŒã®å ŽåãããŒã¿ã¯memcacheã«ä¿åãããŸãã ãŠãŒã¶ãŒã1ç§ä»¥å
ã«ç¹°ãè¿ãé»è©±ãããããšãããã¯ãªããããŸãã éåžžã®ãŠãŒã¶ãŒã¯ããã»ã©éãã¯ãªãã¯ããªãã®ã§ãäœã«ãæ°ä»ããŸããã Googleã€ã³ãã¯ãµãŒã¯èš±å¯ãããé »åºŠã§åŠçããããããã¹ãŠãé
ããªãå§ãããããªã¯ãšã¹ãã®é »åºŠãå¶éããŸãã ãããŠãã·ã¹ãã ã¯ããŠãŒã¶ãŒã«äžäŸ¿ãããããããšãªããããç©ããã«æ©èœãå§ããŸãã
Redditã®ãã¹ãŠã¯ãªã¹ãã§ãã ããŒã ããŒãžããã©ã€ããŒãã¡ãã»ãŒãžãã³ã¡ã³ãããŒãžã ãããã¯ãã¹ãŠäºåã«èšç®ããããã£ãã·ã¥ã«é
眮ãããŸãã ãªã¹ããååŸãããšããã£ãã·ã¥ããååŸãããŸãã åãªã³ã¯ãšåã³ã¡ã³ãã¯ããããã100çš®é¡ã®ããªãšãŒã·ã§ã³ã§ä¿åãããŸãã ããšãã°ã30ç§åã«äœæããã2祚ã®ãªã³ã¯ãã¬ã³ããªã³ã°ãããåå¥ã«ä¿åãããŸãã 30ç§åŸãåã³ã¬ã³ããªã³ã°ãããŸãã ãªã©ãªã©ã ãã¹ãŠã®HTMLã¯ãã£ãã·ã¥ããååŸãããŸãã ãããã£ãŠãCPUæéã¯ããŒãžã®ã¬ã³ããªã³ã°ã«ç¡é§ã«ãªããŸããã ãã¹ãŠãé
ããªãå§ãããããã£ãã·ã¥ãè¿œå ããŸãã
圌ãã¯éèã£ããããŒã¿ããŒã¹ã§äœæ¥ããããã«ãªããšãã°ããŒãã«ããã¯ãšããŠmemcacheã䜿çšããŸãã ããã¯åäœããŸãããããã¯æè¯ã®ãªãã·ã§ã³ã§ã¯ãããŸããã
ã¬ãã¹ã³6ïŒåé·ããŒã¿ãä¿åãã
ã¬ãã¹ã³ã®æ¬è³ªïŒæé«é床ãéæããããã«-ãã¹ãŠãäºåã«èšç®ããçµæããã£ãã·ã¥ããŸãã
é
ãWebãµã€ããäœæããããã®ä¿èšŒãããæ¹æ³ã¯ãæ£èŠåãããããŒã¿ããŒã¹ãçšæãããªã³ããã³ãã§ã¢ã¯ã»ã¹ããŠããHTMLãçæããããšã§ãã 1åã®ãªã¯ãšã¹ãã§ãæ°žé ã«æéãããããŸãã ãã®ãããããã€ãã®åœ¢åŒã§è¡šç€ºã§ããããŒã¿ãããå Žåãã¡ã€ã³ããŒãžã®ãªã³ã¯ãåä¿¡ã¡ãã»ãŒãžããããã¡ã€ã«ã«ãããããã¹ãŠã®ãã¥ãŒãåå¥ã«ä¿åããŸãã ãããã誰ããå
¥ã£ãŠããŒã¿ã«ã¢ã¯ã»ã¹ãããšãæºåãæŽããŸãã
åãªã¹ãã«ã¯ã15ã®ç°ãªããœãŒãé ïŒããããæ°èŠããã¹ããå€ããä»é±ïŒãèšå®ã§ããŸãã 誰ããæ°ãããªã³ã¯ãè¿œå ãããšããããé¢ä¿ããå¯èœæ§ã®ãããã¹ãŠã®ãªã¹ããåã«ãŠã³ãããŸãã äžèŠãããã¯ç¡é§ã«èŠããŸãããé床ãèœãšãããããéãå
ã«äœ¿ãæ¹ãè¯ãã§ãã ãŠãŒã¶ãŒãåŸ
ãããŠãããããããã£ã¹ã¯å®¹éãšã¡ã¢ãªã浪費ããæ¹ãåªããŠããŸãã
ã¬ãã¹ã³7ïŒããã¯ã°ã©ãŠã³ãã§äœæ¥ãæ倧éã«æŽ»çšãã
ã¬ãã¹ã³ã®æ¬è³ªïŒãµãŒããŒåŽã§æå°éã®æäœãè¡ãããã¹ãŠã®æºåãæŽã£ãããšããŠãŒã¶ãŒã«äŒããŸãã
äœãããå¿
èŠãããå Žåã¯ããŠãŒã¶ãŒãããªããåŸ
ã£ãŠããªããšãã«è¡ããŸãã ãžã§ãããã¥ãŒã«å
¥ããŸãã ãŠãŒã¶ãŒãRedditã«æ祚ãããšããŠãŒã¶ãŒã®ãªã¹ããã«ã«ãããã®ä»å€ãã®ããšãæŽæ°ãããŸãã ãããã£ãŠãæ祚æã«ãããŒã¿ããŒã¹ã¯æŽæ°ãããŠæ祚ã®äºå®ãããŒã¯ããŸãã ãã®åŸãã¿ã¹ã¯ã¯ãã¥ãŒã«å
¥ããããã¿ã¹ã¯ã¯æŽæ°ãå¿
èŠãª20ã®ãã¹ãŠãèªèããŸãã ãŠãŒã¶ãŒãæ»ããšãå¿
èŠãªãã¹ãŠã®ããŒã¿ããã£ãã·ã¥ãããŸãã
ããã¯ã°ã©ãŠã³ãã§Redditãè¡ãããšïŒ
- ãã£ãã·ã¥ãªã¹ã
- ããã»ã¹åç
- è©æ¬ºåž«ãçºèŠãã
- ã¹ãã ãåé€ãã
- å ±é
¬ãèšç®ãããŸã
- æ€çŽ¢ã€ã³ããã¯ã¹ãæŽæ°
ãŠãŒã¶ãŒãããªããåŸ
ã£ãŠããéããããã®ããšãããå¿
èŠã¯ãããŸããã ããšãã°ãRedditã人æ°ãåãããšããè©äŸ¡ãäžããè©Šã¿ãããé »ç¹ã«ãªããŸããã ãã®ããããã®ãããªç¶æ³ãæ€åºããããã«å€ãã®ãµãŒããŒæéãè²»ãããŠããŸãã ããã¯ã°ã©ãŠã³ãã§ã®ãã®ãµãŒãã¹ã®åäœã¯ããŠãŒã¶ãŒããã以äžæ祚ããããšã劚ããŸããã
以äžã¯ã¢ãŒããã¯ãã£å³ã§ãã

éãç¢å°ã¯ããªã¯ãšã¹ããåä¿¡ãããšãã«äœãèµ·ãããã瀺ããŠããŸãã 誰ãããªã³ã¯ãé¢ããããæ祚ãããšããŸãããã ãã®ããŒã¿ã¯ããã£ãã·ã¥ãã¡ã€ã³ããŒã¿ããŒã¹ãããã³ãžã§ããã¥ãŒã«éãããŸãã çµæã¯ãŠãŒã¶ãŒã«è¿ãããŸãã ãªãã©ã€ã³ã§çºçãããã®ä»ã®ããšã¯ãé»è²ã®ç¢å°ã§è¡šãããŸãã SpamãPrecomputerãThumnailerãªã©ã®ãµãŒãã¹ã¯ããã¥ãŒãããžã§ããåä¿¡ããŠââå®è¡ããããŒã¿ããŒã¹ãæŽæ°ããŸãã æè¡çãœãªã¥ãŒã·ã§ã³ã®äž»ãªãã€ã©ã€ãã¯RabbitMQã§ãã
PSãRedditã®ã¬ãã¹ã³ãErlangã§ã¢ããªã±ãŒã·ã§ã³ãèšèšãããã©ã¯ãã£ã¹ãšæ¯èŒããããšã¯éåžžã«èå³æ·±ãã§ãã 倱æãããŠãç£ç£ããªãŒãã ãã·ã¢ã OTPã®ããã¥ã¡ã³ããŒã·ã§ã³ã®ãã·ã¢èªèš³ã¯
ããã«ãããŸã ã
PPS RabbitMQ in Actionã®ããã€ãã®ç« ã翻蚳ãããšããã¢ã€ãã¢ããããŸãã ããã¯ã©ãã»ã©é¢çœãã§ããããïŒ