Difference between revisions of "Serve.cfg:global:enable remote cache"

From EjudgeWiki
 
(...)
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.