2018-01-01ãã1å¹´éã®è¨äºä¸è¦§
PostgreSQL Advent Calendar 2018ã®6æ¥ç®ã§ããPG-Stromã¯ã¢ããªãã£ã¯ã¹åãã«PL/CUDAã¨ããã¦ã¼ã¶å®ç¾©SQLé¢æ°ãå®è£ ããæ©è½ãæã£ã¦ãããSQLå¦çã®ä¸ã§è¨ç®ããã¼ãªé¨åãCUDA Cã§è¨è¿°ããGPUããã°ã©ã ã§å®è¡ãããã¨ããäºãã§ããã SQLé¢æ°ã¨ãã¦PL/â¦
10/23ï½26ã«ããã¦ããã«ãã¬ã«ã»ãªã¹ãã³ã§éå¬ãããPGconf.EU2018ã¸åå ãã¦ãã¾ããã ãªã¹ãã³ã¸ã¯ãã¤ãé§å¨ä¸ã®2013å¹´ã«ä¸åº¦æ è¡ã§è¨ªããäºããããå人çã«ãæãããã5å¹´ã¶ãã®è¨ªåã¨ãªãã¾ããPGconf.EUã¨ã¯ãPostgreSQLã®æ¬§å·ã¦ã¼ã¶ã³ãã¥ããã£â¦
ä»åã®ã¨ã³ããªã¯ãããï¼å¹´ã»ã©åãçµãã§ãã PG-Strom ã«ãã大éãã¼ã¿ã®ã¹ãã£ã³ã»éè¨å¦çæ§è½æ¹åã®åãçµã¿ããå½é¢ã®ç®æ¨ã§ãã£ãã·ã³ã°ã«ãã¼ã10GB/sãéæããã¨ããå®çµç·¨ã§ããï¼é·ãã£ãï¼ è¦ç´ æè¡ï¼SSD-to-GPUãã¤ã¬ã¯ãSQL å ããPG-Stromâ¦
ä¸éã®æ©æ¢°å¦ç¿å±ããã¯ãæ©æ¢°å¦ç¿ã»çµ±è¨è§£æã®ã©ã¤ãã©ãªã«ãã¼ã¿ãé£ãããæã«ãã©ããã£ã¦ãã¼ã¿ãå ¥åãã¦ããã®ã ãããï¼ è©±ãèãã«ããã¼ã¿ãä¸åº¦CSVå½¢å¼ã«è½ã¨ãè¾¼ãã§ããããPythonã¹ã¯ãªããã§èªã¿è¾¼ãã¨ãããã¿ã¼ã³ãå¤ãããã§ã¯ããããã â¦
PG-Stromã«BRINã¤ã³ããã¯ã¹å¯¾å¿æ©è½ãå®è£ ãã¦ã¿ããã¾ãã¯ã以ä¸ã®EXPLAIN ANALYZEã®å®è¡çµæãã覧ããã ãããã æ¡ä»¶å¥ã§åç §ãã¦ããymdåã¯æ¥ä»åï¼dateï¼ã§ããã¼ãã«ã«ãã¼ã¿ãæ¿å ¥ããéã«ã¯æå³çã«æ¥ä»é ã«INSERTãè¡ã£ã¦ããã postgres=# EXPLâ¦
PostgreSQL v10以éã§ã¯ãã¼ãã«ãã¼ãã£ã·ã§ãã³ã°ã®æ©è½ãå ¥ã£ã¦ãããå¤ã®ç¯å²ãã¾ãã¯å¤ã®ãªã¹ãã«ãã£ã¦ãã¼ãã«ãããã¤ãã®ãã¼ãã£ã·ã§ã³ã«åå²ããäºãå¯è½ã¨ãªã£ã¦ãããé ã¾ããªãããPG-Stromã«ãã¼ãã£ã·ã§ã³ãæèããå®è¡è¨ç»ãä½æããããâ¦
ã¡ãã£ã¨åï¼2017å¹´10æï¼ã«ä»¥ä¸ã®ãããªè¨äºãæ¸ããã kaigai.hatenablog.comãã®æç¹ã§ã¯ãSeqRead 2.2GB/s ã® Intel SSD 750(400GB) ã3ææãã¦ãçè«å¸¯å6.6GB/sã«å¯¾ãã¦ã¯ã¨ãªå¦çã®ã¹ã«ã¼ããã6.2GB/sç¨åº¦ã¾ã§ã¯è½åãå¼ãåºãäºãã§ãã¦ããã ãâ¦
æ¨å¹´ï¼ï¼æã«ãGPUã¡ã¢ãªãSQLã§èªã¿æ¸ãããããã®æ°æ©è½ãgstore_fdwãã¨ãããã®ãå®è£ ããã*1ããã¯ãPostgreSQLã®FDWï¼Foreign Data Wrapperï¼ã®æ©è½ãå©ç¨ãã¦ãSELECTãå®è¡ãããæã«ã¯GPUã¡ã¢ãªããèªã¿åºããå 容ãPostgreSQLã®å é¨ãã¼ã¿è¡¨ç¾ã«â¦