Logotipo de Zephyrnet

Ninguna base de datos es perfecta: aplicación del teorema CAP a la elección de la base de datos – DATAVERSITY

Fecha:

Desde su introducción en el mercado en el año 2000, el teorema de coherencia, disponibilidad y partición, o teorema CAP, ha sido un principio rector en la gestión de bases de datos. El informático Eric Brewer presentó el teorema CAP en una charla sobre sistemas distribuidos que proporcionan servicios web. Posteriormente, dos profesores del MIT demostraron el teorema. Afirma que una base de datos puede ser sólida en una o dos de tres áreas (consistencia de la base de datos, disponibilidad y tolerancia a las particiones), pero no en las tres simultáneamente. Por ejemplo, las bases de datos SQL tradicionales priorizan una fuerte coherencia, pero pueden comprometer la disponibilidad durante fallas de la red. A diferencia de, Bases de datos NoSQL priorizar la disponibilidad y la tolerancia de partición, pero puede aceptar eventuales fallos en la coherencia. El teorema CAP describe una limitación innata de los sistemas distribuidos y se aplica a varias bases de datos. Es importante que los diseñadores consideren cuidadosamente qué dos garantías de PAC son más cruciales para sus organizaciones antes de implementar una base de datos.

Definición de coherencia, disponibilidad y tolerancia de partición 

Los sistemas distribuidos se distribuyen en múltiples computadoras y servidores, lo que ofrece una solución para manejar cantidades masivas de datos. Consistencia en un sistema distribuido se refiere al grado en que los datos aparecen correcta e idénticamente en todos los nodos. Esto se puede lograr mediante bloqueos que impidan que varios usuarios realicen cambios a la vez. Los sistemas que priorizan la coherencia son confiables y robustos. En un sistema consistente, cada servidor entrega una respuesta apropiada a la solicitud especificada. El significado de coherencia varía según el tipo de servicio solicitado. Trivial y débilmente servicios consistentes, que no requieren coordinación entre servidores o solo una coordinación menor entre servidores, respectivamente, no entran dentro del alcance del teorema CAP y generalmente evitan sacrificar la disponibilidad y la tolerancia de partición. Sin embargo, cualquier servicio que requiera una coordinación significativa entre servidores incurrirá en compensaciones de CAP.

Disponibilidad Se refiere a la capacidad de todos los nodos de un sistema para leerse o escribirse de forma consistente. En un sistema disponible, todas las solicitudes del usuario reciben una respuesta confiable. Incluso si algunos nodos funcionan mal, un sistema disponible seguirá respondiendo a las solicitudes de los usuarios. Sin embargo, los sistemas que priorizan la disponibilidad a menudo no pueden garantizar que los datos devueltos estén completamente actualizados. 

In tolerante a la partición En los sistemas, los datos se distribuyen entre múltiples servidores, lo que aumenta la robustez en casos de fallas parciales y divisiones de la red. En una partición de red, los nodos se dividen en múltiples subredes que no pueden comunicarse fácilmente entre sí. Las particiones generalmente se consideran inevitables en sistemas distribuidos en un área amplia. Un sistema tolerante a particiones tiene la capacidad de recuperarse rápidamente y mantener la función frente a estas divisiones. 

Encontrar la base de datos adecuada

Las bases de datos que priorizan la coherencia y la disponibilidad, incluidas Oracle y MySQL, son ideales para casos de uso como aplicaciones bancarias y procesamiento de transacciones. En el pasado, los sistemas priorizaban la coherencia y la disponibilidad, pero a medida que los sistemas de datos y el almacenamiento evolucionan, la coherencia está empezando a perder importancia. A menudo, los sistemas más nuevos tienen casos de uso en los que está permitido que varios usuarios realicen cambios a la vez. En estos casos, la tolerancia de partición es la prioridad.

Las bases de datos consistentes y tolerantes a las particiones, incluidas MongoDB, Redis y Google Spanner, son ideales para almacenar documentos. Google Drive, por ejemplo, utiliza Google Spanner, una base de datos de coherencia y tolerancia de partición (CP). El inconveniente de las bases de datos CP es que pueden dejar de estar disponibles durante una partición de red. Los usuarios de Google Drive, por ejemplo, a veces pierden el acceso a sus documentos durante breves periodos de tiempo. 

Mientras tanto, las bases de datos que priorizan la disponibilidad y la tolerancia a las particiones son ideales para casos de uso donde la velocidad es más importante, como las operaciones de análisis de datos. Netflix utiliza una base de datos de disponibilidad y tolerancia de partición (AP) llamada Cassandra, mientras que Airbnb utiliza una conocida como Riak. Las bases de datos AP sacrifican cierta coherencia; una operación de lectura puede devolver un valor desactualizado si la base de datos está particionada en el momento de la lectura.

