En el contexto de la base de datos, me he encontrado con la escalabilidad horizontal como una de las ventajas de las bases de datos NOSQL. ¿Qué significa el término?
¿Cómo se compararía con la escala vertical ?
fuente
En el contexto de la base de datos, me he encontrado con la escalabilidad horizontal como una de las ventajas de las bases de datos NOSQL. ¿Qué significa el término?
¿Cómo se compararía con la escala vertical ?
Escalado horizontal El escalado
horizontal se está construyendo esencialmente en lugar de hacia arriba. No va y compra un servidor más grande y robusto y mueve toda su carga sobre él, en su lugar, compra 1+ servidores adicionales y distribuye su carga entre ellos.
El escalado horizontal se usa cuando tiene la capacidad de ejecutar varias instancias en servidores simultáneamente. Por lo general, es mucho más difícil pasar de 1 servidor a 2 servidores que pasar de 2 a 5, 10, 50, etc.
Una vez que haya abordado los problemas de ejecución de instancias paralelas, puede aprovechar las ventajas de entornos como Amazon EC2, Rackspace's Cloud Service, GoGrid, etc., ya que puede aumentar y disminuir las instancias según la demanda, lo que reduce la necesidad de pagar por la potencia del servidor no estás usando solo para cubrir esas cargas máximas.
Las bases de datos relacionales son uno de los elementos más difíciles de ejecutar en lectura / escritura completa en paralelo.
Vi a Damien Katz hablando sobre CouchDB en StackOverflow DevDays en Austin y uno de sus principales enfoques para su creación fueron estas instancias paralelas. Como este ha sido un foco desde el primer día, sería mucho más capaz de aprovechar la escala horizontal.
Escala
vertical La escala vertical es lo contrario, se acumula en lugar de salir. Vaya y compre la pieza de hardware más sólida que pueda pagar y coloque su aplicación, base de datos, etc.
Mundo real
Por supuesto, ambos tienen sus ventajas y desventajas. Muchas veces se usa una combinación de estos dos para una solución final.
Puede tener su base de datos principal donde todos escriben y leen datos en tiempo real en una gran pieza de hardware. Luego, distribuí copias de solo lectura de la base de datos para un análisis de datos más pesado e informes donde estar al día no importa tanto. Entonces, la aplicación web front-end puede ejecutarse en varios servidores web detrás de un equilibrador de carga.
El escalado horizontal es excelente cuando necesita una aplicación que necesita manejar una gran cantidad de escrituras y lecturas paralelas. Piense en un sitio web que recibe una gran cantidad de tráfico y necesita registrar esto, o necesita registrar una gran cantidad de eventos.
Supongo que el mayor punto a favor es que el escalado horizontal se puede hacer usando hardware básico, y solo hay mucho que puedes hacer con el escalado vertical e intentar agrandar tus cajas existentes.
Los RDBMS tradicionales fallan aquí por una variedad de razones (incluido el hecho de que son ACID), y las soluciones NoSQL se destacan aquí porque pueden escalarse fácilmente horizontalmente, pero esa es otra historia (RDBMS / SQL vs NoSQL).
fuente
Algunas personas en la industria usan terminología diferente para significar lo mismo:
fuente