Теорема PACELC: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Описание: уточнён перевод цитаты
Строка 6: Строка 6:
Требование высокой доступности подразумевает, что система должна реплицировать данные. Пока распределённая система реплицирует данные, возникает необходимость выбирать между согласованностью и задержками.
Требование высокой доступности подразумевает, что система должна реплицировать данные. Пока распределённая система реплицирует данные, возникает необходимость выбирать между согласованностью и задержками.


Теорема PACELC впервые была описана Даниэлем Дж. Абади из [[Йельский университет|Йельского университета]] в 2010 году в блоге<ref>{{Cite web|url=http://dbmsmusings.blogspot.ie/2010/04/problems-with-cap-and-yahoos-little.html|title=DBMS Musings: Problems with CAP, and Yahoo’s little known NoSQL system|author=Daniel J. Abadi|website=dbmsmusings.blogspot.ie|date=2010-04-23|publisher=|access-date=2016-09-11}}</ref> , а также в виде статьи в 2012 году<ref name=":0" />. Основная цель теоремы PACELC — обратиться к его тезису «Игнорирование необходимостью выбирать между консистентностью и задержкой в реплицируемых системах является основой [для CAP], поскольку необходимость выбора присутствует во всё время работы системы, в то время как CAP имеет отношение только к редкому случаю разделения сети».
Теорема PACELC впервые была описана Даниэлем Дж. Абади из [[Йельский университет|Йельского университета]] в 2010 году в блоге<ref>{{Cite web|url=http://dbmsmusings.blogspot.ie/2010/04/problems-with-cap-and-yahoos-little.html|title=DBMS Musings: Problems with CAP, and Yahoo’s little known NoSQL system|author=Daniel J. Abadi|website=dbmsmusings.blogspot.ie|date=2010-04-23|publisher=|access-date=2016-09-11}}</ref> , а также в виде статьи в 2012 году<ref name=":0" />. Основная цель теоремы PACELC — обратиться к его тезису «Игнорирование необходимости выбора между согласованностью и задержкой в реплицируемых системах является основным упущением [в рамках CAP], поскольку необходимость этого выбора присутствует при работы системы всегда, в то время как CAP имеет отношение только к дискутируемо редкому случаю разделения сети».


== Оценка основных СУБД согласно теореме PACELC ==
== Оценка основных СУБД согласно теореме PACELC ==

Версия от 11:48, 7 января 2021

Теорема PACELC — расширение теоремы CAP, которое гласит, что в случае разделения сети (P) в распределённой компьютерной системе необходимо выбирать между доступностью (A) и согласованностью (C) (согласно теореме CAP), но в любом случае, даже если система работает нормально в отсутствии разделения, нужно выбирать между задержками (L) и согласованностью (C).

Описание

Теорема PACELC основывается на теореме CAP. Обе теоремы описывают, какие ограничения и компромиссные решения имеют распределённые базы данных в отношении согласованности, доступности и допустимости разделения. Однако, теорема PACELC заявляет, что необходимо идти на компромисс между задержками и консистентностью даже при отсутствии разделения, что обеспечивает более полное представление о возможных компромиссах для распределённых систем.[1]

Требование высокой доступности подразумевает, что система должна реплицировать данные. Пока распределённая система реплицирует данные, возникает необходимость выбирать между согласованностью и задержками.

Теорема PACELC впервые была описана Даниэлем Дж. Абади из Йельского университета в 2010 году в блоге[2] , а также в виде статьи в 2012 году[1]. Основная цель теоремы PACELC — обратиться к его тезису «Игнорирование необходимости выбора между согласованностью и задержкой в реплицируемых системах является основным упущением [в рамках CAP], поскольку необходимость этого выбора присутствует при работы системы всегда, в то время как CAP имеет отношение только к дискутируемо редкому случаю разделения сети».

Оценка основных СУБД согласно теореме PACELC

Оценки СУБД для[3]

  • По умолчанию Dynamo, Cassandra, Riak и Cosmos DB относятся к системам PA/EL: при разделении сети они отказываются от согласованности для большей доступности, а при нормальной работе отказываются от согласованности для более низкой задержки.
  • Полностью ACID-системы, такие как VoltDB/H-Store и Megastore, — это PC/EC: они не отказываются от согласованности и будут согласны платить доступностью и задержками, чтобы добиться этого. BigTable и связанные с ним системы, такие как HBase, также являются PC/EC.
  • Cosmos DB поддерживает пять настраиваемых уровней согласованности, которые позволяют выбирать между C/A во время разделения сети и L/C в случае нормальной работы. Cosmos DB никогда не нарушает указанный уровень согласованности, поэтому это формально CP.
  • MongoDB можно классифицировать как систему PA/EC. В базовом случае система гарантирует, что чтение и запись будут согласованными.
  • PNUTS — это система PC/EL.


DDBS P+A P+C E+L E+C
Dynamo Да Да[a]
Cassandra Да Да[a]
Cosmos DB Да Да
Riak Да Да[a]
VoltDB/H-Store Да Да
Megastore Да Да
MongoDB Да Да
PNUTS Да Да

См. также

Примечания

  1. 1 2 3 Dynamo, Cassandra и Riak имеют настройки для управления выбора между L и C [3]

Источники

  1. 1 2 Daniel J. Abadi. Consistency Tradeoffs in Modern Distributed Database System Design (англ.) // Yale University. — 2012. — 25 January.
  2. Daniel J. Abadi. DBMS Musings: Problems with CAP, and Yahoo’s little known NoSQL system. dbmsmusings.blogspot.ie (23 апреля 2010). Дата обращения: 11 сентября 2016.
  3. 1 2 Arinto Murdopo. Consistency Tradeoffs in Modern Distributed Database System Design (англ.). — 2012. — 17 April.

Ссылки