- Sistem yang memungkinkan database SQLite disimpan di cloud storage, lalu dibaca dan ditulis tanpa harus mengunduh seluruh DB
- Saat ini mendukung Azure Blob Storage dan Google Cloud Storage
- Menggunakan modul Block Cache VFS: berjalan dalam mode tanpa daemon (baca/tulis) dan mode daemon (hanya-baca)
Ringkasan GN⁺
- Sistem "Cloud Backed SQLite" (CBS) menyimpan database di akun cloud storage dan memungkinkan klien storage mengaksesnya tanpa mengunduh seluruh database.
- Beberapa klien dapat mengakses database secara bersamaan, tetapi hanya satu klien yang dapat menulis ke database.
- CBS saat ini mendukung Azure Blob Storage dan Google Cloud Storage, dan juga dapat mendukung sistem cloud storage lainnya.
- Database SQLite dibagi menjadi blok berukuran tetap lalu disimpan di sistem cloud storage.
- Sistem ini terdiri dari elemen dasar untuk pengelolaan kontainer cloud storage, proses daemon yang menyediakan akses lokal ke database jarak jauh, dan modul VFS untuk mengakses database cloud.
- Untuk menggunakan CBS, aplikasi harus membangun dan menautkan file C serta header yang diperlukan, dan menautkannya dengan libcurl dan openssl.
- Sistem dapat diuji menggunakan rangkaian pengujian otomatis.
- Database dapat diunggah ke akun cloud storage menggunakan alat baris perintah.
- Untuk mengakses database yang disimpan di cloud storage, perlu membuat VFS, menghubungkan kontainer, membuka handle database, dan menjalankan skrip SQL.
- Sistem ini menyediakan API untuk mendukung sistem cloud storage baru dan mengimplementasikan virtual table.
- Artikel ini membahas penggunaan kontainer aman pada sistem cloud storage.
- Kontainer dapat dihubungkan secara aman maupun tidak aman, dan koneksi aman mengenkripsi data menggunakan enkripsi AES OFB.
- Klien lokal memerlukan kredensial cloud storage yang valid untuk memperoleh kunci enkripsi dari proses daemon.
- Artikel ini menyebut modul bawaan "azure" dan "google" untuk sistem cloud storage.
- API CBS dan alat baris perintah memerlukan spesifikasi modul, nama pengguna, dan nilai autentikasi.
- Artikel ini memberikan detail modul "azure" dan cara membuat token SAS untuk autentikasi.
- Modul "google" memerlukan project ID dan access token untuk menghubungkan CBS ke Google Cloud Storage.
- Artikel ini menyebut kebutuhan untuk melakukan polling pada kontainer guna memeriksa akses serentak dan perubahan dari beberapa klien.
- Blockcachevfs mendukung tiga pernyataan PRAGMA: bcv_upload, bcv_poll, dan bcv_client.
- Antarmuka virtual table terdiri dari tabel bcv_container dan bcv_database.
- Tabel bcv_container berisi informasi tentang kontainer yang terhubung, dan tabel bcv_database berisi informasi tentang database di tiap kontainer.
- Artikel ini membahas struktur dan fungsi berbagai tabel dalam database blockcachevfs.
- Tabel "bcv_database" berisi informasi tentang perubahan lokal pada database.
- Tabel "bcv_http_log" mencatat permintaan HTTP yang dilakukan oleh VFS atau daemon yang terhubung.
- Tabel "bcv_kv" memungkinkan aplikasi menulis data ke kontainer cloud storage.
- Tabel "bcv_kv_meta" menyediakan akses hanya-baca ke header HTTP dari server cloud storage.
- Artikel ini juga menyediakan referensi baris perintah untuk berbagai operasi pada database blockcachevfs.
- Perintah daemon memungkinkan proses blockcachevfsd berjalan sebagai server dan menerima koneksi dari klien.
- Proses daemon mendukung berbagai opsi untuk konfigurasi dan logging.
1 komentar
Opini Hacker News
sql.js-httpvfsyang membantu proses initmpfssecara berkala lalu menyalinnya ke object storagepg_dumpdanmysqldumpuntuk SQLite.