TECH BLOG
技術ブログ

ARTICLE

  • 2020-06-02 Swarm64 DA

    PostgreSQL高速化モジュール Swarm64 DA-導入編②-

PostgreSQLの高速化モジュール、Swarm64 DAは汎用性を持たせるためにDockerコンテナ内で動作する仕様になってます。そのため通常のPostgreSQLとは導入方法やOSの内部構造が変わってきます。その中でも特にSwarm64 DAの内部構造を理解することが重要です。

はじめに

みなさんこんにちは、インサイトの梅宮です。
前回の導入編①ではSwarm64 DAがPostgreSQLの高速化を実現するメカニズムについてご紹介しました。
そこで今回は、前回よりもさらに濃度を深め、Swarm64DAのOS上での構成や内部動作について詳しくご紹介したいと思います。

Swarm64 DAとDockerについて

まず始めに、繰り返しになりますがSwarm64 DAはFPGAを利用したPostgreSQLの高速化モジュールです。
つまり、Swarm64 DAはFPGAカードをPostgreSQLで使うためのモジュールとも捉えることができます。
またSwarm64 DAは汎用性を持たせるためにdockerコンテナ内で動作する様に作られています。

Dockerって?

『Docker』という言葉を初めて聞いた人や、聞いたことはあるが詳しくは知らないという方にここで軽く触れておきます。
Dockerはコンテナ仮想化を用いて、アプリケーションを開発・実行できるプラットフォームです。この機能によりDocker内の環境とDockerを配置している動作OS上の環境とを隔離することができます。
つまり、今回のSwarm64 DAに関して言及するとDockerを使用することでOS環境に依存せずに動作させることが出来るのです。

Swarm64 DA導入時の内部相関図

Swarm64 DAの動作やDockerについての簡単な紹介も済んだところでSwarm64 DAが実際にどのような構成で動作するのかを紹介します

Swarm64 DA導入時の内部相関図

図の中の数字はPostgreSQL高速化が行われるまでのフローを示しています。
①Docker内のPostgreSQLからOS上のPGDATAにアクセスする。
②PGDATA内にあるSwarm64 DA外部テーブルのデータを参照する。
③DDLにて指定している情報(range_indexなど)に基づいてテーブルの圧縮と解凍を行う。
④クエリを実行し、処理をFPGAに流す(FPGAで処理できなかったものに関してはCPUでの処理が行われる)。
※Card Driver:FPGAを認識するためのパッケージ

終わりに

以上が、Swarm64 DAによるPostgreSQLの高速化実行時の内部動作の説明です。始めにもお伝えしたようにSwarm64 DAの導入は通常のPostgreSQLの導入とは異なる点が多々あります。
実際に自身で環境を構築する機会がなければこの部分に関して深く理解する必要はないかもしれません。
しかしSwarm64 DAがFPGA処理を可能にし、OS環境に依存せずに導入することの出来るモジュールであることを理解していただければと思います。
今後もSwarm64 DAの導入に関する情報や検証結果などを中心ご紹介していきます。
本日は、どうもありがとうございました。

お問い合わせフォーム

https://www.insight-ltd.co.jp/contact/

今までの記事

PostgreSQLを高速化! Swarm64 DA-導入編①-
PostgreSQLを高速化! Swarm64 DA-入門編-
PostgreSQLを高速化! Swarm64 DA-検証編①-

参考記事

https://knowledge.sakura.ad.jp/13265/

CATEGORY

ARCHIVE

データベースの
パフォーマンス・チューニングのご相談は
株式会社インサイトまで
お気軽にお問い合わせください。

CONTACT