Tier-based scheduler масштабируется до 800,000 ботов: hot/warm/paper/cold/frozen разные интервалы scan'а. Auto-rebalance каждый час перераспределяет по composite score.
| Tier | Cap | Scan interval | Назначение |
|---|---|---|---|
| 🔥 hot | 5,000 | 1 мин | Top performers, новые grid-search спавны |
| 🌡 warm | 30,000 | 5 мин | Active growing pool, кандидаты в hot |
| 🧪 paper | 100,000 | 30 мин | Proven candidates под наблюдением |
| ❄ cold | 400,000 | 6 час | Long-term tracking, periodic checks |
| 🗄 frozen | ∞ | on-demand | Archive, не scan'aяется автоматом |
| Component | Сейчас | Целевое (800k) | Действие |
|---|---|---|---|
| CPU cores | ~4 | 16-32 | Server upgrade |
| RAM | ~8GB | 32-64 GB | Server upgrade |
| Storage | ~50 GB | 500 GB NVMe | Server upgrade |
| uvicorn workers | 1 | 4-8 | SHARD_COUNT env |
| Postgres pool | 20 | 100 | config tuning |
| demo_bot_positions partitioning | — | by month | PG partition |
Pre-computed bot/grid stats — O(1) lookup вместо O(N) scan. Refresh каждые 5 мин.
SHARD_ID + SHARD_COUNT env vars в run_batch_scanmax_instances=1, coalesce=True чтобы не stacked