4.2.1.2.1.4. Оценка объема базы данных

 
Главные отличия от баз данных формата 3x, влияющие на методику оценки:
Отсутствие зависимости от числа источников
Иной состав и устройство служебных файлов базы данных
Более плотное хранение данных на диске:
Использование точности метки времени 1 мс (в дальнейшем точность будет вынесена в настройки) и применение техник сокращения служебной и индексной информации
Отсутствия выравнивания на границах блоков
Отсутствие выравнивания размеров фрагментов
 
Общий объём базы данных может быть оценен согласно формуле:
DatabaseSizeEstimation = DataSizeEstimation + ServiceSizeEstimation
 
Здесь:
DataSizeEstimation - оценка совокупного размера хранимых данных
ServiceSizeEstimation - оценка совокупного размера служебных файлов
 

Оценка объёма хранимых данных DataSizeEstimation

DataSizeEstimation = StorageDepth * PerDayVolumeSizeEstimation
 
Здесь:
StorageDepth - максимальная глубина хранения, в сутках (параметр 4x/data/storage_limits/max_depth) в настройках работы базы данных
PerDayVolumeSizeEstimation - оценка среднесуточного объёма хранимых данных
 
Для получения среднесуточного объёма хранимых данных PerDayVolumeSizeEstimation необходимо оценить, какого размера записи и с какой интенсивностью будут сохраняться.
 
При наличии накопленного объёма данных и стабильности интенсивности и характера содержимого потока сохраняемых записей по метрикам, содержащимся в разделах DataMetrics.Persistent и StorageMetrics, могут быть получены общие усреднённые показатели размера записи, суточного объёма данных и пр. Эти показатели могут быть использованы для оценки прироста размера хранимых данных.

Оценка объёма служебных файлов ServiceSizeEstimation и ограничение размера файла tx

 

Файл реестра объектов objects

 
Размер файла objects зависит от числа зарегистрированных в базе данных элементов, по которым выполняется сохранение данных.
Средний размер записи об элементе  - ~28 байт. Размер файла выравнивается вверх на 32 МБ.
 
Пример:
В базе данных с 1 000 000 зарегистрированных элементов файл objects имеет размер ~32 МБ (использовано ~27 МБ)

Файл журнала транзакций tx

 
Размер файла tx зависит от числа элементов и интенсивности поступающего потока данных. В него записываются сохраняемые в базу данных записи, которые удерживаются в нём до тех пор, пока не будут перенесены в основной раздел data.
 
Оценку размера внутреннего пространства журнала, необходимого для удержания записей до их переноса в основой раздел базы данных data, можно вычислить по следующей формуле:
TxLogUsedSpaceSizeEstimation = ( NumItems / 32768 ) * ChunkSize
 
Здесь:
NumItems - число элементов, по которым ведётся сохранение
32768 - размер секции ключей (на данный момент константен и не изменяется)
ChunkSize - значение параметра настроек работы базы данных 4x/data/write/chunk_size, определяющего предельный размер оперативного блока данных по секции ключей, по достижении которого выполняется его сохранение на диск
 
 
На случай возможных всплесков интенсивности сохранения данных, превышающих интенсивность сохранения в основной раздел data, предусмотрен механизм удержания пространства журнала в границах, регулируемых параметрами раздела настроек работы базы данных 4x/tx:
подраздел max определяет максимально возможную границу - для предотвращения неограниченного увеличения файла журнала
подраздел min определяет предпочтительную минимальную границу
для сохранения резерва пространства на случай возможных последующих всплесков