元TwitterとCouchbaseの技術リーダーたちが、新しいテンポラル汎用データベース、FaunaDBを開発した。
Twitterでインフラ担当アーキテクト兼ディレクターを務めていたEvan Weaver氏、Twitterでデータベースチームのテクニカルリードを務めていたMatt Freels氏、Couchbaseの共同創業者であるChris Anderson氏が協力して、Twitterで働いていたときに望んでいた、新しい「アダプティブオペレーショナルデータベース」を開発した。それがFaunaDBというオブジェクト-リレーショナル分散データベースで、線形にスケールすることを約束する。
FaunaDBはCPシステムであり、一貫性と分断耐性を提供するように作られている。FaunaDBは複数のデータセンターにまたがって動かすことができ、サービスを中断せずに少数の障害に対応することができる。水平および垂直の両方向へのスケールアップが可能で、ラップトップ、サーバー、ローカルもしくはクラウド上の複数サーバー(仮想化やコンテナ化の設定も含む)で動かすことができる。
Datomicと同様に、FaunaDBはデータの全インスタンスを保持し、書き込み実行時には、上書きするのではなく新しいインスタンスを生成する。これは特にデータ監査時、時間とともに変更を検証するのに有用だ。
データモデリングの観点から見ると、FaunaDBは、リレーショナル(結合、外部キー、インデックスをサポートするがSQLではない)、ドキュメント、グラフ、オブジェクトと、何でもありだ。この新しいデータベースについて詳しく知るため、Weaver氏に質問をした。
InfoQ: FaunaDBをどう定義していますか?
Evan Weaver: FaunaDBは、トランザクショナルで、テンポラルで、地理的に分散し、強い一貫性があり、セキュアで、マルチテナントで、QoSマネージドなオペレーショナルデータベースです。ポータビリティのためにJVMで実装してあり、リレーショナルですがSQLではありません。その代わり、LINQのようなタイプセーフな組み込みDSLによってクエリすることができます。FaunaDBは汎用データベースモデルへの回帰ですが、80年代のメインフレームではなくクラウドで構築されています。
InfoQ: Amazon DynamoDBやGoogle Firebaseなど、他のデータベースサービスとどう違うのですか?
Weaver: DynamoDBとFirebaseは汎用ではありません。DynamoDBはいくらか拡張されたキー/バリュー型データベースであり、Firebaseは階層型データベースです(MUMPS以来、私はこのモデルを見たことがありません)。どちらもジオ・リプリケーションされず、オンプレミスやマルチクラウドの選択肢がなく、単一のクラウドベンダーに永久にロックインされます。
InfoQ: FaunaDBはデータセンターをまたいでレプリケーションできるということですよね。それはリアルタイムのバックアッププロシージャですか? それとも、ユーザーは別のデータセンターにホストされているインスタンスを同時にアクセスできて、近い方を選ぶことでレイテンシーを削減できるのですか?
Weaver: 後者ですね。ユーザーは最も近いデータセンターに自動的にルーティングされますが、データはどこでもリアルタイムで利用できます。現在、私たちのクラウドは、AWSとGoogle Cloud Platformにまたがっています。今年後半にはデータの主権性のため、どのリージョンにデータを入れたいか、直接選択できるようになります。
FaunaDBはオンプレミスでもクラウドでも動かせる。また、AWSとGCP上で運用不要のサービスとしても提供されており、間もなくAzureでも利用できる見込みだ。
FaunaDBはScalaとJavaで書かれており、Linux、Windows、OS Xを含む複数のOS上のJVMで動作する。Scala、Java、Java/Android、JavaScript、C#、Python、Ruby、Go、Swiftといった言語のドライバがあるが、データベースはHTTP API経由で直接アクセスすることもできる。
Rate this Article
- Editor Review
- Chief Editor Action