Scalability patterns for distributed NoSQL databases - Costa, Caio Holanda (2017)
Para lidar com a crescente demanda de armazenamento e provimento de dados das atuais aplicações on-line, empresas como Amazon e Google desenvolveram bancos de dados não relacionais verdadeiramente distribuídos que se tornaram conhecidos como bancos de dados NoSQL. A fim de prover de maneira simples uma grande capacidade de escalabilidade horizontal, esses bancos de dados têm como modelo de dados o domínio da aplicação e abrem mão de alguns princípios de bancos de dados relacionais. No entanto, adotar um banco de dados NoSQL distribuído e comprometer-se com seu modelo de dados pode não fornecer o nível de escalabilidade necessário para alguns cenários. Nesses casos, é necessário implementar a abordagem de modelagem de dados correta para alavancar a escalabilidade do banco de dados. Portanto, este trabalho cataloga quatro padrões de modelagem de dados que visam melhorar a escalabilidade de aplicativos baseados em bancos de dados NoSQL distribuídos: UUID Key, Index Table, Enumerable Keys e Fan-out on Write. Os padrões propostos incluem testes baseados em cargas de trabalho que comparam o desempenho dos padrões com abordagens mais intuitivas e menos escaláveis, a fim de proporcionar uma melhor compreensão das melhorias e desvantagens dos padrões. O código-fonte das cargas de trabalho e das ferramentas desenvolvidas para executar os testes dos padrões estão compartilhados em um repositório público de forma que estudantes e desenvolvedores possam personalizá-los e testá-los em seus próprios ambientes. Palavras-chave: NoSQL. banco de dados. padrões. escalabilidade. benchmark. cargas de trabalho. YCSB.