Difference between revisions of "Serve.cfg:global:enable remote cache"
(Created page with "Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/se...") |
(...) |
||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/<code>[[Serve.cfg:global:enable_remote_cache|enable_remote_cache]]</code> | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/<code>[[Serve.cfg:global:enable_remote_cache|enable_remote_cache]]</code> | ||
+ | |||
+ | Типичный путь поступившего на тестирование файла выглядит следующим образом: | ||
+ | * исходный файл передается через каталоги обмена от [[ej-contests]] к [[ej-compile]]. Если компоненты находятся на разных хостах, файл копируется по сети. | ||
+ | * после компиляции скомпилированный файл передается через каталоги обмена от [[ej-compile]] к [[ej-contests]]. Если компоненты находятся на разных хостах, файл копируется по сети. | ||
+ | * скомпилированный файл передается через каталоги обмена от [[ej-contests]] к [[ej-super-run]]. Если компоненты находятся на разных хостах, файл копируется по сети. | ||
+ | |||
+ | Размер скомпилированного файла может быть весьма большим (несколько мегабайт), например, для программ на kotlin или go, и копирование исполняемого файла | ||
+ | по сети туда и обратно может потребовать заметного времени, сравнимого со | ||
+ | временем тестирования. | ||
+ | |||
+ | В случае, когда и компонент компиляции [[ej-compile]], и компонент тестирования [[ej-super-run]] выполняются на одном и том же хосте, отличном от хоста [[ej-contests]], и только на этом хосте, передавать результат компиляции по сети на сервер [[ej-contests]] и обратно не имеет смысла. | ||
+ | |||
+ | В этом случае можно использовать локальное кеширование результатов компиляции. | ||
+ | Компонент [[ej-compile]] не скопирует файл на сервер, а положит его в | ||
+ | локальный каталог, из которого он будет забран компонентом [[ej-super-run]]. | ||
+ | |||
+ | Для включения локального кеширования глобальная конфигурационная | ||
+ | переменная <code>enable_remote_cache</code> должна быть установлена | ||
+ | в положительное значение. Кроме того, при запуске компонентов | ||
+ | компиляции и тестирования ejudge должна быть указана опция | ||
+ | <code>--local-cache</code>. | ||
+ | |||
+ | Пример: | ||
+ | enable_remote_cache | ||
+ | |||
+ | Поддерживается начиная с версии [[изменения в версии 3.11.0|3.11.0]]. |
Revision as of 22:21, 10 August 2023
Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Глобальные конфигурационные параметры/enable_remote_cache
Типичный путь поступившего на тестирование файла выглядит следующим образом:
- исходный файл передается через каталоги обмена от ej-contests к ej-compile. Если компоненты находятся на разных хостах, файл копируется по сети.
- после компиляции скомпилированный файл передается через каталоги обмена от ej-compile к ej-contests. Если компоненты находятся на разных хостах, файл копируется по сети.
- скомпилированный файл передается через каталоги обмена от ej-contests к ej-super-run. Если компоненты находятся на разных хостах, файл копируется по сети.
Размер скомпилированного файла может быть весьма большим (несколько мегабайт), например, для программ на kotlin или go, и копирование исполняемого файла по сети туда и обратно может потребовать заметного времени, сравнимого со временем тестирования.
В случае, когда и компонент компиляции ej-compile, и компонент тестирования ej-super-run выполняются на одном и том же хосте, отличном от хоста ej-contests, и только на этом хосте, передавать результат компиляции по сети на сервер ej-contests и обратно не имеет смысла.
В этом случае можно использовать локальное кеширование результатов компиляции. Компонент ej-compile не скопирует файл на сервер, а положит его в локальный каталог, из которого он будет забран компонентом ej-super-run.
Для включения локального кеширования глобальная конфигурационная
переменная enable_remote_cache
должна быть установлена
в положительное значение. Кроме того, при запуске компонентов
компиляции и тестирования ejudge должна быть указана опция
--local-cache
.
Пример:
enable_remote_cache
Поддерживается начиная с версии 3.11.0.