- Ein System, das SQLite-Datenbanken in Cloud-Speichern ablegt und Lesen und Schreiben ermöglicht, ohne die gesamte DB herunterzuladen
- Unterstützt derzeit Azure Blob Storage und Google Cloud Storage
- Verwendet das Block Cache VFS-Modul: arbeitet im daemonlosen Modus (Lesen/Schreiben) und im Daemon-Modus (nur Lesen)
Von GN⁺ zusammengefasster Inhalt
- Das System „Cloud Backed SQLite“ (CBS) speichert Datenbanken in einem Cloud-Speicherkonto und ermöglicht Speicher-Clients den Zugriff, ohne die gesamte Datenbank herunterzuladen.
- Mehrere Clients können gleichzeitig auf die Datenbank zugreifen, aber nur ein Client kann in die Datenbank schreiben.
- CBS unterstützt derzeit Azure Blob Storage und Google Cloud Storage und könnte auch andere Cloud-Speichersysteme unterstützen.
- SQLite-Datenbanken werden in Blöcke fester Größe aufgeteilt und im Cloud-Speichersystem gespeichert.
- Das System besteht aus Grundbausteinen für die Verwaltung von Cloud-Speicher-Containern, einem Daemon-Prozess, der lokalen Zugriff auf entfernte Datenbanken bereitstellt, und einem VFS-Modul für den Zugriff auf Cloud-Datenbanken.
- Um CBS zu verwenden, muss die Anwendung die erforderlichen C-Dateien und Header-Dateien bauen und linken sowie gegen libcurl und openssl linken.
- Das System kann mit einer automatisierten Testsuite getestet werden.
- Datenbanken können mit einem Kommandozeilen-Tool in ein Cloud-Speicherkonto hochgeladen werden.
- Um auf eine in einem Cloud-Speicher abgelegte Datenbank zuzugreifen, müssen ein VFS erstellt, der Container verbunden, ein Datenbank-Handle geöffnet und ein SQL-Skript ausgeführt werden.
- Das System stellt APIs bereit, um neue Cloud-Speichersysteme zu unterstützen und virtuelle Tabellen zu implementieren.
- In diesem Artikel wird die Verwendung sicherer Container in Cloud-Speichersystemen behandelt.
- Container können sicher oder unsicher verbunden werden; sichere Verbindungen verschlüsseln Daten mit AES-OFB.
- Lokale Clients benötigen gültige Cloud-Speicher-Zugangsdaten, um vom Daemon-Prozess den Verschlüsselungsschlüssel zu erhalten.
- In diesem Artikel werden die eingebauten Module „azure“ und „google“ für Cloud-Speichersysteme erwähnt.
- Die CBS-API und die Kommandozeilen-Tools benötigen Modulspezifikation, Benutzernamen und Authentifizierungswert.
- Dieser Artikel liefert Details zum Modul „azure“ sowie dazu, wie SAS-Tokens zur Authentifizierung erzeugt werden.
- Das Modul „google“ benötigt eine Projekt-ID und ein Access Token, um CBS mit Google Cloud Storage zu verbinden.
- In diesem Artikel wird gleichzeitiger Zugriff durch mehrere Clients sowie die Notwendigkeit erwähnt, Container per Polling auf Änderungen zu prüfen.
- Blockcachevfs unterstützt drei
PRAGMA-Anweisungen: bcv_upload, bcv_poll und bcv_client.
- Die Schnittstelle für virtuelle Tabellen besteht aus den Tabellen
bcv_container und bcv_database.
- Die Tabelle
bcv_container enthält Informationen über verbundene Container, und die Tabelle bcv_database enthält Informationen über die Datenbanken jedes Containers.
- In diesem Artikel werden Struktur und Funktion verschiedener Tabellen der blockcachevfs-Datenbank behandelt.
- Die Tabelle
bcv_database enthält Informationen über lokale Änderungen an Datenbanken.
- Die Tabelle
bcv_http_log protokolliert HTTP-Anfragen, die vom VFS oder dem verbundenen Daemon ausgeführt wurden.
- Die Tabelle
bcv_kv ermöglicht Anwendungen, Daten in Cloud-Speicher-Container zu schreiben.
- Die Tabelle
bcv_kv_meta bietet schreibgeschützten Zugriff auf HTTP-Header des Cloud-Speicher-Servers.
- Dieser Artikel bietet außerdem eine Kommandozeilen-Referenz für verschiedene Operationen in der blockcachevfs-Datenbank.
- Der Daemon-Befehl ermöglicht es dem Prozess
blockcachevfsd, als Server zu laufen und Verbindungen von Clients anzunehmen.
- Der Daemon-Prozess unterstützt verschiedene Optionen für Konfiguration und Logging.
1 Kommentare
Hacker-News-Kommentare
sql.js-httpvfs, die diesen Prozess unterstützttmpfs-Dateisystem zu kopieren und anschließend in einen Objektspeicher zu kopierenpg_dumpundmysqldumpentspricht