open-webui/backend/open_webui/models
Classic298 b7d1de05ab
perf: changing permissions on a large group is slow (#32883)
When a group change affects its members (new permissions, parent group or default models, or deleting the group), the server makes every member's browser reconnect so it picks up the new permissions without a page reload. To find each member's connections it read through the whole list of connected users again for every single member, so saving a 2,000-member group with 3,000 people online spent almost 9 seconds on this with Redis as the websocket manager, and about 1 second without. It now finds all members' connections in one pass.

Changing one permission on a 2,000-member group, time the save spends making members reconnect:

| Online users | Redis, before | Redis, after | No Redis, before | No Redis, after |
| --- | --- | --- | --- | --- |
| 1,000 | 2.8 s | 0.15 s | 0.09 s | <0.01 s |
| 3,000 | 8.7 s | 0.28 s | 1.2 s | <0.01 s |
2026-10-22 07:08:30 +09:00
..
access_grants.py refac 2026-10-09 15:07:43 +04:00
apps.py refac 2026-10-13 17:22:11 +04:00
auths.py refac 2026-10-05 12:17:25 +04:00
automations.py fix: automation still shows "Last run Never" after "Run now" (#31583) 2026-09-30 19:01:42 +04:00
calendar.py refac 2026-10-05 14:01:02 +04:00
channels.py refac 2026-10-14 18:11:14 +04:00
chat_messages.py refac 2026-10-21 16:35:31 +09:00
chats.py refac 2026-10-21 09:15:15 +09:00
config.py refac 2026-10-14 18:49:51 +04:00
feedbacks.py perf: drop redundant session.refresh calls after commit across the model layer (#27381) 2026-07-23 18:08:00 -05:00
files.py perf: drop redundant session.refresh calls after commit across the model layer (#27381) 2026-07-23 18:08:00 -05:00
folders.py refac 2026-10-08 19:36:27 +04:00
function_history.py refac 2026-10-09 18:37:55 +04:00
functions.py refac 2026-10-09 18:37:55 +04:00
groups.py perf: changing permissions on a large group is slow (#32883) 2026-10-22 07:08:30 +09:00
knowledge.py chore: format 2026-10-10 23:18:09 +04:00
memories.py refac 2026-07-24 01:54:36 -04:00
messages.py chore: format 2026-10-16 15:20:15 +04:00
model_history.py refac 2026-10-09 17:05:53 +04:00
models.py refac 2026-10-09 17:05:53 +04:00
notes.py refac 2026-10-08 01:09:29 +04:00
oauth_sessions.py refac 2026-07-31 17:41:14 -04:00
prompt_history.py refac 2026-10-09 16:17:11 +04:00
prompts.py Merge pull request #32709 from silentoplayz/fix/prompt-save-unchanged-no-version 2026-10-21 01:06:59 +09:00
shared_chats.py refac 2026-10-08 14:30:07 +04:00
skill_history.py refac 2026-10-09 16:31:34 +04:00
skills.py fix: skill versions saved within the same second are listed in random order (#32167) 2026-10-10 19:49:21 +04:00
tags.py perf: build debug log messages lazily so disabled debug logs cost nothing (#27834) 2026-07-31 19:09:01 -05:00
tool_history.py refac 2026-10-09 18:37:55 +04:00
tools.py refac 2026-10-09 18:37:55 +04:00
users.py refac 2026-10-14 18:49:51 +04:00