De IBM developerWorks: Suministre escalabilidad de datos a nivel de la nube con bases de datos NoSQL
La escalabilidad es el sistema que debería ser capaz de soportar bases de datos muy grandes con tasas de solicitud muy altas a muy baja latencia.
Los sistemas NoSQL tienen una serie de características de diseño en común:
- La capacidad de escalar horizontalmente el rendimiento en muchos servidores.
- Una interfaz o protocolo de nivel de llamada simple (en contraste con un enlace SQL).
- Soporte para modelos de consistencia más débil que las transacciones ACID en la mayoría de los RDBMS tradicionales.
- Uso eficiente de índices distribuidos y RAM para almacenamiento de datos.
- La capacidad de definir dinámicamente nuevos atributos o esquema de datos.
Por qué las bases de datos relacionales pueden no ser óptimas para Scaling
En general, los sistemas de gestión de bases de datos relacionales se han considerado como una "solución única para la persistencia y recuperación de datos" durante décadas. Han madurado después de extensos esfuerzos de investigación y desarrollo y han creado con éxito un gran mercado y soluciones en diferentes dominios comerciales.
La necesidad cada vez mayor de escalabilidad y los nuevos requisitos de aplicación han creado nuevos desafíos para el RDBMS tradicional, incluida cierta insatisfacción con este enfoque único para todas las aplicaciones a escala web. La respuesta a esto ha sido una nueva generación de software de base de datos de bajo costo y alto rendimiento diseñado para desafiar el dominio de los sistemas de gestión de bases de datos relacionales. Una gran razón para el movimiento NoSQL es que las diferentes implementaciones de aplicaciones web, empresariales y de computación en la nube tienen diferentes requisitos de sus bases de datos; por ejemplo, no todas las aplicaciones requieren una coherencia de datos rígida.
Otro ejemplo: para sitios web de gran volumen como eBay, Amazon, Twitter o Facebook, la escalabilidad y la alta disponibilidad son requisitos esenciales que no pueden verse comprometidos. Para estas aplicaciones, incluso la más mínima interrupción puede tener importantes consecuencias financieras e impactar la confianza del cliente.
En DBA.SE: ¿Qué significa la escala horizontal?
La escala 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.