Теорема PACELC: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
→Оценка основных СУБД согласно теореме PACELC: Изменил yes -> да Метки: с мобильного устройства из мобильной версии |
Нет описания правки |
||
Строка 2: | Строка 2: | ||
== Описание == |
== Описание == |
||
Теорема PACELC основывается на [[Теорема CAP|теореме CAP]]. Обе теоремы описывают какие ограничения и компромиссные решения имеют распределённые базы данных в отношении согласованности, доступности и допустимости разделения. Однако, теорема PACELC заявляет, что необходимо идти на компромисс между задержками и консистентностью даже при отсутствии разделения, что обеспечивает более полное представление о возможных компромиссах для распределённых систем.<ref name=":0">{{Статья|автор=Daniel J. Abadi|заглавие=Consistency Tradeoffs in Modern Distributed Database System Design|ссылка=http://cs-www.cs.yale.edu/homes/dna/papers/abadi-pacelc.pdf|язык=en|издание=Yale University|тип=|год=2012|месяц=1|число=25|том=|номер=|страницы=|issn=}}</ref> |
Теорема PACELC основывается на [[Теорема CAP|теореме CAP]]. Обе теоремы описывают, какие ограничения и компромиссные решения имеют распределённые базы данных в отношении согласованности, доступности и допустимости разделения. Однако, теорема PACELC заявляет, что необходимо идти на компромисс между задержками и консистентностью даже при отсутствии разделения, что обеспечивает более полное представление о возможных компромиссах для распределённых систем.<ref name=":0">{{Статья|автор=Daniel J. Abadi|заглавие=Consistency Tradeoffs in Modern Distributed Database System Design|ссылка=http://cs-www.cs.yale.edu/homes/dna/papers/abadi-pacelc.pdf|язык=en|издание=Yale University|тип=|год=2012|месяц=1|число=25|том=|номер=|страницы=|issn=}}</ref> |
||
Требование высокой доступности подразумевает, что система должна реплицировать данные. Пока распределённая система реплицирует данные, возникает необходимость выбирать между согласованностью и задержками. |
Требование высокой доступности подразумевает, что система должна реплицировать данные. Пока распределённая система реплицирует данные, возникает необходимость выбирать между согласованностью и задержками. |
||
Строка 97: | Строка 97: | ||
{{DEFAULTSORT:Pacelc Theorem}} |
{{DEFAULTSORT:Pacelc Theorem}} |
||
[[Категория:Базы данных]] |
[[Категория:Базы данных]] |
||
[[Категория: |
[[Категория:Архитектура распределённых вычислений]] |
Версия от 15:42, 6 декабря 2019
Теорема PACELC — расширение теоремы CAP, которое гласит, что в случае разделения сети (P) в распределённой компьютерной системе необходимо выбирать между доступностью (A) и согласованностью (C) (согласно теореме CAP), но в любом случае, даже если система работает нормально в отсутствии разделения, нужно выбирать между задержками (L) и согласованностью (C).
Описание
Теорема PACELC основывается на теореме CAP. Обе теоремы описывают, какие ограничения и компромиссные решения имеют распределённые базы данных в отношении согласованности, доступности и допустимости разделения. Однако, теорема PACELC заявляет, что необходимо идти на компромисс между задержками и консистентностью даже при отсутствии разделения, что обеспечивает более полное представление о возможных компромиссах для распределённых систем.[1]
Требование высокой доступности подразумевает, что система должна реплицировать данные. Пока распределённая система реплицирует данные, возникает необходимость выбирать между согласованностью и задержками.
Теорема PACELC впервые была описана Даниэлем Дж. Абади из Йельского университета в 2010 году в блоге[2] , а также в виде статьи в 2012 году[1]. Основная цель теоремы PACELC — обратиться к его тезису «Игнорирование необходимостью выбирать между консистентностью и задержкой в реплицируемых системах является основой [для CAP], поскольку необходимость выбора присутствует во всё время работы системы, в то время как CAP имеет отношение только к редкому случаю разделения сети».
Оценка основных СУБД согласно теореме PACELC
- По умолчанию 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 2 Daniel J. Abadi. Consistency Tradeoffs in Modern Distributed Database System Design (англ.) // Yale University. — 2012. — 25 January.
- ↑ Daniel J. Abadi. DBMS Musings: Problems with CAP, and Yahoo’s little known NoSQL system . dbmsmusings.blogspot.ie (23 апреля 2010). Дата обращения: 11 сентября 2016.
- ↑ 1 2 Arinto Murdopo. Consistency Tradeoffs in Modern Distributed Database System Design (англ.). — 2012. — 17 April.
Ссылки
- «Consistency Tradeoffs in Modern Distributed Database System Design», by Daniel J. Abadi, Yale University Original paper that formalized PACELC
- «Problems with CAP, and Yahoo’s little known NoSQL system», by Daniel J. Abadi, Yale University. Original blog post that first described PACELC