mirror of
https://github.com/telemt/telemt.git
synced 2026-10-31 12:52:19 +03:00
Registry Cleanup in Model
This commit is contained in:
@@ -66,6 +66,8 @@ Main invariants:
|
||||
- Registry state is the source of truth for active ME-bound session mapping.
|
||||
- The registry binding lock linearizes client binds, writer publication, and the transition that closes a replacement victim to new binds.
|
||||
|
||||
Each leased client route reserves cleanup capacity for its lifetime. Dropping it removes the hot route synchronously and hands binding cleanup to the bounded worker with the existing reservation. Cancellation must not leak either the route or its cleanup permit. A zero `server.max_connections` removes the configured client ceiling without reducing this capacity to 128; positive values retain cleanup headroom. This does not increase writer targets or remove data-plane budgets.
|
||||
|
||||
## Adaptive Floor
|
||||
|
||||
### What it is
|
||||
@@ -285,6 +287,8 @@ To evolve this model safely:
|
||||
|
||||
## Failure and Recovery Notes
|
||||
|
||||
Completion of the client-to-ME sender or the task delivering ME responses to the client ends the associated relay even when the client is idle; the existing bounded cleanup still applies. An open, healthy sender with no traffic is not itself a failure.
|
||||
|
||||
- Single-endpoint DC failure is a normal degraded mode case; policy should prioritize fast reconnect and optional shadow/probing strategies.
|
||||
- Idle close by peer should be treated as expected when upstream enforces idle timeout.
|
||||
- Reconnect backoff must protect against synchronized churn while still allowing fast first retries.
|
||||
|
||||
@@ -66,6 +66,8 @@ Refill работает асинхронно и не должен блокиро
|
||||
- именно `Registry` является источником истины по активным ME-биндам.
|
||||
- binding lock registry линеаризует client binds, публикацию writer-а и переход, закрывающий replacement victim для новых binds.
|
||||
|
||||
Каждый клиентский маршрут с lease резервирует ёмкость очистки на всё время жизни. При его удалении горячий маршрут убирается синхронно, а очистка bindings передаётся ограниченному worker с уже выданным резервом. Отмена не должна оставлять маршрут или терять cleanup permit. Нулевой `server.max_connections` снимает общий клиентский лимит и не уменьшает эту ёмкость до 128; положительные значения сохраняют запас для очистки. Целевые количества writer-ов и бюджеты Data Plane не меняются.
|
||||
|
||||
## Adaptive Floor
|
||||
|
||||
### Что это
|
||||
@@ -285,6 +287,8 @@ Route-каналы намеренно bounded.
|
||||
|
||||
## Нюансы отказов и восстановления
|
||||
|
||||
Завершение задачи отправки от клиента в ME или задачи доставки ME-ответов клиенту завершает связанный relay даже при бездействующем клиенте; очистка по-прежнему ограничена существующими сроками. Открытый исправный sender без трафика сам по себе не считается отказавшим.
|
||||
|
||||
- падение single-endpoint DC — штатный деградированный сценарий; приоритет: быстрый reconnect и, при необходимости, shadow/probing;
|
||||
- idle-close со стороны peer должен считаться нормальным событием при upstream idle-timeout;
|
||||
- backoff reconnect-логики должен ограничивать синхронный churn, но сохранять быстрые первые попытки;
|
||||
|
||||
Reference in New Issue
Block a user