- 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
azure e google para 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
azure e como gerar tokens SAS para autenticação.
- O módulo
google exige 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_poll e bcv_client.
- A interface de tabela virtual é composta pelas tabelas
bcv_container e bcv_database.
- A tabela
bcv_container contém informações sobre os contêineres conectados, e a tabela bcv_database conté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_database contém informações sobre alterações locais feitas no banco de dados.
- A tabela
bcv_http_log registra as requisições HTTP feitas pelo VFS ou pelo daemon conectado.
- A tabela
bcv_kv permite que a aplicação grave dados no contêiner de armazenamento em nuvem.
- A tabela
bcv_kv_meta fornece 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
blockcachevfsd seja 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