- Un sistema que almacena la base de datos SQLite en almacenamiento en la nube y permite leer y escribir sin descargar toda la base de datos
- Actualmente es compatible con Azure Blob Storage y Google Cloud Storage
- Usa el módulo VFS Block Cache: funciona en modo sin daemon (lectura/escritura) y en modo daemon (solo lectura)
Lo que GN⁺ resumió
- El sistema "Cloud Backed SQLite" (CBS) almacena la base de datos en una cuenta de almacenamiento en la nube y permite que los clientes de almacenamiento accedan a ella sin descargar toda la base de datos.
- Varios clientes pueden acceder a la base de datos al mismo tiempo, pero solo un cliente puede escribir en ella.
- Actualmente CBS es compatible con Azure Blob Storage y Google Cloud Storage, y también podría admitir otros sistemas de almacenamiento en la nube.
- La base de datos SQLite se divide en bloques de tamaño fijo y se almacena en el sistema de almacenamiento en la nube.
- Este sistema está compuesto por elementos básicos para administrar contenedores de almacenamiento en la nube, un proceso daemon que brinda acceso local a bases de datos remotas y un módulo VFS para acceder a la base de datos en la nube.
- Para usar CBS, la aplicación debe compilar y enlazar los archivos C y los archivos de encabezado necesarios, y enlazar con libcurl y openssl.
- El sistema puede probarse con una suite de pruebas automatizada.
- La base de datos puede subirse a la cuenta de almacenamiento en la nube usando una herramienta de línea de comandos.
- Para acceder a una base de datos almacenada en la nube, hay que crear el VFS, conectar el contenedor, abrir el manejador de la base de datos y ejecutar scripts SQL.
- El sistema ofrece una API para dar soporte a nuevos sistemas de almacenamiento en la nube e implementar tablas virtuales.
- Este artículo analiza el uso de contenedores seguros en sistemas de almacenamiento en la nube.
- Los contenedores pueden conectarse de forma segura o insegura, y la conexión segura cifra los datos usando AES OFB.
- El cliente local necesita credenciales válidas del almacenamiento en la nube para obtener la clave de cifrado desde el proceso daemon.
- Este artículo menciona los módulos integrados "azure" y "google" para sistemas de almacenamiento en la nube.
- La API de CBS y la herramienta de línea de comandos requieren la especificación del módulo, el nombre de usuario y el valor de autenticación.
- Este artículo proporciona detalles del módulo "azure" y cómo generar tokens SAS para la autenticación.
- El módulo "google" requiere un ID de proyecto y un token de acceso para conectar CBS a Google Cloud Storage.
- Este artículo menciona el acceso concurrente desde varios clientes y la necesidad de sondear el contenedor para detectar cambios.
- Blockcachevfs admite tres sentencias PRAGMA: bcv_upload, bcv_poll y bcv_client.
- La interfaz de tablas virtuales está compuesta por las tablas bcv_container y bcv_database.
- La tabla bcv_container contiene información sobre los contenedores conectados, y la tabla bcv_database contiene información sobre las bases de datos de cada contenedor.
- Este artículo analiza la estructura y la función de varias tablas de la base de datos blockcachevfs.
- La tabla "bcv_database" contiene información sobre cambios locales realizados en la base de datos.
- La tabla "bcv_http_log" registra las solicitudes HTTP realizadas por el VFS o por el daemon conectado.
- La tabla "bcv_kv" permite que la aplicación escriba datos en el contenedor de almacenamiento en la nube.
- La tabla "bcv_kv_meta" ofrece acceso de solo lectura a los encabezados HTTP del servidor de almacenamiento en la nube.
- Este artículo también ofrece una referencia de línea de comandos para varias operaciones en la base de datos blockcachevfs.
- El comando del daemon permite que el proceso blockcachevfsd se ejecute como servidor y acepte conexiones de clientes.
- El proceso daemon admite varias opciones de configuración y registro.
1 comentarios
Opiniones en Hacker News
sql.js-httpvfsque ayuda con este procesotmpfsy copiarla al almacenamiento de objetospg_dumpymysqldumppara SQLite