インメモリデータベース VoltDBのエディション（OSS/Enterprise）

# VoltDBのエディション

インメモリーデータベースVoltDBは、OSSのCommunity版と有償のEnterprise版の2つがあります。
エディションにより、使用できる機能とサポートが変わります。

# エディションの比較

Editions
https://www.voltdb.com/product/editions/

なお、以下の表の説明は機能名から私が記載したもので、VoltDB社の公式の説明ではありません。そのため、もしかしたら機能の説明に誤りが含まれているかもしれません。

| 機能                                                      | Open Source / Community     | Enterprise                      | 説明                                                                                                                                                                                                                  |
|-----------------------------------------------------------|-----------------------------|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ライセンス                                                | AGPL                        | Enterprise                      | OSS版があります。                                                                                                                                                                                                     |
| 高スループットSQLデータベース                             | ○                           | ○                               | タイトルのとおり、高スループットなSQLデータベースを提供する。                                                                                                                                                         |
| In-memory analytics for real-time visibility              | ○                           | ○                               | ※何を指している？                                                                                                                                                                                                     |
| Point-in-time Durability                                  | ○                           | ○                               | snapshotを使用して、過去の特定時間（Point-in-time）の状態に戻すことができる。ただし、トランザクションレベルでリカバリしたいのであれば、Enterpriseの「コマンドロギングによるトランザクションレベルでの耐久性」が必要。 |
| コモディティサーバへの手動スケールアウト                  | ○                           | ○                               | クラスタ構成の際、サーバを追加し手動でスケールアウトできます。スケールアウト時は一旦クラスタを停止させる必要があります。                                                                                              |
| クラスタ内での高可用性                                    | ○                           | ○                               | VoltDBをクラスタ構成で、高可用性の設定を行うとサーバダウンしてもクラスタを維持することができます。                                                                                                                    |
| インポートとエクスポート(KafkaやKinesis)                  | ○                           | ○                               | Kafka、Kinesis、その他データベースからデータのインポートとエクスポートができます。                                                                                                                                    |
| VoltDB管理コンソール                                      | ○                           | ○                               | VoltDB標準のWebコンソールです。コンソールからSQLの実行やサーバの状態を確認することができます。                                                                                                                        |
| コマンドロギングによるトランザクションレベルでの耐久性    |                             | ○                               | コマンドロギングを利用することにより、トランザクション処理の結果がログファイルにも出力されます。クラスタが何らかの障害でダウンしたとしても、ログファイルからリカバリすることができます。                              |
| ダウンタイムなしでのクラスターのスケールアウト            |                             | ○                               | クラスタをダウンすることなく、サーバを追加してスケールアウトすることができます。                                                                                                                                      |
| DR(Disaster recovery)のためのデータベースレプリケーション |                             | ○                               | 遠隔地に構築したDR用のクラスタにデータベースをレプリケーションできます。                                                                                                                                              |
| クロスデータセンターレプリケーション                      |                             | ○                               | 複数のデータセンター間でデータベースをレプリケーションできます。                                                                                                                                                      |
| Enterprise Lab Program (free non production use)**        |                             | ○                               |                                                                                                                                                                                                                       |
| ノードの最大数                                            | 制限なし                    | 制限なし                        | クラスタを構成するノード（サーバ）の最大数                                                                                                                                                                            |
| カスタマーサポート                                        | StackOverflow, Slack, Basic | Basic, Standard**, Enterprise** |                                                                                                                                                                                                                       |


*AWSサービスとしても利用可能
**Enterprise Lab Programの非プロダクションサポートは、1カスタマーで5ユーザ

# 終わりに

一番のポイントはコマンドログによりトランザクションレベルでPoint-in-time Recoveryができるかどうかです。OSS版ではスナップショット機能により特定の時間（30分ごとなど）にバックアップを取得しリカバリできるのみです。
スナップショットでのリカバリで許容でき、DRやクロスデータセンターレプリケーション、カスタマーサポートも不要であればOSS版で機能としては十分かと思います。