Модель согласованности
В распределенной системе, такой как распределенная общая память или распределенном хранилище, таком как база данных, файловая система, web caching или optimistic replication существуют разнообразные модели консистентности данных.
Модель консистентности представляет собой некоторый договор между программами и памятью, в котором указывается, что при соблюдении программами определенных правил работа модуля памяти будет корректной, если же требования к программе будут нарушены, то память не гарантирует правильность выполнения операций чтения/записи.
Основные модели консистентности:
- Строгая консистентность (англ. strict consistency )
- Последовательная консистентность (англ. sequential consistency)
- Причинная консистентность (англ. causal consistency )
- PRAM консистентность (англ. PRAM consistency)
- Процессорная консистентность (англ. processor consistency)
- Слабая консистентность (англ. weak consistency)
- Консистентность по выходу (англ. release consistency)
- Консистентность по входу (англ. entry consistency)
Отдельно выделим модель линеаризуемости (англ. linearizability) программы, в которой вместо операций чтения/записи рассматриваются операции над объектами (например функции, процедуры), а состояние памяти в данной модели - это состояния объектов. Эта модель используется для систем с объектной организацией общей памяти. В отличие от всех остальных систем, здесь программы не могут напрямую использовать общие переменные (состояние объектов), а только через специальные функции-методы (операции). Для этих систем линеаризуемость совпадает со строгой консистентностью.
Ссылки
- Крюков В.А. Курс лекций "Распределенные ОС" 6. Распределенная общая память
- Consistency Models