ScholarGate
Assistente

Sistemas de Armazenamento Escaláveis

Sistemas de armazenamento escaláveis distribuem dados por várias máquinas para fornecer capacidade, rendimento e disponibilidade que superam as de um único servidor, ao mesmo tempo que mascaram as falhas de nós individuais.

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

Definition

Um sistema de armazenamento escalável armazena dados em um cluster de máquinas, particionando-os para capacidade e rendimento e replicando-os para durabilidade e disponibilidade, de modo que o sistema agregado escala com o número de nós, tolerando falhas de nós individuais.

Scope

Este tópico abrange sistemas de arquivos distribuídos projetados para clusters de commodities, armazenamentos distribuídos de chave-valor e de coluna larga, e as técnicas de sobreposição estruturada — hashing consistente e tabelas hash distribuídas — usadas para particionar e localizar dados em escala. Ele aborda o particionamento de dados (sharding), a replicação para durabilidade e as compensações de consistência e disponibilidade que distinguem armazenamentos fortemente consistentes de armazenamentos altamente disponíveis.

Core questions

  • Como os dados são particionados e localizados em um conjunto grande e mutável de nós?
  • Como a durabilidade e a disponibilidade são alcançadas apesar das falhas frequentes de nós?
  • Que garantias de consistência um armazenamento escalável pode oferecer, e a que custo?

Key theories

Sistemas de arquivos em cluster
Sistemas como o Google File System armazenam arquivos enormes como blocos replicados em servidores de commodity, otimizando para acesso sequencial grande e tratando as falhas como a norma, e não como a exceção.
Armazenamentos estruturados distribuídos
Armazenamentos de coluna larga e chave-valor, como Bigtable e Dynamo, particionam dados por chave entre nós e os replicam, trocando expressividade de consulta e consistência por escalabilidade horizontal e disponibilidade.
Hashing consistente e tabelas hash distribuídas
O hashing consistente mapeia chaves e nós para um anel de forma que adicionar ou remover um nó move apenas uma pequena fração das chaves, e tabelas hash distribuídas como Chord fornecem pesquisa de chave escalável e descentralizada com roteamento logarítmico.

Clinical relevance

O armazenamento escalável é o alicerce durável das plataformas em nuvem e de grandes serviços web: armazenamentos de objetos, bancos de dados e pipelines de análise repousam sobre sistemas de arquivos distribuídos e armazenamentos de chave-valor cujas escolhas de particionamento e replicação definem as garantias de durabilidade e consistência do sistema.

History

Tabelas hash distribuídas peer-to-peer como Chord (2001) demonstraram pesquisa descentralizada escalável; o Google File System (2003) e o Bigtable (2006-2008) demonstraram armazenamento em escala de cluster para dados estruturados; e o Dynamo da Amazon (2007) popularizou o armazenamento de chave-valor altamente disponível, juntos fundando o cenário moderno de armazenamento escalável e NoSQL.

Debates

Consistência forte versus alta disponibilidade no armazenamento
Armazenamentos fortemente consistentes simplificam a lógica da aplicação, mas devem sacrificar a disponibilidade sob partições, enquanto armazenamentos altamente disponíveis como o Dynamo aceitam divergência temporária e empurram a resolução de conflitos para a aplicação; a escolha certa depende da tolerância dos dados à desatualização.

Key figures

  • Sanjay Ghemawat
  • Werner Vogels
  • Ion Stoica
  • Hari Balakrishnan

Related topics

Seminal works

  • ghemawat2003
  • decandia2007
  • stoica2001

Frequently asked questions

Que problema o hashing consistente resolve?
Quando os dados são particionados entre nós por hashing de chaves, o hashing ingênuo reorganiza quase tudo quando um nó é adicionado ou removido. O hashing consistente organiza chaves e nós em um anel de modo que tal mudança realoca apenas uma pequena e limitada fração de chaves, o que é essencial para clusters elásticos e em constante mudança.

Methods for this concept

Related concepts