Концептуальная модель предметной области#

architecture

Определения элементов:

  • Граф (graph) — набор модулей, решающих единую бизнес-задачу.

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

  • Конфигурация (config) — описание правил репликации и трансформации данных без привязки к конкретным источникам и приемникам данных. Конфигурация содержит:

    • «белый» список реплицируемых таблиц (или «черный» список нереплицируемых);

    • соответствие таблиц и полей в источнике таблицам и полям в приемнике;

    • правила трансформации данных, настройки синхронной репликации.

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

  • Соединение (connection) — URL конкретного источника данных. Например, PostgreSQL или файл.

    Помимо URL источника/приемника для соединения можно задать дополнительные параметры в интерфейсе консоли, во вкладке Соединения, окне Редактирование свойств соединения, поле Опции. Например, для PostgreSQL это название слота логической репликации.

  • Представление (view) — произвольное объединение модулей для отображения и удобства массовых управляющих воздействий.

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

  • Метка (tag) — произвольная строка, позволяющая быстро найти модуль по ключевому слову.

    С целью удобства поиска и фильтрации модули могут быть снабжены произвольным количеством текстовых меток – тегов.

  • Процесс (process) — запущенный модуль, то есть процесс операционной системы, выполняющий перемещение данных между хранилищами данных (БД, файловыми системами и так далее) в соответствии с настройками модуля.

    Чтобы запустить процесс репликации, следует при помощи консоли или API запустить модуль, то есть породить процесс. В каждый момент только один процесс для каждого модуля может быть активен, но впоследствии возможно появление модулей, которые могут быть запущены в нескольких экземплярах.

  • Хост (host) — сервер, где установлены исполнители GraDeLy и где могут быть запущены процессы репликации.

    При развертывании GraDeLy в конфигурации «клиент/сервер» администратор должен указать хост, на котором будет запущен процесс. Хост представляет собой сервер (физический или виртуальный). При развертывании в среде контейнерной виртуализации весь кластер Kubernetes представляет собой единственный хост, а физический сервер, где будет запущен процесс, определяет сам Kubernetes непрозрачно для потребителя.

  • Агенты взаимодействий - сущности, участвующие в процессе репликации

  • Приемник изменений - сущность, принимающая изменения в процессе репликации, обычно БД приемника.

  • Источник изменений - сущность, отправляющая изменения в процессе репликации, обычно БД источника.

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

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

  • Данные - информация, имеющая ценность для потребителя, которая подлежит логической репликации.

  • Вектор изменений - единица данных, участвующих в репликации.

  • Схема данных - сущность, определяющая нахождение данных в источнике и приемнике.

  • Формат данных - способ записи данных.