Skip to content

remove sync response cache

Benjamin Lee requested to merge remove-sync-cache into main

This cache can serve invalid responses, and has an extremely low hit rate.

It serves invalid responses because because it's only keyed off the since parameter, but many of the other request parameters also affect the response or it's side effects. This problem is fixable, but not worth it because of the low hit rate.

The low hit rate is because normal clients will always issue the next sync request with since set to the prev_batch value of the previous response. The only time we expect to see multiple requests with the same since is when the response is empty, but we don't cache empty responses.

This was confirmed experimentally by logging cache hits and misses over 15 minutes with a wide variety of clients. This test was run on matrix.computer.surgery, which has only a few active users, but a large volume of sync traffic from many rooms. Over the test period, we had 3 hits and 5309 misses. All hits occurred in the first minute, so I suspect that they had something to do with client recovery from an offline state. The clients that were connected during the test are:

  • element web
  • schildichat web
  • iamb
  • gomuks
  • nheko
  • fractal
  • fluffychat web
  • fluffychat android
  • cinny web
  • element android
  • element X android

I smoke-tested this change with a couple element clients pointed at a near-empty local dev server.

Fixes: #2 (closed)

Merge request reports