PG-Strom

GPUとNVMEの能力をフルに引き出し、並列動作する数千コアの力でPostgreSQLを爆速化、テラバイトを超える大量データに挑むためのオープンソース拡張モジュール。

PG-Stromとは?

PG-Stromの概要

PG-Stromは最も広範に利用されているOSS-DBシステムの一つ、PostgreSQL向けの拡張モジュールで、数十TB、数百億件といった規模の大量データの検索、集計、加工といった処理を、GPUやNVME-SSDといった最新のハードウェアの能力を最大限に引き出して、シンプルなシングルノード構成のシステムで、高速に実行するためのソフトウェアです。

GPUの特徴

GPUには数千個のプロセッサコアが搭載され、並列計算を極めて効率よく実行するように設計されています。その一つが行列演算ですが、これは大量の均質なデータに対して同一の演算を同時に実行するという特性があります。SQLにも類似の処理はいくつかあり、例えば全件スキャンにおいてレコード毎にWHERE句の条件を評価するといったものがその典型例です。

PG-Stromの特徴

高速ストレージの性能を最大限に引き出すアーキテクチャ

GPUに対応したデータベースシステムとしては珍しく、大量データ処理では必須のストレージ読み出し速度を最大化するアーキテクチャを有しています。GPU-Direct SQL機構は、NVME-SSDとGPUを直結し、不要なステップを全て飛ばす事でハードウェアの限界に近い速度でSQLを処理するPG-Stromの中核機能です。

集計・検索のその前に… データのインポート自体を不要に

PostgreSQLテーブルのほかに、PG-StromはApache Arrow形式に対応しています。これは他のIoT/M2M系アプリケーションや、機械学習の分野で利用されるPythonでよく利用されるデータ形式で、外部の標準的なデータ形式の直接読み出しに対応する事で、集計・検索処理の前にデータをインポートするという、その作業自体を不要にします。

PostgreSQLでの経験・スキルが無駄になりません

PG-StromはPostgreSQLの内部で動作する拡張モジュールで、ユーザには透過的にSQL処理の一部をGPUで処理するよう実行計画を置き換えます。原理的に、SQLの構文やドライバには変更がなく、死活監視やバックアップなどDBとしての基本的な機能に関しては、PostgreSQLで慣れ親しんだ手法を用いる事ができます。つまり、エンジニアがこれまで経験したDB管理や開発のスキルが無駄にならないのです。

増え続けるIoT/M2Mログデータを、圧倒的処理得度で検索・集計

IoT/M2M領域では、様々なデバイスやセンサーが日々生成するログデータを収集し、それを様々な角度から検索・分析します。

時系列のデータはサイズが巨大になりがちで、ログデータに対する検索・集計クエリの応答速度だけでなく、これらのデータをデータベースにインポートするのに要する時間というのも、運用上、考慮を要する点です。

PG-StromはPostgreSQLテーブルの他に、Fluentdなどログ収集サービスが出力可能なApache Arrow形式ファイルの直接読み出しに対応しています。したがって、収集したデータを改めてDBシステムへインポートする事なく、即座に検索・集計処理を実行できます。

こうして収集されたログデータに対して検索クエリを実行する際、ローカルのNVME-SSDや、高速ネットワークを介して接続されたストレージサーバから、P2P RDMA技術を利用してGPUへ直接データをロードします。これにより、ハードウェアの能力をフルに引き出す事が可能となり、1台のサーバで、毎秒10億行(40GB/秒)相当のデータ処理能力を実測しています。

システム構成がシンプルになる事で運用の手間やトラブルが減り、また使い慣れたPostgreSQLが母体でエンジニアのスキル・経験を活かすことができるため、業務アプリケーションの品質向上にもつながります。

GPUが可能にするリアルタイムの位置情報分析

携帯電話や自動車など、GPSと連動した位置情報を時々刻々生成し続けるデバイスと、それを利用するアプリケーションは増加を続けています。

それに伴い、『地域を限定して広告を配信したい』『事故・渋滞情報を近くの車に配信したい』といった需要も増加していますが、通常は複雑なポリゴンの範囲として定義されているエリア情報と、緯度・経度で表現される位置情報との突合はしばしば重い処理になります。

PG-StromのGPU版PostGISは、こういったワークロードをGPUの持つ数千コアで効率的に動作させるほか、PostgreSQLで作成したGiST(R木)インデックスを使用した絞り込みをGPU側で実行できる唯一のGPUデータベースです。

これらの機能を使用することで、携帯電話や自動車などから収集したリアルタイムの位置情報を元に、位置情報を利用した分析や検索をシンプルな構成のシステムで、高速に実行することが可能となります。

パケットキャプチャと検索をオールインワンで実行

