stringtranslate.com

teorema de la PAC

En informática teórica , el teorema CAP , también llamado teorema de Brewer en honor al científico informático Eric Brewer , establece que cualquier almacén de datos distribuidos puede proporcionar sólo dos de las tres garantías siguientes: [1] [2] [3]

Consistencia
Cada lectura recibe la escritura más reciente o un error.
Disponibilidad
Cada solicitud recibe una respuesta (sin error), sin la garantía de que contenga la escritura más reciente.
Tolerancia de partición
El sistema continúa funcionando a pesar de que la red descarta (o retrasa) una cantidad arbitraria de mensajes entre nodos.

Cuando ocurre una falla en la partición de la red , se debe decidir si se realiza una de las siguientes acciones:

Teorema CAP Diagrama de Euler

Por tanto, si hay una partición de red, hay que elegir entre coherencia o disponibilidad. Tenga en cuenta que la coherencia definida en el teorema CAP es bastante diferente de la coherencia garantizada en las transacciones de la base de datos ACID . [4]

Explicación

Ningún sistema distribuido está a salvo de fallas en la red, por lo que generalmente se debe tolerar la partición de la red. [5] [6] En presencia de una partición, uno queda con dos opciones: coherencia o disponibilidad . Al elegir coherencia sobre disponibilidad, el sistema devolverá un error o un tiempo de espera si no se puede garantizar que una información particular esté actualizada debido a la partición de la red. Al elegir disponibilidad sobre coherencia, el sistema siempre procesará la consulta e intentará devolver la versión disponible más reciente de la información, incluso si no puede garantizar que esté actualizada debido a la partición de la red.

En ausencia de una partición, se pueden satisfacer tanto la disponibilidad como la coherencia. [7]

Los sistemas de bases de datos diseñados teniendo en cuenta las garantías ACID tradicionales, como RDBMS, prefieren la coherencia a la disponibilidad, mientras que los sistemas diseñados en torno a la filosofía BASE , común en el movimiento NoSQL , por ejemplo, eligen la disponibilidad a la coherencia. [8]

Historia

Según el informático Eric Brewer de la Universidad de California, Berkeley , el teorema apareció por primera vez en otoño de 1998. [8] Fue publicado como principio CAP en 1999 [9] y presentado como una conjetura por Brewer en el Simposio sobre Principios de 2000. de Computación Distribuida (PODC). [10] En 2002, Seth Gilbert y Nancy Lynch del MIT publicaron una prueba formal de la conjetura de Brewer, convirtiéndola en un teorema . [1]

En 2012, Brewer aclaró algunas de sus posiciones, incluido por qué el concepto "dos de tres" de uso frecuente puede ser algo engañoso porque los diseñadores de sistemas solo necesitan sacrificar la coherencia o la disponibilidad en presencia de particiones; Existen técnicas de recuperación y gestión de particiones. Brewer también señaló la diferente definición de consistencia utilizada en el teorema CAP en relación con la definición utilizada en ACID . [8] [11]

Birman y Friedman publicaron en 1996 un teorema similar que establece el equilibrio entre coherencia y disponibilidad en sistemas distribuidos. [12] El resultado de Birman y Friedman restringió este límite inferior a operaciones sin conmutación.

El teorema PACELC , introducido en 2010, [7] se basa en CAP al afirmar que incluso en ausencia de partición, existe otra compensación entre latencia y coherencia. PACELC significa que, si se produce la partición (P), el equilibrio es entre disponibilidad (A) y coherencia (C); De lo contrario (E), el equilibrio es entre latencia (L) y consistencia (C).

Ver también

Referencias

  1. ^ ab Gilbert, Seth; Lynch, Nancy (2002). "La conjetura de Brewer y la viabilidad de servicios web consistentes, disponibles y tolerantes a particiones". Noticias ACM SIGACT . 33 (2). Asociación de Maquinaria de Computación (ACM): 51–59. doi :10.1145/564585.564601. ISSN  0163-5700. S2CID  15892169.
  2. ^ "Teorema CAP de Brewer". julianbrowne.com . 2009-01-11.
  3. ^ "Teorema CAP de Brewers en sistemas distribuidos". royans.net . 2010-02-14.
  4. ^ Liochon, Nicolás. "La redacción confusa de CAP y ACID". Este largo plazo . Consultado el 1 de febrero de 2019 .
  5. ^ Kleppmann, Martín (18 de septiembre de 2015). Una crítica del teorema CAP (Reporte). Apollo - Repositorio de la Universidad de Cambridge. arXiv : 1509.05393 . Código Bib : 2015arXiv150905393K. doi :10.17863/CAM.13083. S2CID  1991487 . Consultado el 24 de noviembre de 2019 .
  6. ^ Martín, Kleppmann. "Por favor, deja de llamar a las bases de datos CP o AP". Blog de Martin Kleppmann . Consultado el 24 de noviembre de 2019 .
  7. ^ ab Abadi, Daniel (23 de abril de 2010). "Reflexiones sobre DBMS: problemas con CAP y el poco conocido sistema NoSQL de Yahoo". Reflexiones sobre DBMS . Consultado el 23 de enero de 2018 .
  8. ^ abc Cervecero, Eric (2012). "CAP doce años después: Cómo han cambiado las" reglas "". Computadora . 45 (2). Instituto de Ingenieros Eléctricos y Electrónicos (IEEE): 23–29. doi :10.1109/mc.2012.37. ISSN  0018-9162. S2CID  890105.
  9. ^ Armando Zorro; Eric Brewer (1999). Cosecha, rendimiento y sistemas tolerantes escalables . Proc. 7mo Taller Temas de actualidad en Sistemas Operativos (HotOS 99). IEEECS. págs. 174-178. doi :10.1109/HOTOS.1999.798396.
  10. ^ Eric cervecero. "Hacia sistemas distribuidos robustos" (PDF) .
  11. ^ Carpintero, Jeff; Hewitt, Eben (julio de 2016). Cassandra: la guía definitiva (2ª ed.). Oreilly. ISBN 9781491933657. En febrero de 2012, Eric Brewer proporcionó una perspectiva actualizada sobre su teorema CAP [...] Brewer ahora describe el axioma "2 de 3" como algo engañoso. Señala que los diseñadores sólo necesitan sacrificar la coherencia o la disponibilidad en presencia de particiones, y que los avances en las técnicas de recuperación de particiones han hecho posible que los diseñadores alcancen altos niveles de coherencia y disponibilidad.
  12. ^ Ken Birman; Roy Friedman (abril de 1996). "Coherencia comercial para la disponibilidad en sistemas distribuidos". hdl :1813/7235.

enlaces externos