Модель согласованности: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
 
(не показаны 24 промежуточные версии 13 участников)
Строка 1: Строка 1:
{{перенести|согласованность данных}}
В [[Распределенная система|распределенной системе]], такой как
'''Модель согласованности''' — подход, используемый в той или иной [[Распределённая система|распределённой системе]] ({{iw|распределённая общая память|распределённой общей памяти|en|Distributed shared memory}}, [[СУБД]], [[файловая система|файловой системе]]), для обеспечения гарантий [[Согласованность данных|согласованности данных]].
[[Распределенная общая память|распределенная общая память]] или распределенном хранилище, таком как [[База данных|база данных]], [[Файловая система|файловая система]], web caching или optimistic replication существуют разнообразные '''модели консистентности данных'''.


Основные модели согласованности:
'''Модель консистентности''' представляет собой некоторый договор между программами и памятью, в котором указывается, что при соблюдении программами определенных правил работа модуля памяти будет корректной, если же требования к программе будут нарушены, то память не гарантирует правильность выполнения операций чтения/записи.
* [[строгая согласованность]] ({{lang-en|strict consistency}})
* [[последовательная согласованность]] ({{lang-en|sequential consistency}})
* [[причинная согласованность]] ({{lang-en|causal consistency }})
* {{нп2|PRAM-согласованность||en|PRAM consistency}}
* {{нп2|процессорная согласованность||en|processor consistency}}
* {{нп2|слабая согласованность||en|weak consistency}}
* [[согласованность в конечном счёте]] ({{lang-en|eventual consistency}})
* {{нп2|согласованность по выходу||en|release consistency}}
* {{нп2|согласованность по входу||en|entry consistency}}


Особую роль для модели согласованности играет вопрос [[Линеаризуемость|линеаризуемости]] программы, в которой вместо операций чтения и записи рассматриваются операции над объектами (например функции, процедуры), а состояние памяти в данной модели — это состояния объектов.
Основные модели консистентности:
Линеаризуемые программы применяются для систем с объектной организацией [[Разделяемая память|общей памяти]]. В отличие от всех остальных систем, такие программы не могут напрямую использовать общие переменные (состояние объектов), а только через специальные функции-методы (операции). Для этих систем линеаризуемость совпадает со строгой согласованностью.
* [[Строгая консистентность]] ({{lang-en|strict consistency }})
* [[Последовательная консистентность]] ({{lang-en|sequential consistency}})
* [[Причинная консистентность]] ({{lang-en|causal consistency }})
* PRAM консистентность ({{lang-en|PRAM consistency}})
* Процессорная консистентность ({{lang-en|processor consistency}})
* [[Слабая консистентность]] ({{lang-en|weak consistency}})
* Консистентность по выходу ({{lang-en|release consistency}})
* Консистентность по входу ({{lang-en|entry consistency}})


== Литература ==
Отдельно выделим модель [[Линеаризуемость|линеаризуемости]] ({{lang-en|linearizability}}) программы, в которой вместо операций чтения/записи рассматриваются операции над объектами (например функции, процедуры), а состояние памяти в данной модели - это состояния объектов.
* {{книга
Эта модель используется для систем с объектной организацией [[Разделяемая память|общей памяти]]. В отличие от всех остальных систем, здесь программы не могут напрямую использовать общие переменные (состояние объектов), а только через специальные функции-методы (операции). Для этих систем линеаризуемость совпадает со строгой консистентностью.
| автор = Kshemkalyani, A.D. and Singhal, M.
| заглавие = Distributed Computing: Principles, Algorithms, and Systems
| издательство = Cambridge University Press
| год = 2011
| allpages =
| isbn = 9781139470315
| ref = Kshemkalyani, Singhal
}}


== Ссылки ==
== Ссылки ==
* Крюков В.А. Курс лекций "Распределенные ОС" [http://parallel.ru/krukov/lec6.html 6. Распределенная общая память]
* Крюков В. А. Курс лекций «Распределенные ОС» [http://parallel.ru/krukov/lec6.html 6. Распределенная общая память]
* [http://cs.gmu.edu/cne/modules/dsm/green/memcohe.html Consistency Models]


{{нет ссылок|дата=2016-11-13}}
[[Категория:Программирование]]
{{IPC}}
{{Параллельные вычисления}}


[[Категория:Теоретические основы баз данных]]
[[en:Consistency model]]
[[Категория:Архитектура распределённых вычислений]]
[[es:Consistencia de datos]]
[[Категория:Управление памятью]]
[[fr:Cohérence (données)]]
[[zh:内存一致性模型]]

Текущая версия от 11:17, 6 августа 2024

Модель согласованности — подход, используемый в той или иной распределённой системе (распределённой общей памяти[англ.], СУБД, файловой системе), для обеспечения гарантий согласованности данных.

Основные модели согласованности:

Особую роль для модели согласованности играет вопрос линеаризуемости программы, в которой вместо операций чтения и записи рассматриваются операции над объектами (например функции, процедуры), а состояние памяти в данной модели — это состояния объектов. Линеаризуемые программы применяются для систем с объектной организацией общей памяти. В отличие от всех остальных систем, такие программы не могут напрямую использовать общие переменные (состояние объектов), а только через специальные функции-методы (операции). Для этих систем линеаризуемость совпадает со строгой согласованностью.

Литература

[править | править код]
  • Kshemkalyani, A.D. and Singhal, M. Distributed Computing: Principles, Algorithms, and Systems. — Cambridge University Press, 2011. — ISBN 9781139470315.