En informática teórica , el teorema PACELC es una extensión del teorema CAP . Afirma que en el caso de la partición de red (P) en un sistema informático distribuido , uno tiene que elegir entre disponibilidad (A) y consistencia (C) (según el teorema CAP), pero de lo contrario (E), incluso cuando el sistema está funcionando normalmente en ausencia de particiones, uno tiene que elegir entre latencia (L) y consistencia (C).
Descripción general
PACELC se basa en el teorema de CAP . Ambos teoremas describen cómo las bases de datos distribuidas tienen limitaciones y compensaciones con respecto a la consistencia, disponibilidad y tolerancia de partición. Sin embargo, PACELC va más allá y afirma que existe una compensación adicional: entre latencia y consistencia, incluso en ausencia de particiones, proporcionando así una descripción más completa de las posibles compensaciones de consistencia para los sistemas distribuidos. [1]
Un requisito de alta disponibilidad implica que el sistema debe replicar los datos. Tan pronto como un sistema distribuido replica los datos, surge un compromiso entre coherencia y latencia.
El teorema de PACELC fue descrito por primera vez por Daniel J. Abadi de la Universidad de Yale en 2010 en una publicación de blog, [2] que luego aclaró en un artículo en 2012. [1] El propósito de PACELC es abordar su tesis de que "Ignorar la La compensación de consistencia / latencia de los sistemas replicados es un descuido importante [en CAP], ya que está presente en todo momento durante la operación del sistema, mientras que CAP solo es relevante en el caso posiblemente raro de una partición de red ".
Calificaciones de la base de datos PACELC
Las calificaciones de la base de datos PACELC son de [3]
- Las versiones predeterminadas de DynamoDB , Cassandra , Riak y Cosmos DB son sistemas PA / EL: si se produce una partición, renuncian a la coherencia por disponibilidad y, en condiciones normales de funcionamiento, renuncian a la coherencia por una latencia más baja.
- Los sistemas totalmente ACID como VoltDB / H-Store, Megastore y MySQL Cluster son PC / EC: se niegan a renunciar a la consistencia y pagarán los costos de disponibilidad y latencia para lograrlo. BigTable y sistemas relacionados como HBase también son PC / EC.
- Couchbase proporciona una variedad de opciones de consistencia y disponibilidad durante una partición, e igualmente una variedad de opciones de latencia y consistencia sin partición. A diferencia de la mayoría de las otras bases de datos, Couchbase no tiene un solo conjunto de API ni escala / replica todos los servicios de datos de manera homogénea. Para las escrituras, Couchbase favorece la consistencia sobre la disponibilidad, lo que lo convierte en formalmente CP, pero en la lectura hay más variabilidad controlada por el usuario según la replicación del índice, el nivel de consistencia deseado y el tipo de acceso (búsqueda de un solo documento frente a escaneo de rango frente a búsqueda de texto completo, etc.) . Además de eso, existe una mayor variabilidad dependiendo de la replicación entre centros de datos (XDCR), que toma múltiples clústeres de CP y los conecta con la replicación asincrónica y Couchbase Lite, que es una base de datos integrada y crea una base de datos completamente multimaestro (con seguimiento de revisión). ) topología distribuida.
- Cosmos DB admite cinco niveles de consistencia ajustables que permiten compensaciones entre C / A durante P y L / C durante E. Cosmos DB nunca viola el nivel de consistencia especificado, por lo que formalmente es CP.
- MongoDB se puede clasificar como un sistema PA / EC. En el caso de referencia, el sistema garantiza que las lecturas y escrituras sean coherentes.
- PNUTS es un sistema PC / EL.
- Hazelcast IMDG y, de hecho, la mayoría de las cuadrículas de datos en memoria son una implementación de un sistema PA / EC; Hazelcast se puede configurar para que sea EL en lugar de EC. [4] Las primitivas de simultaneidad (Lock, AtomicReference, CountDownLatch, etc.) pueden ser PC / EC o PA / EC. [5]
- FaunaDB implementa Calvin , un protocolo de transacción creado por el Dr. Daniel Abadi y autor [1] del teorema PACELC, y ofrece a los usuarios controles ajustables para la compensación LC. Es PC / EC para transacciones estrictamente serializables y EL para lecturas serializables.
DDBS | P + A | P + C | E + L | E + C |
---|---|---|---|---|
DynamoDB | [a] | |||
Casandra | [a] | |||
Cosmos DB | ||||
Couchbase | ||||
Riak | [a] | |||
VoltDB / H-Store | ||||
Megastore | ||||
BigTable / HBase | ||||
Clúster MySQL | ||||
MongoDB | ||||
PNUTS | ||||
Hazelcast IMDG [6] [5] | ||||
FaunaDB [7] |
Ver también
Notas
Referencias
- ^ a b c Abadi, Daniel J. "Compensaciones de coherencia en el diseño de sistemas de bases de datos distribuidas modernas" (PDF) . Universidad de Yale.
- ^ Abadi, Daniel J. (23 de abril de 2010). "DBMS Musings: problemas con CAP, y poco conocido sistema NoSQL de Yahoo" . Consultado el 11 de septiembre de 2016 .
- ^ a b Resumen de diapositivas "Compensaciones de coherencia en el diseño de sistemas de bases de datos distribuidas modernas" por Arinto Murdopo, ingeniero de investigación
- ^ Abadi, Daniel (8 de octubre de 2017). "Reflexiones DBMS: Hazelcast y el mítico sistema PA / EC" . Reflexiones DBMS . Consultado el 20 de octubre de 2017 .
- ^ a b "Manual de referencia de Hazelcast IMDG" . docs.hazelcast.org . Consultado el 17 de septiembre de 2020 .
- ^ Abadi, Daniel (8 de octubre de 2017). "Reflexiones DBMS: Hazelcast y el mítico sistema PA / EC" . Reflexiones DBMS . Consultado el 20 de octubre de 2017 .
- ^ Abadi, Daniel (21 de septiembre de 2018). "DBMS Musings: Los sistemas de bases de datos NewSQL no garantizan la coherencia, y culpo a Spanner" . Reflexiones DBMS . Consultado el 23 de febrero de 2019 .
enlaces externos
- "Compensaciones de consistencia en el diseño moderno de sistemas de bases de datos distribuidas", por Daniel J. Abadi, Universidad de Yale Documento original que formalizó PACELC
- "Problemas con CAP y el poco conocido sistema NoSQL de Yahoo", por Daniel J. Abadi, Universidad de Yale . Publicación de blog original que describió por primera vez a PACELC