Мультинаправленная репликация между базами (постановка)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 3: | Строка 3: | ||
http://gsbelarus.com/gs/images/gs/2009/repl_1.png | http://gsbelarus.com/gs/images/gs/2009/repl_1.png | ||
| − | Как видно на представленном рисунке, несколько Удаленных баз данных (УБД) обмениваются данными с одной Центральной базой данных (ЦБД). Изменение данных может осуществляться как на УБД, так и на ЦБД. Передача изменений напрямую от одной УБД к другой, минуя ЦБД, невозможна. | + | Как видно на представленном рисунке, несколько '''Удаленных баз данных''' (УБД) обмениваются данными с одной '''Центральной базой данных''' (ЦБД). Изменение данных может осуществляться как на УБД, так и на ЦБД. Передача изменений напрямую от одной УБД к другой, минуя ЦБД, невозможна. |
| − | Совокупность всех УБД и ЦБД, включенных в схему репликации, называется | + | Совокупность всех УБД и ЦБД, включенных в схему репликации, называется '''Распределенной базой данных''' (РБД). |
| − | Циркуляция изменений в рамках распределенной базы данных происходит внутри т.н. доменов. Домен может состоять только из ЦБД, или ЦБД и одной или нескольких УБД. Каждый объект может принадлежать одному или нескольким доменам одновременно. В РБД одновременно может существовать неограниченное количество доменов. | + | Циркуляция изменений в рамках распределенной базы данных происходит внутри т.н. '''доменов'''. Домен может состоять только из ЦБД, или ЦБД и одной или нескольких УБД. Каждый объект может принадлежать одному или нескольким доменам одновременно. В РБД одновременно может существовать неограниченное количество доменов. |
На рисунке ниже показана РБД с двумя доменами. Согласно представленной схеме, если некоторый объект принадлежит только Домену 1, то его изменения, сделанные на УБД1, будут переданы (реплицированы) на ЦБД и УБД3, но не попадут на УБД2, так как она не входит в Домен 1. | На рисунке ниже показана РБД с двумя доменами. Согласно представленной схеме, если некоторый объект принадлежит только Домену 1, то его изменения, сделанные на УБД1, будут переданы (реплицированы) на ЦБД и УБД3, но не попадут на УБД2, так как она не входит в Домен 1. | ||
| Строка 17: | Строка 17: | ||
Объекты, не принадлежащие ни одному из доменов, реплицируются по всей РБД. Т.е. можно говорить что такие объекты принадлежит некоему глобальному домену, который существует изначально и покрывает всю РБД. | Объекты, не принадлежащие ни одному из доменов, реплицируются по всей РБД. Т.е. можно говорить что такие объекты принадлежит некоему глобальному домену, который существует изначально и покрывает всю РБД. | ||
| − | Мы будем называть доменным пространством P объекта О объединение всех доменов, которым принадлежит указанный объект. | + | Мы будем называть '''доменным пространством P''' объекта О объединение всех доменов, которым принадлежит указанный объект. |
| − | В рамках доменного пространства, в один момент времени, редактирование объекта возможно только на одной базе данных. Такая база данных называется активной базой данных доменного пространства P (АБД). Активная база данных в начальный момент времени называется главной базой данных доменного пространства P (ГБД). Статус активной базы передается от ГБД к другой базе данных из Р на ограниченный промежуток времени. | + | В рамках доменного пространства, в один момент времени, редактирование объекта возможно только на одной базе данных. Такая база данных называется '''активной базой данных''' доменного пространства P (АБД). Активная база данных в начальный момент времени называется '''главной базой данных''' доменного пространства P (ГБД). Статус активной базы передается от ГБД к другой базе данных из Р на ограниченный промежуток времени. |
| − | Мы будем использовать термин база данных (БД) в тех случаях, когда для нас не имеет значение является ли указанная база ЦБД или УБД в схеме репликации, имеет ли она статус активной в некотором P или нет. | + | Мы будем использовать термин '''база данных''' (БД) в тех случаях, когда для нас не имеет значение является ли указанная база ЦБД или УБД в схеме репликации, имеет ли она статус активной в некотором P или нет. |
Мы выделяем следующие состояния объекта внутри одной БД. | Мы выделяем следующие состояния объекта внутри одной БД. | ||
| − | I | + | {|border="1" cellpadding="2" cellspacing="0" |
| − | L | + | |+ |
| − | S | + | !Состояние |
| − | C | + | !Описание |
| − | F | + | !Блокировка |
| + | !Переход | ||
| + | |- | ||
| + | |I | ||
| + | |Каждый объект, который существовал до настройки схемы репликации (т.е. до создания УБД на основе изначально существовавшей ЦБД), имеет состояние I. В начальный момент времени такой объект присутствует как в УБД, так и в ЦБД. | ||
| + | |Нет | ||
| + | |L | ||
| + | |- | ||
| + | |L | ||
| + | |Изменение объекта занесено в лог. Используется для информирования системы о необходимости отсылки сообщения '''"Передача объекта"'''. | ||
| + | |Объект в состоянии L может быть изменен только в том случае, если после него в логе нет никаких других записей. Последовательные изменения (в смысле порядка записей в логе) одного и того же объекта допускаются. | ||
| + | |S, B | ||
| + | |- | ||
| + | |B | ||
| + | |Используется для остановки процесса передачи данных. При обработке объекта в состоянии B, процесс формирования сообщений останавливается с уведомлением пользователя о том, какая именно запись вызвала остановку. | ||
| + | |Аналогично состоянию L. | ||
| + | |L | ||
| + | |- | ||
| + | |S | ||
| + | |Объект был отослан. | ||
| + | |Аналогично состоянию L. | ||
| + | |C | ||
| + | |- | ||
| + | |C | ||
| + | |Изменение объекта успешно записано. | ||
| + | |Нет | ||
| + | |L | ||
| + | |- | ||
| + | |F | ||
| + | | | ||
| + | |Аналогично состоянию L. | ||
| + | |L | ||
| + | |} | ||
Базы данных в пределах одного домена считаются синхронизированными в определенный момент времени, если нет изменений подлежащих передаче. Все объекты синхронизированных баз пребывают в состояниях I или C. | Базы данных в пределах одного домена считаются синхронизированными в определенный момент времени, если нет изменений подлежащих передаче. Все объекты синхронизированных баз пребывают в состояниях I или C. | ||
| − | + | === Передача статуса активной базы данных === | |
| − | Передача статуса активной базы данных | + | |
Версия 20:59, 28 августа 2009
Мы будем рассматривать вариант мультинаправленной асинхронной дельта репликации в топографии "звезда".
Как видно на представленном рисунке, несколько Удаленных баз данных (УБД) обмениваются данными с одной Центральной базой данных (ЦБД). Изменение данных может осуществляться как на УБД, так и на ЦБД. Передача изменений напрямую от одной УБД к другой, минуя ЦБД, невозможна.
Совокупность всех УБД и ЦБД, включенных в схему репликации, называется Распределенной базой данных (РБД).
Циркуляция изменений в рамках распределенной базы данных происходит внутри т.н. доменов. Домен может состоять только из ЦБД, или ЦБД и одной или нескольких УБД. Каждый объект может принадлежать одному или нескольким доменам одновременно. В РБД одновременно может существовать неограниченное количество доменов.
На рисунке ниже показана РБД с двумя доменами. Согласно представленной схеме, если некоторый объект принадлежит только Домену 1, то его изменения, сделанные на УБД1, будут переданы (реплицированы) на ЦБД и УБД3, но не попадут на УБД2, так как она не входит в Домен 1.
Принадлежность объекта домену может устанавливаться только на основании его класса (вертикальное разбиение) или класса и принадлежности некоторому множеству (горизонтальное разбиение). Пример вертикального разбиения -- все объекты класса "Компания". Пример горизонтального -- все объекты класса "Компания", входящие в папку "Общие клиенты" справочника контактов.
Объекты, не принадлежащие ни одному из доменов, реплицируются по всей РБД. Т.е. можно говорить что такие объекты принадлежит некоему глобальному домену, который существует изначально и покрывает всю РБД.
Мы будем называть доменным пространством P объекта О объединение всех доменов, которым принадлежит указанный объект.
В рамках доменного пространства, в один момент времени, редактирование объекта возможно только на одной базе данных. Такая база данных называется активной базой данных доменного пространства P (АБД). Активная база данных в начальный момент времени называется главной базой данных доменного пространства P (ГБД). Статус активной базы передается от ГБД к другой базе данных из Р на ограниченный промежуток времени.
Мы будем использовать термин база данных (БД) в тех случаях, когда для нас не имеет значение является ли указанная база ЦБД или УБД в схеме репликации, имеет ли она статус активной в некотором P или нет.
Мы выделяем следующие состояния объекта внутри одной БД.
| Состояние | Описание | Блокировка | Переход |
|---|---|---|---|
| I | Каждый объект, который существовал до настройки схемы репликации (т.е. до создания УБД на основе изначально существовавшей ЦБД), имеет состояние I. В начальный момент времени такой объект присутствует как в УБД, так и в ЦБД. | Нет | L |
| L | Изменение объекта занесено в лог. Используется для информирования системы о необходимости отсылки сообщения "Передача объекта". | Объект в состоянии L может быть изменен только в том случае, если после него в логе нет никаких других записей. Последовательные изменения (в смысле порядка записей в логе) одного и того же объекта допускаются. | S, B |
| B | Используется для остановки процесса передачи данных. При обработке объекта в состоянии B, процесс формирования сообщений останавливается с уведомлением пользователя о том, какая именно запись вызвала остановку. | Аналогично состоянию L. | L |
| S | Объект был отослан. | Аналогично состоянию L. | C |
| C | Изменение объекта успешно записано. | Нет | L |
| F | Аналогично состоянию L. | L |
Базы данных в пределах одного домена считаются синхронизированными в определенный момент времени, если нет изменений подлежащих передаче. Все объекты синхронизированных баз пребывают в состояниях I или C.