MM-61130: Use a channelMember map at web_hub level (#28810)
Tests at very high scale indicates that the iteration of all connections during websocket broadcast starts to become a bottleneck. To optimize this, we move the channelMember cache from inside web_conn.go to the hubConnectionIndex. This involves adding a new map keyed by the channelID and containing all webConns where the user is a member of that channel. Subsequently, a new method needed to be added to invalidate the cache which previously used to happen in web_conn. And as a last step, we remove the cache from web_conn to reduce SQL queries to the DB. https://mattermost.atlassian.net/browse/MM-61130 ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
37d97e8024
Коммит
bd8774bdce
@@ -523,7 +523,7 @@ func connectFakeWebSocket(t *testing.T, th *TestHelper, userID string, connectio
|
||||
Locale: "en",
|
||||
ConnectionID: connectionID,
|
||||
}, th.App, th.App.Channels())
|
||||
th.App.Srv().Platform().HubRegister(webConn)
|
||||
require.NoError(t, th.App.Srv().Platform().HubRegister(webConn))
|
||||
|
||||
// Start reading from it
|
||||
go webConn.Pump()
|
||||
|
||||
Ссылка в новой задаче
Block a user