以äžã®ããŒã¿ããŒã¹ã«å¯Ÿãã Yandex ã®è²¢ç®ãã¬ãã¥ãŒãããŸãã
- ã¯ãªãã¯ããŠã¹
- Odyssey
- ããæç¹ãžã®ãªã«ã㪠(WAL-G)
- PostgreSQL (logerrorsãAmcheckãheapcheck ãå«ã)
- ã°ãªãŒã³ãã©ã
ãããªïŒ
ããã«ã¡ã¯äžçïŒ ç§ã®ååã¯ã¢ã³ãã¬ã€ã»ãããã£ã³ã§ãã ãããŠãç§ã Yandex.Cloud ã§è¡ã£ãŠããããšã¯ãYandex.Cloud ãš Yandex.Cloud ã¯ã©ã€ã¢ã³ãã®å©çã®ããã«ãªãŒãã³ ãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ãéçºããããšã§ãã
ãã®è¬æŒã§ã¯ã倧èŠæš¡ãªãªãŒãã³ ããŒã¿ããŒã¹ãçŽé¢ãã課é¡ã«ã€ããŠè©±ããŸãã ã©ãããŠãããéèŠã§ããïŒ ãªããªããå°ããªãå°ããªåé¡ããèã®ããã«ããããŠè±¡ã«ãªãããã§ãã ã¯ã©ã¹ã¿ãŒãå€æ°ããå Žåããããã¯å€§ãããªããŸãã
ãããããããéèŠãªããšã§ã¯ãããŸããã ä¿¡ããããªããããªããšãèµ·ãããŸãã XNUMXäžä»¶ã«XNUMX件ã®ç¢ºçã§èµ·ããããšã ãããŠãã¯ã©ãŠãç°å¢ã§ã¯ãäœãã倧èŠæš¡ã«ååšãããšãä¿¡ããããªããããªããšãèµ·ããå¯èœæ§ãéåžžã«é«ããªãããããã®ããšã«åããå¿ èŠããããŸãã
ãããïŒ ãªãŒãã³ããŒã¿ããŒã¹ã®å©ç¹ã¯äœã§ãã? äºå®ã¯ãã©ããªåé¡ã«ãçè«çã«å¯ŸåŠããæ©äŒããããšããããšã§ãã ããªãã¯ãœãŒã¹ã³ãŒããæã£ãŠãããããã°ã©ãã³ã°ã®ç¥èãæã£ãŠããŸãã ãããçµã¿åããããšããŸããããŸãã
ãªãŒãã³ãœãŒã¹ ãœãããŠã§ã¢ã«åãçµãã«ã¯ã©ã®ãããªã¢ãããŒãããããŸãã?
- æãç°¡åãªã¢ãããŒãã¯ãœãããŠã§ã¢ã䜿çšããããšã§ãã ãããã³ã«ã䜿çšããŠããå Žåãæšæºã䜿çšããŠããå Žåããã©ãŒãããã䜿çšããŠããå ŽåããªãŒãã³ ãœãŒã¹ ãœãããŠã§ã¢ã§ã¯ãšãªãäœæããŠããå Žåã¯ããã§ã«ããããµããŒãããŠããããšã«ãªããŸãã
- ãšã³ã·ã¹ãã ãæ¡å€§ããŠããã®ã§ãã ãã°ã®æ©æçºèŠã®å¯èœæ§ãé«ãŸããŸãã ãã®ã·ã¹ãã ã®ä¿¡é Œæ§ãé«ãŸããŸãã åžå Žã«ãããéçºè ã®å¯çšæ§ãé«ãŸããŸãã ããªãã¯ãã®ãœãããŠã§ã¢ãæ¹è¯ããŸãã ã¹ã¿ã€ã«ãæŽããŠäœããããããåããã ããªããããªãã¯ãã§ã«è²¢ç®è ã§ãã
- ãã XNUMX ã€ã®ããããããã¢ãããŒãã¯ããªãŒãã³ãœãŒã¹ ãœãããŠã§ã¢ã®ã¹ãã³ãµãŒã«ãªãããšã§ãã ããšãã°ãæå㪠Google Summer of Code ããã°ã©ã ã§ã¯ãGoogle ã¯äžçäžããéãŸã£ãå€æ°ã®åŠçã«ãç¹å®ã®ã©ã€ã»ã³ã¹èŠä»¶ãæºãããªãŒãã³ ãœãããŠã§ã¢ ãããžã§ã¯ããéçºããŠãããããã«ãç解ã§ããéé¡ãæ¯æããŸãã
- ããã¯ãçŠç¹ãã³ãã¥ããã£ãã移ãããšãªããœãããŠã§ã¢ãé²åãããããšãã§ãããããéåžžã«èå³æ·±ãã¢ãããŒãã§ãã ãã¯ãããžãŒã®å·šäººã§ãã Google ã¯ããã®æ©èœã欲ããããã®ãã°ãä¿®æ£ãããããããæãäžããå¿ èŠããããšã¯èšã£ãŠããŸããã ã°ãŒã°ã«ã¯ããèšããŸãã ãããŸã§ãšåãããã«ä»äºãç¶ããã°ããã¹ãŠããŸãããã§ããããã
- ãªãŒãã³ãœãŒã¹ã«åå ããããã®æ¬¡ã®ã¢ãããŒãã¯åå ã§ãã ãªãŒãã³ãœãŒã¹ ãœãããŠã§ã¢ã«åé¡ããããéçºè ãããå Žåãéçºè ã¯åé¡ã®è§£æ±ºãéå§ããŸãã ãããã«ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®å¹çãåäžããããã°ã©ã ã®é床ãšä¿¡é Œæ§ãåäžããŸãã
ãªãŒãã³ãœãŒã¹ ãœãããŠã§ã¢ã®åéã§æãæå㪠Yandex ãããžã§ã¯ãã® XNUMX ã€ã¯ ClickHouse ã§ãã ããã¯ãYandex.Metrica ãçŽé¢ãã課é¡ãžã®å¯Ÿå¿ãšããŠèªçããããŒã¿ããŒã¹ã§ãã
ãŸããããŒã¿ããŒã¹ãšããŠã¯ããšã³ã·ã¹ãã ãæ§ç¯ããä»ã®éçºè (Yandex å ã ãã§ãªã) ãšäžç·ã«éçºããããã«ããªãŒãã³ãœãŒã¹ã§äœæãããŸããã ãããŠä»ãããã¯å€ãã®äŒæ¥ãé¢äžãã倧ããªãããžã§ã¯ãã§ãã
Yandex.Cloud ã§ã¯ãYandex Object Storage ã®äžãã€ãŸãã¯ã©ãŠã ã¹ãã¬ãŒãžã®äžã« ClickHouse ãäœæããŸããã
ãããã¯ã©ãŠãã«ãããŠãªãéèŠãªã®ã§ãããã? ãªããªããã©ã®ããŒã¿ããŒã¹ããã®äžè§åœ¢ããã©ããããã¡ã¢ãª ã¿ã€ãã®éå±€å ã§æ©èœããããã§ãã é«éã ãå°ããã¬ãžã¹ã¿ãšãå®äŸ¡ã§å€§ãããé ã SSDãããŒã ãã©ã€ããããã³ãã®ä»ã®ããã㯠ããã€ã¹ããããŸãã ãããŠããã©ãããã®é ç¹ã§å¹ççã§ããã°ãé«éãªããŒã¿ããŒã¹ãæã«å ¥ããããšãã§ããŸãã ãã®ãã©ãããã®æäžäœã§å¹ççã§ããã°ãã¹ã±ãŒã«ãããããŒã¿ããŒã¹ãæã«å ¥ããããšãã§ããŸãã ãã®ç¹ã§ãäžããå¥ã®ã¬ã€ã€ãŒãè¿œå ããããšã¯ãããŒã¿ããŒã¹ã®ã¹ã±ãŒã©ããªãã£ãé«ããããã®è«ççãªã¢ãããŒãã§ãã
ã©ãããã°ãããã§ããã§ããããïŒ ããã¯ãã®ã¬ããŒãã®éèŠãªãã€ã³ãã§ãã
- MDS äžã« ClickHouse ãå®è£ ããããšãã§ããŸãã MDS ã¯ãYandex ã®å éšã¯ã©ãŠã ã¹ãã¬ãŒãž ã€ã³ã¿ãŒãã§ã€ã¹ã§ãã äžè¬ç㪠S3 ãããã³ã«ãããè€éã§ãããããã㯠ããã€ã¹ã«ããé©ããŠããŸãã ããŒã¿ã®èšé²ã«é©ããŠããŸãã ããå€ãã®ããã°ã©ãã³ã°ãå¿ èŠã«ãªããŸãã ããã°ã©ããŒãããã°ã©ãã³ã°ããã®ã¯è¯ãããšã§ãããé¢çœãããšããããŸãã
- S3 ã¯ãç¹å®ã®çš®é¡ã®ã¯ãŒã¯ããŒããžã®é©å¿æ§ãäœäžãã代ããã«ã€ã³ã¿ãŒãã§ã€ã¹ãç°¡çŽ åãããããäžè¬çãªã¢ãããŒãã§ãã
åœç¶ã®ããšãªãããClickHouse ãšã³ã·ã¹ãã å šäœã«æ©èœãæäŸããYandex.Cloud å ã§å¿ èŠãªã¿ã¹ã¯ãå®è¡ããããšèããClickHouse ã³ãã¥ããã£å šäœããã®æ©æµãåããããããã«ããããšã«ããŸããã MDS ãä»ãã ClickHouse ã§ã¯ãªããS3 ãä»ã㊠ClickHouse ãå®è£ ããŸããã ãããŠãããã¯å€§å€ãªäœæ¥ã§ãã
ãªã³ã¯ïŒ
ClickHouseã«ä»®æ³ãã¡ã€ã«ã·ã¹ãã ãå®è£ ããããã®ãã«ãªã¯ãšã¹ããªã¹ãã§ãã ããã¯å€§éã®ãã« ãªã¯ãšã¹ãã§ãã
ãªã³ã¯ïŒ
ã¯ã©ã€ã¢ã³ã"
ããããä»äºã¯ããã§çµããã§ã¯ãããŸããã§ããã ãã®æ©èœãäœæãããåŸããã®æ©èœãæé©åããããã«ããã«äœæ¥ãå¿ èŠã«ãªããŸããã
ãªã³ã¯ïŒ
ãããŠãããã蚺æå¯èœã«ããç£èŠãèšå®ãã管çå¯èœã«ããå¿ èŠããããŸããã
ãããŠãããã¯ãã¹ãŠãã³ãã¥ããã£å šäœãClickHouse ãšã³ã·ã¹ãã å šäœããã®äœæ¥ã®çµæãåãåãããã«è¡ãããŸããã
次ã«ãç§ã«ãšã£ãŠå人çã«è¿ããã©ã³ã¶ã¯ã·ã§ã³ ããŒã¿ããŒã¹ãOLTP ããŒã¿ããŒã¹ã«ç§»ããŸãããã
ãªãŒãã³ãœãŒã¹DBMSéçºéšéã§ãã 圌ãã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ãªãŒãã³ ããŒã¿ããŒã¹ãæ¹åããããã«ã¹ããªãŒã ããžãã¯ãè¡ã£ãŠããŸãã
ãããžã§ã¯ãã® XNUMX ã€ã¯ãPostgres ã®æ¥ç¶ããŒã©ãŒã§ãããã®äŸã䜿çšããŠãç§ãã¡ãã©ã®ããã«ãäœãè¡ã£ãŠãããã«ã€ããŠèª¬æããŸãã
Postgres ã¯ããã»ã¹ ããŒã¿ããŒã¹ã§ãã ããã¯ãããŒã¿ããŒã¹ã§ãã©ã³ã¶ã¯ã·ã§ã³ãåŠçãããããã¯ãŒã¯æ¥ç¶ãã§ããã ãå°ãªãããå¿ èŠãããããšãæå³ããŸãã
äžæ¹ãã¯ã©ãŠãç°å¢ã§ã¯ãäžåºŠã« XNUMX ã®æ¥ç¶ã XNUMX ã€ã®ã¯ã©ã¹ã¿ãŒã«å°éããããšãäžè¬çãªç¶æ³ã§ãã ãããŠãæ¥ç¶ããŒã©ãŒã®ã¿ã¹ã¯ã¯ãXNUMX ã®æ¥ç¶ãå°æ°ã®ãµãŒããŒæ¥ç¶ã«è©°ã蟌ãããšã§ãã
æ¥ç¶ããŒã©ãŒã¯ãããŒã¿ããŒã¹ã«å¹ççã«å°éã§ããããã«ãã€ããåé 眮ããé»è©±äº€ææã§ãããšèšããŸãã
æ®å¿µãªããããã·ã¢èªã§æ¥ç¶ããŒã©ãŒãè¡šãé©åãªåèªã¯ãããŸããã ãã«ããã¬ã¯ãµæ¥ç¶ãšåŒã°ããããšããããŸãã æ¥ç¶ããŒã©ãŒãäœãšåŒã¶ã¹ãããåç¥ã®å Žåã¯ããã²æããŠãã ãããæ£ãããã·ã¢èªã®å°éçšèªãåãã§è©±ããŸãã
ãããŒãžã postgres ã¯ã©ã¹ã¿ãŒã«é©ããæ¥ç¶ããŒã©ãŒã調æ»ããŸããã ãããŠãPgBouncer ãç§ãã¡ã«ãšã£ãŠæè¯ã®éžæã§ããã ããããPgBouncer ã§ã¯å€ãã®åé¡ãçºçããŸããã äœå¹Žãåã«ãVolodya Borodin ã¯ãç§ãã¡ã PgBouncer ã䜿çšããŠããããã¹ãŠãæ°ã«å ¥ã£ãŠãããããã¥ã¢ã³ã¹ããããåãçµãã¹ãç¹ããããšå ±åããŸããã
ãããŠç§ãã¡ã¯åããŸããã ç§ãã¡ã¯çºçããåé¡ãä¿®æ£ããBouncer ã«ããããé©çšãããã« ãªã¯ãšã¹ããã¢ããã¹ããªãŒã ã«ããã·ã¥ããããšããŸããã ããããåºæ¬çãªã·ã³ã°ã«ã¹ã¬ããã¯æ±ããå°é£ã§ããã
ããããé©çšããçšå¿æ£ããã«ã¹ã±ãŒããåéããå¿ èŠããããŸããã å€æ°ã®ã·ã³ã°ã«ã¹ã¬ãã ããŠã³ãµãŒãããå Žåãæäžå±€ã®æ¥ç¶ã¯ããŠã³ãµãŒã®å éšå±€ã«è»¢éãããŸãã ããã¯ç®¡çãäžååãªã·ã¹ãã ã§ãããæ§ç¯ãæ¡åŒµãå°é£ã§ãã
ç§ãã¡ã¯ãOdyssey ãšããç¬èªã®æ¥ç¶ããŒã©ãŒãäœæãããšããçµè«ã«éããŸããã ç§ãã¡ã¯ãããäžããæžããŸããã
2019 幎㮠PgCon ã«ã³ãã¡ã¬ã³ã¹ã§ãç§ã¯ãã®ããŒã©ãŒãéçºè ã³ãã¥ããã£ã«çºè¡šããŸããã çŸåšãGitHub ã«ã¯ 2 å匱ã®ã¹ã¿ãŒãä»ããŠããŸããã€ãŸãããããžã§ã¯ãã¯çããŠããããããžã§ã¯ãã¯äººæ°ããããŸãã
Yandex.Cloud 㧠Postgres ã¯ã©ã¹ã¿ãŒãäœæãããšããã㯠Odyssey ãçµã¿èŸŒãŸããã¯ã©ã¹ã¿ãŒã«ãªããã¯ã©ã¹ã¿ãŒãååŸã«ã¹ã±ãŒãªã³ã°ãããšãã«åæ§æãããŸãã
ãã®ãããžã§ã¯ãããäœãåŠãã ã§ãããã? 競åãããããžã§ã¯ããç«ã¡äžããããšã¯åžžã«ç©æ¥µçãªã¹ãããã§ãããååãªéãã§è§£æ±ºãããªãåé¡ããç§ãã¡ã«é©ããæéå ã«è§£æ±ºãããªãåé¡ããããšèšãå Žåãããã¯æ¥µç«¯ãªæ段ã§ãã ããããããã¯å¹æçãªå¯Ÿçã§ãã
PgBouncer ã¯ããè¿ éã«éçºãéå§ããŸããã
ãããŠä»ãä»ã®ãããžã§ã¯ããç»å ŽããŠããŸãã ããšãã°ãRed Hat éçºè ã«ãã£ãŠéçºããã pgagroal ãªã©ã§ãã 圌ãã¯åæ§ã®ç®æšãè¿œæ±ããåæ§ã®ã¢ã€ãã¢ãå®è£ ããŠããŸããããã¡ãããç¬èªã®è©³çŽ°ããããpgagroal éçºè ã«è¿ããã®ãšãªã£ãŠããŸãã
postgres ã³ãã¥ããã£ãšé£æºãããã XNUMX ã€ã®ã±ãŒã¹ã¯ãããæç¹ãžã®åŸ©å ã§ãã ããã¯é害åŸã®å埩ã§ãããããã¯ããã¯ã¢ããããã®å埩ã§ãã
ããã¯ã¢ããã¯ãããããããŸããããããã¯ãã¹ãŠç°ãªããŸãã ã»ãŒãã¹ãŠã® Postgres ãã³ããŒã¯ç¬èªã®ããã¯ã¢ãã ãœãªã¥ãŒã·ã§ã³ãæã£ãŠããŸãã
ãã¹ãŠã®ããã¯ã¢ãã ã·ã¹ãã ãååŸããç¹åŸŽãããªãã¯ã¹ãäœæããåè«ããããŠãã®ãããªãã¯ã¹ã®è¡ååŒãèšç®ãããšãããã¯ãŒãã«ãªããŸãã ããã¯ã©ãããæå³ã§ããïŒ ç¹å®ã®ããã¯ã¢ãã ãã¡ã€ã«ãååŸããå Žåããã®ããã¯ã¢ãã ãã¡ã€ã«ãä»ã®ãã¹ãŠã®ãã¡ã€ã«ã®æçããçµã¿ç«ãŠãããšã¯ã§ããŸããã å®è£ ãç®çããããã«çµã¿èŸŒãŸããã¢ã€ãã¢ãç¬èªã§ãã ãããŠãããã¯ãã¹ãŠå ·äœçã§ãã
ç§ãã¡ããã®åé¡ã«åãçµãã§ããéã«ãCitusData 㯠WAL-G ãããžã§ã¯ããç«ã¡äžããŸããã ã¯ã©ãŠãç°å¢ãæèããããã¯ã¢ããã·ã¹ãã ã§ãã çŸåšãCitusData ã¯ãã§ã« Microsoft ã®äžéšãšãªã£ãŠããŸãã ãããŠãã®ç¬éãç§ãã¡ã¯ WAL-G ã®åæãªãªãŒã¹ã«çã蟌ãŸããã¢ã€ãã¢ããšãŠãæ°ã«å ¥ã£ãŠããŸããã ãããŠç§ãã¡ã¯ãã®ãããžã§ã¯ãã«è²¢ç®ãå§ããŸããã
çŸåšããã®ãããžã§ã¯ãã«ã¯æ°å人ã®éçºè ãåå ããŠããŸãããWAL-G ãžã®è²¢ç®è ã®ããã 10 ã«ã¯ 6 人㮠Yandexoid ãå«ãŸããŠããŸãã ããã§ç§ãã¡ã¯ããããã®ã¢ã€ãã¢ãæã¡å¯ããŸããã ãããŠãã¡ãããç§ãã¡ã¯ããããèªåãã¡ã§å®è£ ããèªåãã¡ã§ãã¹ãããèªåãã¡ã§éçšç°å¢ã«å±éããèªåãã¡ã§äœ¿çšãã倧èŠæš¡ãª WAL-G ã³ãã¥ããã£ãšå¯Ÿè©±ããªããã次ã«ã©ãã«é²ãã¹ãããèªåãã¡ã§èããŸããã
ãããŠãç§ãã¡ã®èŠ³ç¹ãããããšããã®ããã¯ã¢ããã·ã¹ãã ã¯ãç§ãã¡ã®åªåãå«ããŠãã¯ã©ãŠãç°å¢ã«æé©ãªãã®ã«ãªã£ããšèšããŸãã ããã¯ãã¯ã©ãŠã㧠Postgres ãããã¯ã¢ããããå Žåã®æè¯ã®ã³ã¹ãã§ãã
ããã¯ã©ãããæå³ã§ããïŒ ç§ãã¡ã¯ããªã倧ããªã¢ã€ãã¢ãæšé²ããŠããŸãããããã¯ãããã¯ã¢ããã¯å®å šã§ãéçšã³ã¹ããäœããã§ããã ãæ©ã埩å ã§ããå¿ èŠããããšããããšã§ãã
ãªãéçšã³ã¹ããå®ããªããã°ãªããªãã®ã§ããããïŒ äœãå£ããŠããªããšãã¯ãããã¯ã¢ãããããããšã«æ°ã¥ããªãã¯ãã§ãã ãã¹ãŠãæ£åžžã«åäœããCPU ã®ç¡é§ãæå°éã«æãããã£ã¹ã¯ ãªãœãŒã¹ã®äœ¿çšãæå°éã«æãã貎éãªãµãŒãã¹ã®ãã€ããŒãã«å¹²æžããªãããã«ãããã¯ãŒã¯ã«éä¿¡ãããã€ãæ°ãæå°éã«æããŸãã
ãããŠãããšãã°ã管çè ãããŒã¿ãèœãšããããäœãåé¡ãçºçãããããŠããã¹ãŠãå£ããå Žåãç·æ¥ã«éå»ã«æ»ãå¿ èŠãããå ŽåãããŒã¿ãè¿ éãã€ç¡å·ã§æ»ããããããå šé¡ãè² æ ããŠå埩ããŸãã
ãããŠç§ãã¡ã¯ãã®ã·ã³ãã«ãªã¢ã€ãã¢ãæšé²ããŸããã ãããŠãç§ãã¡ã¯ããããªããšãå®è£ ã§ããããã§ãã
ããããããã ãã§ã¯ãããŸããã ããäžã€å°ããªããšã欲ããã£ãã ããŸããŸãªããŒã¿ããŒã¹ãå¿ èŠã§ããã ãã¹ãŠã®ã¯ã©ã€ã¢ã³ãã Postgres ã䜿çšããŠããããã§ã¯ãããŸããã MySQL ã MongoDB ã䜿çšãã人ãããŸãã ã³ãã¥ããã£ã§ã¯ãä»ã®éçºè ã FoundationDB ããµããŒãããŠããŸãã ãããŠããã®ãªã¹ãã¯åžžã«æ¡å€§ããŠããŸãã
ã³ãã¥ããã£ã¯ãããŒã¿ããŒã¹ãã¯ã©ãŠãã®ç®¡çãããç°å¢ã§å®è¡ããããšããã¢ã€ãã¢ãæ°ã«å ¥ã£ãŠããŸãã ãŸããéçºè ã¯ããŒã¿ããŒã¹ãä¿å®ããŠãããåœç€Ÿã®ããã¯ã¢ãã ã·ã¹ãã ã䜿çšã㊠Postgres ãšãšãã«åäžã«ããã¯ã¢ããã§ããŸãã
ãã®è©±ããç§ãã¡ã¯äœãåŠãã ã§ãããã? éçºéšéãšããŠã®ç§ãã¡ã®è£œåã¯ãã³ãŒãè¡ã§ããã¹ããŒãã¡ã³ãã§ãããã¡ã€ã«ã§ããããŸããã åœç€Ÿã®è£œåã¯ãã«ãªã¯ãšã¹ãã§ã¯ãããŸããã ãããã¯ç§ãã¡ãã³ãã¥ããã£ã«äŒããã¢ã€ãã¢ã§ãã ããã¯æè¡çãªå°éç¥èãšã¯ã©ãŠãç°å¢ãžã®ãã¯ãããžãŒã®ç§»è¡ã§ãã
Postgres ãªã©ã®ããŒã¿ããŒã¹ããããŸãã ç§ã¯ Postgres ã³ã¢ãæã奜ãã§ãã ç§ã¯ã³ãã¥ããã£ãšãšãã« Postgres ã³ã¢ã®éçºã«å€ãã®æéãè²»ãããŠããŸãã
ããããããã§Yandex.Cloudã«ã¯ç®¡çãããããŒã¿ããŒã¹ã®å éšã€ã³ã¹ããŒã«ããããšèšããªããã°ãªããŸããã ãããŠããã¯ãã£ãšåã« Yandex.Mail ã§å§ãŸããŸããã çŸåšãããŒãžã Postgres ã«ã€ãªãã£ãŠããå°éç¥èã¯ãã¡ãŒã«ã Postgres ã«ç§»è¡ããããšãããšãã«èç©ãããŸããã
ã¡ãŒã«ã«ã¯ã¯ã©ãŠããšéåžžã«ãã䌌ãèŠä»¶ããããŸãã ããŒã¿ã®ã©ã®æç¹ã§ãäºæãã¬ææ°é¢æ°çãªå¢å ã«å¯Ÿå¿ã§ããããã«ããå¿ èŠããããŸãã ãããŠãã¡ãŒã«ã«ã¯ãåžžã«å€ãã®ãªã¯ãšã¹ããè¡ãèšå€§ãªæ°ã®ãŠãŒã¶ãŒã®æ°åã®ã¡ãŒã«ããã¯ã¹ãå«ãŸããŠããããã§ã«è² è·ãããã£ãŠããŸããã
ãããŠããã㯠Postgres ãéçºããŠããããŒã ã«ãšã£ãŠéåžžã«æ·±å»ãªèª²é¡ã§ããã åœæãç§ãã¡ãééããåé¡ã¯ãã¹ãŠã³ãã¥ããã£ã«å ±åãããŸããã ãããŠããããã®åé¡ã¯ä¿®æ£ãããããã€ãã®å Žæã§ã¯ãä»ã®ããŒã¿ããŒã¹ã®æåãµããŒãã®ã¬ãã«ãããã«ã¯ãã以äžã®ã¬ãã«ã§ãã³ãã¥ããã£ã«ãã£ãŠä¿®æ£ãããŸããã ã€ãŸããPgSQL ããã«ãŒã«ã¬ã¿ãŒãéä¿¡ãããšã40 å以å ã«å¿çãåãåãããšãã§ããŸãã äžéšã®ããŒã¿ããŒã¹ã®ææãµããŒãã¯ããã°ãããåªå ãã¹ãäºé ããããšèããŠããå ŽåããããŸãã
çŸåšãPostgres ã®å éšã€ã³ã¹ããŒã«ã«ã¯æ°ãã¿ãã€ãã®ããŒã¿ããããŸãã ããã㯠XNUMX ç§ãããæ°çŸäžä»¶ã®ãªã¯ãšã¹ãã«çžåœããŸãã ãããã¯äœåãã®ã¯ã©ã¹ã¿ãŒã§ãã ãšãŠã倧èŠæš¡ãªãã®ã§ãã
ãããããã¥ã¢ã³ã¹ããããŸãã ããã¯æŽŸæãªãããã¯ãŒã¯ãã©ã€ãäžã§ã¯ãªããããªãåçŽãªããŒããŠã§ã¢äžã«ååšããŸãã ãããŠãèå³æ·±ãæ°ãããã®ã«ç¹åãããã¹ãç°å¢ããããŸãã
ãããŠããã¹ãç°å¢ã®ããæç¹ã§ãããŒã¿ããŒã¹ ã€ã³ããã¯ã¹ã®å éšäžå€æ¡ä»¶ãéåãããããšã瀺ãã¡ãã»ãŒãžãåãåããŸããã
äžå€åŒãšã¯ãåžžã«ä¿æããããšæåŸ ãããããçš®ã®é¢ä¿ã§ãã
ç§ãã¡ã«ãšã£ãŠéåžžã«å±æ©çãªç¶æ³ã§ãã ããã¯ãäžéšã®ããŒã¿ã倱ãããå¯èœæ§ãããããšã瀺ããŠããŸãã ãããŠãããŒã¿ã®æ倱ã¯ãŸãã«å£æ» çãªãã®ã§ãã
管çãããããŒã¿ããŒã¹ã§ç§ãã¡ãåŸãäžè¬çãªèãæ¹ã¯ãåªåããŠãããŒã¿ã倱ãã®ã¯é£ãããšããããšã§ãã ããšãæå³çã«åé€ãããšããŠããé·æéãã®äžåšãç¡èŠããå¿ èŠããããŸãã ããŒã¿ ã»ãã¥ãªãã£ã¯ãç§ãã¡ãéåžžã«ç±å¿ã«åŸãå®æã§ãã
ãããŠããã§ãç§ãã¡ãåããããŠããªãç¶æ³ãååšããå¯èœæ§ã瀺åããç¶æ³ãçããŸãã ãããŠç§ãã¡ã¯ãã®ç¶æ³ã«åãå§ããŸããã
ç§ãã¡ãæåã«è¡ã£ãã®ã¯ããããã®æ°åã®ã¯ã©ã¹ã¿ãŒããã®ãã°ãåããããšã§ããã ããŒã¿ ããŒãžã®æŽæ°ã倱ãããŠããŸãåé¡ã®ãããã¡ãŒã ãŠã§ã¢ãæèŒããããã£ã¹ã¯äžã«ã¯ã©ã¹ã¿ãé 眮ãããŠããããšãããããŸããã ãã¹ãŠã® Postgres ããŒã¿ ã³ãŒããããŒã¯ã¢ããããŸããã ãããŠãå éšäžå€æ¡ä»¶ã®éåã瀺ãã¡ãã»ãŒãžããããŒã¿ç Žæãæ€åºããããã«èšèšãããã³ãŒãã§ããŒã¯ããŸããã
ãã®ãããã¯ãå®éã«ã¯ããŸãè°è«ãããããšãªãã³ãã¥ããã£ã«åãå ¥ããããŸããããªããªããããããã®ç¹å®ã®ã±ãŒã¹ã«ãããŠãäœãæªãããšãèµ·ãã£ãããšãæããã§ããããã°ã«å ±åããå¿ èŠããã£ãããã§ãã
ãã®åŸããã°ãã¹ãã£ã³ããç£èŠãè¡ãããã«ãªããŸããã ãããŠãäžå¯©ãªã¡ãã»ãŒãžããã£ãå Žåã«ã¯ãåœçŽæ åœè ãèµ·ãããåœçŽæ åœè ãã¡ãã»ãŒãžã修埩ããŸãã
ãããïŒ ãã°ã®ã¹ãã£ã³ã¯ãXNUMX ã€ã®ã¯ã©ã¹ã¿ãŒã§ã¯äœã³ã¹ãã®æäœã§ãããXNUMX åã®ã¯ã©ã¹ã¿ãŒã§ã¯å£æ» çãªã³ã¹ããããããŸãã
ãšããæ¡åŒµæ©èœãæžããŸãã
ãã®æ¡åŒµæ©èœã¯ãããšãã°ã次ã®ãªããžããªã§æ¡çšãããŠããŸãã
ããããããã ãã§ã¯ãããŸããã ç§ãã¡ã¯ãã€ã³ããã¯ã¹ã®äžå€éåãèŠã€ããããã«ãã³ãã¥ããã£ãæ§ç¯ããæ¡åŒµæ©èœã§ãã Amcheck ã®äœ¿çšãéå§ããŸããã
ãããŠãããã倧èŠæš¡ã«éçšãããšãã°ãååšããããšãåãããŸããã ç§ãã¡ã¯ããããä¿®æ£ãå§ããŸããã ç§ãã¡ã®ä¿®æ£ã¯åãå ¥ããããŸããã
ãã®æ¡åŒµæ©èœã§ã¯ GiST ããã³ GIT ã€ã³ããã¯ã¹ãåæã§ããªãããšãããããŸããã ç§ãã¡ã¯åœŒãããµããŒããããŸããã ãã ããããã¯æ¯èŒçæ°ããæ©èœã§ããã詳现ãããããããããããã®ãµããŒãã«ã€ããŠã¯ãŸã ã³ãã¥ããã£ã§è°è«ãããŠããŸãã
ãŸããã¬ããªã±ãŒã·ã§ã³ ãªãŒããŒããã¹ã¿ãŒã§ã¯ã€ã³ããã¯ã¹ã®éåããã§ãã¯ããå Žåããã¹ãŠæ£åžžã«æ©èœããŸãããã¬ããªã«ããã©ãã¯ãŒã§ã¯ç Žæã®æ€çŽ¢ãããã»ã©å¹æçã§ã¯ãªãããšãããããŸããã ãã¹ãŠã®äžå€æ¡ä»¶ããã§ãã¯ãããããã§ã¯ãããŸããã ãããŠãXNUMX ã€ã®äžå€æ¡ä»¶ãç§ãã¡ãéåžžã«æ©ãŸããŸããã ãããŠãã¬ããªã«ã§ã®ãã®ãã§ãã¯ãå¯èœã«ããããã«ãç§ãã¡ã¯ XNUMX 幎åããããŠã³ãã¥ããã£ãšã³ãã¥ãã±ãŒã·ã§ã³ãå³ããŸããã
ç§ãã¡ã¯ããã¹ãŠã®ãããã³ã«ã«åŸãå¿ èŠãããã³ãŒããäœæããŸããã ç§ãã¡ã¯ãã®ãããã«ã€ã㊠Crunchy Data ã® Peter Gaghan ãšããªãé·ãéè°è«ããŸããã ãã®ããããåãå ¥ããããã«ãPostgres ã®æ¢åã® B ããªãŒããããã«å€æŽããå¿ èŠããããŸããã 圌ã¯åãå ¥ããããŸããã ãããŠä»ã§ã¯ãã¬ããªã«ã®ã€ã³ããã¯ã¹ããã§ãã¯ããããšããééããéåãæ€åºããã®ã«ååãªå¹æãçºæ®ããããã«ãªããŸããã ã€ãŸãããããã¯ããã£ã¹ã¯ ãã¡ãŒã ãŠã§ã¢ã®ãšã©ãŒãPostgres ã®ãã°ãLinux ã«ãŒãã«ã®ãã°ãããã³ããŒããŠã§ã¢ã®åé¡ã«ãã£ãŠåŒãèµ·ããããå¯èœæ§ã®ããéåã§ãã ç§ãã¡ãæºåããŠããåé¡ã®åå ã®éåžžã«åºç¯ãªãªã¹ãã
ãã ããã€ã³ããã¯ã¹ã®ä»ã«ãããŒããã€ãŸãããŒã¿ãä¿åãããå Žæã®ãããªéšåããããŸãã ãããŠããã§ãã¯ã§ããäžå€æ¡ä»¶ã¯ããã»ã©å€ããããŸããã
Heapcheck ãšããæ¡åŒµæ©èœããããŸãã ç§ãã¡ã¯ãããéçºãå§ããŸããã ãããŠäžŠè¡ããŠãEnterpriseDB 瀟ãç§ãã¡ãšååããŠãåãããã« Heapcheck ãšåŒã°ããã¢ãžã¥ãŒã«ã®äœæãéå§ããŸããã ç§ãã¡ãããã PgHeapcheck ãšåŒãã ã ãã§ã圌ããåã« Heapcheck ãšåŒãã ã ãã§ãã 圌ãã¯åæ§ã®æ©èœããããã«ç°ãªãã·ã°ããã£ãåãããã®ãæã£ãŠããŸãããåãã¢ã€ãã¢ãæã£ãŠããŸãã ããã€ãã®å Žæã§ã¯ããå°ãæ¹è¯ããŠå®è£ ãããŸããã ãããŠåœŒãã¯ä»¥åã«ããããªãŒãã³ãœãŒã¹ã§å ¬éããŸããã
ãããŠä»ãç§ãã¡ã¯åœŒãã®æ¡å€§ãé²ããŠããŸããããã¯ãã¯ã圌ãã®æ¡å€§ã§ã¯ãªããã³ãã¥ããã£ã®æ¡å€§ã ããã§ãã ãããŠå°æ¥çã«ã¯ãããã¯ãã¹ãŠã®äººã«æäŸãããã«ãŒãã«ã®äžéšãšãªããå°æ¥ã®åé¡ãäºåã«ç¥ãããšãã§ããããã«ãªããŸãã
å Žæã«ãã£ãŠã¯ãç£èŠã·ã¹ãã ã«èª€æ€ç¥ããããšããçµè«ã«éããããšãããããŸãã ããšãã°ã1C ã·ã¹ãã ã ããŒã¿ããŒã¹ã䜿çšããå ŽåãPostgres ã¯èªã¿åãå¯èœãªããŒã¿ãããŒã¿ããŒã¹ã«æžã蟌ãããšããããŸãããpg_dump ã¯èªã¿åãããšãã§ããŸããã
ãã®ç¶æ³ã¯ãåé¡æ€åºã·ã¹ãã ã«ãšã£ãŠç Žæã®ããã«èŠããŸããã åœçŽã®èŠå®ã¯ç®ãèŠããã åœçŽã®èŠå¯å®ã¯äœãèµ·ãã£ãŠããã®ããèŠãŸããã ãã°ããããŠãã¯ã©ã€ã¢ã³ããæ¥ãŠãç§ã«åé¡ããããšèšããŸããã ä¿å¡ã¯äœãåé¡ãªã®ã説æããŠãããŸããã ããããåé¡ã¯ Postgres ã³ã¢ã«ãããŸãã
ãã®æ©èœã«é¢ãããã£ã¹ã«ãã·ã§ã³ãèŠã€ããŸããã ãããŠåœŒã¯ãç§ãã¡ã¯ãã®æ©èœã«ééããŸããããããã¯äžå¿«ã§ããã人ã¯ãããäœã§ããããç解ããããã«å€ã«ç®ãèŠãããšæžããŸããã
ã³ãã¥ããã£ã¯ããããæ¬åœã«ä¿®æ£ããå¿ èŠãããããšçããŸããã
ç°¡åãªäŸãããããŸãã ç ç²ãå ¥ã£ãéŽãå±¥ããŠæ©ããŠããå Žåã¯ãååãšããŠãå ã«é²ãã§ãåé¡ãããŸããã äœå人ãã®äººã«ããŒãã売ããªããç ãäžå䜿ããã«ããŒããäœããŸãããã ãããŠãããªãã®ã·ã¥ãŒãºã®ãŠãŒã¶ãŒã® XNUMX 人ããã©ãœã³ãèµ°ãäºå®ã§ããã°ãéåžžã«åªããã·ã¥ãŒãºãäœããããããã¹ãŠã®ãŠãŒã¶ãŒã«æäŸããããšèããŸãã ãããŠããã®ãããªäºæãã¬ãŠãŒã¶ãŒã¯åžžã«ã¯ã©ãŠãç°å¢ã«ååšããŸãã ç¬èªã®æ¹æ³ã§ã¯ã©ã¹ã¿ãŒãæªçšãããŠãŒã¶ãŒãåžžã«ååšããŸãã åžžã«ããã«åããªããã°ãªããŸããã
ããã§ç§ãã¡ã¯äœãåŠãã ã®ã§ããããïŒ ç§ãã¡ã¯åçŽãªããšãåŠã³ãŸãããæãéèŠãªããšã¯ãåé¡ãããããšãã³ãã¥ããã£ã«èª¬æããããšã§ãã ã³ãã¥ããã£ãåé¡ãèªèããŠããã°ãåé¡ã解決ããããã«èªç¶ãªç«¶äºãèµ·ãããŸãã 誰ããéèŠãªåé¡ã解決ããããšèããŠããããã§ãã ãã¹ãŠã®ãã³ããŒããã¹ãŠã®ããã«ãŒã¯ãèªåãã¡ããã®çæãèžãå¯èœæ§ãããããšãç解ããŠãããããããããæé€ããããšèããŠããŸãã
ããªããåé¡ã«åãçµãã§ããŠããããããªã以å€ã®èª°ãæ°ã«ããŠããªããŠããäœç³»çã«åãçµãã§ãããæçµçã«ã¯åé¡ãšã¿ãªãããŠããå Žåãããªãã®ãã«ãªã¯ãšã¹ãã¯ééããªãåãå ¥ããããŸãã ããªãã®ãããã¯åãå ¥ããããããªãã®æ¹åããããã¯æ¹åã®èŠæ±ãããã³ãã¥ããã£ã«ãã£ãŠæ€èšãããŸãã çµå±ã®ãšãããç§ãã¡ã¯ããŒã¿ããŒã¹ããäºãã«ãšã£ãŠããè¯ããã®ã«ããã®ã§ãã
èå³æ·±ãããŒã¿ããŒã¹ã¯ Greenplum ã§ãã ããã¯ãç§ãããç¥ã£ãŠãã Postgres ã³ãŒãããŒã¹ã«åºã¥ããé«åºŠãªäžŠåããŒã¿ããŒã¹ã§ãã
Greenplum ã«ã¯ãæé©åãããããŒãã«ãè¿œå ãããšããèå³æ·±ãæ©èœããããŸãã ãããã®ããŒãã«ã¯ããã«è¿œå ã§ããŸãã åç¶ãŸãã¯è¡ç¶ã®ããããã«ããããšãã§ããŸãã
ããããã¯ã©ã¹ã¿ãªã³ã°ã¯ãããŸããã§ãããã€ãŸããã€ã³ããã¯ã¹ã® XNUMX ã€ã«ããé åºã«åŸã£ãŠããŒãã«å ã®ããŒã¿ãé 眮ããæ©èœã¯ãããŸããã§ããã
ã¿ã¯ã·ãŒã®ç·ãã¡ãç§ã®ãšããã«æ¥ãŠããèšããŸããããã¢ã³ãã¬ã€ãããªã㯠Postgres ãç¥ã£ãŠããŸããã ãããŠããã§ãã»ãŒåãã§ãã 20åã«åãæ¿ããŸãã ããªãã¯ãããåãåã£ãŠããããå®è¡ããŠãã ãããã ç§ã¯ãããã ãPostgres ãç¥ã£ãŠããã20 åéåãæ¿ããããããè¡ãå¿ èŠãããããšæããŸããã
ã§ããããã20åã§ã¯ãªããäœãæããããŠæžããŸããã PgConf.Russia ã«ã³ãã¡ã¬ã³ã¹ã§ãç§ã¯ Pivotal ã® Heikki Linakangas æ°ã«ããå°ããŸããã è¿œå ã«æé©åãããããŒãã« ã¯ã©ã¹ã¿ãªã³ã°ããªãã®ã¯ãªãã§ãã?ã 圌ã¯ããèšããŸãããããªãã¯ããŒã¿ãåãåããŸãã 䞊ã¹æ¿ãããã䞊ã¹æ¿ãããããŸãã ããã¯ãã ã®ä»äºã ããã ç§ïŒããããããã ãããããåãå ¥ããŠããã°ãããã ãã 圌ã¯ããèšããŸãããã¯ãããããè¡ãã«ã¯èªç±ãªæãå¿ èŠã§ããã ããã¯çµ¶å¯Ÿã«ãããªããã°ãããªããšæããŸããã
ãããŠæ°ãæåŸãç§ã¯ãã®æ©èœãå®è£ ãããã«ãªã¯ãšã¹ããéä¿¡ããŸããã ãã®ãã« ãªã¯ãšã¹ãã¯ãPivoââtal ã«ãã£ãŠã³ãã¥ããã£ãšãšãã«ã¬ãã¥ãŒãããŸããã ãã¡ããããã°ããããŸããã
ããããæãèå³æ·±ãã®ã¯ããã®ãã« ãªã¯ãšã¹ããããŒãžããããšãã«ãGreenplum èªäœã«ãã°ãèŠã€ãã£ãããšã§ãã ããŒã ããŒãã«ã¯ã¯ã©ã¹ã¿åãããšãã©ã³ã¶ã¯ã·ã§ã³æ§ãæãªãããšãããããšãããããŸããã ãããŠãããã¯ä¿®æ£ããå¿ èŠãããããšã§ãã ãããŠåœŒå¥³ã¯ç§ãä»è§Šããå Žæã«ããŸãã ãããŠç§ã®èªç¶ãªåå¿ã¯ããåãã£ããç§ãããããŠãã ããããšãããã®ã§ããã
ãã®ãã°ãä¿®æ£ããŸããã ä¿®æ£è ã«ãã«ãªã¯ãšã¹ããéä¿¡ããŸããã 圌ã¯æ®ºãããã
ãã®åŸããã®æ©èœã¯ PostgreSQL 12 çšã® Greenplum ããŒãžã§ã³ã§ååŸããå¿ èŠãããããšãå€æããŸãããã€ãŸãã20 åéã®åéºã¯æ°ããèå³æ·±ãåéºã§ç¶ããŸãã ã³ãã¥ããã£ãæ°ããæãéèŠãªæ©èœãã«ããããŠããçŸåšã®éçºã«è§Šããããšã¯èå³æ·±ããã®ã§ããã åã£ãŠãŸãã
ããããããã§çµããã§ã¯ãããŸããã§ããã çµå±ãããããã¹ãŠã«ã€ããŠããã¥ã¡ã³ããäœæããå¿ èŠãããããšãå€æããŸããã
ããã¥ã¡ã³ããæžãå§ããŸããã 幞éãªããšã«ãPivoââtal ã®ããã¥ã¡ã³ã¿ãªãŒå¶äœè ãã¡ãæ¥ãŠãããŸããã è±èªã¯åœŒãã®æ¯åœèªã§ãã 圌ãã¯æžé¡äœæãæäŒã£ãŠãããŸããã å®éãç§ãææ¡ããå 容ã圌ãèªèº«ãæ¬ç©ã®è±èªã«æžãçŽããŠãããŸããã
ãããŠããã§ãåéºã¯çµãã£ãããã§ãã ãããŠããã®æäœãèµ·ãã£ããç¥ã£ãŠããŸããïŒ ã¿ã¯ã·ãŒã®ç·ãã¡ãç§ã®ãšããã«æ¥ãŠãããŸã åéºã 10 ã€ãããŸãããããã XNUMX åã§ããããšèšããŸããã ãããŠã圌ãã«äœãäŒããã°ããã§ããããïŒ ããã¯èå³æ·±ãä»äºãªã®ã§ããããã倧èŠæš¡ãªã¬ããŒããæåºããŠãããããªãã®åéºãèŠãŠã¿ãŸãããããšèšããŸããã
ãã®äºäŸããäœãåŠãã ã§ãããã? ãªãŒãã³ãœãŒã¹ã§ã®äœæ¥ã¯åžžã«ç¹å®ã®äººç©ãšã®äœæ¥ã§ãããããåžžã«ã³ãã¥ããã£ãšã®äœæ¥ã«ãªããŸãã ãªããªãããããã段éã§ãç§ã¯éçºè ããã¹ã¿ãŒãããã«ãŒãããã¥ã¡ã³ã¿ãªãŒäœå®¶ãã¢ãŒããã¯ããšä»äºãããŠããããã§ãã ç§ã¯Greenplumãšäžç·ã«ä»äºãããã®ã§ã¯ãªããGreenplumã®åšãã®äººã ãšäžç·ã«ä»äºãããŸããã
ãããïŒ ããäžã€éèŠãªç¹ããããŸããããã¯åãªãä»äºã§ãã ã€ãŸããæ¥ãŠãã³ãŒããŒã飲ã¿ãªãããã³ãŒããæžããŸãã ããããçš®é¡ã®åçŽãªäžå€åŒãæ©èœããŸãã æ®éã«ããã°å€§äžå€«ã§ããïŒ ãããŠããã¯ãšãŠãèå³æ·±ãä»äºã§ãã Yandex.Cloud ã¯ã©ã€ã¢ã³ããã€ãŸã Yandex å å€ã®ã¯ã©ã¹ã¿ãŒã®ãŠãŒã¶ãŒããããã®äœæ¥ã«å¯Ÿãããªã¯ãšã¹ãããããŸãã ãããŠåå ãããããžã§ã¯ããå¢ããé¢ããã®æ·±ããå¢ããŠãããšæããŸãã
ããã ãã§ãã 質åã«ç§»ããŸãã
質çå¿ç
ããã«ã¡ã¯ïŒ å床質çå¿çãè¡ããŸãã ãããŠã¹ã¿ãžãªã§ã¯ã¢ã³ãã¬ã€ã»ãããã£ã³ã ããã¯ãYandex.Cloud ãš Yandex ã®ãªãŒãã³ãœãŒã¹ãžã®è²¢ç®ã«ã€ããŠå ã»ã©è©±ãã人ç©ã§ãã ç§ãã¡ã®ä»åã®ã¬ããŒãã¯å®å šã«ã¯ã©ãŠãã«é¢ãããã®ã§ã¯ãããŸããããåæã«ãã®ãããªãã¯ãããžãŒã«åºã¥ããŠããŸãã Yandex å ã§ã®åãçµã¿ããªããã°ãYandex.Cloud ã®ãµãŒãã¹ã¯ååšããŸããã§ãããç§ããå人çã«æè¬ããããŸãã ãããŠæŸéã®æåã®è³ªåã¯ãããªããèšåããããããã®ãããžã§ã¯ãã«ã¯äœã«ã€ããŠæžãããŠããŸãã?ã
WAL-G ã®ããã¯ã¢ãã ã·ã¹ãã 㯠Go ã§æžãããŠããŸãã ããã¯ç§ãã¡ãåãçµãã§ããæ°ãããããžã§ã¯ãã® 3 ã€ã§ãã 圌ã¯æåéãããã30æ³ã§ãã ãããŠãããŒã¿ããŒã¹ã¯å€ãã®å Žåãä¿¡é Œæ§ãéèŠããŸãã ããã¯ãããŒã¿ããŒã¹ãããªãå€ããé垞㯠C ã§æžãããŠããããšãæå³ããŸããPostgres ãããžã§ã¯ãã¯çŽ 89 幎åã«å§ãŸããŸããã ãããªãã°ãCXNUMXã¯æ£ããéžæã§ããã ãããŠPostgresãæžãããŠããŸãã ClickHouse ãªã©ã®ææ°ã®ããŒã¿ããŒã¹ã¯ãéåžž C++ ã§æžãããŠããŸãã ãã¹ãŠã®ã·ã¹ãã éçºã¯ C ããã³ C++ ã«åºã¥ããŠããŸãã
ã¯ã©ãŠãã®çµè²»ãæ åœãã財åãããŒãžã£ãŒããã®è³ªå: ããªãã¯ã©ãŠãã¯ãªãŒãã³ãœãŒã¹ã®ãµããŒãã«ãéã䜿ãã®ã§ãã?ã
財åãããŒãžã£ãŒã«ãšã£ãŠã®ç°¡åãªçããããã«ãããŸãã ããã¯ãµãŒãã¹ãåäžãããããã«è¡ãããŸãã ã©ã®ãããªæ¹æ³ã§æ¹åã§ããã§ãããã? ç©äºãããå¹ççãã€è¿ éã«å®è¡ããããã¹ã±ãŒã©ãã«ã«ããããšãã§ããŸãã ããããç§ãã¡ã«ãšã£ãŠããã®è©±ã¯äž»ã«ä¿¡é Œæ§ã«é¢ãããã®ã§ãã ããšãã°ãããã¯ã¢ãã ã·ã¹ãã ã§ã¯ãé©çšããããããã 100% ã¬ãã¥ãŒããŸãã ç§ãã¡ã¯ã³ãŒããäœã§ããããç¥ã£ãŠããŸãã ãããŠãæ°ããããŒãžã§ã³ãå®çšŒåç°å¢ã«ããŒã«ã¢ãŠãããããšã«ããã«æ £ããŠããŸããã ã€ãŸãããŸã第äžã«ãèªä¿¡ãéçºã®æºåããããŠä¿¡é Œæ§ã«ã€ããŠã§ãã
ãã XNUMX ã€ã®è³ªå: ãYandex.Cloud ã«äœãå€éšãŠãŒã¶ãŒã®èŠä»¶ã¯ãå éšã¯ã©ãŠãã«äœãå éšãŠãŒã¶ãŒãšç°ãªããŸãã?ã
ãã¡ãããè² è·ãããã¡ã€ã«ã¯ç°ãªããŸãã ããããç§ã®éšéã®èŠ³ç¹ããèŠããšãç¹æ®ã§èå³æ·±ãã±ãŒã¹ã¯ãã¹ãŠéæšæºã®è² è·ã§äœæãããŠããŸãã æ³ååã®ããéçºè ãäºæãã¬ããšãè¡ãéçºè ã¯ã瀟å ã§ã瀟å€ã§ãåæ§ã«èŠã€ãããŸãã ãã®ç¹ã«é¢ããŠã¯ãç§ãã¡ã¯çã»ãŒåãã§ãã ãããŠãããããYandex ã®ããŒã¿ããŒã¹æäœã«ãããå¯äžã®éèŠãªæ©èœã¯ãYandex å ã«æãããããšããããšã§ãã ããæç¹ã§ãäžéšã®ã¢ãã€ã©ããªã㣠ãŸãŒã³ãå®å šã«ã·ã£ããŠç¶æ ã«ãªããããã«ããããããããã¹ãŠã® Yandex ãµãŒãã¹ãäœããã®åœ¢ã§æ©èœãç¶ããªããã°ãªããŸããã ããã¯å°ããªéãã§ãã ããããããŒã¿ããŒã¹ãšãããã¯ãŒã¯ ã¹ã¿ãã¯ã®ã€ã³ã¿ãŒãã§ã€ã¹ã§å€ãã®ç 究éçºãè¡ãããŸãã ãã以å€ã®å Žåãå€éšããã³å éšã®ã€ã³ã¹ããŒã«ã§ã¯ãæ©èœã«å¯ŸããåãèŠæ±ãšãä¿¡é Œæ§ãšããã©ãŒãã³ã¹ãåäžãããããã®åæ§ã®èŠæ±ãçæãããŸãã
次ã®è³ªå: ãèªåã®è¡åã®å€ããä»ã®ã¯ã©ãŠãã«ãã£ãŠäœ¿çšãããŠãããšããäºå®ã«ã€ããŠãå人çã«ã¯ã©ãæããŸãã?ã å ·äœçãªååã¯æããŸããããYandex.Cloud ã§è¡ãããå€ãã®ãããžã§ã¯ãã¯ä»ã®äººã®ã¯ã©ãŠãã§ã䜿çšãããŠããŸãã
ããã¯ã«ãã³ããã ãŸããããã¯ç§ãã¡ãäœãæ£ããããšããããšãããããã§ãã ãããŠããã¯ãšãŽãå·ã€ããŸãã ãããŠãç§ãã¡ã¯æ£ãã決æããããšç¢ºä¿¡ããŠããŸãã äžæ¹ã§ãããã¯å°æ¥ããµãŒãããŒãã£ã®ãŠãŒã¶ãŒããæ°ããã¢ã€ãã¢ãæ°ããèŠæ±ãããããããããšãæåŸ ããŠããŸãã GitHub äžã®ã»ãšãã©ã®åé¡ã¯ãåã ã®ã·ã¹ãã 管çè ãåã ã® DBAãåã ã®ã¢ãŒããã¯ããåã ã®ãšã³ãžãã¢ã«ãã£ãŠäœæãããŸãããäœç³»çãªçµéšãæã€äººãæ¥ãŠãç¹å®ã®ã±ãŒã¹ã® 30% ã§ãã®åé¡ãçºçããŠããã®ã§ãããã解決ããæ¹æ³ãèããŸããããšèšãããšããããŸãã ãããç§ãã¡ãæã楜ãã¿ã«ããŠããããšã§ãã ä»ã®ã¯ã©ãŠã ãã©ãããã©ãŒã ãšãšã¯ã¹ããªãšã³ã¹ãå ±æã§ããããšã楜ãã¿ã«ããŠããŸãã
ãã©ãœã³ã«ã€ããŠãããã話ããŸããã ããªããã¢ã¹ã¯ã¯ã§ãã©ãœã³ãèµ°ã£ããšããããšã¯ç¥ã£ãŠããŸãã çµæãšããŠïŒ PostgreSQLã®äººãã¡ãè¿œãæããïŒ
ãããããªã¬ã°ã»ãã«ãã¥ããã¯ãšãŠãéãèµ°ããŸãã 圌ã¯ç§ããXNUMXæéæ©ãçµãã£ãã å šäœãšããŠããããŸã§å°éã§ããããšã«æºè¶³ããŠããŸãã ç§ã«ãšã£ãŠã¯ãå®èµ°ããã ãã§ãéææããããŸããã å šäœçã«èŠãŠãpostgres ã³ãã¥ããã£ã«éåžžã«å€ãã®ã©ã³ããŒãååšããããšã¯é©ãã¹ãããšã§ãã æé žçŽ ã¹ããŒããšã·ã¹ãã ããã°ã©ãã³ã°ãžã®æ¬²æ±ã®éã«ã¯äœããã®é¢ä¿ãããããã«æããŸãã
ClickHouse ã«ã¯ã©ã³ããŒãããªããšããããšã§ãã?
圌ããããã«ããã®ã¯ç¢ºãã§ãã ClickHouse ã¯ããŒã¿ããŒã¹ã§ããããŸãã ãšããã§ããªã¬ã°ã¯ä»ç§ã«ãã¬ããŒãã®åŸã§ã©ã³ãã³ã°ã«è¡ããŸããããïŒããšæçŽãæžããŠããŸãã ããã¯çŽ æŽãããã¢ã€ãã¢ã§ãã
ãããŒã¿ããã®æŸéã§ã®å¥ã®è³ªå: ããªãã°ãªãŒã³ãã©ã ã®ãã°ãèªåã§ä¿®æ£ããåŸèŒ©ã«æž¡ããªãã£ãã®ã§ãã?ã 確ãã«ãã©ã®ãµãŒãã¹ã®ãã°ãªã®ãã¯ããŸãæ確ã§ã¯ãããŸããããããããããªãã話ãããã°ã®ããšãæå³ããŠãããšæãããŸãã
ã¯ããååãšããŠãããã¯èª°ãã«äžããããå¯èœæ§ããããŸãã å€æŽããã®ã¯ã³ãŒãã ãã§ãã ãããŠãããããã«ç¶ããã®ã¯èªç¶ãªããšã ã£ãã åºæ¬çã«ãããŒã ã§å°éç¥èãå ±æãããšããèãã¯è¯ãèãã§ãã Greenplum ã®ã¿ã¹ã¯ãéšéã®ã¡ã³ããŒå šå¡ã§ç¢ºå®ã«å ±æããŸãã
ãžã¥ãã¢ã®è©±ãªã®ã§ãããã§è³ªåã§ãã ãã®äººã¯ãPostgres ã§æåã®ã³ããããäœæããããšã«ããŸããã æåã®ã³ããããè¡ãã«ã¯äœãããå¿ èŠããããŸãã?
ããã¯èå³æ·±ã質åã§ãããã©ãããå§ããã°ããã§ãã?ã éåžžãã«ãŒãã«å ã§äœããå§ããã®ã¯éåžžã«å°é£ã§ãã ããšãã°ãPostgres ã«ã¯ To Do ãªã¹ãããããŸãã ãããå®éã«ã¯ãããã¯åœŒããããããšãããæåããªãã£ãããšãèšé²ãããã®ã§ãã ãããã¯è€éãªããšã§ãã ãããŠéåžžããšã³ã·ã¹ãã å ã«ã¯ãã«ãŒãã«éçºè ããããŸã泚ç®ãããŠããªããæ¹åå¯èœãªããã€ãã®ãŠãŒãã£ãªãã£ãæ¡åŒµæ©èœãèŠã€ãããŸãã ãããŠãããã«å¿ããŠãããã«ã¯ããã«æé·ããããã®ãã€ã³ãããããŸãã Google Summer of Code ããã°ã©ã ã§ã¯ãpostgres ã³ãã¥ããã£ãæ¯å¹Žãåãäžããããå¯èœæ§ã®ããããŸããŸãªãããã¯ãææ¡ããŸãã ä»å¹Žã®çåŸããã¯ç¢ºãXNUMXåã§ããã Yandex ã«ãšã£ãŠéèŠãªãããã¯ã«ã€ã㊠WAL-G ã§æžãã人ãããŸãã Greenplum ã§ã¯ãPostgres ã³ãã¥ããã£ããããã¹ãŠãç°¡åã§ããGreenplum ããã«ãŒã¯ãã« ãªã¯ãšã¹ããéåžžã«ããŸãæ±ããããã«ã¬ãã¥ãŒãéå§ããããã§ãã Postgres ã«ããããéä¿¡ããã«ã¯æ°ãæããããŸãããGreenplum 㯠XNUMX æ¥ä»¥å ã«æ¥ãŠãããªãã®ææã確èªããŸãã ãã XNUMX ã€ã¯ãGreenplum ãçŸåšã®åé¡ã解決ããå¿ èŠããããšããããšã§ãã Greenplum ã¯åºã䜿çšãããŠããªããããåé¡ãèŠã€ããã®ã¯éåžžã«å°é£ã§ãã ãããŠãã¡ããããŸãã¯åé¡ã解決ããå¿ èŠããããŸãã
åºæïŒ habr.com