- 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
libcurl ve openssl ile 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_poll ve bcv_client olmak üzere üç PRAGMA ifadesini destekler.
- Sanal tablo arayüzü
bcv_container ve bcv_database tablolarından oluşur.
bcv_container tablosu bağlı konteynerlere ilişkin bilgiler içerir; bcv_database tablosu 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_database tablosu, veritabanındaki yerel değişikliklerle ilgili bilgiler içerir.
bcv_http_log tablosu, VFS veya bağlı daemon tarafından gerçekleştirilen HTTP isteklerini kaydeder.
bcv_kv tablosu, uygulamanın bulut depolama konteynerine veri yazmasına olanak tanır.
bcv_kv_meta tablosu, 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,
blockcachevfsd sü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