This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
/state_ids
is slow to respond
#13620
Labels
A-Federation
A-Messages-Endpoint
/messages client API endpoint (`RoomMessageListRestServlet`) (which also triggers /backfill)
A-Performance
Performance, both client-facing and admin-facing
O-Uncommon
Most users are unlikely to come across this or unexpected workflow
S-Major
Major functionality / product severely impaired, no satisfactory workaround.
T-Enhancement
New features, changes in functionality, improvements in performance, or user-facing enhancements.
Milestone
/state_ids
is slow to respond. The 99th percentile is almost solidly above 10s (we can't tell how high), and 5s for the 75th percentile 🐢. Seems like this should be much faster since we just need to dump out what we have in the database (simplification).Being slow at
/state_ids
means slowing down/messages
whenever we backfill and need to figure out the state at an event.https://grafana.matrix.org/d/dYoRgTgVz/messages-timing?orgId=1&from=1661359694721&to=1661381294721&viewPanel=197
As an example for
#matrix:matrix.org
,/state_ids
took 30s for this endpoint to respond. We don't know whatt2bot.io
is doing but chances are we can improve things for the whole federation:Because
matrix.org
is also slow to respond and we can actually trace it:(also, what's that mystery gap at the end after we encode the JSON response (
encode_json_response
)?)Related to:
/state_ids
federation requests causes large memory spikes #13246Rate limiter
We could gain an easy ~1s, by tuning the rate limiter to not sleep as much if our servers can handle it.
https://grafana.matrix.org/d/dYoRgTgVz/messages-timing?orgId=1&from=1661358785681&to=1661380385682&viewPanel=204
Using less
/state_ids
Might be better if we could work with less state events every time
/state_ids
is called so it might be nice to have a way to get the delta between two events (the unknown event and the event where your server already has state), see #13618The text was updated successfully, but these errors were encountered: