4.2.1.2.1.3.2.5. Отсечение начала журнала транзакций
Для каждой секции ключей удерживается начальная позиция в журнале транзакций: транзакция, с которой было начато накопление текущего InMem-фрагмента для секции. Когда для секции порождается новый InMem-фрагмент, эта позиция смещается на соответствующую транзакцию.
Среди начальных позиций по всем секциям ключей определяется минимальная позиция, которая считается позицией отсечения начала журнала.
Эта позиция публикуется в интерфейсе мониторинга, в параметре Tx/Record/CutBound.
|
По мере сохранения на диск InMem-фрагментов позиция отсечения смещается, и выполняется отсечение начала журнала. В результате этого в журнале освобождаются ранее занятые сегменты, которые перезаписываются новыми данными. Таким образом, при штатной работе базы данных размер файла журнала увеличивается до некоторого предельного значения в зависимости количества секций ключей и значения параметра data/write/chunk_size, и далее его пространство используется повторно.
Начальная позиция в журнале, публикуемая параметром Tx/Record/Head находится левее позиции отсечения Tx/Record/CutHead, поскольку фактическая позиция отсечения выравнивается на позицию специальной служебной записи.
|
Также реализована операция автоматического сокращения размера файла журнала.