Корпоративные базы данных - статьи

       

Асинхронное тиражирование транзакций в распределенных системах



В распределенной системе идеальным являлось бы состояние, когда каждая программа-клиент
обращается только к тем серверам, которые находятся в пределах ее локальной сети, а передача
данных и обеспечение целостности осуществляется системными средствами и не требуют
специальных действий со стороны прикладной программы. Такое распределение функций
возможно и реализуется на практике с помощью механизма асинхронного тиражирования
транзакций.

Синхронное проведение изменений в участвующих в распределенной транзакции базах данных не
всегда является необходимым требованием. Рассмотрим, например, случай ввода данных с
измерительного оборудования в цехе и последующего анализа их на уровне управления. Здесь
важно обеспечить достаточно малый (но, возможно, ненулевой) интервал времени между
изменениями в исходных данных и изменениями в их копии в другом узле системы, где происходит
построение отчетов.



Механизм асинхронного тиражирования транзакций (репликации) гарантирует доставку
измененных данных на вторичные серверы непосредственно после завершения транзакции, если
сервер доступен, или сразу после подключения сервера к сети. Такой подход предполагает
хранение дублирующей информации в различных узлах сети и обеспечивает, по сравнению с
другими подходами к репликации, снижение трафика, уменьшение времени ответа системы, а
также позволяет оптимизировать нагрузку на серверы.

Асинхронная репликация не делает линии связи более надежными или скоростными. Она
перекладывает передачу данных, обеспечение их целостности и ожидание при передаче данных с
прикладной программы и пользователя на системный уровень.

Асинхронная репликация, в отличие от 2РС, не обеспечивает полной синхронности информации на
всех серверах в любой момент времени. Синхронизация происходит через некоторый, обычно
небольшой, интервал времени, величина которого определяется быстродействием
соответствующего канала связи. Для большинства задач кратковременное наличие устаревших
данных в удаленных узлах вполне допустимо.

Вместе с тем асинхронная репликация транзакций принципиально обеспечивает целостность
данных, так как объектом обмена данными здесь является логическая единица работы -
транзакция, а не просто данные из измененных таблиц.




Содержание раздела