Реализация таблиц актуализации ( .IFS ), начиная с версии 2012.1, в классической версии ИРБИС64 была предназначена для ускорения процедуры актуализации записей путем уменьшения количества выполняемых форматов по сравнению с обычной ТВП для инвертированного файла БД. Вместе с тем, результаты, показывающие эффективность данного метода, не были получены и создавала дополнительные сложности:
Для поддержки выполнения ТВП для инвертированного файла БД на основе таблиц актуализации требовалось больше оперативной памяти, зарезервированной под контекст записи. Что существенно уменьшало количество записей, которые могли быть обработаны сценариями ГК, поскольку контексты открытых записей накапливались в оперативной памяти до момент сохранения изменений в БД
Исключалась оптимизация путем кэширования в памяти откомпилированной ТВП для инвертированного файла БД, так как ТВП для инвертированного файла БД модифицировалась на основе таблицы актуализации при каждом обновлении записи
Отсутствовали технические средства как для создания таблиц, так и для контроля их работоспособности. Алгоритм создания таблиц актуализации описанный в документации имел ряд нюансов, позволяющих допускать ошибки (Например, неявное использование полей в форматных выходах, вложенные форматы)
Механизм включения вложенных форматов в классических версиях Ирбис работает путем простой вставки текста указанного файла в текст формата, что увеличивало размер текста при использовании нескольких таких конструкций в одном файле
Параллельно с этим скорость выполнения ТВП для инвертирования файла БД (.FST) в серверных приложениях Ирбистурбо увеличилась в 56 раз, за счет увеличением скорости выполнения форматов
Это произошло по ряду причин:
1.{}Более быстрая реализацию языка форматирования{} {}xpft{}{}:{}
Язык форматирования xpft, как и ядро Ирбис-турбо написан на c++ и существенно оптимизирован
Многие функции, портированные из реализации классической версии ИРБИС переписаны для увеличения скорости
В языке форматирования xpft разделены этапы синтаксического разбора и интерпретации форматов ( т.е. во время выполнения форматы уже не подвергаются синтаксическому разбору, а работают откомпилированные программы)
Фактически, форматы xpft представляют собой откомпилированные программы из элементов AST дерева
Структура откомпилированного формата xpft позволяет использовать паттерн Visitor
Загрузка вложенных форматов происходит динамически, а уже откомпилированные объекты используются повторно
3.{}Применяется кэширование откомпилированных форматов и таблиц выбора полей{}
Кэшируются используемые форматами ресурсные файлы, контексты БД, а также результаты внутренних поисков (Однажды разобранный формат, а также таблицы ТВП помещается в кэш).
4.{}Используются{} lookupтаблицы полей записи
1. Механизм интерактивной отладки не только форматов как таковых, а также сценариев ГК, файлов сортировки, появился благодаря использованию паттерна Visitor в структуре откомпилированного формата
В связи с тем, что главный аргументом для создания таблиц актуализации был медленный язык форматов, а в приложениях Ирбис-турбо этот аргумент стал неактуален, было принято решение отказаться от таблиц актуализации.