Как стать автором
Обновить

Комментарии 9

Очень хорошо, спасибо, ждем следующую часть. Тем временем, ковыряем Изабеллу и TLA+ :)

🍺 Часть 2 будет ближе к вечеру. Интересно, у Вас открывается scratchpad? Стало глючить (подвисает на Loading worker...), неужели так бысто "хабрэффект" наступил...

Да, все в порядке, моментально.

Тот же джепсен смешал мух с котлетами (изоляцию транзакций и последовательность операций). Корректней все эти модели выстроить в две когорты, где на каждом уровне запрещаются те или иные феномены:

Соответственно, всё, что требует Sequential гарантий (или total ordering), автоматически становится не полностью доступным при разделении сети.

Даже при полуразделении (когда в одном направлении данные всё же идут) - это не меняет картины, так как мало просто отослать данные - надо ещё и убедиться, что они (будут) приняты всеми узлами до любых чужих изменений после разделения сети, прежде чем отвечать клиенту об успехе записи. А это невозможно без сильной связности всей сети.

Схема красивая и по-своему логичная. Однако, замечу, что джепсен использует определение Serializability, согласно которому:

The requirement for a total order of transactions is strong—but still allows pathological orderings. For instance, a serializable database can always return the empty state for any reads, by appearing to execute those reads at time 0. It can also discard write-only transactions by reordering them to execute at the very end of the history, after any reads. Operations like increments can also be discarded, assuming the result of the increment is never observed.

Т.е. тут как раз с тем, что у Вас называется Distributed Constraints, пересечения нет, и мухи от котлет отделены.

А можно мне просто узнать: вот консистентность (C) в CAP и ACID - всегда одно и то же, никогда не одно и то же или нечто среднее?

C в CAP - это на самом деле линеаризуемость. То есть правильно теорему называть LAP.

Во второй части будет решение теоремы? Как минимум два решения частных случаев: разделение по времени (eventual consistency on read & strong on write) и разделение по данным (primary key dynamic virtual partitions)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории