No contexto do banco de dados, deparei-me com a escalabilidade horizontal como uma das vantagens dos bancos de dados NOSQL. O que o termo significa?
Como ele se compara ao dimensionamento vertical ?
No contexto do banco de dados, deparei-me com a escalabilidade horizontal como uma das vantagens dos bancos de dados NOSQL. O que o termo significa?
Como ele se compara ao dimensionamento vertical ?
Respostas:
Escalonamento horizontal O escalonamento
horizontal é essencialmente construído em vez de em cima. Você não compra um servidor maior e transfere toda a sua carga para ele; em vez disso, compra mais de 1 servidor adicional e distribui sua carga entre eles.
A escala horizontal é usada quando você tem a capacidade de executar várias instâncias nos servidores simultaneamente. Normalmente, é muito mais difícil ir de 1 servidor para 2 servidores, depois é de 2 para 5, 10, 50, etc.
Depois de resolver os problemas de execução de instâncias paralelas, você pode tirar grande proveito de ambientes como Amazon EC2, Cloud Service da Rackspace, GoGrid, etc. 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.
Vi Damien Katz falando sobre o CouchDB no StackOverflow DevDays em Austin e um de seus principais focos para sua criação foram essas instâncias paralelas. Como esse tem sido o foco desde o primeiro dia, seria muito mais capaz de tirar proveito do dimensionamento horizontal.
Escala
vertical A escala vertical é o oposto, acumule em vez de sair. Compre o hardware mais forte que você puder pagar e coloque seu aplicativo, banco de dados etc.
Mundo real
Naturalmente, ambos têm vantagens e desvantagens. Muitas vezes, uma combinação desses dois é usada para uma solução final.
Você pode ter seu banco de dados principal, onde todos gravam e leem dados em tempo real em um grande pedaço de hardware. Em seguida, distribua cópias somente leitura do banco de dados para análises e relatórios de dados mais pesados, onde estar atualizado não importa tanto. Em seguida, o aplicativo Web front-end pode estar em execução em vários servidores Web atrás de um balanceador de carga.
A escala horizontal é ótima quando você precisa de um aplicativo que precise lidar com uma grande quantidade de gravações e leituras paralelas. Pense em um site que está recebendo uma quantidade enorme de tráfego e precisa registrar isso ou precisa registrar um grande número de eventos.
Eu acho que o maior ponto positivo é que a escala horizontal pode ser feita usando hardware comum, e há muito que você pode fazer com a escala vertical e tentando aumentar as caixas existentes.
Os RDBMSs tradicionais falham aqui por vários motivos (incluindo o fato de serem ACID), e as soluções NoSQL se destacam aqui porque podem ser facilmente escalonadas horizontalmente - mas isso é outra história (RDBMS / SQL vs NoSQL).
Algumas pessoas na indústria usam terminologia diferente para significar a mesma coisa: