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の欧州ユーザコミュニティ…
今回のエントリは、ここ1年ほど取り組んでいた 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程度までは能力を引き出す事ができていた。 デ…
昨年11月に、GPUメモリをSQLで読み書きするための新機能『gstore_fdw』というものを実装した。*1これは、PostgreSQLのFDW(Foreign Data Wrapper)の機能を利用して、SELECTが実行された時にはGPUメモリから読み出した内容をPostgreSQLの内部データ表現に…