Использование собственного журнала транзакций в распределенной информационной системе |
Кратко опишем некоторые технические термины в контексте статьи:
![]() Как видно из рисунка, при одновременном изменении одной и той же сущности ("Документ 1"), после конфликта данные по ней будут различаться. Это связано со спецификой онлайн репликации посредством MS SQL. В отличие, например, от объектной репликации в прикладных системах (1С 7.7, 8.1), в которых по объекту выгружается вся информация, независимо от изменений, в онлайн репликации MS SQL переносится только изменяемые данные. В этих двух подходах есть и преимущества и недостатки, их рассмотрение выходит за рамки данной статьи. Для решение описанной выше проблемы, как одно из возможных решений, предлагается в момент изменения данных создавать последовательность команд противоположных изменениям. Назовем эту последовательность – "собственным журналом транзакций", так как основное ее предназначение – откат действий до определенного момента. Кратко опишем алгоритм работы собственного журнала транзакций для предыдущего примера. Таким образом, при применении собственного журнала транзакций, удается правильно синхронизировать распределенную информационную систему в случае конфликта. Также есть возможность усовершенствовать механизм путем рассылки писем о конфликтах ответственным лицам для принятия решений по дальнейшим действиям. Из недостатков данного подхода является пожалуй двойная запись в таблицы последовательности действий: для репликации и для собственного журнала транзакций. Тем не менее это не является критичной с точки зрения производительности проблемой, так как операций на изменение данных значительно меньше, чем, например, на чтение. Автор статьи БаркетовПавел |