НАЧАЛО >> Нативный провайдер данных DP_Irbis64Native >> Внутреннее устройство📄 Скачать в DOCX
DP_Irbis64Native состоит из внешнего модуля-провайдера и набора внутренних классов, которые работают с файлами ИРБИС64. Внешний слой принимает стандартные вызовы ИРБИС 128, а внутренний слой открывает физические файлы базы и выполняет операции с записями, словарем и индексом.
i128f.i128f выбирает корневой провайдер по OPTIONS['localProvider'].IrbisSpaceNative.IrbisSpaceNative открывает MST, XRF, словарь, обратный индекс и при необходимости полнотекстовые файлы.Такой порядок позволяет прикладным модулям не знать, работает база через TCP, расширение PHP или нативный файловый доступ.
Контекст хранит параметры, которые нужны большинству операций:
ExecDir - каталог окружения ИРБИС64;DataPath - каталог баз данных и .par-файлов;WorkDir - рабочий каталог;DepositPath - депозитарий;ARMIni - объединенные настройки АРМа;DataBases - кэш уже открытых баз;AutoinTasks, Shelf, AltShelf - служебные наборы для пакетных операций;AllUtf8 - режим представления данных в UTF-8.Контекст создается один раз для экземпляра провайдера. Открытые базы кэшируются, поэтому повторное обращение к той же базе не требует повторного чтения .par и открытия всех файлов.
При первом обращении к базе провайдер:
<имя_базы>.par в каталоге данных;IrbisSpaceNative;Если база открывается в режиме чтения, имя может передаваться с префиксом -. В этом случае операции записи для такого контекста не выполняются.
Провайдер работает с основными файлами ИРБИС64:
MST - мастер-файл записей;XRF - таблица перекрестных ссылок MFN на физические адреса;N01 - управляющий файл основного словаря;L01 - листья основного словаря;N02, L02 - дополнительные пути словаря, которые читаются из .par и сохраняются в описании базы, но текущая реализация DP_Irbis64Native не использует их при поиске и актуализации;IFP - postings обратного индекса;CNT - служебный файл счетчиков;--TEXT - связанное полнотекстовое пространство для баз ИРБИС64+.Подробности по форматам MST, XRF, N01, L01 и IFP вынесены в отдельные технические страницы этого раздела.
Файловые базы ИРБИС64 часто хранят данные в Windows-1251. DP_Irbis64Native преобразует данные между внутренним представлением и UTF-8 при чтении и записи, если база не работает в полностью UTF-8-режиме. Режим определяется настройками окружения и параметрами базы.
Для критических операций записи используется журнал. Перед изменением файлов провайдер фиксирует исходные размеры и данные, затем завершает операцию подтверждением. Если процесс был прерван, при следующем открытии базы выполняется восстановление: файлы возвращаются к согласованному состоянию, а журнал удаляется.