Механизм транзакций в современных СУБД обычно реализуется с использованием журнальных файлов. Журнальные файлы представляют собой файлы, в которых накапливаются изменения в данных в процессе выполнения транзакции.
В СУБД HyTech используется отдельный журнальный файл для каждой таблицы. Это позволяет избавиться от «узкого места» в виде общего журнального файла, что повышает надежность системы и делает процедуры резервного копирования более гибкими: можно копировать данные таблиц и связанного с ними журнального файла совершенно отдельно. С другой стороны, поскольку в рамках транзакции требуется иногда изменять данные в разных таблицах, – это увеличивает количество операций записи (нельзя произвести запись изменений через единственный разделяемый буфер), что негативно сказывается на производительности.
В СУБД HyTech переменная часть таблицы и является журнальным файлом. Постоянная часть изменяется только при выполнении операции упаковки.
Журнальный файл используется для поиска данных наряду с постоянной частью. Оптимизатор запросов самостоятельно определяет, где именно (в постоянной, переменной или в обеих частях) следует искать данные при выполнении запроса. В журнальном файле не поддерживается механизм индексации, что, с одной стороны, минимизирует накладные расходы при операциях добавления/изменения/удаления, а, с другой, при значительном росте журнального файла замедляет механизм поиска.
СУБД HyTech не имеет встроенных систем архивации журнальных файлов и дублирования журнальных файлов в процессе работы сервера.