CDC — Change Data Capture

CDC подход для определения и отслеживания данных, которые изменились, чтобы можно было предпринять действия с использованием изменённых данных.

Use-case’ы

• Стриминг изменений в хранилище данных.
• Постобработка событий.
• Расчёт «онлайн»-аналитики.
• Логическая репликация.

Плюсы

  • События изменения данных.
  • Близко к реальному времени.
  • Асинхронно — в другом процессе.

Есть везде

• MySQL
• Oracle
• Cassandra
• PostgreSQL
• Microsoft SQL Server

CDC в Apache Ignite

• Отдельный процесс.
• Обрабатываем архивные WAL-сегменты.
• Нет перерасхода места на диске.
• Сохраняется состояние чтения. При восстановлении читаем с
места последнего commit’а.
• Нужен рестарт при падении средствами OS.
• public API для получения событий изменений данных. Можно
написать собственный event consumer.

Conflict resolver

1. Работает на каждое изменение в cache’е.
2. Определяет, какую entry использовать – new, old, merge.
3. public API, можно написать свой.
4. Есть реализация по умолчанию.

Conflict resolver #2

1. Локальное изменение всегда выигрывает.
2. Изменения с одного кластера сравниваются по внутренней
версии.
3. Сравниваются значения пользовательского comparable поля (если указано).
4. Изменение отбрасывается.


11.09.2021 07:08