Мультинаправленная репликация между базами (постановка)

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 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

Мы будем рассматривать вариант мультинаправленной асинхронной дельта репликации в топографии "звезда".

repl_1.png

Как видно на представленном рисунке, несколько Удаленных баз данных (УБД) обмениваются данными с одной Центральной базой данных (ЦБД). Изменение данных может осуществляться как на УБД, так и на ЦБД. Передача изменений напрямую от одной УБД к другой, минуя ЦБД, невозможна.

Совокупность всех УБД и ЦБД, включенных в схему репликации, называется Распределенной базой данных (РБД).

Циркуляция изменений в рамках распределенной базы данных происходит внутри т.н. доменов. Домен может состоять только из ЦБД, или ЦБД и одной или нескольких УБД. Каждый объект может принадлежать одному или нескольким доменам одновременно. В РБД одновременно может существовать неограниченное количество доменов.

На рисунке ниже показана РБД с двумя доменами. Согласно представленной схеме, если некоторый объект принадлежит только Домену 1, то его изменения, сделанные на УБД1, будут переданы (реплицированы) на ЦБД и УБД3, но не попадут на УБД2, так как она не входит в Домен 1.

repl_2.png

Принадлежность объекта домену может устанавливаться только на основании его класса (вертикальное разбиение) или класса и принадлежности некоторому множеству (горизонтальное разбиение). Пример вертикального разбиения -- все объекты класса "Компания". Пример горизонтального -- все объекты класса "Компания", входящие в папку "Общие клиенты" справочника контактов.

Объекты, не принадлежащие ни одному из доменов, реплицируются по всей РБД. Т.е. можно говорить что такие объекты принадлежит некоему глобальному домену, который существует изначально и покрывает всю РБД.

Мы будем называть доменным пространством 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.

Передача статуса активной базы данных

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты