
ãæ¬¡äžä»£é«éRDBãTsurugiãè§Šã£ãŠã¿ããæ¬æ¥OSSçãªãªãŒã¹ïŒè§£èª¬æ¬çºå£²ã
Tsurugiãæ£åŒã«OSSãšããŠå
¬éãããŸããã
https://tsurugidb.com/
ïŒå"Tsurugi"ã³ãã¥ããã£ãµã€ãå³äžã®Githubãªã³ã¯ããããŠã³ããŒããã ããïŒ
çŸåšã®ææ°ã®æè¡ã§å®è£
ãããOSSã®RDBã§ããåæã«è§£èª¬æžç±ãçºå£²ã«ãªã£ãŠããŸããâ»Kindleããã
https://amzn.asia/d/gHwrzTl  ïŒAmazonã®ããŒãžãéããŸãïŒ
ããŠãè§Šã£ãŠã¿ãããã©ãããŸãããïŒãšããå Žåã¯ãããšããããinstallããŠåããããšããããšã«ãªããŸãã
åçŽã«ãåãããã ãã§ããã°ãæå
ã®PCãé©åœãªã¯ã©ãŠãã®ã€ã³ã¹ã¿ã³ã¹ã§ããããšæããŸããDockerã€ã¡ãŒãžãããã®ã§ããããå©çšããæ¹æ³ããã£ãšããæè»œã§ãã
æé ã¯ä»¥äžã§ãã
ã»Tsurugi Getting Started
https://github.com/project-tsurugi/tsurugidb/blob/master/docs/getting-started_ja.md
ã»Tsurugi DockerãŠãŒã¶ã¬ã€ã
https://github.com/project-tsurugi/tsurugidb/blob/master/docs/docker-tsurugi_ja.md
ããšã¯ã決ãŸãã§ããâŠ
é©åœãªããŒãã«ãCREATEããŠãå€å°ã®ã¬ã³ãŒããINSERTããã®åŸSELECTãSQLã³ã³ãœãŒã«ããå®è¡ããŠã¿ãããšããããšã«ãªããšæããŸãã
ãã®æç¹ã§ããã§ã«OCCã»LTXã®çã
ã®Tsurugiåºæã®å±æ§ãç»å ŽããŸãã
ãã®ãããã®ãªãã·ã§ã³ã®æå®ããäŸå€åŠçã®ãã³ãã«ã«ã€ããŠã¯æžç±ãåèã«ããŠãã ãããéåžžã®åŠçã§ã¯OCCã«ãªãããããåŠçã®å Žåã¯ãããåŠççšã®ãããã³ã«ã§ããLTXãå©çšããŸãã
æ¬æ¥ã§ããã°ã次ã«Tsurugiã®éçºã¿ãŒã²ããåŠçã§ãããããåŠçïŒãšãªã³ã©ã€ã³ã®æ··æå®è¡ïŒãããœãŒã¹ã³ãŒãä»ãã§æ·»ä»ãããŠããã®ã§ããããå®è¡ããããšããå§ããããã®ã§ããããŸããŸãã¬ãç®ã®æ¬æ ŒçãªãããåŠçã§ããæå ã®PCã§ããããã®ãªãæ®éã«1-2æéã³ãŒã¹ã«ãªããŸãã
ãããåŠçã®è©Šè¡ã¯ããçšåºŠã®ç°å¢ã§ã®å®è¡ãæšå¥šããŠããŸãã
ç°å¢ã«ã€ããŠ
Tsurugiã¯ã¡ããŒã³ã¢ã»å€§å®¹éã¡ã¢ãªãŒãåæãšããŠããRDBã§ãã
æå
ã®PCãã³ã¢æ°ãå°ãªããµãŒãã§ã¯ãTsurugiã®ç骚é ã§ããé«è² è·ã§ã®ããã©ãŒãã³ã¹ã¯äœæã§ããŸãããâãããªãã®ç°å¢âãå¿
èŠã«ãªããŸãã
CPUã¯20ã³ã¢~30ã³ã¢ãããã§ãã¡ã¢ãªãŒã¯200GãããããŸãã¯ãå§ãã®ç°å¢ãšããããšã«ãªããŸãã
ãšããããšã§ããã°ãã¯ã©ãŠãã§ããã°AWS/Azureã§ããŸãã¯ãªã³ãã¬ã®ãµãŒããæºåããå¿
èŠãããããšæããŸãããªããTsurugiã®AWSã»Azureã§ã®ã»ããã¢ããã®æ¹æ³ã¯æžç±ãåèã«ããŠãã ããã
ãŸããâãããªãã®ç°å¢âã§ããã°ããããã€ã³ã¿ãŒãããæ§ãšããŒãã©ã¹ã§ååããŠãé©åœãªç°å¢ãæäŸããããšãæºåäžã§ãã
âŠãšã¯ãããç°å¢ãæºåããšããããšã§ããã°ããããªãæéæã»ã³ã¹ããããããŸãããã¡ããããŸãã¯ããã©ã«ãã§ã®ãããåŠçãèµ°ãããŠã¿ãããšããããšã倧äºã§ãããããããããšããããåã«ãã©ãããããšãããããã®ãïŒãã¯æŽçããŠãããæ¹ãããã§ãããã
1ïŒãªã«ã課é¡ããã£ãŠãè§Šã£ãŠãã人
â ãã·ã¹ãã ã®åŠçãéããŠããã®ãŸãŸã ãšãã¶ãã€ããã®ã§ãªããšããããã
ããããäœãé
ãã®ãïŒã©ãããåŠçãããã«ããã¯ãªã®ãïŒããâãŒãããâãšã§ããã®ã§æŽçããSQLã»ã¹ããŒãã»ããŒã¿ãµã€ãºæã»çŸè¡ã®åŠçæéãçã
ã«ç°¡åã«ã¹ã±ããã»ã¢ãŠãããŸãããããŸãã¯æå
ã§ãæ°è¡ã¬ãã«ã§ã€ã¡ãŒãžãã¡ãã£ãšæžããŠåãããäžã§ããããããç°å¢ãäœã£ãŠã¿ãŠã»ã»ã»
ãšããæµãããããšæããŸããããããåãããäžã§ããã®æŽçãã課é¡ãšæ¯èŒããããšã§ãããæç¢ºãªèª²é¡è§£æ±ºã®ã€ã¡ãŒãžã沞ãã§ããã
â¡ãæ¢ååçšã©ã€ã»ã³ã¹ãéè·ãªã®ã§ãå€å°ã¯è»œããããã
åºå¹¹ç³»ãçŸåšã®å®è¡ç³»ã®ã·ã¹ãã ããããªãåºæ¥ç«ãŠã»ãã»ãã®RDBã§ããšããã®ã¯æ®éã«èªæ®ºè¡çºã§ããæ¢ãã¯ããŸãããããããããããŸããããããæ¢ããŸãããŸãèœã¡çããŠãã ããã
ãã ããããšãã°ãåæç³»ã®ä»çµã¿ãåºå¹¹ç³»ã®å€ä»ãã®ã·ã¹ãã ã§ãæ¥åç³»ã»é¡§å®¢ç³»ã®ããŒã¿ãªã®ã§ããªããšãªãã¯ã©ãŠãã«ãããã®ã¯èºèºãããããããŒã¿ãµã€ãºçã«æ¢åã®RDBã ãšã©ãã«ããªããªãããšãããããªã±ãŒã¹ã§ã¯æé©ã§ãããã
Tsurugiã¯å€§éã®Insert/Updateãéãã®ã§ãããããåãåããæ¥œã§ããH/WãæŽãã°ãæ®éã«ç§ããã50-100äžä»¶ã®INSERT(serializable)ã¯ã§ããŸãã
6åäžä»¶çšåºŠã§ããã°ãæ°åã§å®äºããŸãã
ã2ïŒ3åäžä»¶çšåºŠã®é©åœãªããŒã¿ããé©åœãªããŒãã«ã«InsertããŠãé©åœã«Selectããé©åœã«Javaã§åŠçããŠãé©åœã«çµæãæžãæ»ãããŸãã¯ããã®çµæã§é©åœã«joinããããããªå Žåã¯ãé©åœãªç°å¢ã§Tsurugiã§ããªããŠã¿ãããšããã®ã¯æªãã¯ãªãã§ãã
åçšã®ã©ã€ã»ã³ã¹ãã£ãŒã¯ããããŸããããããšãã£ãŠOSS-RDBã§ã¯ãããæéãé£ãããããŒã¿çã«ã¯ã©ãŠãDBã§ã¯ããã¥ããããšãããããªå Žåã§ãã
2.ããªããã§ãããã ããšæã£ãŠè§Šã£ãŠãã人
Tsurugiã®æå€§ã®é åã®äžã€ã¯ãããŸãŸã§ã®RDBã§ã¯ã§ããªãã£ãããšãã§ããããšããããšã§ãã
ç¹ã«ã倧ããªåŠçãèµ°ãããªãããç¶æ³ã®ç¢ºèªãããããŸãã¯ããããåŠçäžã«ããããæèããã«ãªã³ã©ã€ã³åŠçãè¡ãããããªã±ãŒã¹ãããããå©çšãããµãŒãã¹ã»æ¥åã¯ãããŸãŸã§ã¯DBåŽã®å¶çŽã§ã§ããŠããŸããã§ããã
ããŸãŸã§ãšéãããšãã§ããããšããããšã¯ãããŸãŸã§ã¯éããµãŒãã¹ã»æ¥åãå©çšã»æäŸã§ãããšããããšã§ãã
ãŸãã¯æ³ååãåãããŸãããã
äœé
å»¶ã»ã¯ã€ãã¯ãªã¬ã¹ãã³ã¹ãå¯èœãªéãæ°ããããŒã¿ã§è¿ãããšããããšã¯ãåçŽã«ããããéããªã以äžã®ããšããåŒãåºããã¯ãã§ãã
ãã®ãã£ãããã仮説ã»ã€ã¡ãŒãžããã£ãŠTsurugiã«è§Šãã»è©Šè¡ç°å¢ãã€ãã£ãŠã¿ãããšããããšãã倧ããªã¡ãªãããåãåºãæå€§ã®ãã€ã³ãã«ãªããŸãã
3ïŒGeekåã
ãšãããããœãŒã¹ãâŠãšè¡ããããšããã§ãããçµæ§å³ããã§ãã
çç±ã¯ããã€ããããŸãã
äžã€ã¯Tsurugiã®ã³ã³ããŒãã³ãã»ããã±ãŒãžã®æ°ãçžåœããããšã§ãã
ããã¯ããããTsurugiãã³ã³ããŒãã³ãã»ããŒã¹ã®ã¢ãŒããã¯ãã£ã«ãªã£ãŠããããã§ãããªã®ã§ãçã£ç«¯ããèªãã§ãããšããããã«ã¯ãããŸããã
ãã®èŸºãã¯æžç±ã«ãåã³ã³ããŒãã³ãã®æ§æã»åœ¹å²ãããªã詳现ã«èšè¿°ãããŠããã®ã§ããŸãã¯ããã§ãèŠåœãã€ãããã®ãè¯ãããšæããŸãã
éã«èšããšäžæŠæ€èšãã€ããšã解説æžãããã®ã§ãAPIã¬ãã«ã§ãããªãèªã¿ãããã¹ã¿ã€ã«ã«ã¯ãªã£ãŠããŸããïŒãªã£ãŠãããšæããŸãïŒ
ãããªãã³ã¢ã«çªã£èŸŒãã®ã§ã¯ãªããã€ã³ã¿ãŒãã§ãŒã¹åšãããè¡ãã®ããå§ãã§ãã
äºã€ç®ã¯ãããããTsurugiã®ããªã·ãŒãšããŠãdocsã¯ã¡ã³ãã³ã¹ããæå°ã«ããå¯èœãªéããŸãã¯æžç±åããšããéã³ã§äœã£ãŠããŸãã
ïŒãšãããéçºäžã«æžãæ£ãããdocsã¯å
šéšæŽçããŠæžç±åããã¡ã³ãã³ã¹ãäœæžã®ããããœãŒã¹ããæå³çã«åé€ããŠããŸããïŒ
èŠæš¡ã®å²ã«ã¯documentationãæããããŠããŸãã®ã§ãçŽ ã§èªãã§ãéäžã§ïŒïŒïŒã«ãªã£ãŠdocsããªãããããã³ã¬ïŒãšããããšã«ãªããšæããŸãã
äžã€ç®ã¯ãããããåŸæ¥ã®RDBãšèãæ¹ãã¢ãŒããã¯ãã£ãæ ¹æ¬çã«éããŸãã圹å²ãæ§æã¯ããçšåºŠã®ãæå³ãããã£ãŠäœãããŠããŸãã
ãŸãã¯ã³ãŒãããèªäœãšãããããããã¶ã€ã³ãçè§£ããããšãæ©éã§ãããããšããããšã§ãœãŒã¹ãèŠããŸãã«ããŸãæžç±ãèªã¿ãŸãããã
å°ãæžç±ã®2-3éšãããã¯ãæå³çã«ãœãŒã¹ãèªãããã®æããããšããäœçœ®ã¥ãã«ããªã£ãŠããŸãã