diff --git a/CHANGELOG.md b/CHANGELOG.md index 18dd730..7af77f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,35 @@ Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/), проект придерживается [семантического версионирования](https://semver.org/lang/ru/). +## [0.0.12] — 2026-07-28 + +Разблокировка backend под нагрузкой: вход в конференцию перестаёт отваливаться, +когда участники включают микрофоны. + +### Исправлено +- Обработчик webhook `track_published` больше не запускает Track Egress внутри + своей транзакции. Раньше каждый опубликованный микрофон уходил в сетевой + вызов, а на инстансе без профиля `transcribe` (egress-сервиса в деплое нет) + этот вызов висел 20–25 секунд, всё это время удерживая соединение с БД. На + нагрузочном тесте с 19 участниками пул соединений выгребался за секунды, и + вход в конференцию начинал отвечать 500. Теперь запуск уходит в фоновую + задачу со своей сессией, а webhook отвечает сразу — LiveKit перестаёт копить + очередь доставки и терять события. +- Track Egress не запускается вовсе, если транскрибация выключена в настройках + инстанса — тот же guard, что уже был в обработчике `room_finished`. +- Запуск Track Egress ограничен таймаутом (по умолчанию 3 секунды) вместо + ожидания собственного таймаута LiveKit. + +### Изменено +- Пул соединений с БД задаётся явно (`DB_POOL_SIZE`, `DB_MAX_OVERFLOW`, + `DB_POOL_TIMEOUT`) вместо дефолта SQLAlchemy 5 + 10. Считайте бюджет на весь + инстанс: каждый воркер держит свой пул, и сумма должна оставаться заметно + ниже `max_connections` у Postgres. +- Backend запускается с несколькими процессами uvicorn (`UVICORN_WORKERS`, + по умолчанию 2). Одиночный процесс означал, что любой блокирующий вызов + останавливает и параллельные запросы, и WS-чат всех участников. Дефолт 2, а + не по числу ядер: на четырёхъядерном сервере ядра делятся с LiveKit. + ## [0.0.11] — 2026-07-28 Выбор режима показа участников в конференции, скрытие остальных и круглая diff --git a/VERSION b/VERSION index 2cfabea..8cbf02c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.11 +0.0.12