trilha

Tecnologias/02 - Bancos de Dados/03 - NewSQL2 min

NewSQL e SQL Distribuído

Definição

NewSQL é uma categoria de sistemas que buscam combinar SQL e transações ACID com capacidade de escala para cargas transacionais. O termo inclui propostas com arquiteturas diferentes; não é uma versão da linguagem SQL nem uma certificação.

SQL distribuído descreve sistemas que repartem dados e execução entre nós mantendo uma interface SQL. Há sobreposição com NewSQL, mas os termos não são sinônimos exatos. Referência: Pavlo e Aslett, definição e categorias.

Relação com os outros bancos

Termo O que descreve
Relacional Modelo de dados e operações sobre relações
NoSQL Família de modelos e sistemas que não se limita ao relacional tradicional
NewSQL Proposta de SQL, transações e escala transacional
Distribuído Dados ou processamento coordenados entre máquinas

Um sistema pode ser relacional, distribuído e classificado como NewSQL ao mesmo tempo. Ter SQL também não implica implementar todos os recursos de PostgreSQL ou MySQL.

Exemplo de funcionamento

Imagine pedidos separados por cliente entre três grupos de armazenamento. A aplicação envia uma consulta SQL a um nó de entrada. Esse nó localiza as partes necessárias, coordena a execução e devolve um resultado. Uma operação pode tocar uma única parte ou exigir comunicação entre várias. Esse modelo aparece na separação de camadas do CockroachDB.

Limite central

Distribuir o trabalho acrescenta comunicação e coordenação. Mais máquinas podem ampliar a capacidade total sem tornar cada consulta mais rápida. Garantias e custos devem ser associados ao produto e ao tipo de operação.

Aprofundamento aplicado

Capacidade total e latência individual

Se dez clientes atualizam dez faixas independentes, o trabalho pode ser distribuído. Se todos atualizam a mesma linha de saldo, existe uma decisão compartilhada que precisa ser coordenada. Acrescentar máquinas não remove esse ponto de serialização.

Uma escrita distribuída pode incluir roteamento, validação da transação, replicação e resposta. Parte dessas etapas pode se sobrepor conforme o produto, mas a distância da rede continua participando do orçamento de latência.

Cenário: migrar um serviço com consultas de 3 ms locais para um cluster entre regiões. O throughput agregado pode crescer enquanto a latência de uma transação aumenta. O objetivo deve dizer se busca mais capacidade, disponibilidade regional ou menor tempo para cada usuário, pois esses resultados não são equivalentes.

Exercício: desenhe uma transação que toca uma parte e outra que toca cinco. Resultado esperado: identificar participantes e mensagens adicionais, sem atribuir um número universal de viagens de rede a todos os produtos.

Referência: camadas de arquitetura do CockroachDB.

Relacionado: 2. Particionamento e Escala em NewSQL · 6. Produtos de SQL Distribuído.


Parte de NewSQL

Buscar

Busca por título, seção e texto das notas