Teorema de CAP: descubre los tres tipos que existen
Como usuario, cada vez que accedes a una página web es posible que realices una consulta de datos. Como es normal, esperas que la web te muestre el resultado en forma breve, correcta y sin ningún error. ¿Cómo es posible algo tan complejo. Por todas las bases de datos, ubicadas en centros de datos, que permiten la interacción de multitud de usuarios a la vez. Esto no sería posible sin el teorema de CAP.
El teorema de CAP se centra en esa relación entre la disponibilidad de los datos, su corrección y su fiabilidad. Las tres patas sobre las que se construye este teorema de CAP son la disponibilidad, consistencia y tolerancia a los fallos. En Educa Open, vamos a ver las distintas casuísticas que se pueden dar,
¿Estás preparado? ¡Comenzamos!
¿Qué es el teorema de CAP?
El teorema de CAP nos traslada la idea de que todo sistema distribuido de almacenamiento de datos es vulnerable a fallos de conectividad de la red. En otras palabras, nos sentencia que un sistema distribuido solo puede ofrecer dos de las tres características anteriormente mencionadas: consistencia, disponibilidad y tolerancia a la partición (CAP).
¿Pero qué es un sistema distribuido? Consiste en una red que almacena datos en varios nodos al mismo tiempo. En la actualidad, todas las aplicaciones en la nube son sistemas distribuidos, por lo que resulta esencial entender este teorema de CAP para diseñar una aplicación en la nube efectiva y coherente.
El teorema de CAP fue difundido por primera vez por el profesor Eric A. Brewer en el año 2000. Dos años después, los profesores del MIT Seth Gilber y Nacy Lynch lo pusieron a prueba y publicaron un estudio que recibió el nombre de “Conjetura de Brewer”.
Tipos de bases de datos según el teorema de CAP
Como venimos comentando, el teorema de CAP se construye con base en tres características esenciales: consistencia, disponibilidad y tolerancia a la partición. ¿Pero a qué nos referimos con cada uno de estos conceptos? Vamos a verlo antes de entrar en los distintos tipos de bases de datos NoSQL.
- C - Consistencia (Consistency): esta variable hace referencia a la lectura coherente de los datos desde cualquier instancia, o lo que es lo mismo, que todos los datos se encuentren sincronizados y replicados en todos los nodos a la vez.
- A - Disponibilidad (Availability): esta variable parece clara. Se centra en obtener una respuesta válida y rápida en todas las solicitudes. Puedes estar los nodos inactivos, pero la respuesta tiene que darse sin ninguna interrupción.
- P - Tolerancia a particiones (Partition tolerance): esta última variable se enfoca en la capacidad que tiene el sistema para permanecer estable, aunque pase una partición o interrupción entre la comunicación de los nodos.
Y ahora sí, estamos listos para ver los distintos tipos de bases NoSQL, según el teorema de CAP.
Base de datos CA (Consistencia y Disponibilidad)
En esta base de datos se prioriza la consistencia de los datos, de manera que todos los nodos obtengan la misma información al mismo tiempo. Por otro lado, esto puede tener como consecuencia una caída temporal mientras que la base se actualiza.
¿Qué queremos decir? Que si no puede haber tolerancia a los fallos, ya que no podrá procesar ninguna petición si hay una partición entre dos cualesquiera. Por ello, a efectos prácticos no puede darse un sistema de distribución con una base de datos CA. Aun así, sí que existen bases de datos relacionales SQL con este tipo, como PostgreSQL.
Base de datos CP (Consistencia y Tolerancia a particiones)
En esta base de datos CP, el sistema prioriza la consistencia y la tolerancia a particiones, pagando el precio de la disponibilidad. Esto se traduce en un periodo de espera cuando se da una partición entre dos nodos cualesquiera. Si se parte esa conexión, el sistema tendrá que apagarse hasta que se resuelva la partición.
Base de datos AP (Disponibilidad y Tolerancia a particiones)
Aquí se renuncia a la consistencia y calidad de los datos. Si se rompe un nodo, por ejemplo, los demás nodos siguen disponibles trabajando al 100 %. Sin embargo, puede darse el caso de que uno de los nodos más alejados devuelva una versión de los datos más antigua que las demás. Sin embargo, la realidad es que cuando se resuelve la partición, todos los nodos se sincronizan de nuevo.
MongoDB: una base de datos CP
MongoDB es el sistema de gestión de bases de datos NoSQL que se goza de una gran popularidad en áreas como el big data, destacando en aplicaciones en tiempo real que se ejecutan en multitud de ubicaciones diferentes. Relacionándolo con el teorema de CAP, se trata de una base de datos CP, que mantiene la coherencia, pero no la disponibilidad.
En MongoDB hay un nodo principal que recibe todas las operaciones de escritura. Los demás nodos son réplicas que registran todo lo que hace el nodo primario y crean su propio conjunto de datos. Sin embargo, si el nodo primario deja de estar disponible, el nodo secundario con el registro de operaciones más reciente entrará en escena para convertirse en primario.
Esto es posible porque replican y copian todo lo que el nodo primario va registrando. Eso sí, hasta que el nuevo nodo maestro no “educa” al resto de nodos secundarios, los clientes no pueden completar ninguna petición de escritura, lo que garantiza la coherencia en los datos.
Cassandra: una base de datos AP
Apache Cassandra es una base de datos NoSQL de código abierto, por lo que es muy conocida dentro del sector. Al igual que MongoDB, puede almacenar datos en una red distribuida, pero no tiene un nodo principal y otros secundarios.
Cassandra ofrece una base de datos AP, en la que antepone la disponibilidad a la consistencia. Si antes se interrumpía el servicio ante una partición del nodo principal, ahora esta casuística no existen. Todos los nodos están disponibles de forma continua para responder a las distintas peticiones que lleguen.
Al estar disponible continuamente, pueden darse algunas incoherencias. Sin embargo, todos los nodos se alinean con sus pares, lo que ofrece una capacidad de reparación.
Consejos para elegir tu base de datos en función del teorema de CAP
Elegir una base de datos para un negocio no es una tarea fácil, ya que de este elemento depende el bienestar de diferentes aspectos. Por ello, ahora qué comprendes en qué consisten cada una de las bases de datos NoSQL, que trabajan en función del teorema de CAP, es el momento de trasladarte una serie de consejos:
- Analiza los requisitos de tu negocio y entiende tus necesidades.
- Reconoce que no puedes tener una solución perfecta y elige entre consistencia o disponibilidad.
- Indaga en los distintos modelos de datos.
- Evalúa la escalabilidad, considerando que puede ser horizontal o vertical.
- Pondera la tolerancia de fallos.
- Analiza el rendimiento bajo diferentes cargas y escenarios.
- Cuenta siempre con la opinión de tu equipo tecnológico.
- No te canses de hacer pruebas antes de comprometerte con un tipo de base de datos.
Artículos relacionados
La Inteligencia Artificial al servicio de la desintegración radiactiva
La inteligencia artificial (IA) ha revolucionado numerosos campos, desde la medicina hasta las finanzas.
Guía técnica de cómo utilizar el algoritmo K-means y elegir el valor de “k”
El algoritmo k-means es uno de los métodos de clustering más utilizados en aprendizaje automático, especialmente debido a su simplicidad y eficiencia.
Voicebot: qué es, beneficios y ejemplos
La inteligencia artificial ha llegado para quedarse en nuestras vidas, puesto que las posibilidades que nos aportan son infinitas.