並行クエリフレームワーク

並行クエリフレームワーク

nine は、並行にクエリ呼び出しを行うフレームワークが提供されている。

フレームワークに主要なクラスは 6つあり、抽象ベースクラスが 3つで、残り 3つが具象クラスである。

Resource
スレッドが占有する何がしかの資源を表す抽象ベースクラス。
ResourceWork
Resource に対して処理を行うワーククラス。並行に実行される。
Parallelizer
Resource と ResourceWork, そしてスレッドを管理し、並行実行を制御するクラス。
汎用的な Resource/ResourceWork/ResourceWorkManager が定義され、 一つの接続を扱う具体的な実装として、SingleConnectionResource/SingleConnectionWork/SingleConnectionWorkManager を提供している。

nine は、データベース操作を行う専用の API を提供している。

具体的には以下のような機能を提供している:

同期的なDB操作
DB への接続、クエリの実行と結果取得、プリペアード文、トランザクション、文字列エスケープといった、DB の基本的な操作を提供している。
現在のところは PostgreSQL のみであるが、他のデータベースでも同一の API を提供する予定である。
ワーカーモデルによる並列処理
複数の DB接続を並行に実行するフレームワークを実装している。
ユーザーは DB操作のまとまりを関数として定義するだけで、並列に処理することできる。