BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Git for Data、バージョン管理データベース Dolt が PostgreSQL 仕様になる

Git for Data、バージョン管理データベース Dolt が PostgreSQL 仕様になる

原文リンク(2023-11-26)

DoltgreSQLは、バージョン管理データベースDoltの上に構築され、PostgresデータベースのスキーマとデータにGitのようなログ、差分、ブランチ、マージ機能を提供する。

Doltは、Gitリポジトリのようにクローン、フォーク、ブランチ、マージができるSQLデータベースとして誕生した。Doltを使うことで、アプリケーション開発者は、例えばデータの間違いを修正するためにプルリクエストを送るなど、顧客のためにブランチやマージのワークフローを構築できる。同様に、Dolt を使用すると、シンプルなモデルで本番データベースを分岐し、変更を適用し、ステージングセットアップでテストし、最終的に本番環境に戻すことによって変更できる。

Doltは当初からMySQLの構文と、Gitユーザーにはおなじみのコマンドライン指向のパラダイムを採用していた。

DoltgreSQLは、その代わりにデータベースサーバーの体験に焦点を当て、カスタマイズ可能で導入が簡単なサーバーを提供している。さらに、一般的なPostgreSQLの利用者により馴染んでもらうために、コマンドラインサポートは提供しない、と同社は述べている。

DoltgreSQL は、PostgreSQL サーバーをエミュレートし、受信したコマンドを基盤となる Dolt サーバーに提供される AST に変換することによって機能する。これによって、Doltがすでに提供している機能と性能を活用しながら、素早く何かを立ち上げることができた。

このアプローチは、Doltの基盤の上にこれらの新機能を構築し、Doltの安定性と信頼性を活用し、開発範囲と労力を削減するという利点がある。

DoltHubによれば、彼らは、外部データラッパーの作成、新しいPostgreSQLストレージバックエンドの構築、さらには PostgreSQL自体のフォークなど、さまざまなアプローチを調査したという。これらのアプローチのいくつかは、あまりに限定的であることが判明した一方で、PostgreSQL のフォークなど、何年もの開発を必要とするものもあった。

マイナス面として、エミュレーションベースのアプローチの欠点は、実際のPostgreSQLバイナリを実行していないことである。その代わりに、前述のように、DoltgreSQLはPostgreSQLの構文をAST表現に変換し、Doltレイヤーの中で実行する。

DoltgreSQLをインストールしたら、psqlコマンドラインクライアントを用いて接続することができる。データベースの状態を見るには、以下のクエリーを実行する。

select * from dolt_status;

これで既存のテーブルがすべてリストアップされ、新規テーブルかステージング済みテーブルかなどが指定される。ステージング・エリアにテーブルを追加するには、

call dolt_add('my_table_name');

変更をコミットするには

call dolt_commit('-m', 'updated schema');

git logに相当するのは、select * from dolt_log;である。

Doltgresはまだ実験的なもので、DoltHubとDoltLabがサポートされていないこと、認証やユーザー管理ができないこと、SSL接続のサポートが限られていること、レプリケーションやクラスタリングなどがサポートされていないことなど、いくつかの制限がある。

Doltの "Git for data"という価値提案は説得力があるように聞こえるかもしれないが、データベースの専門家であるJ. Andrew Rogers氏がHacker Newsで述べたところによると、この目標は、いくつかの大きな欠点があるものの、マルチバージョン同時実行制御(MVCC)が何十年も試みてきたこととあまり変わらないが、いくつかの大きな欠点があるとのことだ。DoltのCEOであるTim Sehn氏は、DDoltをネイティブのMySQLと比較実行すると、sysbenchベンチマークでわずかに遅いだけだと強調した。

作者について

この記事に星をつける

おすすめ度
スタイル

BT