Files
open-webui/backend/open_webui/utils
Classic298andClaude 656a848043 perf: halve Redis round trips on model resolution and socket pools (#27225)
When WEBSOCKET_MANAGER=redis, app.state.MODELS and the socket session/
usage pools are Redis-backed dicts, so every membership test and
getitem is a network round trip:

- generate_chat_completion checked `model_id not in models` (HEXISTS)
  and then read `models[model_id]` (HGET) on every chat completion.
  A single .get() now serves both, with the same not-found error.
- The direct-connection branch spread the pool with `{**MODELS, ...}`,
  which iterates keys() then fetches each value — HKEYS plus one HGET
  per model. dict(MODELS.items()) issues a single HGETALL instead.
- get_user_ids_from_room called SESSION_POOL.get(sid) twice per
  session (once to filter, once for the value); the usage handler
  checked membership then fetched the same key. Both now do one
  lookup.

In non-Redis mode these are plain dicts and behavior is identical.


Claude-Session: https://claude.ai/code/session_01MHg5zs1VBjvRWQ54qHpfYD

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-23 21:32:01 -04:00
..
2026-07-01 02:48:29 -05:00
2026-06-29 11:56:00 -05:00
2026-07-23 04:16:14 -04:00
2026-07-16 01:34:50 -04:00
2026-03-17 17:58:01 -05:00
2026-07-23 02:54:56 -04:00
2026-07-23 02:54:56 -04:00
2026-07-23 21:29:33 -04:00
2026-07-23 12:48:14 -04:00
2026-06-01 13:56:55 -07:00
2026-07-01 03:35:46 -05:00
2026-06-29 13:03:14 -05:00
2026-07-16 01:37:21 -04:00
2026-07-01 02:57:29 -05:00
2026-06-29 00:18:40 -05:00
2026-07-23 19:17:19 -04:00
2026-06-23 23:35:44 +02:00
2026-03-17 17:58:01 -05:00
2026-07-20 22:11:42 -04:00
2026-06-19 00:16:06 +02:00
2026-07-10 18:32:21 -05:00
2026-07-20 22:11:42 -04:00
2026-07-16 00:58:34 -04:00
2026-06-01 13:56:55 -07:00
2026-06-29 12:29:10 -05:00
2026-06-29 13:03:14 -05:00