他のNoSQLプラグインとの比較
動作環境の比較
| Environment | Transactd | memcached plugin | HandlerSocket | |
|---|---|---|---|---|
| Unix | MySQL 5.5 | o | x | o |
| MySQL 5.6 | o | o | o | |
| MySQL 5.7 | o | o | x | |
| MySQL 8 | サポート予定 | o | x | |
| MariaDB 5.5 | o | x | o | |
| MariaDB 10.0 | o | x | o | |
| MariaDB 10.1 | o | x | o | |
| MariaDB 10.2 | o | x | o | |
| Windows | MySQL 5.5 | o | x | x |
| MySQL 5.6 | o | x | x | |
| MySQL 5.7 | o | x | x | |
| MySQL 8.0 | サポート予定 | x | x | |
| MariaDB 5.5 | o | x | x | |
| MariaDB 10.0 | o | x | x | |
| MariaDB 10.1 | o | x | x | |
| MariaDB 10.2 | o | x | x | |
Transactdの利点
- Transactd プラグインおよびクライアントは、LinuxだけでなくWindowsにも対応しています。
- Transactd プラグインは、MySQL 5.5~5.7系、MariaDB 5.5~10.2系に対応しています。
- C++、ActiveX(COM)、PHPおよびRubyで利用可能なTransactd クライアントが提供されています。
機能の比較
| Feature | Transactd | memcached plugin | HandlerSocket |
|---|---|---|---|
| Read/Insert/Update/Delete | o | o | o |
| Start Transaction/Commit/Rollback | o | x | x |
| Create/Drop Database Create/Drop Table |
o | x | x |
| Read multi records | o | x | o |
| Protocols | Transactd HandlerSocket |
memcached | HandlerSocket |
Transactdの利点
- Read/Insert/Update/Deleteの基本的なオペレーションに加えて、トランザクションが使用できます。
- データベースやテーブル作成など、アプリケーション開発に必要なほぼすべての操作が行えます。
- HandlerSocket プロトコルによるアクセスも可能です。(一部の機能のみ)
処理速度の比較
Ubuntu Server and Ubuntu Client
Read (5 client)
| Protocols | Operations Per Second |
|---|---|
| SQL | 7,293 |
| memcached | 12,671 |
| HandlerSocket | 24,754 |
| Transactd (Ruby) | 27,667 |
| Transactd (C++) | 27,533 |
Transactdの利点
- ほとんどのテストで最速です。特に、多用するReadオペレーションにおいて差が顕著です。
- InsertやUpdateでは、他のプラグインにはできないBulkInsertやTransactionによりさらに高速化が図れます。
- Rubyクライアントでも高速な処理が期待できます。
速度テストの結果一覧(グラフをクリックすると拡大表示します)
| Ubuntu Server and Ubuntu Client | |||||||
|---|---|---|---|---|---|---|---|
| Read | Read Range |
Insert | Insert Transaction | Insert Bulk |
Update | Update Transaction |
|
| 1 client | |||||||
| 5 client | |||||||
| Ubuntu Server and Windows Client | |||||||
| Read | Read Range |
Insert | Insert Transaction | Insert Bulk |
Update | Update Transaction |
|
| 1 client | |||||||
| 5 client | |||||||
| Windows Server and Ubuntu Client | |||||||
| Read | Read Range |
Insert | Insert Transaction | Insert Bulk |
Update | Update Transaction |
|
| 1 client | |||||||
| 5 client | |||||||
| Windows Server and Windows Client | |||||||
| Read | Read Range |
Insert | Insert Transaction | Insert Bulk |
Update | Update Transaction |
|
| 1 client | |||||||
| 5 client | |||||||
計測方法について
- SQL, memcached, HandlerSocket, Transactd(Ruby) はRubyのクライアントプログラムで計測。
- Transactd(C++) はC++のクライアントプログラムで計測。
- SQLはmysql、memcachedはdalli、 HandlerSocketはhandlersocketのGemを利用。
- MySQL Server 5.6.14で計測。
- サーバーマシンは AMD Opteron(TM) Processor 6212 / 10GB RAM。OSはWindows Server 2012 と Ubuntu Server 12.04 x86_64。
- クライアントマシンは Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz / 4GB RAM。OSは Windows 7 64bit と Ubuntu Server 11.10 x86_64。