Típicamente las bases de datos relacionales modernas han
mostrado poca eficiencia en determinadas aplicaciones que usan los datos de
forma intensiva, incluyendo el indexado de un gran número de documentos, la
presentación de páginas en sitios que tienen gran tráfico, y en sitios de
streaming audiovisual. Las implementaciones típicas de RDBMS se han afinado o
bien para una cantidad pequeña pero frecuente de lecturas y escrituras o para
un gran conjunto de transacciones que tiene pocos accesos de escritura. Por
otro lado NoSQL puede servir gran cantidad de carga de lecturas y escrituras.
Implementaciones de NoSQL usadas en el mundo real incluyen
los 3TB de los marcadores verdes de Digg (indicados para señalar las historias
votadas por otros en la red social; aunque duró menos de 3 meses y fue
abandonado); los 6 TB de la base de datos del “ENSEMBLE” de la Comisión Europea
usado en los modelos de comparación y calidad del aire, y los 50 TB de la
búsqueda de la bandeja de entrada de Facebook.
Las arquitecturas NoSQL frecuentemente aportan escasas
garantías de consistencia, tales como consistencia de eventos o transaccional
restringida a ítems únicos de datos. Algunos sistemas, sin embargo, aportan
todas las garantías de los sistemas ACID en algunas instancias añadiendo una
capa intermedia (como por ejemplo, AppScale o CloudTPS). Hay dos sistemas que
han sido desplegados y que aportan aislamiento snapshot para almacenamientos de
columna: El sistema Percolator de Google (basado en el sistema BigTable) y el
sistema transaccional de Hbase desarrollado por la universidad de Waterloo.
Estos sistemas, desarrollados de forma independiente, usan conceptos similares
para conseguir transacciones ACID distribuidas de múltiples filas con garantías
de aislamiento snapshot para el sistema subyacente de almacenamiento en esa
columna, sin sobrecarga extra en la gestión de los datos, despliegue en el
sistema de middleware, ni mantenimiento introducido por la capa de middleware.
Bastantes sistemas NoSQL emplean una arquitectura
distribuida, manteniendo los datos de forma redundante en varios servidores,
usando frecuentemente una tabla hash distribuida. De esta forma, el sistema
puede realmente escalar añadiendo más servidores, y el fallo en un servidor
puede ser tolerado.
Algunos defensores de NoSQL promueven interfaces simples
tales como los arrays asociativos o los pares clave-valor. Otros sistemas,
tales como las bases de datos nativas en XML, promueven el soporte del estándar
Xquery. Los sistemas más novedosos tales como CloudTPS también soportan unión
de queries.
Por Rocio Rocio Ramirez PDVSA.
No hay comentarios.:
Publicar un comentario