Версия 2.3.10 (r5160) (20081004)
================================
Хранение базы пользователей в MySQL
-----------------------------------
Поддерживается хранение базы пользователей в базе данных MySQL.
Поддержка MySQL реализована с помощью плагина uldb_mysql.so.
Конфигурационные параметры плагина определяются в файле
ejudge.xml. Минимальные конфигурационные настройки могут
выглядеть следующим образом:
ejudge
*********
ejudge
База данных ejudge и пользователь ejudge с полными правами
работы с этой базой должны быть предварительно созданы,
например, с помощью phpMyAdmin.
Для перехода от хранения базы пользователей в XML-файле к
хранению базы пользователей в MySQL необходимо настроить плагин,
создать базу данных, а затем выполнить команду
userlist-server --convert --from xml --to mysql
Обратный переход от базы данных к XML-файлу в данный момент не
поддерживается, но будет поддерживаться в следующей версии.
Запросы к базе данных по умолчанию кэшируются, но кэширование
можно отменить, указав атрибут cache_queries="no" в элементе
конфигурации плагина. Кэшируется не вся база
пользователей, а только некоторая часть недавно запрошенных
записей. При полном заполнении кэша вытесняются записи, которые
не запрашивались дольше всего. Обновление базы выполняется сразу
же в базе данных MySQL, при этом соответствующая запись
удаляется из кэша, поэтому чтение, следующее за обновлением,
приведет к запросу на чтение из базы данных.
Кэшированием можно управлять и во время работы сервера
userlist-server, послав ему один из специальных сигналов
(см. далее).
Хранение сообщений в MySQL
--------------------------
Поддерживается хранение базы сообщений в базе данных MySQL.
Выбор вида хранения базы посылок выполняется для каждого турнира
отдельно. По умолчанию сообщения хранятся в файлах. Чтобы
включить хранение базы сообщений в базе данных MySQL необходимо
в конфигурационном файле serve.cfg турнира установить параметр
clardb_plugin = "mysql"
Поддержка MySQL реализована с помощью плагина cldb_mysql.so.
Конфигурационные параметры плагина определяются в файле
ejudge.xml. Минимальные конфигурационные настройки могут
выглядеть следующим образом:
ejudge
*********
ejudge
База данных ejudge и пользователь ejudge с полными правами
работы с этой базой должны быть предварительно созданы,
например, с помощью phpMyAdmin.
При работе с базой сообщений турнира она полностью загружается в
память при открытии турнира и не обновляется из MySQL. Однако
все записи в базу сообщений немедленно приводят к обновлениям в
MySQL базе. Поэтому не рекомендуется изменять MySQL базу сообщений
в то время, когда турнир загружен. Команда "Reload contest
settings" интерфейса администратора в числе прочего и перечитает
базу сообщений из MySQL.
Устранены несколько мелких утечек памяти.
contest.xml
-----------
Добавлен элемент . Данный элемент позволяет
указать имя HTML-файла с текстом, который выводится при
регистрации на турнир с помощью CGI-программы new-register.
userlist-server
---------------
Если в качестве хранилища базы данных пользователей используется
MySQL, то обрабатываются следующие сигналы, позволяющие менять
стратегии кэширования во время работы программы:
USR1 сбрасывает кэш и запрещает дальнейшее кэширование
USR2 сбрасывает кэш
URG разрешает кэширование
new-server
----------
Посылки одного приоритета компилируются и тестируются в том
порядке, в котором они поступили в систему (точнее, в порядке
возрастания их run_id).
На страницу администратора турнира добавлена ссылка
"Change judging priorities", которая позволяет изменять
приоритет тестирования для задач. Заданный таким образом
приоритет тестирования для задач прибавляется к глобальному
приоритету (глобальная переменная `priority_adjustment'),
приоритету пользователя (глобальная переменная
`user_priority_adjustment'), приоритету языка программирования
(переменная `priority_adjustment' секции определения языка
программирования), приоритету задачи (переменная
`priority_adjustment' секции определения задачи), приоритету
тестировщика (переменная `priority_adjustment' секции
определения тестировщика) и приоритету перетестирования (+10 к
приоритету в случае повторного тестирования посылки).
Приоритет изменяется от -16 до 15, причем -16 соответствует
максимальному приоритету. Значение приоритета по умолчанию - 0.
При отображении листинга программы на странице "View source"
привилегированного пользователя можно задавать кодировку, в
которой записана программа (выпадающий список "Charset").
На странице просмотра листинга программы ("View source")
привилегированного пользователя поддерживается возможность
отправки комментария к данной посылке. Комментарий заносится в
базу сообщений с заголовком "Run RUN-ID is commented" и доступен
автору посылки. Поддерживается возможность отправить комментарий
к посылке и одновременно отметить посылку как "Ignored".
На странице регистрации корректно обрабатывается ситуация, когда
установлен флаг `disable_name', но заданы поля формы, которые
необходимо заполнить.
Просмотр паролей участников доступен только привилегированным
пользователям с соответствующими привилегиями.
new-server-cmd
--------------
Поддерживается команда "force-start-virtual" для принудительного
запуска виртуального турнира у указанного пользователя.
convert-clars
-------------
Новая программа для конвертации одного формата хранения базы
посылок в другой. Программа инсталлируется либо в каталог bin,
либо в каталог libexec/ejudge/bin, в зависимости от опции
--enable-hidden-server-bins скрипта configure. Например, для
перевода базы посылок некоторого турнира из файлового формата в
базу данных MySQL программа должна вызываться со следующими
аргументами:
convert-clars CONTEST-ID file mysql
Плагин cldb_mysql должен быть корректно настроен (см. выше) и
требуемая база должна быть создана.
run
---
Исправлена ошибка падения программы на очень больших выходных
файлах чекера.
clean-users
-----------
Убран из списка компилируемых программ.