Теорема PACELC - Википедия - PACELC theorem
В теоретическая информатика, то Теорема PACELC является расширением CAP теорема. В нем говорится, что в случае разделения сети (P) в распределенная компьютерная система, нужно выбирать между доступностью (A) и согласованностью (C) (согласно теореме CAP), но в противном случае (E), даже когда система работает нормально при отсутствии разделов, нужно выбирать между задержкой (L ) и последовательность (C).
Обзор
PACELC опирается на CAP теорема. Обе теоремы описывают, как распределенные базы данных имеют ограничения и компромиссы в отношении согласованности, доступности и устойчивости к разделам. PACELC, однако, идет дальше и заявляет, что существует еще один компромисс: на этот раз между задержкой и согласованностью, даже при отсутствии разделов, обеспечивая более полное изображение возможных компромиссов согласованности для распределенных систем.[1]
Требование высокой доступности подразумевает, что система должна реплицировать данные. Как только распределенная система реплицирует данные, возникает компромисс между согласованностью и задержкой.
Теорема PACELC была впервые описана Дэниелом Дж. Абади из Йельский университет в 2010 году в блоге,[2] который он позже формализовал в документе в 2012 году.[1] Цель PACELC - ответить на его тезис о том, что «Игнорирование компромисса согласованности / задержки реплицированных систем является серьезным упущением [в CAP], поскольку он присутствует всегда во время работы системы, тогда как CAP имеет значение только в возможно редком случае. сетевого раздела ".
База данных PACELC рейтинги
База данных Рейтинги PACELC взяты из [3]
- Версии по умолчанию DynamoDB, Кассандра, Риак и Cosmos DB являются системами PA / EL: если возникает раздел, они отказываются от согласованности в пользу доступности, а при нормальной работе они отказываются от согласованности в пользу меньшей задержки.
- Полностью КИСЛОТНЫЕ системы, такие как VoltDB / H-Store, Megastore и Кластер MySQL являются PC / EC: они отказываются отказываться от согласованности и платят за ее доступность и задержку. Большой стол и связанные системы, такие как HBase также являются PC / EC.
- Диван предоставляет ряд вариантов согласованности и доступности во время раздела, а также диапазон параметров задержки и согласованности без раздела. В отличие от большинства других баз данных, Couchbase не имеет единого набора API и не масштабирует / реплицирует все службы данных однородно. Для записи Couchbase отдает предпочтение согласованности перед доступностью, что делает ее формально CP, но при чтении появляется больше управляемой пользователем изменчивости в зависимости от репликации индекса, желаемого уровня согласованности и типа доступа (поиск по одному документу, сканирование диапазона или полнотекстовый поиск и т. Д.) . Вдобавок ко всему, существует дополнительная изменчивость в зависимости от репликации между центрами обработки данных (XDCR), которая берет несколько кластеров CP и связывает их с асинхронной репликацией, и Couchbase Lite, которая является встроенной базой данных и создает полностью мульти-мастер (с отслеживанием версий ) распределенная топология.
- Cosmos DB поддерживает пять настраиваемых уровней согласованности, которые позволяют выбирать между C / A во время P и L / C во время E. Cosmos DB никогда не нарушает указанный уровень согласованности, поэтому формально это CP.
- MongoDB можно классифицировать как систему PA / EC. В базовом случае система гарантирует согласованность операций чтения и записи.
- PNUTS - это система ПК / EL.
- Hazelcast IMDG и большинство сеток данных в памяти - это реализация системы PA / EC; Hazelcast можно настроить на EL, а не на EC.[4] Примитивы параллелизма (Lock, AtomicReference, CountDownLatch и т. Д.) Могут быть PC / EC или PA / EC.[5]
- FaunaDB орудия Кальвин, протокол транзакции, созданный доктором Даниэлем Абади и автором[1] теоремы PACELC и предлагает пользователям настраиваемые элементы управления для компромисса LC. Это PC / EC для строго сериализуемых транзакций и EL для сериализуемых чтений.
DDBS | P + A | P + C | E + L | E + C |
---|---|---|---|---|
DynamoDB | [а] | |||
Кассандра | [а] | |||
Cosmos DB | ||||
Диван | ||||
Риак | [а] | |||
VoltDB / H-Store | ||||
Megastore | ||||
BigTable / HBase | ||||
Кластер MySQL | ||||
MongoDB | ||||
PNUTS | ||||
Hazelcast IMDG[6][5] | ||||
FaunaDB[7] |
Смотрите также
- CAP теорема
- Модель согласованности
- Заблуждения распределенных вычислений
- Paxos (информатика)
- Треугольник управления проектом
- Raft (информатика)
- Трилемма
Примечания
Рекомендации
- ^ а б c Абади, Дэниел Дж. «Компромиссы согласованности при проектировании современных систем распределенных баз данных» (PDF). Йельский университет.
- ^ Абади, Дэниел Дж. (2010-04-23). "DBMS Musings: проблемы с CAP и малоизвестной системой NoSQL Yahoo". Получено 2016-09-11. Cite имеет пустой неизвестный параметр:
|1=
(помощь) - ^ а б Краткое изложение слайда «Компромиссы согласованности при проектировании современной распределенной системы баз данных», подготовленный Аринто Мердопо, инженер-исследователь
- ^ Абади, Даниэль (2017-10-08). «DBMS Musings: Hazelcast и мифическая система PA / EC». СУБД Musings. Получено 2017-10-20.
- ^ а б «Справочное руководство Hazelcast IMDG». docs.hazelcast.org. Получено 2020-09-17.
- ^ Абади, Даниэль (2017-10-08). "DBMS Musings: Hazelcast и мифическая система PA / EC". СУБД Musings. Получено 2017-10-20.
- ^ Абади, Даниэль (21.09.2018). «DBMS Musings: системы баз данных NewSQL не могут гарантировать согласованность, и я виню Шпаннера». СУБД Musings. Получено 2019-02-23.
внешняя ссылка
- «Компромиссы согласованности при проектировании современных систем распределенных баз данных», Дэниел Дж. Абади, Йельский университет Оригинальный документ, формализовавший PACELC
- «Проблемы с CAP и малоизвестной системой NoSQL Yahoo», Дэниел Дж. Абади, Йельский университет.. Оригинальное сообщение в блоге, впервые описывающее PACELC