Teorema de PACELC
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 17 de mayo de 2021; las comprobaciones requieren
6 ediciones .
El teorema PACELC es una extensión del teorema CAP , que establece que en el caso de separación de red (P) en un sistema informático distribuido, se debe elegir entre disponibilidad (A) y consistencia (C) (según el teorema CAP), pero en cualquier caso, aunque el sistema funcione normalmente en ausencia de separación (E), se debe elegir entre retrasos (L) y coherencia (C).
Descripción
El teorema de PACELC se basa en el teorema de CAP . Ambos teoremas describen las limitaciones y compensaciones que tienen las bases de datos distribuidas en términos de consistencia, disponibilidad y partición. Sin embargo, el teorema de PACELC establece que existe una compensación entre latencia y consistencia incluso en ausencia de partición, lo que brinda una imagen más completa de las posibles compensaciones para los sistemas distribuidos. [una]
El requisito de alta disponibilidad implica que el sistema debe replicar datos. Mientras que un sistema distribuido está replicando datos, existe una compensación entre la consistencia y la 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] y también como artículo en 2012 [1] . El propósito principal del teorema de PACELC es abordar su tesis “Ignorar la necesidad de elegir entre consistencia y latencia en sistemas replicados es una omisión importante [dentro de CAP], ya que la necesidad de esta elección está siempre presente durante la operación del sistema, mientras que CAP es relevante solo para el caso raro discutido de separación de red.
Evaluación de los principales SGBD según el teorema de PACELC
Estimaciones de DBMS para [3]
- De forma predeterminada, Dynamo, Cassandra , Riak y Cosmos DB son sistemas PA/EL: al dividir la red, pierden la coherencia para una mayor disponibilidad y durante el funcionamiento normal pierden la coherencia para una latencia más baja.
- Los sistemas completamente ACID como VoltDB /H-Store y Megastore son PC/EC: no renuncian a la consistencia y estarán dispuestos a pagar con disponibilidad y latencia para lograrlo. BigTable y los sistemas relacionados como HBase también son PC/EC.
- Couchbase proporciona una gama de opciones de disponibilidad y consistencia de tiempo dividido, así como una variedad de opciones de consistencia de latencia y sin división. A diferencia de la mayoría de las demás bases de datos, Couchbase no tiene un solo conjunto de API y no replica todos los servicios de datos de manera uniforme. Para la escritura, Couchbase prefiere la consistencia a la accesibilidad, lo que lo convierte formalmente en CP, pero para la lectura, existe una mayor 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 exploración de rango frente a texto completo). búsqueda, etc.) .) . Además de eso, existe una variabilidad adicional que depende de la replicación entre centros de datos (XDCR), que toma varios clústeres de CP y los vincula a la replicación asíncrona, y Couchbase Lite, que es una base de datos integrada y crea un multimaestro completo (con control de versiones). ). ) topología distribuida.
- Cosmos DB admite cinco niveles de coherencia configurables que le permiten elegir entre C/A durante la partición de la red y L/C durante el funcionamiento normal. Cosmos DB nunca infringe el nivel de coherencia especificado, por lo que es formalmente un CP.
- MongoDB se puede clasificar como un sistema PA/EC. En el caso base, el sistema garantiza que las lecturas y escrituras sean consistentes.
- PNUTS es un sistema PC/EL.
DDBS
|
P+A
|
P+C
|
E+L
|
E+C
|
Dinamo
|
Sí
|
|
si [un]
|
|
casandra
|
Sí
|
|
si [un]
|
|
base de datos cosmos
|
Sí
|
|
Sí
|
|
Base de sofá
|
|
Sí
|
Sí
|
Sí
|
Riak
|
Sí
|
|
si [un]
|
|
Tienda VoltDB/H
|
|
Sí
|
|
Sí
|
mega tienda
|
|
Sí
|
|
Sí
|
MongoDB
|
Sí
|
|
|
Sí
|
PUNTAS
|
|
Sí
|
Sí
|
|
Véase también
Notas
- ↑ 1 2 3 Dynamo, Cassandra y Riak tienen configuraciones para controlar la selección entre L y C [3]
Fuentes
- ↑ 1 2 Daniel J. Abadi. Compensaciones de coherencia en el diseño moderno de sistemas de bases de datos distribuidas // Universidad de Yale. - 2012. - 25 de enero. Archivado desde el original el 16 de mayo de 2017.
- ↑ Daniel J. Abadi. DBMS Musings: problemas con CAP y el poco conocido sistema NoSQL de Yahoo . dbmsmusings.blogspot.ie (23 de abril de 2010). Consultado el 11 de septiembre de 2016. Archivado desde el original el 6 de septiembre de 2016. (indefinido)
- ↑ 1 2 Arinto Murdopo. Compensaciones de consistencia en el diseño moderno de sistemas de bases de datos distribuidas . - 2012. - 17 de abril. Archivado desde el original el 22 de agosto de 2016.
Enlaces