v0.99.18
Improvements
- Startup times are reduced by around 20-40% by utilising magical postgres queries over
SELECT DISTINCT
. - Slow room queries (determined by the "performance degraded" message) are now significantly faster.
- Device list updates are now stored in a dedicated table rather than serialised as CBOR in the device data table. This will migrate data on the next startup which may take a few minutes. This significantly improves performance across the entire stack: reduced DB load, reduced # open DB conns, reduced CPU usage on the pollers, reduced memory usage for API requests, as shown with the following before/after grafana graph:
![Screenshot 2024-05-23 at 11 16 25](https://private-user-images.githubusercontent.com/7190048/333143113-ac0f4f59-f654-4e8f-b739-1c5d31c087bc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNzczMzcsIm5iZiI6MTczOTA3NzAzNywicGF0aCI6Ii83MTkwMDQ4LzMzMzE0MzExMy1hYzBmNGY1OS1mNjU0LTRlOGYtYjczOS0xYzVkMzFjMDg3YmMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMDQ1NzE3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzYyZDM2ZDVlMmUwYzcxZTcwZWU1NTRhMGI1OTZkZGQ1MTFjNTZkMjA0NjgyNzU4ODhjM2Y5YjAxMThjY2I0OSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.junc3S0oIupAkoBonIcoK5XbZ0FvOWc2l7Vn6qRmBCU)
Bug fixes
- Ensure the
since
param in sync v2 is URL encoded.
What's Changed
- Refactor device data by @kegsay in #437
- Optimize getting the latest events in each room by @S7evinK in #436
- fix: urlencode since opaque string by @gnieto in #439
- e2ee extension: ensure null is not sent when we mean [] by @kegsay in #440
- Optimize getting the latest events by type per room by @S7evinK in #441
New Contributors
Full Changelog: v0.99.17...v0.99.18