- SQLiteデータベースをクラウドストレージに保存したうえで、DB全体をダウンロードしなくても読み書きを可能にするシステム
- 現在は Azure Blob Storage と Google Cloud Storage をサポート
- Block Cache VFS モジュールを利用: デーモンレスモード(Read/Write)とデーモンモード(Read-Only)で動作
GN⁺ の要約
- 「クラウド対応 SQLite」(CBS) システムは、データベースをクラウドストレージアカウントに保存し、ストレージクライアントがデータベース全体をダウンロードせずにアクセスできるようにします。
- 複数のクライアントが同時にデータベースへアクセスできますが、データベースに書き込めるクライアントは1つだけです。
- CBS は現在 Azure Blob Storage と Google Cloud Storage をサポートしており、他のクラウドストレージシステムもサポートできる可能性があります。
- SQLite データベースは固定サイズのブロックに分割され、クラウドストレージシステムに保存されます。
- このシステムは、クラウドストレージコンテナ管理のための基本要素、リモートデータベースへのローカルアクセスを提供するデーモンプロセス、クラウドデータベースにアクセスするための VFS モジュールで構成されます。
- CBS を使用するには、アプリケーションで必要な C ファイルとヘッダーファイルをビルドしてリンクし、libcurl と openssl にリンクする必要があります。
- システムは自動化されたテストスイートを使ってテストできます。
- データベースはコマンドラインツールを使ってクラウドストレージアカウントへアップロードできます。
- クラウドストレージに保存されたデータベースへアクセスするには、VFS を作成し、コンテナを接続し、データベースハンドルを開き、SQL スクリプトを実行する必要があります。
- システムは、新しいクラウドストレージシステムをサポートし、仮想テーブルを実装するための API を提供します。
- この記事では、クラウドストレージシステムにおける安全なコンテナの使用について説明しています。
- コンテナは安全または非安全に接続でき、安全な接続では AES OFB 暗号化を使ってデータを暗号化します。
- ローカルクライアントがデーモンプロセスから暗号鍵を取得するには、有効なクラウドストレージ認証情報が必要です。
- この記事では、クラウドストレージシステム向けの組み込みモジュール「azure」と「google」について言及しています。
- CBS API とコマンドラインツールには、モジュール仕様、ユーザー名、認証値が必要です。
- この記事では、「azure」モジュールの詳細と、認証用の SAS トークンを生成する方法を提供しています。
- 「google」モジュールでは、CBS を Google Cloud Storage に接続するためにプロジェクト ID とアクセストークンが必要です。
- この記事では、複数クライアントからの同時アクセスと、変更を確認するためにコンテナをポーリングする必要性について触れています。
- Blockcachevfs は
bcv_upload、bcv_poll、bcv_client の3つの PRAGMA 文をサポートします。
- 仮想テーブルインターフェースは
bcv_container テーブルと bcv_database テーブルで構成されます。
bcv_container テーブルには接続されたコンテナに関する情報が含まれ、bcv_database テーブルには各コンテナのデータベースに関する情報が含まれます。
- この記事では、blockcachevfs データベース内のさまざまなテーブルの構造と機能について説明しています。
bcv_database テーブルには、データベースに対するローカルな変更に関する情報が含まれます。
bcv_http_log テーブルは、VFS または接続されたデーモンによって実行された HTTP リクエストを記録します。
bcv_kv テーブルは、アプリケーションがクラウドストレージコンテナにデータを書き込めるようにします。
bcv_kv_meta テーブルは、クラウドストレージサーバーの HTTP ヘッダーへの読み取り専用アクセスを提供します。
- この記事では、blockcachevfs データベースでのさまざまな操作に関するコマンドラインリファレンスも提供しています。
- デーモンコマンドにより、
blockcachevfsd プロセスをサーバーとして実行し、クライアントからの接続を受け付けられるようになります。
- デーモンプロセスは、設定およびロギングのためのさまざまなオプションをサポートします。
1件のコメント
Hacker Newsの意見
sql.js-httpvfsというライブラリへの言及pg_dumpやmysqldumpに相当するコマンドがあるか尋ねる