El escalado horizontal significa que usted escala agregando más máquinas a su grupo de recursos, mientras que el escalado vertical significa que escala agregando más potencia (CPU, RAM) a una máquina existente .
Una manera fácil de recordar esto es pensar en una máquina en un rack de servidores, agregamos más máquinas en la dirección horizontal y agregamos más recursos a una máquina en la dirección vertical .
En una base de datos, el escalado horizontal a menudo se basa en la partición de los datos, es decir, cada nodo contiene solo una parte de los datos, en el escalado vertical los datos residen en un solo nodo y el escalado se realiza a través de múltiples núcleos, es decir, distribuyendo la carga entre los recursos de CPU y RAM de esa máquina.
Con el escalado horizontal, a menudo es más fácil escalar dinámicamente al agregar más máquinas al grupo existente: el escalado vertical a menudo se limita a la capacidad de una sola máquina, escalar más allá de esa capacidad a menudo implica tiempo de inactividad y viene con un límite superior.
Buenos ejemplos de escala horizontal son Cassandra, MongoDB, Google Cloud Spanner ... y un buen ejemplo de escala vertical es MySQL - Amazon RDS (la versión en la nube de MySQL). Proporciona una manera fácil de escalar verticalmente al cambiar de máquinas pequeñas a máquinas más grandes. Este proceso a menudo implica tiempo de inactividad.
Las cuadrículas de datos en memoria, como GigaSpaces XAP , Coherence , etc., a menudo se optimizan para el escalado horizontal y vertical simplemente porque no están vinculadas al disco. Escalado horizontal mediante particionamiento y escala vertical mediante soporte multinúcleo.
Puede leer más sobre este tema en mis mensajes anteriores:
Escala de salida vs ampliación progresiva y los principios comunes detrás de la NOSQL Alternativas