正規 重要なプロジェクトのリリース (分散 SQLite) は、ハンドラーを複数のノードに分散することによって、データ レプリケーション、障害からの自動回復、フォールト トレランスをサポートする SQLite 互換の組み込み SQL エンジンを開発します。 DBMS は、アプリケーションに付属する C ライブラリの形式で実装され、 Apache 2.0 ライセンスに基づいています (オリジナルの SQLite はパブリック ドメインで提供されています)。言語バインディングが利用可能 .
このライブラリは、異なるホスト上で実行されているアプリケーションの複数のインスタンスを相互接続するためのネットワーク プロトコル サポートを追加する、既存の SQLite コードベースへのアドオンです。 Dqlite でコンパイルされたアプリケーションは、外部 DBMS から独立して、自立したフォールト トレラント クラスターとして機能できます。実際、Dqlite は Canonical のコンテナ管理システムで使用されています。 。ライブラリの応用分野の中には、システム内のフォールトトレラントなモノのインターネット デバイスとプロセッサの作成についても言及されています。
.
データ複製の一貫性を確保するために、アルゴリズムベースのコンセンサス方式が使用されます。 、etcd、RethinkDB、CockroachDB、OpenDaylight などのプロジェクトで使用されます。 Dqlite は独自の非同期実装を使用します 、C言語で書かれています。既製のライブラリを使用して接続処理を多重化し、コルーチンの起動を整理します и .
同様のプロジェクトとの比較 Dqlite は完全なトランザクション サポートを提供し、任意の C プロジェクトと通信でき、time() 関数の使用を許可し、SQL 変換ベースのレプリケーションの代わりにフレームベースのレプリケーションを使用します。
Dqlite の特徴:
- すべてのディスクおよびネットワーク操作を非同期で実行します。
- データの正確性を確認するためのテストセットの利用可能性。
- メモリ消費量が少なく、ネットワーク上で効率的なデータ交換が可能。
- データベースとトランザクション ログをディスク上に永続的に保存します (メモリ内にキャッシュする可能性あり)。
- 障害からの迅速な回復。
- Go 言語の安定した CLI クライアント。データベースの初期化、レプリケーションの構成、ノードの接続/切断に使用できます。
- ARM、X86、POWER、IBM Z アーキテクチャをサポートします。
- Raft アルゴリズムの実装は、トランザクションをコミットする際の遅延を最小限に抑えるように最適化されています。
出所: オープンネット.ru
