ScholarGate
Assistente

Particionamento e Replicação de Dados

O particionamento de dados divide um banco de dados em múltiplos nós para escalabilidade, enquanto a replicação mantém cópias dos dados em vários nós para disponibilidade e desempenho de leitura; juntos, eles determinam como um banco de dados distribuído escala e tolera falhas.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

O particionamento (fragmentação ou sharding) divide as linhas ou colunas de uma relação entre múltiplos nós, de modo que cada um contenha uma porção dos dados; a replicação armazena cópias dos mesmos dados em múltiplos nós; as políticas de alocação e replicação governam conjuntamente a escalabilidade, disponibilidade e balanceamento de carga.

Scope

Este tópico aborda como os dados são alocados entre os nós: particionamento horizontal (sharding) por intervalo, hash ou lista e particionamento vertical por coluna; estratégias de particionamento, incluindo hashing consistente; e modelos de replicação — síncrona versus assíncrona, primário-backup versus multi-primário — juntamente com as compensações de consistência-disponibilidade que implicam. Ele trata de como o particionamento permite o paralelismo e como a replicação permite a tolerância a falhas. Exclui os protocolos de commit e consenso que mantêm as réplicas em acordo, que são um tópico adjacente.

Core questions

  • Como o particionamento por intervalo, hash e lista distribui as linhas entre os nós?
  • Quando o particionamento vertical é preferível ao particionamento horizontal?
  • Como o hashing consistente limita o movimento de dados quando nós são adicionados ou removidos?
  • Quais são as compensações entre a replicação síncrona e assíncrona?
  • Como a replicação primário-backup e multi-primário diferem em consistência e disponibilidade?

Key concepts

  • particionamento horizontal (sharding)
  • particionamento vertical
  • particionamento por intervalo, hash e lista
  • hashing consistente
  • replicação síncrona versus assíncrona
  • replicação primário-backup
  • replicação multi-primário
  • chave de partição e balanceamento de carga

Key theories

Particionamento horizontal e vertical
O particionamento horizontal (sharding) distribui as linhas de uma tabela entre os nós por uma chave de partição para espalhar a carga e permitir o processamento paralelo, enquanto o particionamento vertical divide uma tabela por colunas; a função de particionamento afeta criticamente o balanceamento de carga e a localidade da consulta.
Hashing consistente
O hashing consistente mapeia chaves e nós para um anel de modo que adicionar ou remover um nó move apenas uma pequena e limitada fração de chaves, tornando-o uma técnica fundamental para particionamento em armazenamentos de dados distribuídos elásticos.
Modelos e compensações de replicação
A replicação síncrona mantém cópias idênticas ao custo de latência e disponibilidade sob partições, enquanto a replicação assíncrona é mais rápida, mas pode servir dados desatualizados; o primário-backup centraliza as escritas, enquanto o multi-primário permite escritas em qualquer lugar ao custo da resolução de conflitos.

Clinical relevance

O particionamento e a replicação são as alavancas que permitem que os sistemas de dados escalem e permaneçam disponíveis: o sharding permite que um único banco de dados lógico atenda a cargas de trabalho que nenhuma máquina individual conseguiria lidar, e a replicação mantém os serviços funcionando e rápidos em caso de falhas e entre regiões, tornando essas técnicas centrais para toda plataforma de dados em larga escala.

History

A fragmentação e a replicação foram estudadas em sistemas de banco de dados distribuídos iniciais do final dos anos 1970 e 1980. O hashing consistente, introduzido por Karger e colegas em 1997 para cache web, foi posteriormente adotado por armazenamentos de chave-valor escaláveis como um esquema de particionamento, e grandes serviços de internet popularizaram o sharding e a replicação agressivos para elasticidade e disponibilidade.

Key figures

  • M. Tamer Özsu
  • Patrick Valduriez
  • David Karger

Related topics

Seminal works

  • ozsu2011
  • karger1997

Frequently asked questions

Qual é a diferença entre particionamento e replicação?
O particionamento divide os dados de modo que cada nó contenha um subconjunto diferente, o que distribui o armazenamento e a carga para escalabilidade. A replicação mantém cópias dos mesmos dados em múltiplos nós para disponibilidade e leituras mais rápidas. A maioria dos grandes sistemas faz ambos: os dados são fragmentados entre os nós, e cada fragmento é replicado várias vezes.
Por que usar hashing consistente em vez de particionamento por hash simples?
Com o particionamento por hash comum baseado em módulo, a alteração do número de nós remapeia quase todas as chaves, forçando um movimento massivo de dados. O hashing consistente organiza chaves e nós em um anel de modo que adicionar ou remover um nó apenas reatribui as chaves próximas a esse nó, mantendo o rebalanceamento barato à medida que o cluster cresce ou diminui.

Methods for this concept

Related concepts