Shard (arquitetura de banco de dados)
Um shard de banco de dados, em português fragmento de banco de dados, é uma partição horizontal de dados em um banco de dados ou mecanismo de busca. Cada partição individual é referenciada como um shard ou shard de banco de dados. Cada shard é armazenado em uma instância de servidor de banco de dados separada, para distribuir a carga.
Alguns dados dentro de um banco de dados permanecem presentes em todos os shards, mas apenas alguns aparecem em um único shard. Cada shard (ou servidor) age como a fonte única para este subconjunto de dados.[1]
Arquitetura de banco de dados
[editar | editar código-fonte]Particionamento horizontal é um princípio de projeto de banco de dados pelo qual as linhas de um banco de dados são armazenadas separadamente, em vez de serem quebradas em colunas (que é o que a normalização e o particionamento vertical fazem, para diferenciar extensões). Cada partição forma parte de um shard, que pode, por sua vez, ser instalada em um servidor de banco de dados ou localização física separados.
Há várias vantagens para a abordagem de particionamento horizontal. Uma vez que as tabelas são divididas e distribuídas em vários servidores, o número total de linhas em cada tabela em cada base de dados é reduzido. Isso reduz o tamanho do índice, que geralmente melhora o desempenho da pesquisa. Um shard de banco de dados pode ser colocado em um hardware separado, e vários shards podem ser colocados em várias máquinas. Isso permite uma distribuição do banco de dados ao longo de um grande número de máquinas, o que significa que o desempenho do banco de dados espalhado por várias máquinas melhora consideravelmente o desempenho. Além disso, se o shard de banco de dados for baseado em alguma segmentação dos dados no mundo real (por exemplo, clientes europeus versus clientes norte-americanos), então pode ser possível inferir o continência de shard apropriada de maneira fácil e automática, e consultar apenas o fragmento relevante.[2]
- ↑ Pramod J. Sadalage; Martin Fowler (2012), «4: Distribution Models», NoSQL Distilled, ISBN 0321826620
- ↑ Rahul Roy (28 de julho de 2008). «Shard - A Database Design»