æ ç»ãOur Secret Universe: The Hidden Life of the Cellãã®éæ¢ç»
æè³ããžãã¹ã¯ãéè¡æ¥çã§æãè€éãªåéã® XNUMX ã€ã§ããèè³ãåå ¥ãé éã ãã§ãªããæ䟡蚌åžãé貚ãååãããªããã£ããããã³ä»çµã¿ååã®åœ¢ã§ããããçš®é¡ã®è€éããååšããããã§ãã
æè¿ãåœæ°ã®éèãªãã©ã·ãŒã®åäžãèŠãããŸãã 蚌åžåžå Žã§ã®ååŒã«åå ãã人ããŸããŸãå¢ããŠããŸãã å人ã®æè³å£åº§ãç»å Žããã®ã¯ããã»ã©åã®ããšã§ã¯ãããŸããã ããã«ããã蚌åžåžå Žã§ååŒãè¡ã£ãããçšéã®æ§é€ãåããããçšéã®æ¯æããåé¿ãããããããšãã§ããŸãã ãããŠãç§ãã¡ã蚪ãããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã¯ãèªåã®ããŒããã©ãªãªã管çãããªã¢ã«ã¿ã€ã ã§ã¬ããŒããèŠãããšèããŠããŸãã ããã«ãã»ãšãã©ã®å Žåããã®ããŒããã©ãªãªã¯è€æ°ã®è£œåã«ãŸããã£ãŠããŸããã€ãŸãã人ã ã¯ããŸããŸãªäºæ¥åéã®é¡§å®¢ã§ãã
ããã«ããã·ã¢åœå å€ã®èŠå¶åœå±ã®ããŒãºãé«ãŸã£ãŠããŸãã
çŸåšã®ããŒãºã«å¿ããå°æ¥ã®ã¢ããã°ã¬ãŒãã®åºç€ãç¯ãããã«ãåœç€Ÿã¯ Tarantool ã«åºã¥ããæè³ããžãã¹ ã³ã¢ãéçºããŸããã
ããã€ãã®çµ±èšã ã¢ã«ãã¡ãã³ã¯ã®æè³äºæ¥ã¯ãå人ããã³æ³äººã«ããŸããŸãªèšŒåžåžå Žã§ååŒããæ©äŒãæäŸãã仲ä»ãµãŒãã¹ãæ䟡蚌åžãä¿ç®¡ããããã®ä¿ç®¡ãµãŒãã¹ãå人è³æ¬ããã³å€§èŠæš¡è³æ¬ãæã€å人ã«ä¿¡èšç®¡çãµãŒãã¹ãä»ç€Ÿã«æ䟡蚌åžçºè¡ãµãŒãã¹ãæäŸããŠããŸãã ã Alfa-Bank ã®æè³ããžãã¹ã«ã¯ãããŸããŸãªååŒãã©ãããã©ãŒã ããããŠã³ããŒãããã 3 ç§ããã 300 ãè¶
ããçžå Žãå«ãŸããŸãã å¶æ¥æ¥äžã«ãéè¡ãŸãã¯ãã®é¡§å®¢ã«ä»£ãã£ãŠåžå Žã§ 5 äžä»¶ãè¶
ããååŒãè¡ãããŸãã å€éšããã³å
éšãã©ãããã©ãŒã äžã§ XNUMX ç§ãããæ倧 XNUMX 件ã®æ³šæå·è¡ãè¡ãããŸãã åæã«ã瀟å
å€ã®ãã¹ãŠã®ã¯ã©ã€ã¢ã³ãã¯ãèªåã®ããžã·ã§ã³ããªã¢ã«ã¿ã€ã ã§ç¢ºèªããããšèããŠããŸãã
èæ¯
2000 幎代åé ãããåœç€Ÿã®æè³ããžãã¹åéã¯ãçºæ¿ååŒã仲ä»ãµãŒãã¹ãçºæ¿ååŒãæ䟡蚌åžã®åºé ååŒããã³ããŸããŸãªããªããã£ããªã©ãç¬èªã«çºå±ããŠããŸããã ãã®çµæãç§ãã¡ã¯æ©èœäºæžã®çœ ã«ã¯ãŸã£ãŠããŸããŸããã ããã¯äœã§ããïŒ åäºæ¥éšéã«ã¯ãããããã®æ©èœãéè€ãããç¬èªã®ã·ã¹ãã ããããŸãã åã·ã¹ãã ã¯ç¬èªã®ããŒã¿ ã¢ãã«ãæã£ãŠããŸããããã©ã³ã¶ã¯ã·ã§ã³ãååãã«ãŠã³ã¿ãŒããŒãã£ãçžå Žãªã©ã®åãæŠå¿µã§åäœããŸãã ãããŠãããããã®ã·ã¹ãã ãç¬ç«ããŠé²åããã«ã€ããŠãå€æ§ãªãã¯ãããžãŒã®åç©åãåºçŸããŸããã
ããã«ãäžéšã®è£œå㯠1990 幎代åã°ã«èªçãããããã·ã¹ãã ã®ã³ãŒã ããŒã¹ã¯ãã§ã«ããªãæ代é ãã«ãªã£ãŠããŸãã ãŸããäžéšã®é åã§ã¯ããã«ããéçºããã»ã¹ãé ããªããããã©ãŒãã³ã¹ã®åé¡ãçºçããŸããã
æ°ãããœãªã¥ãŒã·ã§ã³ã®èŠä»¶
äŒæ¥ã¯ããããªãçºå±ã«ã¯æè¡é©æ°ãäžå¯æ¬ ã§ããããšãèªèããŠããŸãã ç§ãã¡ã«äžãããã課é¡ã¯æ¬¡ã®ãšããã§ãã
- ãã¹ãŠã®ããžãã¹ ããŒã¿ãåäžã®é«éã¹ãã¬ãŒãžãšåäžã®ããŒã¿ ã¢ãã«ã«åéããŸãã
- ãã®æ å ±ãçŽå€±ãããå€æŽãããããŠã¯ãªããŸããã
- ãã€ã§ãèŠå¶åœå±ãéå»æ°å¹Žã®çµ±èšãèŠæ±ããå¯èœæ§ããããããããŒã¿ãããŒãžã§ã³ç®¡çããå¿ èŠããããŸãã
- æ°ããæµè¡ã® DBMS ãå°å ¥ããã ãã§ã¯ãªããããžãã¹äžã®åé¡ã解決ããããã®ãã©ãããã©ãŒã ãæ§ç¯ããå¿ èŠããããŸãã
ããã«ãåœç€Ÿã®ã¢ãŒããã¯ãã¯ç¬èªã®æ¡ä»¶ãèšå®ããŸãã
- æ°ãããœãªã¥ãŒã·ã§ã³ã¯ãšã³ã¿ãŒãã©ã€ãºã¯ã©ã¹ã§ããå¿ èŠããããŸããã€ãŸããäžéšã®å€§äŒæ¥ã§ãã§ã«ãã¹ããããŠããå¿ èŠããããŸãã
- ãœãªã¥ãŒã·ã§ã³ã®åäœã¢ãŒãã¯ããã·ã§ã³ ã¯ãªãã£ã«ã«ã§ããå¿ èŠããããŸãã ããã¯ãè€æ°ã®ããŒã¿ ã»ã³ã¿ãŒã«åæã«ååšããXNUMX ã€ã®ããŒã¿ ã»ã³ã¿ãŒãåæ¢ããå Žåã§ãå·éã«çãæ®ãå¿ èŠãããããšãæå³ããŸãã
- ã·ã¹ãã ã¯æ°Žå¹³æ¹åã«æ¡åŒµå¯èœã§ããå¿ èŠããããŸãã å®éã®ãšãããçŸåšã®ã·ã¹ãã ã¯ãã¹ãŠåçŽæ¹åã«ããæ¡åŒµã§ãããããŒããŠã§ã¢ã®èœåã®äŒžã³ãäœãããããã§ã«é æã¡ã«ãªã£ãŠããŸãã ãããã£ãŠãçãæ®ãããã«ã¯æ°Žå¹³æ¹åã«æ¡åŒµå¯èœãªã·ã¹ãã ãå¿ èŠãªææãæ¥ãŠããŸãã
- ãšãããããœãªã¥ãŒã·ã§ã³ã¯å®äŸ¡ã§ãªããã°ãªããªããšèšãããŸããã
ç§ãã¡ã¯æšæºçãªã«ãŒãã«åŸããèŠä»¶ãçå®ãã賌買éšéã«é£çµ¡ããŸããã ãããããäžè¬çã«ãããè¡ãæºåãã§ããŠããäŒæ¥ã®ãªã¹ããåãåããŸããã ç§ãã¡ã¯å šå¡ã«ãã®åé¡ã«ã€ããŠè©±ãããã®ãã¡ã® XNUMX 人ãã解決çã®è©äŸ¡ãåããŸããã
éè¡ã§ã¯ã誰ã®èšèãéµåã¿ã«ãããèªåãã¡ã§ãã¹ãŠããã¹ãããããšã奜ã¿ãŸãã ãããã£ãŠãç§ãã¡ã®å ¥æ競äºã®å¿ é æ¡ä»¶ã¯ãè² è·ãã¹ãã«åæ Œããããšã§ããã ç§ãã¡ã¯è² è·ãã¹ãã®ã¿ã¹ã¯ãçå®ãããã§ã« XNUMX ç€Ÿäž XNUMX 瀟ããã€ã³ã¡ã¢ãª ãã¯ãããžã«åºã¥ããããã¿ã€ã ãœãªã¥ãŒã·ã§ã³ããã¹ãããããã«èªè²»ã§å®è£ ããããšã«åæããŸããã
ãã¹ãŠãã©ã®ããã«ãã¹ãããããã©ã®ãããã®æéãããã£ãã®ãã«ã€ããŠã¯èª¬æããŸããããèŠçŽããŸããè² è·ãã¹ãã§æé«ã®ããã©ãŒãã³ã¹ãåŸãããã®ã¯ãMail.ru Group éçºããŒã ã® Tarantool ãããŒã¹ãšãããããã¿ã€ã ãœãªã¥ãŒã·ã§ã³ã§ããã å¥çŽãç· çµããéçºãéå§ããŸããã Mail.ru Group ãã㯠XNUMX åãAlfa-Bank ããã¯éçºè XNUMX åãã·ã¹ãã ã¢ããªã¹ã XNUMX åããœãªã¥ãŒã·ã§ã³ ã¢ãŒããã¯ãããããã¯ã ãªãŒããŒãã¹ã¯ã©ã ãã¹ã¿ãŒ XNUMX åã§ããã
次ã«ãç§ãã¡ã®ã·ã¹ãã ãã©ã®ããã«æé·ããã©ã®ããã«é²åããäœããããªããããªã£ãã®ãã«ã€ããŠèª¬æããŸãã
éçº
ç§ãã¡ãæåã«èªåããã®ã¯ãçŸåšã®ã·ã¹ãã ããããŒã¿ãååŸããæ¹æ³ã§ããã çŸåšã®ãã¹ãŠã®ã·ã¹ãã 㯠HTTP çµç±ã§ XML ãŸã㯠JSON ãéä¿¡ããããšã«ãã£ãŠçžäºã«éä¿¡ãããããHTTP ãåœç€Ÿã«ãšã£ãŠéåžžã«é©ããŠãããšå€æããŸããã
SSL ã»ãã·ã§ã³ãçµäºããå¿ èŠããªããããã©ãŒãã³ã¹ãååã§ãããããTarantool ã«çµã¿èŸŒãŸããŠãã HTTP ãµãŒããŒã䜿çšããŠããŸãã
ãã§ã«è¿°ã¹ãããã«ãç§ãã¡ã®ãã¹ãŠã®ã·ã¹ãã ã¯ç°ãªãããŒã¿ ã¢ãã«ã§åäœããŠãããå ¥åã§ã¯ãªããžã§ã¯ããèªåãã¡ã§èšè¿°ããã¢ãã«ã«åã蟌ãå¿ èŠããããŸãã ããŒã¿ãå€æã§ããèšèªãå¿ èŠã§ããã ç§ãã¡ã¯åœä»€å Lua ãéžæããŸããã ãã¹ãŠã®ããŒã¿å€æã³ãŒãã¯ãµã³ãããã¯ã¹å ã§å®è¡ãããŸããããã¯ãå®è¡äžã®ã³ãŒãããããè¶ ããŠç§»åããªãå®å šãªå Žæã§ãã ãããè¡ãã«ã¯ãå¿ èŠãªã³ãŒããããŒãã¹ããªã³ã°ããã ãã§ãäœããããã¯ããããããããããã§ããªãé¢æ°ãåããç°å¢ãäœæããŸãã
å€æåŸãããŒã¿ãäœæäžã®ã¢ãã«ã«æºæ ããŠãããã©ããããã§ãã¯ããå¿
èŠããããŸãã ç§ãã¡ã¯ãã¢ãã«ãã©ãããã¹ããããããèšè¿°ããããã«ã©ã®ãããªèšèªã䜿çšããã¹ããã«ã€ããŠãé·ãéè°è«ããŸããã Apache Avro ãéžæããã®ã¯ãèšèªãã·ã³ãã«ã§ãTarantool ã«ãããµããŒããããããã§ãã ã¢ãã«ãšã«ã¹ã¿ã ã³ãŒãã®æ°ããããŒãžã§ã³ã¯ãè² è·ãããã£ãŠãããã©ããã«é¢ä¿ãªããXNUMX æ¥ã«æ°åããã€ã§ãéçšã§ãããããå€æŽã«éåžžã«è¿
éã«å¯Ÿå¿ã§ããŸãã
æ€èšŒåŸãããŒã¿ãä¿åããå¿
èŠããããŸãã ãã㯠vshard ã䜿çšããŠè¡ããŸã (ã·ã£ãŒãã®ã¬ããªã«ãå°ççã«åæ£ãããŠããŸã)ã
ããã«ããã®ç¹ç°æ§ã¯ãããŒã¿ãéä¿¡ããã»ãšãã©ã®ã·ã¹ãã ããããŒã¿ãåä¿¡ãããã©ãããæ°ã«ããªãã»ã©ã§ãã ãã®ãããæåãã修埩ãã¥ãŒãå®è£
ããŸããã ããã¯äœã§ããïŒ äœããã®çç±ã§ãªããžã§ã¯ãã®ããŒã¿å€æãŸãã¯æ€èšŒãè¡ãããªãå Žåã§ããåä¿¡ã確èªããŸãããåæã«ãªããžã§ã¯ãã修埩ãã¥ãŒã«ä¿åããŸãã ããã¯äžè²«æ§ããããã¡ã€ã³ã®ããžãã¹ ããŒã¿ ãŠã§ã¢ããŠã¹ã«é
眮ãããŠããŸãã ç§ãã¡ã¯ããã«ããã®ç®¡çè
ã€ã³ã¿ãŒãã§ã€ã¹ãããŸããŸãªã¡ããªã¯ã¹ãã¢ã©ãŒããäœæããŸããã ãã®çµæãããŒã¿ã倱ãããããšã¯ãããŸããã ãœãŒã¹ã«äœãå€æŽããã£ããšããŠããããŒã¿ã¢ãã«ãå€æŽãããŠããã°ãããã«æ€åºããŠé©å¿ã§ããŸãã
次ã«ãä¿åãããããŒã¿ãååŸããæ¹æ³ãåŠã¶å¿
èŠããããŸãã ç§ãã¡ã¯ã·ã¹ãã ã泚ææ·±ãåæãããšãããJava ãš Oracle ã®åŸæ¥ã®ã¹ã¿ãã¯ã«ã¯ãããŒã¿ããªã¬ãŒã·ã§ãã«ãããªããžã§ã¯ãã«å€æãããã皮㮠ORM ãå¿
ãå«ãŸããŠããããšãããããŸããã ããã§ã¯ããªãããã«ãªããžã§ã¯ããã°ã©ãã®åœ¢ã§ã·ã¹ãã ã«æäŸããŠã¯ãããªãã®ã§ãããã? ããã§ç§ãã¡ã¯ããã¹ãŠã®ããŒãºãæºãã GraphQL ãåãã§æ¡çšããŸããã ããŒã¿ãã°ã©ã圢åŒã§åãåããä»å¿
èŠãªãã®ã ããåãåºãããšãã§ããŸãã éåžžã«æè»ã« API ãããŒãžã§ã³ç®¡çããããšãã§ããŸãã
æœåºããããŒã¿ãååã§ã¯ãªãããšã«ããã«æ°ã¥ããŸããã ã¢ãã«å
ã®ãªããžã§ã¯ããã€ãŸãèšç®ãã£ãŒã«ãã«ãªã³ã¯ã§ããé¢æ°ãäœæããŸããã ã€ãŸããå¹³åèŠç©äŸ¡æ Œãèšç®ãããªã©ãç¹å®ã®é¢æ°ããã£ãŒã«ãã«ä»å ããŸãã ãããŠãããŒã¿ãèŠæ±ããå€éšæ¶è²»è
ã¯ããããèšç®ãã£ãŒã«ãã§ããããšããç¥ããŸããã
èªèšŒã·ã¹ãã ãå°å
¥ããŸããã
ãã®åŸãç§ãã¡ã®æ±ºå®ã«ã¯ããã€ãã®åœ¹å²ãå
·äœåãããŠããããšã«æ°ã¥ããŸããã ããŒã«ã¯ãæ©èœã®äžçš®ã®éåäœã§ãã éåžžã圹å²ã«ã¯ããŸããŸãªæ©åšäœ¿çšãããã¡ã€ã«ããããŸãã
- T-Connect: çä¿¡æ¥ç¶ãåŠçããŸããCPU ã¯å¶éãããŠãããã¡ã¢ãªæ¶è²»éã¯äœããã¹ããŒãã¬ã¹ã§ãã
- IB-Core: Tarantool ãããã³ã«çµç±ã§åä¿¡ããããŒã¿ãå€æããŸããã€ãŸããããŒãã«ãæäœããŸãã ãŸããç¶æ ãä¿åãããã¹ã±ãŒã©ãã«ã§ãã
- ã¹ãã¬ãŒãž: ããŒã¿ãä¿åããã ãã§ãããããžãã¯ã¯äœ¿çšããŸããã ãã®ããŒã«ã¯ãæãåçŽãªã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŸãã vshard ã®ãããã§ã¹ã±ãŒã©ãã«ã
ã€ãŸããããŒã«ã䜿çšããŠã¯ã©ã¹ã¿ãŒã®ããŸããŸãªéšåãçžäºã«åé¢ããçžäºã«ç¬ç«ããŠã¹ã±ãŒãªã³ã°ã§ããããã«ããŸããã
ããã§ã管çã€ã³ã¿ãŒãã§ã€ã¹ãåããéåæãã©ã³ã¶ã¯ã·ã§ã³ ããŒã¿ ãããŒèšé²ãšä¿®åŸ©ãã¥ãŒãäœæããŸããã ããžãã¹ã®èŠ³ç¹ããèŠããšãèšé²ã¯éåæã§ããã©ãã«ã§ãããŒã¿ãèªåèªèº«ã«æžã蟌ãããšãä¿èšŒãããŠããå Žåã¯ãããã確èªããŸãã 確èªãããªãå Žåã¯ãäœãåé¡ãçºçãããããããŒã¿ãéä¿¡ããå¿ èŠããããŸãã ãããéåæé²é³ã§ãã
ãã¹ã
ç§ãã¡ã¯ãããžã§ã¯ãã®éå§åœåããããã¹ãé§åéçºãå°å ¥ããããšæ±ºããŠããŸããã åäœãã¹ã㯠tarantool/tap ãã¬ãŒã ã¯ãŒã¯ã䜿çšã㊠Lua ã§äœæããçµ±åãã¹ã㯠Python 㧠pytest ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠäœæããŸãã åæã«ãéçºè ãšã¢ããªã¹ãã®äž¡æ¹ãçµ±åãã¹ãã®äœæã«åå ããŸãã
ãã¹ãé§åéçºãã©ã®ããã«äœ¿çšããã®ã§ãããã?
äœãæ°ããæ©èœãå¿ èŠãªå Žåã¯ããŸããã®æ©èœã®ãã¹ããäœæããããšããŸãã ãã°ãçºèŠããå Žåãå¿ ãæåã«ãã¹ããäœæããããããä¿®æ£ããããã«ããŠããŸãã æåã¯ãã®ããã«äœæ¥ããã®ãé£ãããåŸæ¥å¡åŽã«èª€è§£ãããããããã«ä¿®æ£ããŠãäœãæ°ããããšãããŠãããã¹ãã§ã«ããŒããŸãããããšãã劚害è¡çºãããããŸãã ãã®ãåŸã§ãã ãã¯ã»ãšãã©æ¥ãŸããã
ãããã£ãŠãæåã«èªåã§ãã¹ããäœæããä»ã®äººã«ãã¹ããäŸé Œããå¿ èŠããããŸãã ä¿¡ããŠãã ããããã¹ãé§åéçºã¯çæçã«ãã¡ãªããããããããŸãã ç掻ã楜ã«ãªã£ããšæããã§ãããã ã³ãŒãã® 99% ããã¹ãã§ã«ããŒãããŠãããšæããŠããŸãã ããã¯å€§å€ãªããã«æããŸãããåé¡ã¯ãããŸããããã¹ãã¯ã³ãããããšã«å®è¡ãããŸãã
ããããç§ãã¡ãæãæ°ã«å ¥ã£ãŠããã®ã¯è² è·ãã¹ãã§ããããããæãéèŠã§ãããšèããŠãããå®æçã«å®è¡ããŠããŸãã
æåã®ããŒãžã§ã³ã® 4 ã€ã§è² è·ãã¹ãã®ç¬¬ XNUMX 段éãã©ã®ããã«å®è¡ãããã«ã€ããŠå°ãã話ããŸãã éçºè ã®ã©ãããããã«ã·ã¹ãã ãã€ã³ã¹ããŒã«ããè² è·ããªã³ã«ãããšãããXNUMX ç§ããã XNUMX 件ã®ãã©ã³ã¶ã¯ã·ã§ã³ãçºçããŸããã ã©ããããããšããŠã¯è¯ãçµæã§ãã ããããæ¬çªç°å¢ããã匱ã XNUMX å°ã®ãµãŒããŒãããªãä»®æ³ããŒããã³ãã«ã€ã³ã¹ããŒã«ããŸããã æå°éã«å±éãããŠããŸãã ãããå®è¡ãããšãXNUMX ã€ã®ã¹ã¬ããã§ã©ããããããããæªãçµæãåŸãããŸããã è¡æã®å 容ã
ç§ãã¡ã¯ãšãŠãæ²ããã£ãã§ãã ãµãŒããŒã®è² è·ã調ã¹ãŸããããã¢ã€ãã«ç¶æ ã§ããããšãããããŸããã
ç§ãã¡ãéçºè
ã«é»è©±ãããšãJava ã®äžçããæ¥ãç§ãã¡ã«ãTarantool ã¯ã·ã³ã°ã«ã¹ã¬ããã§ãããšèª¬æãããŸããã è² è·ãããã£ãŠããå Žåã14,5 ã€ã®ããã»ããµ ã³ã¢ã«ãã£ãŠã®ã¿å¹æçã«äœ¿çšã§ããŸãã 次ã«ãåãµãŒããŒã«å¯èœãªæ倧æ°ã® Tarantool ã€ã³ã¹ã¿ã³ã¹ããããã€ããè² è·ããªã³ã«ãããšããããã§ã« XNUMX ç§ããã XNUMX ã®ãã©ã³ã¶ã¯ã·ã§ã³ãåä¿¡ããŸããã
ããäžåºŠèª¬æãããŠãã ããã ãªãœãŒã¹ãç°ãªãæ¹æ³ã§äœ¿çšããããŒã«ã«åå²ããããããæ¥ç¶ãšããŒã¿å€æã®åŠçãæ
åœããããŒã«ã¯ããã»ããµãŒã®ã¿ã«è² è·ããããè² è·ã«å³å¯ã«æ¯äŸããŸããã
ãã®å Žåãã¡ã¢ãªã¯åä¿¡æ¥ç¶ãšäžæãªããžã§ã¯ãã®åŠçã«ã®ã¿äœ¿çšãããŸããã
éã«ãã¹ãã¬ãŒãž ãµãŒããŒã§ã¯ããã»ããµã®è² è·ã¯å¢å ããŸããããæ¥ç¶ãåŠçãããµãŒããŒãããã¯ããã«é
ããªããŸããã
ãŸããã¡ã¢ãªæ¶è²»éã¯ãããŒããããããŒã¿éã«æ£æ¯äŸããŠå¢å ããŸããã
ãµãŒãã¹
ç¹ã«ã¢ããªã±ãŒã·ã§ã³ ãã©ãããã©ãŒã ãšããŠæ°è£œåãéçºããããã«ããµãŒãã¹ãšã©ã€ãã©ãªããããã€ããããã®ã³ã³ããŒãã³ããäœæããŸããã
ãµãŒãã¹ã¯ãããã€ãã®ãã£ãŒã«ãã§åäœããåãªãå°ããªã³ãŒãã§ã¯ãããŸããã ãããã¯ãã¯ã©ã¹ã¿ãŒã®äžéšã§ãããåç §ããŒã¿ããã§ãã¯ããããžãã¹ ããžãã¯ãå®è¡ããŠå¿çãè¿ããéåžžã«å€§èŠæš¡ã§è€éãªæ§é ã«ãªãå ŽåããããŸãã ãŸãããµãŒãã¹ ã¹ããŒãã GraphQL ã«ãšã¯ã¹ããŒããããšãã³ã³ã·ã¥ãŒããŒã¯ã¢ãã«å šäœã«ââãããã€ã³ããã¹ãã¯ã·ã§ã³ãåããããŒã¿ãžã®ãŠãããŒãµã« ã¢ã¯ã»ã¹ ãã€ã³ããåãåããŸãã ãšãŠãå¿«é©ã§ãã
ãµãŒãã¹ã«ã¯ããã«å€ãã®æ©èœãå«ãŸããŠãããããé »ç¹ã«äœ¿çšãããã³ãŒãã移åããã©ã€ãã©ãªãå¿ èŠã§ãããšå€æããŸããã ç§ãã¡ã¯ããããäœããå£ããªãããšãäºåã«ç¢ºèªããäžã§ãããããå®å šãªç°å¢ã«è¿œå ããŸããã ãããŠãè¿œå ã®ç°å¢ãã©ã€ãã©ãªã®åœ¢åŒã§é¢æ°ã«å²ãåœãŠãããšãã§ããããã«ãªããŸããã
ç§ãã¡ã¯ã¹ãã¬ãŒãžã ãã§ãªãã³ã³ãã¥ãŒãã£ã³ã°ã®ãã©ãããã©ãŒã ãæã¡ãããšèããŠããŸããã ãããŠããã§ã«å€æ°ã®ã¬ããªã«ãšã·ã£ãŒãããã£ããããäžçš®ã®åæ£ã³ã³ãã¥ãŒãã£ã³ã°ãå®è£ ããå ã®ããã ãªãã¥ãŒã¹ãšåæ§ã®çµæã«ãªã£ãããããããããã ãªãã¥ãŒã¹ãšåŒã³ãŸããã
å€ãã·ã¹ãã
ãããã³ã«ã¯ãµããŒããããŠããŸããããã¹ãŠã®ã¬ã¬ã·ãŒ ã·ã¹ãã ã HTTP çµç±ã§åŒã³åºã㊠GraphQL ã䜿çšã§ããããã§ã¯ãããŸããã ãããã£ãŠããããã®ã·ã¹ãã ã«ããŒã¿ãè€è£œã§ããã¡ã«ããºã ãäœæããŸããã
äœããå€æŽããããšãã¹ãã¬ãŒãž ããŒã«ã§åºæã®ããªã¬ãŒãããªã¬ãŒãããå€æŽãå«ãã¡ãã»ãŒãžãåŠçãã¥ãŒã«å
¥ããŸãã ããã¯ãå¥ã®ã¬ããªã±ãŒã¿ãŒ ããŒã«ã䜿çšããŠå€éšã·ã¹ãã ã«éä¿¡ãããŸãã ãã®ããŒã«ã¯ç¶æ
ãä¿åããŸããã
æ°ããæ¹åç¹
èŠããŠãããšãããããžãã¹ã®èŠ³ç¹ãããç§ãã¡ã¯éåæã¬ã³ãŒãã£ã³ã°ãè¡ããŸããã ããããã®åŸãããã ãã§ã¯ååã§ã¯ãªãããšã«æ°ã¥ããŸãããæäœã®ã¹ããŒã¿ã¹ã«é¢ããå¿çãããã«åãåãå¿ èŠãããã¯ã©ã¹ã®ã·ã¹ãã ãããããã§ãã ããã§ãGraphQL ãæ¡åŒµãããã¥ãŒããŒã·ã§ã³ãè¿œå ããŸããã ãããã¯ãããŒã¿ãæ±ãæ¢åã®ãã©ãã€ã ã«ææ©çã«é©åããŸãã ç§ãã¡ã«ãšã£ãŠãããã¯ãå¥ã®ã¯ã©ã¹ã®ã·ã¹ãã ã®èªã¿åããšæžã蟌ã¿ã®äž¡æ¹ãè¡ãåäžã®ãã€ã³ãã§ãã
ãŸããXNUMX æ¥ãXNUMX é±éãXNUMX ãæã« XNUMX åäœæããå¿
èŠãããéåžžã«éãã¬ããŒããããããããµãŒãã¹ã ãã§ã¯ååã§ã¯ãªãããšã«ãæ°ã¥ããŸããã ããã«ã¯é·ãæéããããå¯èœæ§ããããã¬ããŒãã«ãã£ãŠ Tarantool ã®ã€ãã³ã ã«ãŒãããããã¯ãããå ŽåããããŸãã ãããã£ãŠãã¹ã±ãžã¥ãŒã©ãŒãšã©ã³ããŒãšããå¥ã
ã®åœ¹å²ãäœæããŸããã ã©ã³ããŒã¯ç¶æ
ãä¿åããŸããã 圌ãã¯ãç§ãã¡ããã®å Žã§èšç®ã§ããªãéãã¿ã¹ã¯ãå®è¡ããŸãã ãŸããã¹ã±ãžã¥ãŒã©ãŒã®åœ¹å²ã¯ãæ§æã§èª¬æãããŠãããããã®ã¿ã¹ã¯ã®èµ·åã¹ã±ãžã¥ãŒã«ãç£èŠããŸãã ã¿ã¹ã¯èªäœã¯ããžãã¹ ããŒã¿ãšåãå Žæã«ä¿åãããŸãã é©åãªæéãæ¥ããšãã¹ã±ãžã¥ãŒã©ãã¿ã¹ã¯ãåãåããã©ã³ããŒã«ã¿ã¹ã¯ãæž¡ããã©ã³ããŒãã¿ã¹ã¯ãã«ãŠã³ãããŠçµæãä¿åããŸãã
ãã¹ãŠã®ã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠå®è¡ããå¿
èŠãããããã§ã¯ãããŸããã äžéšã®ã¬ããŒãã¯ãªã³ããã³ãã§èªãå¿
èŠããããŸãã ãã®èŠä»¶ãå°çãããšããã«ãã¿ã¹ã¯ããµã³ãããã¯ã¹å
ã«äœæãããå®è¡ã®ããã«ã©ã³ããŒã«éä¿¡ãããŸãã ãã°ãããããšããŠãŒã¶ãŒã¯ããã¹ãŠãèšç®ãããã¬ããŒãã®æºåãã§ãããšããéåæå¿çãåãåããŸãã
åœåãç§ãã¡ã¯ãã¹ãŠã®ããŒã¿ãä¿åããããŒãžã§ã³ç®¡çããåé€ããªããšãããã©ãã€ã ãéµå®ããŸããã ãããã人çã«ãããŠã¯ãäœããåé€ããªããã°ãªããªãããšããããŸããã»ãšãã©ã®å Žåãçã®æ
å ±ãäžéã®æ
å ±ã§ãã æå¹æéåãã«åºã¥ããŠãå€ãããŒã¿ããã¹ãã¬ãŒãžãã¯ãªãŒã³ã¢ããããã¡ã«ããºã ãäœæããŸããã
ãŸããé
ããæ©ãããã¡ã¢ãªã«ããŒã¿ãä¿åããã®ã«ååãªã¹ããŒã¹ããªããªãç¶æ³ã蚪ããããšãç解ããŠããŸãããããã§ãããŒã¿ã¯ä¿åããå¿
èŠããããŸãã ãããã®ç®çã®ããã«ãç§ãã¡ã¯éããªããã£ã¹ã¯ã¹ãã¬ãŒãžãäœæããäºå®ã§ãã
ãŸãšã
ç§ãã¡ã¯åäžã®ã¢ãã«ã«ããŒã¿ãããŒãããã¿ã¹ã¯ããéå§ããéçºã« 30 ãæãè²»ãããŸããã ããŒã¿äŸçµŠã·ã¹ãã ã¯XNUMXã€ãããŸããã Lua ã§ã¯ãåäžã¢ãã«ãžã®å€æã³ãŒãå šäœã¯çŽ XNUMX äžè¡ã«ãªããŸãã ãããŠãäœæ¥ã®ã»ãšãã©ã¯ãŸã å ã®ããšã§ãã å Žåã«ãã£ãŠã¯ãè¿é£ããŒã ã®ã¢ãããŒã·ã§ã³ãäœäžããããäœæ¥ãè€éã«ããããŸããŸãªç¶æ³ãçºçãããããããšããããŸãã åæ§ã®ã¿ã¹ã¯ã«çŽé¢ããå Žåã¯ããã®å®è¡ã«ãããéåžžã®æéã XNUMX åãããã«ã¯ XNUMX åã«ããŠãã ããã
ãŸããããžãã¹ ããã»ã¹ã®æ¢åã®åé¡ã¯ãããšãçç£æ§ãéåžžã«é«ã DBMS ã§ãã£ãŠããæ°ãã DBMS ã䜿çšããŠè§£æ±ºããããšã¯ã§ããªãããšã«ã泚æããŠãã ããã ç§ãæå³ããã®ã¯ïŒ ãããžã§ã¯ãã®éå§æã«ãç§ãã¡ã¯æ°ããé«éããŒã¿ããŒã¹ãå°å ¥ããä»åŸãåç¶ãããšããå°è±¡ã顧客ã«äžããŸããã ããã»ã¹ã¯ããéãé²ã¿ããã¹ãŠãããŸããããŸãã å®éãããžãã¹ ããã»ã¹ã¯äººéã§ããããããã¯ãããžãŒã¯ããžãã¹ ããã»ã¹ãæ±ããåé¡ã解決ããŸããã ãããŠãã¯ãããžãŒã§ã¯ãªãã人ã ãšååããå¿ èŠããããŸãã
ãã¹ãé§åéçºã¯ãåæ段éã§ã¯èŠçãšæéããããå ŽåããããŸãã ããããååž°ãã¹ããå®æœããããã«äœãããå¿ èŠããªãå Žåã§ãããã®ãã©ã¹ã®å¹æã¯çæéã§ãã£ãŠãé¡èã«ãªããŸãã
éçºã®ãã¹ãŠã®æ®µéã§è² è·ãã¹ããå®æœããããšã¯éåžžã«éèŠã§ãã ã¢ãŒããã¯ãã£ã®æ¬ é¥ã«æ©ãæ°ã¥ãã»ã©ãä¿®æ£ã容æã«ãªããå°æ¥çã«ã¯å€§å¹ ãªæéãç¯çŽã§ããŸãã
ã«ã¢ãªãäœãåé¡ãªããã Java éçºè ãJavaScript éçºè ãPython éçºè ãããã³ããšã³ããŸãã¯ããã¯ãšã³ããªã©ã誰ã§ãèšè¿°æ¹æ³ãåŠã¶ããšãã§ããŸãã åœç€Ÿã®ã¢ããªã¹ããããã«ã€ããŠæžããŠããŸãã
SQL ããªããšããäºå®ã«ã€ããŠè©±ããšã人ã ã¯ææãæããŸãã ãSQL ã䜿ããã«ã©ããã£ãŠããŒã¿ãååŸããã®ã§ãããã? ããã¯å¯èœã§ãããã? 確ãã«ã OLTP ã¯ã©ã¹ ã·ã¹ãã ã§ã¯ SQL ã¯å¿ èŠãããŸããã äœããã®èšèªã®åœ¢åŒã§ãããã«ããã¥ã¡ã³ãæåã®ãã¥ãŒã«æ»ã代æ¿æ段ããããŸãã ããšãã°ãGraphQLã ãããŠãåæ£ã³ã³ãã¥ãŒãã£ã³ã°ãšãã圢ã§ã®ä»£æ¿æ段ããããŸãã
ã¹ã±ãŒãªã³ã°ãå¿
èŠã§ããããšãç解ããŠããå Žåã¯ãæ°åã® Tarantool ã€ã³ã¹ã¿ã³ã¹ã§äžŠè¡ããŠå®è¡ã§ããããã«ãTarantool ã§ãœãªã¥ãŒã·ã§ã³ãèšèšããŸãã Tarantool 㯠XNUMX ã€ã®ããã»ããµ ã³ã¢ããæå¹ã«äœ¿çšã§ããªãããããããè¡ããªããšãåŸã
倧å€ã§èŠçã«ãªããŸãã
åºæïŒ habr.com