De IBM developerWorks: Suministre escalabilidad de datos a nivel de la nube con NoSQL bases de datos
Escalabilidad es el sistema que debería ser compatible con bases de datos muy grandes con tasas de solicitud muy altas y con una latencia muy baja.
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 SQL
vinculante).
- Compatibilidad con modelos de consistencia más débiles que las transacciones ACID en
RDBMS más tradicionales.
- Uso eficiente de índices distribuidos y RAM para el almacenamiento de datos.
- La capacidad de definir dinámicamente nuevos atributos o esquemas de datos.
Por qué las bases de datos relacionales pueden no ser óptimas para el escalado
En general, los sistemas de administració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 gran éxito un gran mercado y soluciones en diferentes dominios de negocios.
La creciente necesidad de escalabilidad y los nuevos requisitos de las aplicaciones han creado nuevos desafíos para los RDBMS tradicionales, que incluyen cierta insatisfacción con este enfoque de talla única en algunas aplicaciones de 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 base 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 consistencia rígida de los datos.
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 se pueden comprometer. Para estas aplicaciones, incluso la más mínima interrupción puede tener importantes consecuencias financieras e impacto en la confianza del cliente.
Sobre DBA.SE: ¿Qué significa escala horizontal?
El escalado horizontal se está construyendo esencialmente en lugar de hacia arriba. No vas a comprar un servidor más grande y robusto y mueves toda tu carga a él, en lugar de eso, compras 1+ servidores adicionales y distribuyes tu carga a través de ellos.
La escala 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 de 2 a 5, 10, 50, etc.
Una vez que haya abordado los problemas de la ejecución de instancias paralelas, puede aprovechar los entornos como Amazon EC2, el Servicio en la nube de Rackspace, GoGrid, etc., ya que puede subir y bajar instancias según la demanda, lo que reduce la necesidad de pagar. para la potencia del servidor no está utilizando solo para cubrir esas cargas pico.
Las bases de datos relacionales son uno de los elementos más difíciles de ejecutar de lectura / escritura completa en paralelo.