Cloud Backed SQLite (CBS)
(sqlite.org)- Sistema que armazena bancos de dados SQLite em armazenamento em nuvem e permite leitura e escrita sem precisar baixar o banco inteiro
- Atualmente oferece suporte a Azure Blob Storage e Google Cloud Storage
- Usa o módulo Block Cache VFS: funciona nos modos sem daemon (leitura/escrita) e com daemon (somente leitura)
Resumo do GN⁺
- O sistema "Cloud Backed SQLite" (CBS) armazena o banco de dados em uma conta de armazenamento em nuvem e permite que clientes de armazenamento acessem os dados sem baixar todo o banco.
- Vários clientes podem acessar o banco de dados ao mesmo tempo, mas apenas um cliente pode gravar no banco.
- Atualmente, o CBS oferece suporte a Azure Blob Storage e Google Cloud Storage, e também pode dar suporte a outros sistemas de armazenamento em nuvem.
- O banco de dados SQLite é dividido em blocos de tamanho fixo e armazenado no sistema de armazenamento em nuvem.
- O sistema é composto por elementos básicos para gerenciamento de contêineres de armazenamento em nuvem, um processo daemon que fornece acesso local ao banco de dados remoto e um módulo VFS para acessar o banco de dados na nuvem.
- Para usar o CBS, a aplicação precisa compilar e linkar os arquivos C e arquivos de cabeçalho necessários, além de linkar com libcurl e openssl.
- O sistema pode ser testado com uma suíte de testes automatizada.
- O banco de dados pode ser enviado para a conta de armazenamento em nuvem usando ferramentas de linha de comando.
- Para acessar um banco armazenado na nuvem, é preciso criar o VFS, conectar o contêiner, abrir o handle do banco e executar scripts SQL.
- O sistema fornece APIs para suportar novos sistemas de armazenamento em nuvem e implementar tabelas virtuais.
- O artigo discute o uso de contêineres seguros em sistemas de armazenamento em nuvem.
- Os contêineres podem ser conectados de forma segura ou insegura, e a conexão segura usa criptografia AES OFB para criptografar os dados.
- O cliente local precisa de credenciais válidas de armazenamento em nuvem para obter a chave de criptografia do processo daemon.
- O artigo menciona os módulos embutidos
azureegooglepara sistemas de armazenamento em nuvem. - A API do CBS e as ferramentas de linha de comando exigem a especificação do módulo, nome de usuário e valor de autenticação.
- O artigo fornece detalhes do módulo
azuree como gerar tokens SAS para autenticação. - O módulo
googleexige ID do projeto e token de acesso para conectar o CBS ao Google Cloud Storage. - O artigo menciona o acesso simultâneo por vários clientes e a necessidade de fazer polling no contêiner para verificar mudanças.
- O Blockcachevfs oferece suporte a três instruções PRAGMA:
bcv_upload,bcv_pollebcv_client. - A interface de tabela virtual é composta pelas tabelas
bcv_containerebcv_database. - A tabela
bcv_containercontém informações sobre os contêineres conectados, e a tabelabcv_databasecontém informações sobre os bancos de dados de cada contêiner. - O artigo discute a estrutura e a função de várias tabelas do banco de dados blockcachevfs.
- A tabela
bcv_databasecontém informações sobre alterações locais feitas no banco de dados. - A tabela
bcv_http_logregistra as requisições HTTP feitas pelo VFS ou pelo daemon conectado. - A tabela
bcv_kvpermite que a aplicação grave dados no contêiner de armazenamento em nuvem. - A tabela
bcv_kv_metafornece acesso somente leitura aos cabeçalhos HTTP do servidor de armazenamento em nuvem. - O artigo também fornece referência de linha de comando para várias operações no banco de dados blockcachevfs.
- O comando do daemon permite que o processo
blockcachevfsdseja executado como servidor e aceite conexões de clientes. - O processo daemon oferece várias opções para configuração e logging.
1 comentários
Comentários do Hacker News
sql.js-httpvfs, que ajuda nesse processotmpfse depois para um armazenamento de objetospg_dumpe aomysqldumppara SQLite