Serve.cfg:global:uuid run store

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Глобальные конфигурационные параметры/uuid_run_store

Если данная конфигурационная переменная установлена в 1, то в турнире включается новый формат хранения файлов посылок.

В новом формате хранения используется уникальный идентификатор каждой посылки (UUID). Все файлы, относящиеся к одной посылке, хранятся в одном каталоге. Например, файлы, относящиеся к посылке с UUID 045f9a67-65a5-4a8b-954d-912e93fbc73f хранятся в каталоге var/archive/uuid/04/5f/045f9a67-65a5-4a8b-954d-912e93fbc73f. Файл с исходным кодом называется source[.gz], файл с протоколом проверки — report[.gz], файл аудита — audit. Файлы могут сжиматься с помощью gzip (тогда имя имеет суффикс .gz). Новый формат хранения файлов посылок имеет несколько преимуществ:

  • отсутствует ограничение на один миллион посылок;
  • UUID посылки не изменяется при смене номера посылки, поэтому не требуется переименование файлов при добавлении новой посылки в середину;
  • UUID посылки является глобально уникальным, то есть вероятность появления другой посылки UUID которой был сгенерирован независимо, является пренебрежимо малой, что облегчает слияние нескольких турниров в один;
  • все файлы, относящиеся к одной посылке хранятся в одном месте.

Недостатком нового формата хранения является усложнение доступа к файлам посылки по ее номеру.

Новый формат хранения файлов посылок нормально сосуществует со старым форматом хранения. Новый формат хранения нормально сосуществует со старым форматом хранения. А именно, в базу данных в таблицу посылок добавлено новое поле store_flags. Если значение поля равно 0 (значение по умолчанию), то файлы посылки хранятся в старом формате, если значение поля равно 1, то файлы посылки хранятся в новом формате.

В ходе турнира можно включать и выключать новый формат хранения файлов посылок в произвольные моменты времени. Посылки, поступившие когда новый формат хранения посылок был включен, будут храниться в новом формате, а когда выключен — в старом формате.

Поддерживается, начиная с версии 2.3.29.