No IBM developerWorks: Forneça escalabilidade de dados em nível de nuvem com o NoSQL bases de dados
Escalabilidade é o sistema que deve ser capaz de suportar bancos de dados muito grandes com taxas de solicitação muito altas em latência muito baixa.
Os sistemas NoSQL têm vários recursos de design em comum:
- A capacidade de dimensionar horizontalmente a taxa de transferência em muitos servidores.
- Uma interface ou protocolo simples de nível de chamada (em contraste com um SQL
ligação).
- Suporte para modelos de consistência mais fracos que as transações do ACID em
RDBMS mais tradicional.
- Uso eficiente de índices distribuídos e RAM para armazenamento de dados.
- A capacidade de definir dinamicamente novos atributos ou esquemas de dados.
Por que os bancos de dados relacionais podem não ser ideais para o dimensionamento
Em geral, sistemas de gerenciamento de bancos de dados relacionais têm sido considerados como uma solução única para persistência e recuperação de dados por décadas. Eles amadureceram após extensos esforços de pesquisa e desenvolvimento e criaram com sucesso um grande mercado e soluções em diferentes domínios de negócios.
A necessidade cada vez maior de escalabilidade e novos requisitos de aplicativos criaram novos desafios para o RDBMS tradicional, incluindo alguma insatisfação com essa abordagem única em todos os aplicativos de escala da web. A resposta para isso tem sido uma nova geração de software de banco de dados de baixo custo e alto desempenho, projetado para desafiar o domínio dos sistemas de gerenciamento de banco de dados relacional. Uma grande razão para o movimento NoSQL é que diferentes implementações de aplicações web, corporativas e de computação em nuvem têm requisitos diferentes de seus bancos de dados - nem todos os aplicativos exigem consistência de dados rígida, por exemplo.
Outro exemplo: para sites de alto volume como eBay, Amazon, Twitter ou Facebook, escalabilidade e alta disponibilidade são requisitos essenciais que não podem ser comprometidos. Para essas aplicações, até mesmo a menor interrupção pode ter consequências financeiras significativas e afetar a confiança do cliente.
Em DBA.SE: O que significa escalonamento horizontal?
O escalonamento horizontal é essencialmente construído em vez de subir. Você não compra um servidor maior e transfere toda a sua carga para ele, em vez disso, compra mais 1 ou mais servidores e distribui sua carga entre eles.
O escalonamento horizontal é usado quando você tem a capacidade de executar várias instâncias em servidores simultaneamente. Normalmente, é muito mais difícil ir de 1 servidor para 2 servidores, então é ir de 2 a 5, 10, 50, etc.
Depois de abordar os problemas de execução de instâncias paralelas, você pode tirar proveito de ambientes como o Amazon EC2, o Cloud Service da Rackspace, o GoGrid, etc, pois pode aumentar e diminuir instâncias com base na demanda, reduzindo a necessidade de pagar para energia do servidor que você não está usando apenas para cobrir essas cargas de pico.
Bancos de dados relacionais são um dos itens mais difíceis de executar leitura / gravação completa em paralelo.