RocksReduListener

class RocksReduListener(broker: MessageBroker<*, *>)

Слушатель REDU-событий для синхронизации содержимого RocksDB через брокер сообщений.

Назначение:

  • На ACTIVE-узле отвечает на REDU_INIT отправкой снапшота БД, разбитого на чанки.

  • На STANDBY-узле принимает чанки, собирает ZIP, разворачивает снапшот, инициализирует RocksDB и догоняет до нужного seq.

  • После успешной инициализации публикует событие rocksdbColdStartReady в EventBus.

Потоки и конкурентность:

  • В init{} поднимаются два демона: thread-redu-master-events и thread-redu-slave-events.

  • Передача выполняется чанками размером CHUNK_SIZE = min(MessageBroker.CHUNK_SIZE, MAX_BROKER).

Файлы и каталоги:

  • Временные чекпойнты создаются в java.io.tmpdir и удаляются после отправки/применения.

  • Снапшот разворачивается в ${nosqlBaseDir}/${nosqlTableSpace}.

Ограничения и надёжность:

  • Снапшот отправляется без сжатия (ZIP, Deflater.NO_COMPRESSION) для минимизации CPU.

  • Идентификатор снапшота snapshotId и chunkIndex позволяют получателю устранять дубликаты.

  • Поле seq фиксирует целевой номер события для последующего догоняния (catchUpTo).

Parameters

broker

Брокер сообщений, используемый для подписки и публикации служебных пакетов снапшота.

Constructors

Link copied to clipboard
constructor(broker: MessageBroker<*, *>)

Properties