Dynamo é um grupo de técnicas que quando tomados em conjunto podem formar um sistema de armazenamento estruturado altamente disponível de valores-chave[1] ou de um sistema de arquivos distribuído.[2] Tem propriedades de ambos os bancos de dados e tabelas hash distribuídas (DHTs). Amazon DynamoDB é "construído nos princípios da Dynamo"[3] (aparentemente com algumas melhorias) e é um serviço hospedado na infra-estrutura AWS. Ele foi criado para ajudar a resolver alguns problemas de escalabilidade que o site da Amazon.com experimentava durante a temporada de férias de 2004.[4] Em 2007 foi utilizado em Amazon Web Services, tal como o seu Simple Storage Service (S3).[5]

Princípios editar

O Dynamo deve ser capaz de escalar um host de armazenamento (doravante, referido como "nó") de cada vez, com um impacto mínimo tanto sobre os operadores do sistema como sobre o próprio sistema. Cada nó no Dynamo deve ter o mesmo conjunto de responsabilidades que seus pares. Não deve haver nó distinto ou nós que assumam papéis especiais ou conjunto extra de responsabilidades. O projeto deve favorecer as técnicas descentralizadas ponto-a-ponto sobre o controle centralizado. O sistema precisa ser capaz de explorar a heterogeneidade na infra-estrutura em que é executado, por exemplo, a distribuição do trabalho deve ser proporcional às capacidades dos servidores individuais, isso é essencial para adicionar novos nós com maior capacidade sem precisar atualizar todos os hosts de uma só vez.

Implementações editar

A Amazon publicou o artigo sobre o Dynamo, mas nunca divulgou sua implementação. A camada índice do Amazon S3 implementa e estende muitas das características principais de um Dynamo. Desde então, várias implementações foram criadas com base no artigo. O documento também inspirou muitos outros implementações de banco de dados NoSQL.[6] Aqui estão alguns projetos que implementam ou foram inspirados por ele: Aerospike, Apache Cassandra, Projeto Voldemort e, Riak.

Referências

  1. «Dynamo: Amazon's Highly Available Key-value Store» (PDF) (em inglês). All Things Distributed. 2007. Consultado em 8 de maio de 2017 
  2. Decandia, G.; Hastorun, D.; Jampani, M.; Kakulapati, G.; Lakshman, A.; Pilchin, A.; Sivasubramanian, S.; Vosshall, P.; Vogels, W. (2007). «Dynamo». Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles - SOSP '07 (em inglês). New York, N.Y.: Association for Computing Machinery. p. 205. ISBN 9781595935915. doi:10.1145/1294261.1294281 
  3. «Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications». All Things Distributed (em inglês). 18 de janeiro de 2012. Consultado em 8 de maio de 2017 
  4. «Amazon Takes Another Pass at NoSQL with DynamoDB». readwrite (em inglês). 18 de janeiro de 2012. Consultado em 8 de maio de 2017 
  5. Werner Vogels (2 de outubro de 2007). «Amazon's Dynamo» (em inglês). Consultado em 8 de maio de 2017 
  6. «Launched a thousand NoSQL databases». readwrite (em inglês). 18 de janeiro de 2012. Consultado em 8 de maio de 2017 

Ligações externas editar

  Este artigo sobre Internet é um esboço. Você pode ajudar a Wikipédia expandindo-o.