4.2.1.2.1.1.5. Хранилище

 
Папка data содержит сохранённые на диск фрагменты данных. Она имеет следующую структуру:
 
<data>                                        //Раздел фрагментов данных
└── <YEAR>                            //Папка с данными за год 'YEAR'
       └── <MONTH>-<DAY>   //Папка секции с данными за день 'DAY' месяца 'MONTH'
              └──i<K>                   //Папка секции ключей со стартовым значением ключа 'K', пример: 'i65536' ('i' == 'item')
              └── g<G>.tx<TXs>-<TXe>.pf //Файл фрагмента данных поколения 'G', содержащий записи с идентификаторами транзакций от 'TXs' до 'TXe' включительно. Пример: 'g1.tx1192982731-1231624082.pf'
 
Папки <MONTH>-<DAY> содержат данные по суточным секциям. В них хранятся данные за временной интервал [DAY_START, DAY_START + 24h), где DAY_START - метка времени начала суток, соответствующих секции, в UTC.
 
Папки i<K> (внутри папок <MONTH>-<DAY>) содержат данные по секциям по ключам элементов. В них хранятся файлы фрагментов данных.
 
Файлы фрагментов данных имеют закрытый бинарный формат.
 
Фрагменты данных, изначально сохранённые на диск блоком кластеризации, имеют поколение 0. Далее, когда в секции накапливается достаточное количество фрагментов поколения 0, выполняется слияние и взамен формируются фрагменты поколения 1.
Слияние фрагментов данных позволяет:
Повысить эффективность выборки за счёт:
Дефрагментации данных: последовательности записей по элементам, находившиеся в разных фрагментах поколения 0, собираются в единую последовательность в одном фрагменте поколения 1
Сокращения операций поиска при начальном позиционировании в ходе выборки
Сократить число удерживаемых открытыми файлов.
 
Фрагменты данных и содержащие их папки удаляются из раздела при выполнении очистки (автоматическая или ручная очистка).
 
Параметры раздела data/storage_limits в настройках работы базы данных определяют предельные размеры хранилища, по достижении которых может запускаться автоматическая очистка:
max_data_size - по совокупному размеру данных
max_depth - по глубине