Параметры очереди обмена данными
Last updated
Was this helpful?
Last updated
Was this helpful?
Параметры для настройки очереди обмена данными расположены в секции ExchangeQueue
в конфигурационном файле Оркестратора.
StatisticAvgWindow
Ширина окна сбора средних (сек)
StatisticAvgWindowPreCount
Запас создания окон
Внутренний системный параметр для оптимизации. Не рекомендуется менять
StatisticAvgLastWindowsCount
Количество последних окон, которое отдается в запросе
StatisticRecalcInterval
Интервал (мсек) пересчета статистики
StatisticBatchSize
Размер пачки, вычитываемой за раз из очереди событий статистики
События, связанные со статистикой очередей обмена данными (круговая диаграмма в таблице с очередями), регистрируются в реальном времени во внутренней очереди Оркестратора. Обработка этой очереди происходит с периодичностью StatisticRecalcInterval
. За одну итерацию из очереди считывается пачка событий размером StatisticBatchSize
, на основе которой пересчитывается статистика.
Среднее время обработки элемента очереди (разность дат события прочтения элемента и последнего события* завершения обработки элемента) считается по окну StatisticAvgWindow
. Например, раз в 2 минуты. Окна создаются с запасом StatisticAvgWindowPreCount
при заполнении очередного множества окон. Запрос для построения графика в UI отдаёт последние заполненные окна в размере StatisticAvgLastWindowsCount
.
* - В настоящей реализации такое событие всегда одно
Параметры для оптимизации чтения из очереди по FIFO приведены ниже.
FIFORetry
Количество ретраев при извлечении по FIFO. Если задан в настройке очереди, аналогичный параметр берется из БД для очереди
PrefetchDepth
Глубина предварительной выборки в PrefetchBuffer. Не рекомендуется выше 500. Если 0, PrefetchBuffer не используется
Предварительная выборка используется в скоростном режиме. PrefetchBuffer – временный буфер, в который вычитывается сразу несколько элементов очереди из БД, и последующие обращения идут в этот буфер
PrefetchBufferResetInterval
Интервал (мсек) сброса PrefetchBuffer
Происходит синхронизация вычитанных из PrefetchBuffer элементов с БД
SpeedModeInterval
Интервал (мсек) между 2-мя последовательными запросами к чтению из очереди по FIFO, определяющий переключение в скоростной режим
PrefetchBuffer используется в скоростном режиме
Иллюстрация работы PrefetchBuffer:
В момент запроса t1 очередь еще работает в обычном режиме, запрос обслуживается напрямую в БД.
В момент запроса t2, так как t2 – t1 < SpeedModeInterval
, очередь переходит в скоростной режим, и формируется PrefetchBuffer. Запрос обслуживается этим буфером. Операций в этот момент происходит больше, так как требуется сформировать PrefetchBuffer, но они соизмеримы по времени с обслуживанием запроса t1.
В моменты t3 и t4 очередь уже работает в скоростном режиме и запросы обслуживаются сразу из PrefetchBuffer.
Синхронизация прочитанных в PrefetchBuffer элементов с БД происходит в фоне с периодичностью PrefetchBufferResetInterval
. Эта синхронизация выполняется массово (не одиночные запросы к БД) через внутреннюю очередь.
Условие проверки уникальности натурального ключа (глобального или локального) элемента очереди после его удаления задается булевыми параметрами DeletedNaturalKeysIsGlobalUniqueRequired
и DeletedNaturalKeysIsUniqueRequired
. Если true
– удаленный элемент не участвует в проверке уникальности.