Debido a que cada base de datos tiene fortalezas y debilidades únicas, seleccionar la mejor requiere una comprensión profunda de los requisitos y la aplicación específica de una organización. Es vital establecer objetivos de nivel de servicio (SLO) claros con anticipación y realizar un seguimiento regular de los indicadores de nivel de servicio (SLI). La escala de la base de datos, tanto en el momento de la implementación como en términos de potencial para un mayor crecimiento, es una consideración crucial.

Otra consideración es la fragmentación de datos, en la que los datos se dividen en segmentos y se comparten entre servidores. Esto puede resultar ventajoso para bases de datos específicas, ya que aumenta la disponibilidad y la tolerancia de las particiones y puede facilitar la recuperación ante desastres y las copias de seguridad. La fragmentación implica algunos sacrificios en lo que respecta a la coherencia. Determinar si la fragmentación de datos es apropiada es una parte importante de la planificación del diseño de la base de datos. 

Cómo minimizar las compensaciones de la PAC 

Aunque ninguna base de datos puede proporcionar una coherencia, disponibilidad y tolerancia de partición perfectas, existen varias formas de mitigar las compensaciones de CAP. La replicación de bases de datos, en la que los datos se copian continuamente desde una base de datos de origen a otras, mejora la disponibilidad y la tolerancia a las particiones, incluso en bases de datos que priorizan la coherencia. La arquitectura híbrida implica combinar dos bases de datos diferentes (por ejemplo, una base de datos relacional con una base de datos NoSQL) para aprovechar los beneficios de ambos diseños y minimizar sus inconvenientes. 

Dividir un sistema distribuido en segmentos permite a los sistemas priorizar los elementos de CAP que son más importantes para ciertos datos u operaciones. Algunas arquitecturas incorporan múltiples bases de datos independientes para diferentes casos de uso. Por ejemplo, el mercado en línea Etsy utiliza una base de datos MySQL para lograr una mayor coherencia; Redis de alta disponibilidad para almacenamiento en caché en memoria; y Apache Kafka, que prioriza la tolerancia a las particiones, para la transmisión de datos.

Muchas bases de datos nuevas intentan superar las limitaciones descritas por el teorema CAP. CockroachDB es una base de datos SQL distribuida que utiliza un algoritmo de consenso Raft para garantizar que todas las réplicas de la base de datos estén de acuerdo en el orden de escritura, de modo que la base de datos permanezca disponible incluso si algunas réplicas fallan. Esto permite a CockroachDB ofrecer una gran coherencia y disponibilidad, incluso frente a particiones de red. TiDB, otra base de datos SQL distribuida más nueva, utiliza un algoritmo de consenso Raft para proporcionar una gran coherencia y disponibilidad para aplicaciones a gran escala.

El futuro del diseño de bases de datos

Nuevas tecnologías y tendencias tienen el potencial de abordar aún más las compensaciones del teorema CAP. Muchos diseñadores de bases de datos están cambiando a arquitecturas basadas en la nube, que tienen una serie de ventajas sobre las bases de datos locales, incluida la escalabilidad, la elasticidad y la tolerancia a fallas. Las implementaciones de múltiples nubes son capaces de hacer que las arquitecturas de bases de datos híbridas sean más fáciles de implementar. Se pueden emplear algoritmos de aprendizaje automático (ML) para ajustar dinámicamente el equilibrio entre coherencia y disponibilidad, en función de los patrones de carga de trabajo, los requisitos de las aplicaciones y los patrones de acceso a los datos. Las compensaciones ajustables entre disponibilidad y coherencia (TACT) El sistema, desarrollado por Haifeng Yu y Amin Vahdat, permite que las aplicaciones actualicen continuamente el nivel de coherencia requerido. Finalmente, a medida que la computación cuántica madure, las bases de datos pueden incorporar técnicas criptográficas resistentes a los cuánticos para garantizar la integridad, la confidencialidad y la coherencia de los datos.

El teorema CAP proporciona un marco útil para comprender las fortalezas y limitaciones de varias bases de datos. Si bien ninguna base de datos es perfecta, algunas son más adecuadas que otras para aplicaciones específicas. Con demasiada frecuencia, las empresas seleccionan bases de datos según su disponibilidad o conveniencia. Esto puede generar costos innecesarios sin satisfacer las necesidades de la organización. En cambio, es importante que los desarrolladores tengan un conocimiento profundo de los fundamentos de las bases de datos y los detalles de sus casos de uso específicos. Es crucial determinar cuál de las tres propiedades de la base de datos es más importante para la aplicación y definir objetivos e indicadores de nivel de servicio específicos antes de la implementación. Aunque puede que no sea posible que una única base de datos ofrezca coherencia, tolerancia a las particiones, y La disponibilidad, la arquitectura híbrida y de múltiples bases de datos pueden mitigar las debilidades de una base de datos. A medida que las tecnologías y desarrollos emergentes, como la computación en la nube y el aprendizaje automático, sigan impactando el campo del diseño de bases de datos, las formas en que los desarrolladores abordan las compensaciones de la PAC también seguirán evolucionando.

punto_img

Información más reciente

punto_img