Cloud Backed SQLite (CBS)
(sqlite.org)- SQLite veritabanını bulut depolamada sakladıktan sonra, tüm DB'yi indirmeden okuma ve yazmayı mümkün kılan bir sistem
- Şu anda Azure Blob Storage ve Google Cloud Storage destekleniyor
- Block Cache VFS modülü kullanılır: Daemonsuz modda (okuma/yazma) ve daemon modunda (salt okunur) çalışır
GN⁺ tarafından özetlenen içerik
- "Bulut destekli SQLite" (CBS) sistemi, veritabanını bir bulut depolama hesabında saklar ve tüm veritabanını indirmeden depolama istemcilerinin erişmesine olanak tanır.
- Birden fazla istemci aynı anda veritabanına erişebilir, ancak veritabanına yalnızca bir istemci yazabilir.
- CBS şu anda Azure Blob Storage ve Google Cloud Storage'ı destekler; ayrıca diğer bulut depolama sistemlerini de destekleyebilir.
- SQLite veritabanı sabit boyutlu bloklara bölünür ve bulut depolama sisteminde saklanır.
- Sistem; bulut depolama konteyneri yönetimi için temel bileşenler, uzak veritabanına yerel erişim sağlayan bir daemon süreci ve bulut veritabanına erişmek için bir VFS modülünden oluşur.
- CBS'yi kullanmak için uygulamanın gerekli C dosyalarını ve header dosyalarını derleyip bağlaması, ayrıca
libcurlveopensslile link etmesi gerekir. - Sistem, otomatik test paketi kullanılarak test edilebilir.
- Veritabanı, komut satırı aracı kullanılarak bulut depolama hesabına yüklenebilir.
- Bulut depolamada saklanan veritabanına erişmek için bir VFS oluşturmak, konteyneri bağlamak, veritabanı handle'ını açmak ve SQL betiklerini çalıştırmak gerekir.
- Sistem, yeni bulut depolama sistemlerini desteklemek ve sanal tabloları uygulamak için bir API sunar.
- Bu makalede, bulut depolama sisteminde güvenli konteyner kullanımından bahsedilmektedir.
- Konteynerler güvenli veya güvensiz şekilde bağlanabilir; güvenli bağlantıda veriler AES OFB şifrelemesiyle şifrelenir.
- Yerel istemci, daemon sürecinden şifreleme anahtarını almak için geçerli bulut depolama kimlik bilgilerine ihtiyaç duyar.
- Makalede, bulut depolama sistemleri için yerleşik "azure" ve "google" modüllerinden söz edilmektedir.
- CBS API'si ve komut satırı aracı; modül belirtimi, kullanıcı adı ve kimlik doğrulama değeri gerektirir.
- Makale, "azure" modülünün ayrıntılarını ve kimlik doğrulama için SAS token oluşturma yöntemini sunar.
- CBS'yi Google Cloud Storage'a bağlamak için "google" modülü proje kimliği ve access token gerektirir.
- Makalede, birden fazla istemciden eşzamanlı erişim ve değişiklikleri doğrulamak için konteynerin poll edilmesi gerekliliğinden bahsedilir.
- Blockcachevfs,
bcv_upload,bcv_pollvebcv_clientolmak üzere üç PRAGMA ifadesini destekler. - Sanal tablo arayüzü
bcv_containervebcv_databasetablolarından oluşur. bcv_containertablosu bağlı konteynerlere ilişkin bilgiler içerir;bcv_databasetablosu ise her konteynerin veritabanı bilgilerini içerir.- Makalede, blockcachevfs veritabanındaki çeşitli tabloların yapısı ve işlevleri ele alınmaktadır.
bcv_databasetablosu, veritabanındaki yerel değişikliklerle ilgili bilgiler içerir.bcv_http_logtablosu, VFS veya bağlı daemon tarafından gerçekleştirilen HTTP isteklerini kaydeder.bcv_kvtablosu, uygulamanın bulut depolama konteynerine veri yazmasına olanak tanır.bcv_kv_metatablosu, bulut depolama sunucusunun HTTP header'larına salt okunur erişim sağlar.- Makalede ayrıca, blockcachevfs veritabanında çeşitli işlemler için komut satırı referansı da sunulmaktadır.
- Daemon komutu,
blockcachevfsdsürecinin sunucu olarak çalışıp istemcilerden gelen bağlantıları kabul etmesini sağlar. - Daemon süreci, yapılandırma ve loglama için çeşitli seçenekleri destekler.
1 yorum
Hacker News görüşleri
sql.js-httpvfsadlı bir kütüphaneden bahsediliyortmpfsdosya sistemine kopyalayıp nesne depolamaya aktaran daha basit bir çözüm öneriliyorpg_dumpvemysqldumpbenzeri eşdeğer bir komut olup olmadığını soruyor