4.2.1.1.2.3. Атрибуты для ограничений на хранение данных

 
Название
Описание
Значение
по умолчанию
PreferredCommonCacheLimit
Предпочтительный объем оперативной памяти в мегабайтах, используемой в качестве кеша для запроса данных из базы данных. 0 - без ограничений.
Чем больше значение данного параметра, тем больше данных будет находиться в кэше, обращение к которому выполняется значительно быстрее, чем запрос данных с диска.
128
ActiveStorageDepth
Длительность хранения данных в активной области в сутках.
Минимальное значение – 1.
3
StorageDepth
Максимальная глубина хранения данных в БД до удаления в сутках.
0 - без ограничений; если не 0, то должно быть больше или равно значения ActiveStorageDepth.
 0
VolumeLimit
Предельный объем БД в мегабайтах; при превышении предела выполняется очистка архивных данных до снижения объема ниже предела, если это возможно.
0 – без ограничений.
0
Атрибуты ActiveStorageDepth и StorageDepth отвечают за бракование данных, которые не попали в базу данных из-за устаревшей или опережающей метки времени.
 
Для каждого активного раздела учитываются следующие временные границы (слева-направо в направлении оси времени):
OutdatedBound < ActiveLowerBound < FrontBound < CurrentHistorianServerTime,
 
где OutdatedBound – это общая нижняя граница по общей глубине хранения, все, что ниже нее, признается устаревшим и сразу удаляется (застойные данные, например, когда база долго была в простое и ничего не передавалось в архив).
 
ActiveLowerBound – это нижняя граница активности для данной конкретной активной области:
 
ActiveLowerBound = FrontBound - ActiveStorageDepth
 
Все, что поступает на запись левее нее, также признается устаревшим и отбрасывается. А то, что уже сохранено (имеющиеся фрагменты левее нижней границы) запечатываются и передаются в архив.
 
FrontBound – фронтальная граница, соответствующая начальной границе самого "молодого" фрагмента в этом разделе. Смещается при появлении очередного самого "молодого" фрагмента, который, в свою очередь, появляется, когда по одному из тегов накапливаются данные, примерно, на 4 КБ. При этом если «хвост» данных приходится на следующие сутки (по UTC), то граница FrontBound смещается на следующие сутки. При этом если это будут не прям следующие сутки, а +N суток, то создастся такой самый "молодой" фрагмент, что граница FrontBound сместится правее на +N суток, что в итоге приведет к соответствующему смещению ActiveLowerBound.
 
CurrentHistorianServerTime – текущее время на сервере (Astra.Historian). Используется для фильтрации записей "из будущего": если метка времени сохраняемой записи > CurrentHistorianServerTime + 1 hour, то она отбрасывается как опережающая.