ç§ãã¡ã¯çãç©èªã倧奜ãã§ãã ç§ãã¡ã¯æçã®åšãã«åº§ã£ãŠãéå»ã®åå©ãæŠãããããã¯åã«ä»äºã®çµéšã«ã€ããŠè©±ãã®ã奜ãã§ãã
ä»æ¥ã¯ãŸãã«ãããªæ¥ã§ãã ããšãããªããä»ç«ã®ãã°ã«ããªããšããŠããç§ãã¡ã¯ããªãã«åããã¹ããŒãªãŒãçšæããŠããŸãã Tarantool ã§ã¹ãã¬ãŒãžã䜿ãå§ããçµç·¯ã
ãã€ãŠãåœç€Ÿã«ã¯ããã€ãã®ãäžæ岩ããš XNUMX ã€ã®ã倩äºããããããããã®äžæ岩ããã£ãããšãããã確å®ã«ããã«è¿ã¥ããåœç€Ÿã®é£è¡ãšçºå±ãå¶éããŠããŸããã ãããŠããã€ããã®å€©äºã«å€§ããã¶ã€ããããšã«ãªããšããæ確ãªç解ããããŸããã
çŸåšãæ©åšããããžãã¹ ããžãã¯ã«è³ããŸã§ããããããã®ãåé¢ãããšããã€ããªãã®ãŒãè延ããŠããŸãã ãã®çµæãããšãã°ããããã¯ãŒã¯ ã¬ãã«ã§å®è³ªçã«ç¬ç«ãã XNUMX ã€ã® DC ãååšããŸãã ãããŠããã¹ãŠããŸã£ããéã£ãŠããŸããã
çŸåšã§ã¯ãCI/CDãK8S ãªã©ã®åœ¢åŒã§å€æŽãå ããããã®ããŒã«ãããŒã«ããããããããŸãã ãã¢ããªã·ãã¯ãã®æ代ã«ã¯ãããã»ã©å€ãã®å€æ¥èªã¯å¿ èŠãããŸããã§ããã ããŒã¿ããŒã¹å ã®ãã¹ãã¬ãŒãžããä¿®æ£ããã ãã§ååã§ããã
ããããæéã¯é²ã¿ããªã¯ãšã¹ãã®æ°ãããã«äŒŽã£ãŠå¢å ããæã«ã¯ç§ãã¡ã®èœåãè¶ ãã RPS ãéæããŸããã CIS è«žåœã®åžå Žåå ¥ã«ãããæåã®ã¢ããªã¹ã®ããŒã¿ããŒã¹ ããã»ããµã®è² è·ã¯ 90% ãäžåãããRPS 㯠2400 ã®ã¬ãã«ã«çãŸããŸããããããŠããããã¯åãªãå°ããªã»ã¬ã¯ã¿ãŒã§ã¯ãªãã倧éã®ã¯ãšãªã§ããã倧èŠæš¡ãª IO ãèæ¯ã«ããŒã¿ã®ã»ãŒååã«å¯ŸããŠå®è¡ãããå¯èœæ§ã®ãã倧éã®ãã§ãã¯ãš JOINã
æ¬æ Œçãªãã©ãã¯ãã©ã€ããŒã»ãŒã«ãçŸå Žã«çŸãå§ãããšããã¯ã€ã«ãããªãŒãºã¯ãã·ã¢ã§æåã«ãã©ãã¯ãã©ã€ããŒã»ãŒã«ãéå¬ãããã¡ã®XNUMXã€ã§ãã£ãããç¶æ³ã¯å®å
šã«æ²ãããã®ã«ãªã£ãã çµå±ã®ãšããããã®ãããªæ¥ã®è² è·ã¯XNUMXåã«ãªããŸãã
ããããã®ãäžæ岩ã®æ代ãïŒ ããªããåããããªããšãçµéšããããšããããšæããŸããããªãèªåã«ãããªããšãèµ·ããåŸãã®ãããŸã ç解ã§ããŠããŸããã
ããªãã«ã§ããããš - ãã¡ãã·ã§ã³ã¯ãã¯ãããžãŒã«å
åšããŠããŸãã çŽ 5 幎åãç§ãã¡ã¯ãããã® MOD ã® XNUMX ã€ãããµã€ãèªäœã®ãã¹ãŠã®ããžãã¯ãæ
éã«ä¿åãã .NET ããã³ MS SQL ãµãŒããŒäžã®æ¢åã®ãµã€ãã®åœ¢ã§åèããå¿
èŠããããŸããã ç§ã¯ãããéåžžã«æ³šææ·±ãä¿ç®¡ããŠããã®ã§ããã®ãããªã¢ããªã¹ãéžã§åãã®ã¯é·ããŠæ±ºããŠç°¡åãªåã³ã§ã¯ãªãããšãããããŸããã
å°ããªäœè«ã
ç§ã¯ããŸããŸãªã€ãã³ãã§ãäžæ岩ãèŠãªããã°æé·ããªãïŒããšèšããŸãã ãã®ä»¶ã«é¢ããããªãã®æèŠã«èå³ãããã®ã§ãã³ã¡ã³ãã«æžããŠãã ããã
ãããŠé·ã鳎ã£ã
ãçãç«ãã®è©±ã«æ»ããŸãããã ãã¢ããªã·ãã¯ãæ©èœã®è² è·ãåæ£ããããã«ããªãŒãã³ãœãŒã¹ ãã¯ãããžãŒã«åºã¥ããŠã·ã¹ãã ããã€ã¯ããµãŒãã¹ã«åå²ããããšã«ããŸããã å°ãªããšããã¹ã±ãŒã«ããã®ã«ã³ã¹ããããããªãããã§ãã ãããŠãç§ãã¡ã¯ïŒãããŠå€ãã®ïŒèŠæš¡ãæ¡å€§ããå¿ èŠãããããšã100%ç解ããŠããŸããã çµå±ã®ãšããããã®æç¹ã§ãã§ã«è¿é£è«žåœã®åžå Žã«åå ¥ããããšãå¯èœã§ãããç»é²æ°ãšæ³šææ°ã¯ããã«åŒ·åã«å¢å ãå§ããŸããã
ã¢ããªã¹ãããã€ã¯ããµãŒãã¹ãžã®ç§»è¡ã®æåã®åè£ãåæãããšãããããããžã®æžã蟌ã¿ã® 80% ã¯ãã㯠ãªãã£ã¹ ã·ã¹ãã ããã®ãã®ã§ãããèªã¿åãã¯ããã³ã ãªãã£ã¹ããã®ãã®ã§ããããšãããããŸããã ãŸã第äžã«ãããã¯ç§ãã¡ã«ãšã£ãŠããã€ãã®éèŠãªãµãã·ã¹ãã ãã€ãŸããŠãŒã¶ãŒããŒã¿ãšãè¿œå ã®é¡§å®¢å²åŒãã¯ãŒãã³ã«é¢ããæ å ±ã«åºã¥ããŠæçµçãªååå䟡ãèšç®ããã·ã¹ãã ã«é¢ä¿ããŠããŸããã
ã€ã³ãã³ãããã ä»ã§ã¯æ³åããã®ãæãããã§ãããäžèšã®ãµãã·ã¹ãã ã«å ããŠã補åã«ã¿ãã°ããŠãŒã¶ãŒ ã·ã§ããã³ã° ã«ãŒãã補åæ€çŽ¢ã·ã¹ãã ã補åã«ã¿ãã°ã®ãã£ã«ã¿ãªã³ã° ã·ã¹ãã ãããã³åçš®ã¬ã³ã¡ã³ããŒã·ã§ã³ ã·ã¹ãã ãã¢ããªã¹ããåé€ãããŸããã ãããããæäœããããã«ãå³å¯ã«èª¿æŽãããã·ã¹ãã ã®å¥ã®ã¯ã©ã¹ããããŸããããã€ãŠã¯ãã¹ãŠã XNUMX ã€ã®ã家ãã«äœãã§ããŸããã
ç§ãã¡ã¯ããã«ãã¯ã©ã€ã¢ã³ãã«é¢ããããŒã¿ãã·ã£ãŒã ã·ã¹ãã ã«è»¢éããããšãèšç»ããŸããã æçµçãªååå䟡ãèšç®ããæ©èœãåé€ããã«ã¯ãèªã¿åãã«åªããã¹ã±ãŒã©ããªãã£ãå¿ èŠã§ãããããã¯ãæ倧㮠RPS è² è·ãçºçããããŒã¿ããŒã¹ãžã®å®è£ ãæãå°é£ã§ãã£ãããã§ã (èšç®ããã»ã¹ã«ã¯å€§éã®ããŒã¿ãé¢äžããŸã)ã
ãã®çµæãTarantool ã«ããé©åããã¹ããŒã ãæãã€ããŸããã
åœæããã€ã¯ããµãŒãã¹ã®éçšã«ã¯ãä»®æ³ãã·ã³ãããŒããŠã§ã¢ãã·ã³äžã§è€æ°ã®ããŒã¿ã»ã³ã¿ãŒãšé£æºããã¹ããŒã ãéžæãããŠããŸããã å³ã«ç€ºãããã«ãTarantool ã¬ããªã±ãŒã·ã§ã³ ãªãã·ã§ã³ã¯ãã¹ã¿ãŒ/ãã¹ã¿ãŒ ã¢ãŒããšãã¹ã¿ãŒ/ã¹ã¬ãŒã ã¢ãŒãã®äž¡æ¹ã«é©çšãããŸããã
建ç¯ã ãªãã·ã§ã³ 1. ãŠãŒã¶ãŒãµãŒãã¹
çŸæç¹ã§ã¯ 24 åã®ã·ã£ãŒãããããããããã« 2 ã€ã®ã€ã³ã¹ã¿ã³ã¹ (DC ããšã« XNUMX ã€) ãããããã¹ãŠãã¹ã¿ãŒ/ãã¹ã¿ãŒ ã¢ãŒãã«ãªã£ãŠããŸãã
ããŒã¿ããŒã¹ã®äžã«ã¯ãããŒã¿ããŒã¹ã®ã¬ããªã«ã«ã¢ã¯ã»ã¹ããã¢ããªã±ãŒã·ã§ã³ããããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ãTarantool Go ãã©ã€ã㌠ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããã«ã¹ã¿ã ã©ã€ãã©ãªãéã㊠Tarantool ãšé£æºããŸãã 圌女ã¯ãã¹ãŠã®ã¬ããªã«ã確èªãããã¹ã¿ãŒãšé£æºããŠèªã¿åããšæžã蟌ã¿ãè¡ãããšãã§ããŸãã åºæ¬çã«ãã¬ããªã« ã»ãã ã¢ãã«ãå®è£ ããã¬ããªã«ã®éžæãåè©Šè¡ã®å®è¡ããµãŒããã ãã¬ãŒã«ãŒãããã³ã¬ãŒãå¶éã®ããã®ããžãã¯ãè¿œå ããŸãã
ãã®å Žåãã·ã£ãŒãã®ã³ã³ããã¹ãã§ã¬ããªã«éžæããªã·ãŒãæ§æã§ããŸãã ããšãã°ãã©ãŠã³ãããã³ã§ãã
建ç¯ã ãªãã·ã§ã³ 2. æçµçãªååå䟡ã®èšç®ãµãŒãã¹
æ°ãæåãæçµçãªååå䟡ã®èšç®ãªã¯ãšã¹ãã®ã»ãšãã©ã¯ãååãšããŠããŒã¿ããŒã¹ãªãã§åäœããæ°ãããµãŒãã¹ã«éãããŸããããå°ãåã«ã¯ããã¹ãŠãå éšã« Tarantool ãåãããµãŒãã¹ã«ãã£ãŠ 100% åŠçãããŠããŸããã
ãµãŒãã¹ ããŒã¿ããŒã¹ã¯ãã·ã³ã¯ããã€ã¶ãŒãããŒã¿ãåéãã 4 ã€ã®ãã¹ã¿ãŒã§æ§æããããããã®åã¬ããªã±ãŒã·ã§ã³ ãã¹ã¿ãŒã¯ããŒã¿ãèªã¿åãå°çšã¬ããªã«ã«åæ£ããŸãã åãã¹ã¿ãŒã«ã¯ãã®ãããªã¬ããªã«ãçŽ 15 åãããŸãã
æåã®æ¹åŒã§ã XNUMX çªç®ã®æ¹åŒã§ããXNUMX ã€ã® DC ãå©çšã§ããªãå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ XNUMX çªç®ã®æ¹åŒã§ããŒã¿ãåä¿¡ã§ããŸãã
Tarantool ã®ã¬ããªã±ãŒã·ã§ã³ã¯éåžžã«æè»ã§ãããå®è¡æã«æ§æã§ããããšã¯æ³šç®ã«å€ããŸãã ä»ã®ã·ã¹ãã ã§ã¯åé¡ãçºçããŸããã ããšãã°ãPostgreSQL 㧠max_wal_senders ãã©ã¡ãŒã¿ãš max_replication_slots ãã©ã¡ãŒã¿ãå€æŽããã«ã¯ãŠã£ã¶ãŒããåèµ·åããå¿ èŠããããå Žåã«ãã£ãŠã¯ã¢ããªã±ãŒã·ã§ã³ãš DBMS éã®æ¥ç¶ãåæãããå¯èœæ§ããããŸãã
æ€çŽ¢ããŠèŠã€ããŠãã ããïŒ
ãªãç§ãã¡ã¯ãæ®éã®äººãšåãããã«ããããã«ãéå žåçãªæ¹æ³ãéžãã ã®ã§ãããã? ããã¯äœãæ£åžžãšã¿ãªããããã«ãã£ãŠç°ãªããŸãã éåžžãå€ã㯠Mongo ããã¯ã©ã¹ã¿ãŒãäœæããå°ççã«åæ£ããã XNUMX ã€ã® DC ã«åæ£ãããŸãã
ãã®æç¹ã§ããã§ã« XNUMX ã€ã® Redis ãããžã§ã¯ãããããŸããã XNUMX ã€ç®ã¯ãã£ãã·ã¥ã§ãXNUMX ã€ç®ã¯ããã»ã©éèŠã§ã¯ãªãããŒã¿çšã®æ°žç¶ã¹ãã¬ãŒãžã§ããã 圌ã«ãšã£ãŠã¯ãç§ãã¡ã®ããããããããªãå°é£ã§ããã å Žåã«ãã£ãŠã¯ãããŒã«éåžžã«å€§ããªããªã¥ãŒã ãå«ãŸããŠããããµã€ãã®ç¶æ ãæªåããããšããããŸããã ãã¹ã¿ãŒã¹ã¬ãŒãããŒãžã§ã³ã§ã¯ãã®ã·ã¹ãã ã䜿çšããŸããã ãŸãããã¹ã¿ãŒã«äœããã®åé¡ãçºçããŠã¬ããªã±ãŒã·ã§ã³ãåæ¢ããã±ãŒã¹ãå€ããããŸããã
ã€ãŸããRedis ã¯ã¹ããŒããã«ãªã¿ã¹ã¯ã§ã¯ãªããã¹ããŒãã¬ã¹ãªã¿ã¹ã¯ã«é©ããŠããŸãã åççã«ã¯ãã»ãšãã©ã®åé¡ã解決ã§ããŸããããããã¯ã€ã³ããã¯ã¹ã®ãã¢ã䜿çšããããŒãšå€ã®ãœãªã¥ãŒã·ã§ã³ã§ããå Žåã«éãããŠããŸããã ããããåœæã® Redis ã¯æ°žç¶åãšã¬ããªã±ãŒã·ã§ã³ã«é¢ããŠéåžžã«æ®å¿µã§ããã ããã«ãããã©ãŒãã³ã¹ã«é¢ããèŠæ ããããŸããã
MySQL ãš PostgreSQL ã«ã€ããŠèããŸããã ããããæåã®ãã®ã¯ã©ããããããç§ãã¡ã«ã¯åãå
¥ãããããXNUMX ã€ç®ã¯ããèªäœããªãæŽç·Žããã補åã§ããããã®äžã«åçŽãªãµãŒãã¹ãæ§ç¯ããã®ã¯äžé©åã§ãããã
RIAKãCassandraãããã«ã¯ã°ã©ãããŒã¿ããŒã¹ãè©ŠããŸããã ãããã¯ãã¹ãŠããªãããããªãœãªã¥ãŒã·ã§ã³ã§ããããµãŒãã¹ãäœæããããã®äžè¬çãªæ±çšããŒã«ã®åœ¹å²ã«ã¯é©ããŠããŸããã
æçµçã«ã¯ã¿ã©ã³ããŒã«ã«èœã¡çããŸããã
ããŒãžã§ã³ 1.6 ã®ãšãã«ããã«æ³šç®ããŸããã ç§ãã¡ã¯ãããŒãšå€ã®å ±çãšãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ã®æ©èœã«èå³ãæã¡ãŸããã ã»ã«ã³ã㪠ã€ã³ããã¯ã¹ããã©ã³ã¶ã¯ã·ã§ã³ãã¹ããŒã¹ãããããããã¯ããŒãã«ã«äŒŒãŠããŸãããåçŽã§ã¯ãªããããŸããŸãªæ°ã®åãæ ŒçŽã§ããŸãã ããããTarantool ã®ãã©ãŒæ©èœã¯ãããŒå€ãšãã©ã³ã¶ã¯ã·ã§ã³æ§ãçµã¿åãããã»ã«ã³ã㪠ã€ã³ããã¯ã¹ã§ããã
ãã·ã¢èªã話ãã³ãã¥ããã£ã®å¯Ÿå¿åãé«ãããã£ããã§ããã«å©ããŠãããããšã圹å²ãæãããŸããã ç§ãã¡ã¯ãããç©æ¥µçã«äœ¿çšãããã£ããã«çŽæ¥åå ããŸããã ãããŠãæãããªå€±æãééããããã«ããã¡ããšããç²ã匷ããå¿ããªãã§ãã ããã Tarantool ã®äœ¿çšã®æŽå²ãèŠããšãã¬ããªã±ãŒã·ã§ã³ã§å€ãã®èŠåŽã倱æããããŸããããTarantool ã®ããã§ããŒã¿ã倱ãããããšã¯äžåºŠããããŸããã§ããã
å°å ¥ã¯å³ããã¹ã¿ãŒããåã£ã
åœæãç§ãã¡ã®äž»ãªéçºã¹ã¿ãã¯ã¯ .NET ã§ããããTarantool çšã®ã³ãã¯ã¿ã¯ãããŸããã§ããã ç§ãã¡ã¯ããã« Go ã§äœããå§ããŸããã Luaã§ãããŸããããŸããã åœæã®äž»ãªåé¡ã¯ãããã°ã§ããã.NET ã§ã¯ããã§ãã¹ãŠãããŸããããŸãããããã®åŸããã°ä»¥å€ã«ãããã°ãã§ããªãå Žåãçµã¿èŸŒã¿ Lua ã®äžçã«é£ã³èŸŒãã®ã¯å°é£ã§ããã ããã«ãäœããã®çç±ã§ã¬ããªã±ãŒã·ã§ã³ãå®æçã«å€±æãããããTarantool ãšã³ãžã³ã®æ§é ã詳ãã調ã¹ãå¿ èŠããããŸããã ãã£ããã¯ããã«åœ¹ç«ã¡ãçšåºŠã¯äœãã§ããããã¥ã¡ã³ãã圹ç«ã¡ãã³ãŒãã確èªããããšããããŸããã åœæã®ããã¥ã¡ã³ãã¯ãŸããŸãã§ããã
ããã§ãæ°ãæéãããŠãç§ã¯ãªããšãé ãåãããTarantool ã䜿çšããŠãŸãšããªçµæãåŸãããšãã§ããŸããã æ°ãããã€ã¯ããµãŒãã¹ã®åœ¢æã«åœ¹ç«ã€ãªãã¡ã¬ã³ã¹éçºã Git ã«ãŸãšããŸããã ããšãã°ãå¥ã®ãã€ã¯ããµãŒãã¹ãäœæãããšããã¿ã¹ã¯ãçºçãããšããéçºè ã¯ãªããžããªå ã®åç §ãœãªã¥ãŒã·ã§ã³ã®ãœãŒã¹ ã³ãŒãã確èªããæ°ãããã€ã¯ããµãŒãã¹ã®äœæã« XNUMX é±ââéãããããŸããã§ããã
ç¹å¥ãªæéã§ããã åŸæ¥ã§ããã°ã次ã®ããŒãã«ã®ç®¡çè ã«ãä»®æ³ãã·ã³ããã ããããšé Œãããšãã§ããŸããã çŽXNUMXååŸãè»ã¯ãã§ã«å°çããŸããã èªåã§æ¥ç¶ãããã¹ãŠãã€ã³ã¹ããŒã«ãããšããã©ãã£ãã¯ãéä¿¡ãããŸããã
çŸåšãããã¯æ©èœããŸããããµãŒãã¹ã«ç£èŠãšãã°ãè¿œå ãããã¹ãã§æ©èœãã«ããŒããä»®æ³ãã·ã³ã泚æããããKuber ã«é ä¿¡ãããããå¿ èŠããããŸãã äžè¬çã«ã¯ããã®æ¹æ³ã®æ¹ãè¯ãã§ãããããæéãããããé¢åã«ãªããŸãã
åè£ãšã«ãŒã«ã ã«ã¢ãšã®é¢ä¿ã¯ã©ããªã£ãã®ïŒ
æ·±å»ãªãžã¬ã³ãããããŸãããäžéšã®ããŒã ã¯ãLua ã®å€ãã®ããžãã¯ãå«ããµãŒãã¹ãžã®å€æŽã確å®ã«ããŒã«ã¢ãŠãã§ããŸããã§ããã ããã«ã¯ããµãŒãã¹ãæ©èœããªãããšããããããŸããã
ã€ãŸããéçºè ã¯äœããã®å€æŽãæºåããŠããŸãã Tarantool ã¯ç§»è¡ãéå§ããŸãããã¬ããªã«ã«ã¯å€ãã³ãŒããæ®ã£ããŸãŸã§ãã äœããã® DDL ãŸãã¯ãã®ä»ã®ãã®ãã¬ããªã±ãŒã·ã§ã³ãä»ããŠããã«å°çããŸããããããèæ ®ãããŠããªããããã³ãŒãã¯åçŽã«ãã©ãã©ã«ãªããŸãã ãã®çµæã管çè åãã®æŽæ°æé ã¯ãã¬ããªã±ãŒã·ã§ã³ãåæ¢ããããæŽæ°ãã¬ããªã±ãŒã·ã§ã³ããªã³ãããããªããããããæŽæ°ãšããããã« A4 ã·ãŒãã«ã¬ã€ã¢ãŠããããŸããã æªå€¢ïŒ
ãã®çµæãçŸåšã§ã¯ Lua ã§ã¯äœãããªãããã«ããããšãã»ãšãã©ã§ãã iproto (ãµãŒããŒãšå¯Ÿè©±ããããã®ãã€ã㪠ãããã³ã«) ã䜿çšããã ãã§ãã ããããéçºè ã®ç¥èäžè¶³ãªã®ãããããŸãããããã®èŠ³ç¹ããèŠããšã·ã¹ãã ã¯è€éã§ãã
ç§ãã¡ã¯åžžã«ãã®èæ¬ã«ç²ç®çã«åŸãããã§ã¯ãããŸããã ä»æ¥ã§ã¯çœãé»ããšããåºå¥ã¯ãããŸããããã¹ãŠã Lua ã§è¡ããããããã¹ãŠã Go ã§è¡ããããã®ã©ã¡ããã§ãã ç§ãã¡ã¯ãåŸã§ç§»è¡ã®åé¡ãçºçããªãããã«ãããããã©ã®ããã«çµã¿åãããã°ãããããã§ã«ç解ããŠããŸãã
ã¿ã©ã³ããŒã«ã¯ä»ã©ãã«ãããŸããïŒ
Tarantool ã¯ããããã¢ãŒã¿ãŒããšãåŒã°ãããå²åŒã¯ãŒãã³ãèæ
®ããŠæçµçãªååå䟡ãèšç®ãããµãŒãã¹ã§äœ¿çšãããŸãã å
ã»ã©ãè¿°ã¹ãããã«ã圌ã¯çŸåšéè·ããŠãããäŸ¡æ Œãäºåèšç®ãããæ°ããã«ã¿ãã° ãµãŒãã¹ã«çœ®ãæããããŠããŸãããXNUMX ãæåã¯ãã¹ãŠã®èšç®ã Promotizer ã§è¡ãããŠããŸããã 以åã¯ãããžãã¯ã®ååã Lua ã§æžãããŠããŸããã XNUMX 幎åãå²åŒã®ä»çµã¿ãå°ãå€æŽããããµãŒãã¹ã®ããã©ãŒãã³ã¹ãäžè¶³ããŠããããããã®ãµãŒãã¹ã¯ã¹ãã¬ãŒãžæœèšã«ãªããããžãã¯ã Go ã§æžãçŽãããŸããã
æãéèŠãªãµãŒãã¹ã® 50 ã€ã¯ãŠãŒã¶ãŒ ãããã¡ã€ã«ã§ãã ã€ãŸãããã¹ãŠã® Wildberries ãŠãŒã¶ãŒã¯ Tarantool ã«ä¿åãããŠããããã®æ°ã¯çŽ XNUMX äžã§ããããŠãŒã¶ãŒ ID ã«ãã£ãŠã·ã£ãŒãåãããã·ã¹ãã ããGo ãµãŒãã¹ã«æ¥ç¶ãããè€æ°ã® DC ã«åæ£ãããŠããŸãã
RPS ã«ãããšãããã¢ãŒã¿ãŒã¯ãã€ãŠãªãŒããŒã§ããã6 件ã®ãªã¯ãšã¹ãã«éããŸããã ããæç¹ã§ã¯50ïœ60éšãããŸããã çŸåšãRPS ã®ãªãŒããŒã¯çŽ 12 人ã®ãŠãŒã¶ãŒ ãããã¡ã€ã«ã§ããããã®ãµãŒãã¹ã¯ãŠãŒã¶ãŒ ID ã®ç¯å²ããšã«åå²ãããã«ã¹ã¿ã ã·ã£ãŒãã£ã³ã°ã䜿çšããŠããŸãã ãã®ãµãŒãã¹ã¯ 20 å°ãè¶
ãããã·ã³ã«å¯Ÿå¿ããŠããŸãããããã¯å€ãããŸãã4 ïœ 5 å°ã®ãã·ã³ã®å®¹éã§ååã§ãããããå²ãåœãŠããããªãœãŒã¹ãæžããäºå®ã§ãã
ã»ãã·ã§ã³ ãµãŒãã¹ã¯ãvshard ãš Cartridge ã§ã®æåã®ãµãŒãã¹ã§ãã vshard ã®ã»ããã¢ãããšã«ãŒããªããžã®æŽæ°ã«ã¯å€å°ã®åŽåãå¿ èŠã§ããããæçµçã«ã¯ãã¹ãŠããŸããããŸããã
Web ãµã€ããšã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã«ããŸããŸãªãããŒã衚瀺ãããµãŒãã¹ã¯ãTarantool äžã§çŽæ¥ãªãªãŒã¹ãããæåã®ãµãŒãã¹ã® 6 ã€ã§ãã ãã®ãµãŒãã¹ã¯ 7 ïœ XNUMX 幎åããååšãããŸã 皌åããŠãããäžåºŠãåèµ·åãããŠããªããšããäºå®ã§æ³šç®ã«å€ããŸãã ãã¹ã¿ãŒéã¬ããªã±ãŒã·ã§ã³ã䜿çšãããŸããã äœãå£ããããšã¯ãããŸããã
å Žåã«ãã£ãŠã¯æ å ±ãè¿ éã«å確èªããããã«ãå庫ã·ã¹ãã ã®ã¯ã€ã㯠ãªãã¡ã¬ã³ã¹æ©èœã« Tarantool ã䜿çšããäŸããããŸãã ããã«ã¯ Redis ã䜿çšããããšããŸããããã¡ã¢ãªå ã®ããŒã¿ã¯ Tarantool ãããå€ãã®ã¹ããŒã¹ãå æããŸããã
åŸ æ©ãªã¹ããã¯ã©ã€ã¢ã³ãã®ãµãã¹ã¯ãªãã·ã§ã³ãçŸåšæµè¡ã®ã¹ããŒãªãŒãããã³æ®ã眮ãååã®ãµãŒãã¹ã Tarantool ã§åäœããŸãã ã¡ã¢ãªå ã®æåŸã®ãµãŒãã¹ã¯çŽ 120 GB ãå æããŸãã äžèšãµãŒãã¹ã®äžã§æãå æ¬çãªãµãŒãã¹ã§ãã
ãŸãšã
ã»ã«ã³ã㪠ã€ã³ããã¯ã¹ãšããŒå€ããã³ãã©ã³ã¶ã¯ã·ã§ã³æ§ãçµã¿åããããããã§ãTarantool ã¯ãã€ã¯ããµãŒãã¹ ããŒã¹ã®ã¢ãŒããã¯ãã£ã«æé©ã§ãã ããããLua ã®å€ãã®ããžãã¯ãå«ããµãŒãã¹ãžã®å€æŽãããŒã«ã¢ãŠããããšãã«ããµãŒãã¹ãåäœãåæ¢ããããšããããããšããåé¡ã«ééããŸããã ç§ãã¡ã¯ãããå æã§ãããæéãçµã€ã«ã€ããŠãLua ãš Go ã®ããŸããŸãªçµã¿åããã«ãã©ãçããŸãããç§ãã¡ã¯ãããèšèªãã©ãã§äœ¿çšããã©ãã§å¥ã®èšèªã䜿çšããããç¥ã£ãŠããŸãã
ãã®ãããã¯ã«é¢ããŠä»ã«äœãèªãã¹ãã
- Tarantool ã䜿çšããŠé«è² è·ã¢ããªã±ãŒã·ã§ã³ãæåããäœæãã
habr.com/ru/company/mailru/blog/510440 - Tarantool ã«ãŒããªããžã®ä¿¡é Œã§ãããªãŒããŒã®éžæ
habr.com/ru/company/mailru/blog/513912 - 補åã«é¢ãããã¥ãŒã¹ãæ²èŒããé»å ±ãã£ã³ãã« Tarantool
t.me/tarantool_news - ã³ãã¥ããã£ãã£ããã§Tarantoolã«ã€ããŠè©±ãåã
t.me/ã¿ã©ã³ããŒã«
åºæïŒ habr.com