åççãªäººã ã¯ãã®ããã«æ±ºå®ãäžããŸããã ããããããã¯ããã°ã©ããŒãMapReduceã®ãããªãã®ã䜿çšããããšããã°ãã°æ±ºå®ããæ¹æ³ã§ãã
ãžã§ãŒãã©ãŒã¹ã¿ã€ã³ãçåŸã«ãã®éžæã«ã€ããŠã³ã¡ã³ãããæ¹æ³ã¯æ¬¡ã®ãšããã§ãïŒ54åç®ïŒã
äºå®ãäžçã«ã¯çŸåšãåæ§ã®éã®ããŒã¿ãåŠçããçŽ5瀟ãååšããŸãã ä»ã®èª°ãããã®ããŒã¿ããã¹ãŠããåããããã©ãŒã«ããã¬ã©ã³ã¹ãå®çŸããŸãããããã¯æ¬åœã«å¿ èŠãããŸããã 人ã ã¯2000幎代åã°ããã®ã¬ã³ãããã¢ãšã°ãŒã°ã«ã«èŠããã§ããŸãããäžçæ倧ã®ïŒå°æ¥ïŒããŒã¿åŠçãµãŒãã¹ã®1ã€ãæ§ç¯ããŠããã®ã§ãGoogleãšåãããã«ãã¹ãŠãè¡ããŸãïŒã
ããŒã¿ã»ã³ã¿ãŒã®éæ°ã¯ïŒ Googleã¯çŸåšããªã¯ã©ããã«ãããã®ãããª4é建ãŠã®å»ºç©ã建èšäžã§ãã
ããªããæ¬åœã«å¿ èŠãšãã以äžã®åŒŸåæ§ãåŸãããšã¯è¯ãèãã®ããã«æãããããããŸããã ããããããã¯ãèªåçãã€ç¡æã§çºçããå Žåã®ã¿ã§ãã ããããããã¯ããã§ã¯ãªãããã¹ãŠã«ç¬èªã®äŸ¡æ ŒããããŸããããŒãéã§å€§å¹ ã«å€ãã®ããŒã¿ãéä¿¡ããã ãã§ãªãããããæ¯æãã ãã§ãªããå€å žçãªããŒã¿ã¹ãã¬ãŒãžã·ã¹ãã ïŒãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ãã€ã³ããã¯ã¹ãã¯ãšãªãªããã£ãã€ã¶ãŒãªã©ïŒã®ããŒãã°ã©ãŠã³ãããäžæ©èžã¿åºããŸã.dãïŒæ°ããªã·ã¹ãã ã®è匱ãªã€ã³ãã©ã¹ãã©ã¯ãã£ãŒã®äžå®å®ãªå Žæã ããã¯éèŠãªã¹ãããã§ãïŒå€ãã®å Žåã åŸéããŸã ïŒã äœäººã®HadoopãŠãŒã¶ãŒãæèçã«äœæããŸãããïŒ ãã®ãã¡ã®äœäººãããããããèããããè³¢æãªåãã ã£ããšèšãããšãã§ããŸããïŒ
ãã®ç¹ã§MapReduceãšHadoopã¯æ¹å€ã®å¯Ÿè±¡ãšãªããããããªããªãã貚ç©ã«ã«ãã®ä¿¡è ã§ããã圌ãã®ååŒãäœããã®åœ¢ã§èªç©ºæ©ãåŒãä»ããã®ã«ããŸãããŸãæ©èœããªãã£ããšæçµçã«èªããããã§ããã ãããããã®èŠ³å¯çµæã¯äžè¬åã§ããŸãã倧äŒæ¥ãäœæãããã¯ãããžãŒã䜿çšããããšã«æ±ºããå Žåããã®æ±ºå®ã«æèçã«è³ããªãã£ãå¯èœæ§ããããŸãã 巚人ã®æ¯ãèããæš¡å£ããããšãå¯èœã§ãããšããäºå®ã«å¯Ÿããç¥ç§çãªä¿¡å¿µãããããããåãé«ãã«éããããšãããã«ã€ãªãã£ãå¯èœæ§ã¯ååã«ãããŸãã
ã¯ããããã¯ãã1ã€ã®ãåã«ãŒãŽã«ã«ããèšäºã§ãã ããããåŸ ã£ãŠïŒ 詳现ãªæ å ±ã«åºã¥ããå€æãäžãã®ã«åœ¹ç«ã€äŸ¿å©ãªãã§ãã¯ãªã¹ãã以äžã«ç€ºããŸãã
ã¯ãŒã«ãªãã¯ãããžãŒïŒ ããŠãããããã§ãã¯ããŸãããã
次åãå®å šã«çŽ æŽããããã¯ãããžãŒãçªç¶çºèŠãããšããä»æ¥ããã«ã¢ãŒããã¯ãã£ãŒå šäœãæžãçŽããªããã°ãªããªãå Žåãäžæåæ¢ããããã«ãé¡ãããŸãã
- 補åã§è§£æ±ºããå¿
èŠãããåé¡ã«ã€ããŠèããŠãã ããã æåŸãŸã§ç解ããŠãã ãã ã ããªãã®ä»äºã¯ãããã€ãã®ããŒã«ã®å©ããåããŠãã®åé¡ã解決ããããšã§ãããããªãã®å¥œããªããŒã«ã解決ã§ãããããã€ãã®ãåé¡ã解決ããããšã§ã¯ãªãã¯ãã§ãã
- ããã€ãã®æœåšçãªããŒã«ãéžæããŸãã ããã€ãã®éžæè¢ã®ãªã¹ããã§ãããŸã§ãèªåçšã«ããæ°ã«å
¥ããã1ã€éžæããªãã§ãã ããã
- ååè£è
ã«ã€ããŠã圌ã®ã ãã¹ã¿ãŒææž ããèŠã€ããŠèªãã§ãã ããã ã³ã¡ã³ãã翻蚳ã§ã¯ãªãããåããããã¥ã¡ã³ãã
- ãã®ããŒã«ã®äœæã«ã€ãªãã£ãæŽå²çèæ¯ãç¹å®ããŸã ã
- çæ³ã¯ãããŸããã åããŒã«ã®é·æãšçæãæ¯èŒæ€èšããŸãã äœæè
ãäž»ãªç®æšãéæããããã«å¿
èŠãªåŠ¥åç¹ãç解ããŸãã
- èããŠ ïŒ èªåã®ç®æšãšåªå é äœãã䜿çšããäºå®ã®ããŒã«ã®äœæè ã®ç®æšãšåªå é äœãšäžèŽãããã©ãããèª å®ãã€æ£çŽã«è³ªåã«çããŠãã ããã ãã®ããŒã«ã«é¢ããæ°ããäºå®ã¯ã䜿çšãæåŠããå¯èœæ§ããããŸããïŒ ããšãã°ãã¿ã¹ã¯ã®èŠæš¡ã¯ãã¢ããªã±ãŒã·ã§ã³ã®éåçæ§ã«ã€ããŠèããããããã«ããŒã«ãèšèšããããã®ãšã©ã®çšåºŠç°ãªãå¿ èŠããããŸããïŒ
ãããŠãããªãã¯ã¢ããŸã³ã§ã¯ãããŸãã
äžèšã®æ¹æ³è«ã¯éåžžã«ç°¡åã«å®è·µã§ããŸãã æè¿ãç§ã¯ããäŒç€ŸãšãCassandraãæ°ããïŒå ¬æ£ã«èªã¿èŸŒãŸããïŒãããžã§ã¯ãã«äœ¿çšããèšç»ã«ã€ããŠè©±ãåããŸããã Dynamoã®åçã説æããå ã®ããã¥ã¡ã³ããèªã¿ãCassandraãDynamoã«ååã«è¿ãããšãç¥ã£ãŠããããã®ã·ã¹ãã ã¯æžã蟌ã¿æäœã®åªå é äœä»ãã®åçã«åºã¥ããŠããããšã«æ°ä»ããŸããïŒAmazonã¯ãã«ãŒãã«è¿œå ãæäœãåžžã«æåããããšãæãã§ããŸããïŒã ããã«ãåŸæ¥ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®äžè²«æ§ãšæ©èœæ§ã®ä¿èšŒãç ç²ã«ããããšã§ãããéæããŸããã ãããããã®ãœãªã¥ãŒã·ã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠèª¬æããäŒç€Ÿã¯ãããŒã¿ã®æžã蟌ã¿ãåªå ããŸããã§ãããïŒãã¹ãŠã®ããŒã¿ã¯1æ¥ã«1ãããã¯ãã€ïŒãäžè²«æ§ãšå¹ççãªèªã¿åããéåžžã«å¿ èŠã§ããã
Amazonã¯å€ãã®ç°ãªã補åã販売ããŠããŸãã ããã¹ã±ããã«è¿œå ãæäœãçªç¶äžå®å®ã«åäœãå§ããå Žå-å€ãã®ãéã倱ããŸãã åãç¶æ³ã§ããïŒ
Cassandraãå®è£ ãããäŒç€Ÿã¯ãPostgreSQLã®ã¯ãšãªã®1ã€ãæ°åéå®è¡ããããã©ãããã©ãŒã ã®ããŒããŠã§ã¢æ©èœã«ãã£ãŠå¶éããããšèããŠããããããããå®è¡ããŸããã ããã€ãã®æ確ãªè³ªåã®åŸãããŒã¹ãSSDã«ç§»åãããšããã®èŠæ±ã2æ¡ïŒæ倧æ°ç§ïŒå éãããããšãããããŸããã ãã¡ãããããã§ããŸã äœéã§ããããSSDãžã®ç§»è¡ïŒ2çªç®ã®åé¡ïŒã«ãã£ãŠããã«ããã¯ãçŽ100åé«éåã§ããããšã«æè¬ããŸãã ã¢ãŒããã¯ãã£ã®åºæ¬çãªå€æŽãªãã Cassandraãžã®ç§»è¡ãæ£ããæ¹æ³ã§ã¯ãªãããšãæããã«ãªããŸããã ããŒã¿ããŒã¹ã¹ããŒããåæ§ç¯ããå¯èœæ§ãããæ¢åã®ãœãªã¥ãŒã·ã§ã³ã調æŽããå¿ èŠããããŸããããRECORDINGã®åé¡ã解決ããããã«äœæãããããŒã«ã«ãã£ãŠREADINGã®åé¡ã解決ããããšã¯ããŸããã§ããã
ããã«ãããªãã¯LinkedInã§ã¯ãããŸãã
ç§ã®ç¥ãåãã®äžäººãã«ãã«åšèŸºã§åœŒãã®å»ºç¯ãã©ã®ããã«æ±ºå®ããããç¥ã£ããšããç§ã¯éåžžã«é©ããŸããã ããã¯ç§ã«ãšã£ãŠå¥åŠã«æããŸããããªããªãã圌ãã®äž»ãªä»äºã¯æ°åïŒè¯ãæ¥-æ°çŸïŒã®éåžžã«éèŠãªãã©ã³ã¶ã¯ã·ã§ã³ãåŠçããããšã ã£ãããã§ãã ãã®ãããªå ¥åè² è·ã®å Žåãã ç¥æ¯ãçŽã®ããŒãã«æäœæ¥ã§æžã蟌ã ããšãããœãªã¥ãŒã·ã§ã³ã§ããé©åã§ãã Kafkaã¯ããã¹ãŠã®LinkedInåææ å ±ïŒãããã®ã¡ãã»ãŒãžããªã¯ãšã¹ããã°ã«ãŒãããã£ããããã¥ãŒã¹ãè©äŸ¡ãªã©ãã¹ãŠïŒãåéããããã«äœæãããŸããã 倧éã®ããŒã¿ã çŸåšããã®ããªã¥ãŒã ãæšå®ããããšã¯ã§ããŸããããæ°å¹ŽåãLinkedInã¯1æ¥ã«1å 件ã®ã€ãã³ããçºçãããåã ã®ããŒã¯ã¯1ç§ãããæ倧1,000äžä»¶ã§ããã ã¯ãã1æ¥ããã10件ã®ãã©ã³ã¶ã¯ã·ã§ã³ãæ£åžžã«åŠçã§ããããšãç解ããŠããŸãã ãããããªããããè¡ãã®ã§ããããïŒ çè«çãªè² è·ãšå®éã®å¿ èŠæ§ã®éãã¯10ãªãŒããŒã§ãïŒ
ããšãã°ãç§ãã¡ã®å€ªéœã¯å°çããã6æ¡å€§ããã ãã§ãã
ã¯ãããã®äŒç€Ÿã®ãšã³ãžãã¢ãã«ãã«ã®ãã¹ãŠã®å©ç¹ãåççã«è©äŸ¡ããè² è·ã«é¢ä¿ãªããç§ã«ã¯æªç¥ã®äœããã®çç±ã§ãã®ããŒã«ãéžæããå¯èœæ§ããããŸãã ãããã圌ãã¯åã«ç±ççãªã¬ãã¥ãŒãèšäºãã³ãã¥ããã£ã®æèŠããŸãã¯ãã«ãã«ãåããªããããšå«ãã äœãã®åœ±é¿ãåããã ãã®å¯èœæ§ãé«ãã§ã...ãããããŸããããªãã¯10æ¡ã ãšæããŸãïŒ
ããªãã¯ã¢ããŸã³ã§ã¯ãªãããšãè¿°ã¹ãŸãããïŒ
Amazonã®åæ£ããŒã¿ããŒã¹ãããããã«äººæ°ã®ãããã®ã¯ãã¹ã±ãŒãªã³ã°ã«å¯Ÿããã¢ãŒããã¯ãã£ã¢ãããŒãã§ãããµãŒãã¹æåã¢ãŒããã¯ã㣠ïŒSOAïŒã§ãã 2001幎ãAmazonã¯ããã³ããšã³ãã®è² è·ãå¹æçã«ã¹ã±ãŒãªã³ã°ã§ããªãããšãèªèãããã®åé¡ã®è§£æ±ºã«åãçµãã§SOAã«åãçµã¿ãŸããã ãã®ãµã¯ã»ã¹ã¹ããŒãªãŒã¯å£é ã§ããããšã³ãžãã¢ããå¥ã®ãšã³ãžãã¢ã«æžé¢ã§äŒéããã3人ã®ããã°ã©ããŒãšãŒããŠãŒã¶ãŒã®æåã®ã¹ã¿ãŒãã¢ããã¯ãã¹ãŠãããŒã ããŒãžããããµãŒãã¹ã«åå²ããããšã§ã©ã€ããã¹ãéå§ããŸãã AmazonãSOAã«ç§»è¡ããå¿ èŠæ§ãèªèãããŸã§ã«ã åŸæ¥å¡æ°ã¯7,800人ã§ã幎é30åãã«çžåœã®ååã販売ããŠããŸãã ã
ãã®éšå±ã¯7,000人ãå容ããŸãã ãããŠãAmazonã«ã¯SOAãžã®åãæ¿ããå¿ èŠãªãšãã«7800ããããŸããã
SOAãå®è£ ããããã«7800人ç®ã®åŸæ¥å¡ãéçšããããŸã§åŸ ã€å¿ èŠããããšèšã£ãŠããã®ã§ã¯ãããŸããã èªåããŠã¿ãŠãã ãã-ããã¯ä»è§£æ±ºããå¿ èŠãããåé¡ã§ããïŒ ä»ã«èª°ãããŸãããïŒ ãããçå®ã§ãããããªãã®50人ã®äŒç€ŸãSOAã®äžåšäžã§æ£ç¢ºã«äŒãã§ãããšç§ã«èšã£ãããäœååãã®å€§äŒæ¥ãããã«å šãèŠããã§ããªããšããäºå®ãã©ã®ããã«èª¬æããŸããïŒ
ãããŠã°ãŒã°ã«-ã°ãŒã°ã«ã§ã¯ãªã
HadoopãSparkãªã©ã®æ¡åŒµæ§ã®é«ãããŒã«ã䜿çšããããšã¯éåžžã«èå³æ·±ãå ŽåããããŸãã ãã ããå®éã«ã¯ãåŸæ¥ã®æ©åšã¯éåžžã®è² è·ãããã«éãè² è·ã«é©ããŠããŸãã äžèŠã倧ããªãããªã¥ãŒã ã1å°ã®ã³ã³ãã¥ãŒã¿ãŒã®RAMã«å®å šã«åãŸãããšããããŸãã ä»æ¥ãçŽ1äžãã«ã§ãã©ãã€ãã®RAMãå ¥æã§ããããšããåç¥ã§ããïŒ 10å人ã®ãŠãŒã¶ãŒãããå Žåã§ãïŒ1人ã§ã¯ãªãå ŽåïŒããã®äŸ¡æ Œã®å ŽåããŠãŒã¶ãŒããšã«RAMã«1ãããã€ãã®ããŒã¿ãååŸã§ããŸãã éåžžã«é«éãªãããã€ããå©çšå¯èœã§ãã ããããããã¯ããªãã®ã¿ã¹ã¯ã«ã¯ååã§ã¯ãªãããã£ã¹ã¯ããäœããèªã¿æžãããå¿ èŠããããŸãã ãããããã£ã¹ã¯ã®æ°ã¯ããã€ã§ããïŒ ã»ãšãã©ãªãã GFSãMapReduceãªã©ã®ãœãªã¥ãŒã·ã§ã³ã¯ãã€ã³ã¿ãŒãããå šäœã®æ€çŽ¢ã€ã³ããã¯ã¹ãä¿åããããã«å°ãã®éäœæãããŠããå¿ èŠã¯ãããŸããã
ä»æ¥ã®ããŒããã£ã¹ã¯å®¹éã¯ãGFSã®èª¬æãçºè¡ããã2003幎ãããå€§å¹ ã«å®äŸ¡ã§ãã
GFSããã³MapReduceã®ããã¥ã¡ã³ããèªãã ããšããããããããŸããã ããããã°ãGoogleã解決ããããšããŠããäž»ãªåé¡ã¯å®¹éã§ã¯ãªã垯åå¹ ã ã£ãããšãæãåºãããšãã§ããŸãã 圌ãã¯é©åãªããŒã¿ã«ããéãã¢ã¯ã»ã¹ããããã«åæ£ã·ã¹ãã ãæ§ç¯ããŸããã ããããä»æ¥ã¯2017幎ã§ãããããã€ã¹ã®åž¯åå¹ ã¯æ¡å€§ããŠããŸãã Googleã»ã©ããŒã¿ãåŠçããå¿ èŠã¯ãªãããšã«æ³šæããŠãã ããã ããã§ãããè¯ãããŒããã©ã€ãïŒãã¶ãSSDïŒãè²·ãã ãã§ååãããããŸãããããã§ååã§ããïŒ
ããããããªãã¯æéãšãšãã«æé·ããããšãæåŸ ããŠããŸãã ããããããªãã¯ã©ããããæ£ç¢ºã«èããŸãããïŒ SSDã®ã³ã¹ããããéãããŒã¿ãèç©ããŸããïŒ ãã¹ãŠã®ããŒã¿ã1å°ã®ç©çãã·ã³ã«åãŸããªããªããŸã§ãããžãã¹ãã©ãã ãæé·ãããå¿ èŠããããŸããïŒ 2016幎ã1æ¥ã«2å件ã®ã¯ãšãªãåŠçããStack Exchangeã·ã¹ãã ã¯ãã¹ã¿ãã¯ãªãŒããŒãããŒçšãä»ã®ãã¹ãŠçšãããã³2ã€ã®ã¬ããªã«ã®4ã€ã®SQLãµãŒããŒã®ã¿ã䜿çšããŸãã ã
äžèšã®ãã§ãã¯ãªã¹ãã«åŸã£ãŠãHadoopãŸãã¯Sparkã§åæ¢ã§ããŸãã ãããŠãããã¯æ£ãã決æã§ãããããããããŸããã ãã ããããã§ã®æ£ãã決å®ãå¿ ãããé·ãç¶ããšã¯éããªãããšãç解ããããšãéèŠã§ãã Googleã¯ãããããç¥ã£ãŠããŸããMapReduceãæ€çŽ¢ã€ã³ããã¯ã¹ãæ§ç¯ããã®ã«ååã«æ©èœããªããšå€æãããšããã«ã䜿çšãäžæ¢ããŸããã
æåã«åé¡ãç解ãã
ãã®ã¢ã€ãã¢ã¯ç§ã®ãã®ã§ã¯ãªãã決ããŠæ°ãããã®ã§ã¯ãããŸããã ãããããããããã®èšäºã®è§£éã§ã¯ãäžèšã®ãã§ãã¯ãªã¹ããšãšãã«ãããªãã®å¿ã«å±ãã§ãããã ããã§ãªãå Žåã¯ã ãã³ã¢ãã¯é§åéçº ã 解決æ¹æ³ããŸãã¯ç§åŠãšå·¥åŠã® å®è·µãªã©ã®è³æãèŠãããšãã§ããŸã-ãã¹ãŠã«åãæèãå«ãŸããŠããŸããåé¡ãè±éçã«è§£æ±ºããåã«ç解ããããã«ããŠãã ããã æ¬G. Polyaã«ã¯æ¬¡ã®ãã¬ãŒãºããããŸãã
ç¥ããªã質åã«å¯ŸããçããèŠã€ããããšããã®ã¯æãã§ãã åé¡ã解決ã§ããªããã®ã«åãçµãã®ã¯æ²ããããšã§ãã