Transactd Pluginは、MySQLのデータベースにNoSQLによる高速かつ高機能なAPIを提供します。高速にデータベースにアクセスしつつ、トランザクションを使用することができます。
一般的にNoSQLにはトランザクションが使えないなどの制限がありますが、TransactdはSQLと同じようにトランザクション処理を行うことができます。更新の一貫性を必要とするクリティカルな処理も容易に行うことが可能です。
また、Ver2.0より新しく提供されたactiveTableクラスにより、JoinやUnion、OrderBy・GroupByといった、SQLの読み取りクエリに相当する処理も高速に実行できるようになりました。これらのクエリーはクライアントで実行されるので、各テーブルは同じデータベースである必要がなく、テーブル単位でのサーバー分割も容易に行えます。
SQLでの操作は、サーバー内でSQL構文を解析して行単位でのアクセスメソッドに分解し、処理を行って結果を返します。
Transactdはサーバー内部で行われる行単位の処理をクライント側でコントロールできるようにしたものです。APIはわかりやすくとてもシンプルです。
また、このシンプルな処理をクライアント側で組み合わせ、SQLのJoinやUnion、OrderBy、GroupByなどに相当するやや複雑な処理をC++で実装したAPIも用意されており、開発者のコーディング量を最小限にしながら、スクリプト言語でも高速に動作するようにしています。Transactd APIは、処理速度を高めながらも容易に扱えることを目標にしています。
Transactdは、サーバー側で動作する「サーバープラグイン」と、アプリケーション開発に利用する「クライアントライブラリ」で構成されます。 Transactd Pluginは、MySQLおよびMariaDBのプラグインとして、サーバー側で動作します。
Transactdクライアントは、C/C++用ライブラリを基本とし、その他のいくつかの言語用のバインディングが用意されています。
→ プラグイン/クライアント概要
サーバープラグインはtransactd.dll
(Windows)もしくはtransactd.so
(Linux/Mac OS X)という名前のライブラリで提供されます。 MySQLおよびMariaDBにプラグインとしてインストールして使用します。
C用インターフェースはtdclc_*.dll
(Windows)もしくはlibtdclc_*.so.*
(Linux/Mac OS X)という名前のライブラリで提供されます。 エクスポートされた関数はPSQL互換で、容易にPSQLからのマイグレーションができるようになっています。(このインターフェースの仕様の詳細はこのドキュメントでは述べません。)
Cのインターフェースは、レコードイメージをフィールドの長さと型に応じてバイナリフォーマットする必要があります。これは、これからアプリケーションを作成するユーザーにとっては大きな負担となります。代わりにC++インターフェースを使用してください。
C++用インターフェースはtdclcpp_*.dll
(Windows)もしくはlibtdclcpp_*.so.*
(Linux/Mac OS X)という名前のライブラリで提供されます。
これらのライブラリは、C用ライブラリを呼び出して使用します。
C++用インターフェースは、C用のインターフェースをオブジェクト指向のわかりやすいインターフェースでラップしたものです。さらに、より便利なコンビニエンスAPIも追加されています。
各言語用のライブラリは、内部からC/C++用ライブラリを呼び出して使用します。現在、以下の言語用のバインディングがあります。
Btrieve ,PSQL and Pervasive.SQL are registered trademarks of Actian Corporation.
MySQL are registered trademarks of Oracle Corporation.
HandlerSocket plugin for MySQL is provided by DeNA Co.,Ltd.