kw cluster
Зарезервированное слово
Список слов: §1.4
Синтаксис
Cluster = "cluster" Ident "{" { ClusterClause } "}" ;Грамматика: Прил. A
Определяется в
- 12.6 Распределённые вычисления — cluster.shards(src) — для шардированных таблиц и акторов; map выполняется рядом с данными, функция ДОЛЖНА быть передаваемой (§7.3).
- 12.3 Маршрутизация и поиск соседей — Вызов сервиса S
- 2.4 Точки входа и порядок запуска — Программа — пакет, содержащий хотя бы одно из
- 12.1 Объявление кластера — В программе не больше одного cluster.
- 5.7 Лямбды и замыкания — .field и .method(args) в позиции аргумента — сокращение лямбды с одним параметром.
- 6.5 Ошибки — Исключений нет. Ошибка — значение типа, помеченного @error, возвращаемое через объединение.
- 10.2 Атрибуты rpc — Значения по умолчанию для всех rpc задаются в cluster { defaults { …
- 11.2 Транзакция базы данных — Тело выполняется в транзакции базы db.
Примеры
let byRegion = cluster.shards(db.Order)
.map(o => (o.region, o.total)) // выполняется на владельцах шардов
.reduceBy(.0, (a, b) => a + b) // частичная агрегация, затем слияние
within REPORT_DEADLINE
cluster.leader("nightly-report") { every(REPORT_PERIOD) { buildReport() } }
cluster.lock("user:{uid}", ttl: LOCK_TTL) { migrateUser(uid) }— 12.6 Распределённые вычисления
let inc = x => x + 1
let add = (a: i32, b: i32) => a + b
users.map(.name) // = u => u.name
users.filter(.isActive()) // = u => u.isActive()
retryWith(3) { fetch() } // замыкание последним аргументом
cluster.lock("k", ttl: LOCK_TTL) { migrate() }Связанные диагностики
no-entry-point, actor-not-hosted, cluster-auth, cluster-decl, cluster-needs, cluster-seeds, placement-conflict, saga-without-role, service-not-served, topic-without-journal, unknown-role, fail-type, question-context, unhandled-error