No SQLite, eles já trabalham em um back-end HCTree com suporte para gravações paralelas

SQLite

é um sistema de gerenciamento de banco de dados relacional compatível com ACID, contido em uma biblioteca relativamente pequena escrita em C

Os desenvolvedores do projeto SQLite começou a testar um back-end HCtree experimental que oferece suporte ao bloqueio em nível de linha e fornece um alto nível de paralelismo no processamento de consultas.

Em relação ao novo back-end em que estão trabalhando, é mencionado que este visa melhorar a eficiência do uso do SQLite em sistemas cliente-servidor Eles precisam processar um grande número de solicitações de gravação simultâneas no banco de dados.

Os estruturas b-tree originalmente usadas no SQLite para armazenar dados Eles não são projetados para este tipo de carga., o que limita o SQLite a gravar em apenas um fluxo. Como experimento, os desenvolvedores começaram a desenvolver uma solução alternativa que usa estruturas HCtree para armazenamento, mais adequadas para paralelizar operações de escrita.

O projeto HC-tree (hctree) é uma tentativa de desenvolver um novo back-end de banco de dados que melhore o SQLite regular da seguinte forma:

Simultaneidade aprimorada: O uso da extensão begin-concurrent altera isso para que possa ser executado simultaneamente usando o bloqueio otimista no nível da página. Isso melhora um pouco a simultaneidade, mas o bloqueio em nível de página pode detectar conflitos entre transações logicamente independentes e as operações COMMIT ainda precisam ser serializadas.

Suporte de replicação: Stock SQLite suporta o extensão de sessão, que permite que o conteúdo de uma transação confirmada seja serializado para transmissão e aplicação em um segundo banco de dados. Hctree integra isso no back-end do banco de dados e adiciona suporte para aplicar tais transações a bancos de dados de seguidores em configurações de líder-seguidor. Nesse caso, as transações recebidas de um banco de dados líder podem ser aplicadas mais rapidamente e com maior simultaneidade do que aquelas originalmente aplicadas ao banco de dados líder, porque nenhum validação da transação.

Eliminação das limitações de tamanho do banco de dados: Stock SQLite usa números de página de 32 bits. Usando o tamanho de página padrão de 4 KiB, isso leva a um tamanho máximo de banco de dados de 2^44 bytes ou 16 TiB.

Para lidar com várias operações ao mesmo tempo, Os logs HCtree usam um mecanismo de separação de transações que usa bloqueios de nível de página, semelhante ao MVCC (controle de contenção de várias versões), mas usa controles de transação com base em intervalos de chaves e intervalos de chaves em vez de conjuntos de páginas.

As operações de leitura e gravação são executadas em relação ao instantâneo do banco de dados, cujas alterações se tornam visíveis para o banco de dados principal somente após a conclusão da transação.

Os clientes podem usar três operações para abrir transações:

  • «INÍCIO«: As transações não levam em consideração os dados de acesso de outros clientes. Se as operações de gravação forem executadas dentro de uma transação, a transação só poderá ser confirmada se não houver outras operações de gravação no banco de dados durante o tempo de sua execução.
    «COMEÇAR AO MESMO«: As transações coletam informações sobre o acesso de outros clientes. Se as operações de gravação forem executadas em uma transação, a transação poderá ser confirmada se outras transações tiverem sido confirmadas no banco de dados desde que o instantâneo foi criado.
    «COMECE EXCLUSIVO«: após abrir uma transação, bloqueia as operações de outras transações até que ela seja concluída.

O HCtree oferece suporte à replicação mestre-escravo, que permite transferir transações para outro banco de dados e manter os bancos de dados secundários sincronizados com o banco de dados primário.

O HCtree também remove o limite de tamanho do banco de dados: em vez de identificadores de página de dados de 32 bits, o HCtree usa identificadores de 48 bits, o que aumenta o tamanho máximo do banco de dados de 16 tebibytes para 1 exbibyte (milhões de tebibytes).

Espera-se que o desempenho do SQLite com o back-end HCtree seja pelo menos tão bom quanto o back-end single-threaded clássico. Os clientes SQLite com suporte HCtree poderão acessar os bancos de dados HC-tree e os bancos de dados SQLite legados.

fonte: https://sqlite.org/


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.