Fix typos
This commit is contained in:
parent
6a208e7817
commit
e7eb367383
6 changed files with 11 additions and 11 deletions
|
@ -37,7 +37,7 @@ type Job struct {
|
|||
//
|
||||
// ID вычисляется как хеш от всех входных файлов, команд запуска и хешей зависимых джобов.
|
||||
//
|
||||
// Выход джоба целиком опеределяется его ID. Это важное свойство позволяет кешировать
|
||||
// Выход джоба целиком определяется его ID. Это важное свойство позволяет кешировать
|
||||
// результаты сборки.
|
||||
ID ID
|
||||
|
||||
|
@ -91,7 +91,7 @@ type Job struct {
|
|||
- [`distbuild/pkg/api`](./distbuild/pkg/api) - протокол общения между компонентами.
|
||||
- [`distbuild/pkg/artifact`](./distbuild/pkg/artifact) - кеш артефактов и протокол передачи артефактов между воркерами.
|
||||
- [`distbuild/pkg/filecache`](./distbuild/pkg/filecache) - кеш файлов и протокол передачи файлов между компонентами.
|
||||
- [`distbuild/pkg/scheduler`](./distbuild/pkg/filecache) - планировщик с экристикой локальности.
|
||||
- [`distbuild/pkg/scheduler`](./distbuild/pkg/filecache) - планировщик с эвристикой локальности.
|
||||
|
||||
После того, как все кубики будут готовы, нужно будет соединить их вместе, реализовав `distbuild/pkg/worker`,
|
||||
`distbuild/pkg/client` и `distbuild/pkg/coordinator`. Код в этих пакетах нужно отлаживать на
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
## Worker <-> Coordinator
|
||||
|
||||
- Worker и Сoordinator общаются через один запрос `POST /heartbeat`.
|
||||
- Worker и Coordinator общаются через один запрос `POST /heartbeat`.
|
||||
- Worker посылает `HeartbeatRequest` и получает в ответ `HeartbeatResponse`.
|
||||
- Запрос и ответ передаются в формате json.
|
||||
- Ошибка обработки heartbeat передаётся как текстовая строка.
|
||||
|
|
|
@ -38,7 +38,7 @@ type HeartbeatRequest struct {
|
|||
// в данный момент.
|
||||
RunningJobs []build.ID
|
||||
|
||||
// FreeSlots сообщаяет, сколько еще процессов можно запустить на этом воркере.
|
||||
// FreeSlots сообщает, сколько еще процессов можно запустить на этом воркере.
|
||||
FreeSlots int
|
||||
|
||||
// JobResult сообщает координатору, какие джобы завершили исполнение на этом воркере
|
||||
|
@ -51,7 +51,7 @@ type HeartbeatRequest struct {
|
|||
|
||||
// JobSpec описывает джоб, который нужно запустить.
|
||||
type JobSpec struct {
|
||||
// SourceFiles задаёт список файлов, который должны присутсововать в директории с исходным кодом при запуске этого джоба.
|
||||
// SourceFiles задаёт список файлов, который должны присутствовать в директории с исходным кодом при запуске этого джоба.
|
||||
SourceFiles map[build.ID]string
|
||||
|
||||
// Artifacts задаёт воркеров, с которых можно скачать артефакты необходимые этом джобу.
|
||||
|
|
|
@ -6,7 +6,7 @@ type Job struct {
|
|||
//
|
||||
// ID вычисляется как хеш от всех входных файлов, команд запуска и хешей зависимых джобов.
|
||||
//
|
||||
// Выход джоба целиком опеределяется его ID. Это важное свойство позволяет кешировать
|
||||
// Выход джоба целиком определяется его ID. Это важное свойство позволяет кешировать
|
||||
// результаты сборки.
|
||||
ID ID
|
||||
|
||||
|
|
|
@ -14,5 +14,5 @@
|
|||
|
||||
**Обратите внимание:** Несколько клиентов могут начать заливать в кеш один и тот же набор файлов. В наивной реализации,
|
||||
первый клиент залочит файл на запись, а следующие упадут с ошибкой. Ваш код должен обрабатывать эту ситуацию корректно,
|
||||
тоесть последующие запросы должны дожидаться, пока первый запрос завершится. Для реализации этой логики
|
||||
то есть последующие запросы должны дожидаться, пока первый запрос завершится. Для реализации этой логики
|
||||
поведения вам поможет пакет [singleflight](https://godoc.org/golang.org/x/sync/singleflight).
|
||||
|
|
|
@ -22,13 +22,13 @@
|
|||
Ожидающий исполнения джоб всегда находится в первой локальной очереди воркеров, на которых есть
|
||||
результаты работы этого джоба.
|
||||
|
||||
Если джоб ждёт выполнения дольше `CacheTimeout` или если в момент `SchedulerJob` джоба небыло в кеше ни на одном
|
||||
из воркеров, то он находится во всех вторых локальных очередях воркеров, на которых есть хотябы один артефакт
|
||||
Если джоб ждёт выполнения дольше `CacheTimeout` или если в момент `SchedulerJob` джоба не было в кеше ни на одном
|
||||
из воркеров, то он попадает во все вторые локальные очереди воркеров, на которых есть хотя бы один артефакт
|
||||
из множества зависимостей этого джоба.
|
||||
|
||||
Определения первой и второй локальной очереди не зависят от того, в каком порядке в шедулер пришли джобы
|
||||
и информация о кеше артефактов. Тоесть, если джоб уже находится в глобальной очереди, и в этот момент приходит
|
||||
информация, что этот джоб находится в кеше на `W0`, то джоб должен быть добавлен
|
||||
и информация о кеше артефактов. То есть, если джоб уже находится в глобальной очереди, и в этот момент приходит
|
||||
информация, что этот джоб находится в кеше на воркере `W0`, то джоб должен быть добавлен
|
||||
в первую локальную очередь `W0`.
|
||||
|
||||
Если джоб ждёт выполнения дольше `DepTimeout`, то он помещается в глобальную очередь.
|
||||
|
|
Loading…
Reference in a new issue