ネットワークトラフィックの増大と共に、セキュリティ事故が発生した際の調査や、監査証跡の保全・検索は困難さが増しています。

PG-Stromに同梱のツールPg2Arrowを利用する事で、ネットワークカードから直接、または取り込み済みのPCAPファイルを Apache Arrow 形式に変換する事が可能です。

Apache Arrow形式ファイルに変換すれば、アーカイブとして長期保存も可能である上に、わざわざデータをインポートすることなく、PG-Stromにマッピングして、各種のパケットの属性を元にしてSQLを用いた高度かつ柔軟な検索を行う事が可能です。

ビジネスインテリジェンス&レポーティング

ビジネスインテリジェンス(BI)やレポーティングで多用される集計系SQLワークロードは多数のCPU/GPUコアを使用する並列処理に向いており、ストレージには高いI/Oスループットが要求されます。 PG-Stromはこの種のワークロードに最適化されており、CPU/GPU/SSD全てのハードウェアリソースを駆使する事で高速な集計処理を実現します。

そのため、従来であれば高額なDWH専用機を導入したりクラスタ構成を組んでいたシステムを、シンプルなPostgreSQLベースの構成で代替する事が可能となり、システムの導入と運用に要する費用を削減する事が可能となります。

また、BIツールとのインターフェースは豊富な実績を有する PostgreSQL そのものであるため、エンジニアはこれまでの経験やスキルを活かすことができ、豊富な周辺ドライバやアプリケーションを利用してデータベースを運用する事ができます。

機械学習連携/アノマリー検知など

クレジットカードの不正使用や振り込め詐欺など、日々のトランザクションデータの中から犯罪性のある取引を見つけるには、“普段と違う”記録を、なるべく高い頻度で見つけだす必要があります。

PG-Stromを使えば、データベースに格納されたトランザクションデータに対して、直接、統計解析アルゴリズムに基づいた検査を実行する事ができます。これらのロジックはGPUにより高速に計算する事が可能で、計算のたびにデータをエクスポートする必要もありません。

より高度な機械学習ロジックとの連携を行う場合でも、PostgreSQLのpl/Python機能を介して、Python言語で実装された機械学習ライブラリを In-database で利用する事が可能です。

製品構成・仕様

ハードウェア構成例/all-in-one entry model

4台の内蔵NVME-SSDにより10TB~20TB程度までのデータ量に対応し、NVIDIA A100の処理性能とPCIE 4.0の帯域をフルに利用した大量データ処理を実現します。必要な要素を2Uの筐体に全て詰め込んだ、オールインワンのエントリーモデルです。

model: Supermicro AS-2014CR-TR
CPU: AMD EPYC 7443P (24C; 2.85GHz) x1
RAM: 128GB (16GB DDR4-3200; ECC) x8
GPU: NVIDIA A100 (PCI-E; 40GB) x1
SSD: Intel D7-5510 (U.2; 3.84TB or 7.68TB) x4
OS: Red Hat Enterprise Linux 8.3, or later
Ubuntu Linux 20.04, or later

ハードウェア構成例/scalable enterprise model

スケーラブルなNVME-oF (NVME over Fabric) や SDS (Software Defined Storage) ストレージと、複数台搭載可能なGPUを100Gb高速ネットワークで直結し、日々増え続けるIoT/M2Mログデータにも対応が可能なハイエンド構成です。

※ 別途ストレージサーバが必要です

model: Supermicro AS -4124GS-TNR
CPU: AMD EPYC 7443 (24C; 2.85GHz) x2
RAM: 256GB (16GB DDR4-3200; ECC) x16
GPU: NVIDIA A100 (PCI-E 4.0; 40GB) x4
NIC: Mellanox ConnectX-5 (100GbE; dual; PCIE 4.0) x4
OS: Red Hat Enterprise Linux 8.3, or later
Ubuntu Linux 20.04, or later

サブスクリプション製品

PG-Strom Enterprise Subscription (1GPU, 1年)

  • サブスクリプションはPG-Stromが利用するGPUデバイスの数だけ必要です

    • 注意:システムに搭載されたGPUの数ではありません。

  • サブスクリプションには以下のものが含まれます

    • 有償モジュールに対するライセンスキー

    • 対象システムに対する技術サポートの提供

    • ソフトウェアアップデートの提供

  • 有償モジュールを追加する事で、以下の機能を利用できるようになります。

    • マルチGPUデバイスの利用

    • GPU-Direct SQLにおける md-raid0 (ストライピング) の利用

    • GPU版PostGISにおけるGiST-Indexを利用したGpuJoin

    • HyperLogLogによるカーディナリティ推定

  • 価格はオープンプライスです。ページ末尾のフォームよりお問合せください。