Режим СОЗДАТЬ СЛОВАРЬ ЗАНОВО


НАЧАЛО >> Оглавление >> Серверный АРМ Администратор ИРБИС 64 >> Основные режимы работы >> Режимы АКТУАЛИЗАЦИЯ >> Режим СОЗДАТЬ СЛОВАРЬ ЗАНОВО


Содержится в пункте АКТУАЛИЗАЦИЯ главного меню.

Режим служит для формирования заново всего файла словаря (инвертированного файла) на основании всех документов текущей БД.

Режим применяется в случае, когда необходимо актуализировать инвертированный файл в связи со значительным количеством неактуализированных документов (т.е. когда значение системного параметра ЗАПИСЕЙ НЕАКТУАЛИЗИРОВАННЫХ достаточно велико по сравнению с общим объемом базы данных), а также в случае восстановления БД после ее разрушения или утраты.

Процесс формирования словаря заново для больших баз данных может оказаться достаточно продолжительным - поэтому система предлагает возможность поэтапного выполнения этого процесса. Для этого существуют три подрежима, реализующие основные этапы процесса создания словаря:

Этапы должны выполняться строго в той последовательности, как они указаны в меню.

Процесс формирования инвертированного файла - полностью или отдельные его этапы - завершается выводом соответствующих сообщений.

Режим является монопольным, т.е. вызывает монопольную блокировку БД.

ВНИМАНИЕ! Если процесс формирования инвертированного файла или его отдельные этапы завершаются аварийно - завершающее сообщение не получено, - необходимо запустить их повторно.

При этом аварийное завершение полного процесса или его последнего этапа (ТОЛЬКО ЗАГРУЗКА) означает, что инвертированный файл БД разрушен (является недоброкачественным).

Если повторный запуск процессов не приводит к положительному результату, необходимо провести действия по восстановлению БД в целом.

Введена МНОГОПРОЦЕССОРНАЯ технология для режима СОЗДАТЬ СЛОВАРЬ ЗАНОВО, что позволяет СУЩЕСТВЕННО ускорить выполнение этого режима (дополнительно используется исполняемый модуль IrbisMultiLoad.exe).

Выигрыш по времени получается существенным на БОЛЬШИХ БД (>100 тыс.) и при количестве ядер (процессоров) не менее двух.

В связи с этим введен параметр в IRBISA.INI в секции [MAIN]

MULTILOAD=N

где N - количество параллельных процессов.

Значение параметра MULTILOAD по умолчанию - равно реальному количеству ядер/процессоров в системе.

Также введен дополнительный параметр (в секции [MAIN]):

MULTISORT=

который имеет смысл ТОЛЬКО при MULTILOAD>1 и определяет: используется (значение 1 - по умолчанию) или не используется (значение 0) многопроцессорная обработка на этапе СОРТИРОВКИ при создании словаря.

Введение данного параметра связано с тем, что при определенных условиях (зависящих от кол-ва процессов и объема БД) многопроцессорная сортировка оказывается МЕДЛЕННЕЕ однопроцессорной. Связано это с тем, что собственно процесс сортировки включает разбиение исходных данных на части. Тестирование показало, что на двухядерной машине (MULTILOAD=2) при любых объемах БД многопроцессорная сортировка (MULTISORT=1) идет быстрее, чем однопроцессорная. А вот на машине с 8 процессорами для БД объемом в диапазоне 200-300тыс. многопроцессорная сортировка идет медленнее однопроцессорной (при объемах БД меньше и больше этих значений многопроцессорная "выигрывает")

Ниже приводятся результаты испытаний загрузки для БД Электронного каталога объемом 485 тыс.документов на компьютерах разной мощности:

Компьютер Pentium Dual-Core (2-ух ядерный) 2.6 ГГц, 2 Гб ОЗУ

Кол-во процессов время выполнения
1 (MULTILOAD<2) 6 час. 27 мин. 3 сек.
2 (MULTILOAD=2) 3 час. 36 мин. 42 сек.
3 (MULTILOAD=3) 4 час. 13 мин. 10 сек.

Компьютер Intel Xeon 8 процессоров 2.6 ГГц, 2 Гб ОЗУ

Кол-во процессов время выполнения
1 (MULTILOAD<2) 6 час. 16 мин. 32 сек.
8 (MULTILOAD=8) 1 час. 8 мин. 17 сек.
10 (MULTILOAD=10) 1 час. 11 мин. 47 сек.