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