Рационализация согласованности
Сценарии использования, рассмотренные в разд. 2, показывают, что не для всех данных требуются одни и те же гарантии согласованности. Этот факт хорошо известен в области стандартных приложений баз данных, и ситуация регулируется за счет обеспечения разных уровней согласованности различным транзакциям. Хотя можно ослабить любое из свойств ACID (Atomicy, Consistency, Isolation, Durability), в этой статье мы фокусируемся на изоляции (Isolation) и согласованности (Consistency) в предположении, что атомарность (Atomicy) и долговечность хранения (Durability) обеспечиваются.
В направлении ослабления гарантий согласованности получены ценные результаты как в области распределенных систем (например, согласованность "в конечном счете" (eventual consistency), монотонность чтения-записи (read-write monotonicity) и сессионная согласованность (session consistency) ), так и в области управления транзакциями (например, режимы чтения зафиксированных данных (read committed), чтения незафиксированных данных (read uncommitted), сериализуемости (serializability) и (обобщенный) метод изоляции на основе мгновенных снимков (snapshot isolation) ). Основной вывод, который можно сделать на основе этих работ, состоит в том, что назначением моделей ослабленной согласованности является обеспечение наилучшего соотношения затрат и прибыли при сохранении понимаемого разработчиками поведения приложений. Имея это в виду, мы рассматриваем только два уровня согласованности (сессионная согласованность и сериализуемость) и подразделяем данные на три категории.