synapse-product/synapse
Patrick Cloke 7e582a25f8
Improve /sync performance of when passing filters with empty arrays. (#14786)
This has two related changes:

* It enables fast-path processing for an empty filter (`[]`) which was
  previously only used for wildcard not-filters (`["*"]`).
* It special cases a `/sync` filter with no-rooms to skip all room
  processing, previously we would partially skip processing, but would
  generally still calculate intermediate values for each room which were
  then unused.

Future changes might consider further optimizations:

* Skip calculating per-room account data when all rooms are filtered (currently
  this is thrown away).
* Make similar improvements to other endpoints which support filters.
2023-01-09 08:43:50 -05:00
..
_scripts Check sqlite database file exists before porting. (#14692) 2022-12-22 13:26:37 -05:00
api Improve /sync performance of when passing filters with empty arrays. (#14786) 2023-01-09 08:43:50 -05:00
app Use ClientRestResource on both the main process and workers. (#14528) 2022-12-02 13:10:05 -05:00
appservice Fix missing cache invalidation in application service code (#14670) 2022-12-12 18:13:43 +00:00
config Support RFC7636 PKCE in the OAuth 2.0 flow. (#14750) 2023-01-04 14:58:08 -05:00
crypto Stop using deprecated keyIds param on /key/v2/server (#14525) 2022-11-30 11:59:57 +00:00
events Allow selecting "prejoin" events by state keys (#14642) 2022-12-13 00:54:46 +00:00
federation Failover on proper error responses. (#14620) 2022-12-06 07:23:03 -05:00
handlers Improve /sync performance of when passing filters with empty arrays. (#14786) 2023-01-09 08:43:50 -05:00
http Respond with proper error responses on unknown paths. (#14621) 2022-12-08 11:37:05 -05:00
logging Improve logging and opentracing for to-device message handling (#14598) 2022-12-06 09:52:55 +00:00
metrics Fix logging context warnings due to common usage metrics setup (#14574) 2022-11-28 15:25:18 +00:00
module_api Add a cached helper to the module API (#14663) 2022-12-28 13:48:21 +00:00
push Improve validation of field size limits in events. (#14664) 2022-12-13 13:19:19 +00:00
replication Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
res Fix #11308 : Remove dependency on jquery on reCAPTCHA page (#14672) 2022-12-14 12:02:28 +00:00
rest Disable sending confirmation email when 3pid is disabled #14682 (#14725) 2023-01-09 11:12:03 +00:00
server_notices Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
spam_checker_api Fix import in module_api module and docs on the new check_event_for_spam signature (#12918) 2022-05-31 12:04:53 +02:00
state Allow compute_state_after_events to use partial state (#14676) 2022-12-14 14:52:35 +00:00
static Add viewport directive to HTML templates to optimise for mobile (#13493) 2022-08-11 14:04:20 +01:00
storage Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
streams Implement message forward pagination from start when no from is given, fixes #12383 (#14149) 2022-11-24 09:10:51 +00:00
types Allow selecting "prejoin" events by state keys (#14642) 2022-12-13 00:54:46 +00:00
util Support RFC7636 PKCE in the OAuth 2.0 flow. (#14750) 2023-01-04 14:58:08 -05:00
__init__.py Parse SYNAPSE_ASYNC_IO_REACTOR env variable & log the reactor on startup (#14092) 2022-10-07 15:19:59 +01:00
event_auth.py Improve validation of field size limits in events. (#14664) 2022-12-13 13:19:19 +00:00
notifier.py Batch up notifications after event persistence (#14033) 2022-10-05 10:12:48 -07:00
py.typed Mark Module API error imports as re-exported and mark Synapse as containing type annotations (#11054) 2021-10-13 08:42:41 +01:00
server.py Add a type hint for get_device_handler() and fix incorrect types. (#14055) 2022-11-22 14:08:04 -05:00
visibility.py Move StateFilter to synapse.types (#14668) 2022-12-12 16:19:30 +00:00