summary refs log tree commit diff
path: root/synapse/state/v2.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add another yield point to state res v2 (#7746)Erik Johnston2020-06-261-2/+10
|
* Yield during large v2 state res. (#7735)Erik Johnston2020-06-241-10/+46
| | | | | | | | | | | State res v2 across large data sets can be very CPU intensive, and if all the relevant events are in the cache the algorithm will run from start to finish within a single reactor tick. This can result in blocking the reactor tick for several seconds, which can have major repercussions on other requests. To fix this we simply add the occaisonal `sleep(0)` during iterations to yield execution until the next reactor tick. The aim is to only do this for large data sets so that we don't impact otherwise quick resolutions.=
* Speed up state res v2 across large state differences. (#7725)Erik Johnston2020-06-191-1/+2
|
* Replace iteritems/itervalues/iterkeys with native versions. (#7692)Patrick Cloke2020-06-151-4/+2
|
* Improve get auth chain difference algorithm. (#7095)Erik Johnston2020-03-181-28/+4
| | | | | | | | | | | It was originally implemented by pulling the full auth chain of all state sets out of the database and doing set comparison. However, that can take a lot work if the state and auth chains are large. Instead, lets try and fetch the auth chains at the same time and calculate the difference on the fly, allowing us to bail early if all the auth chains converge. Assuming that the auth chains do converge more often than not, this should improve performance. Hopefully.
* Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957)Patrick Cloke2020-02-211-4/+4
| | | | Ensure good comprehension hygiene using flake8-comprehensions.
* Reduce auth chains fetched during v2 state res. (#6952)Erik Johnston2020-02-191-1/+1
| | | | | | The state res v2 algorithm only cares about the difference between auth chains, so we can pass in the known common state to the `get_auth_chain` storage function so that it can ignore those events.
* Pass room version object into event_auth.check and check_redaction (#6788)Richard van der Hoff2020-01-281-1/+3
| | | | | | | These are easier to work with than the strings and we normally have one around. This fixes `FederationHander._persist_auth_tree` which was passing a RoomVersion object into event_auth.check instead of a string.
* Add StateMap type alias (#6715)Erik Johnston2020-01-161-4/+5
|
* Hacks to work around #6605 (#6608)Richard van der Hoff2019-12-311-15/+37
| | | | | When we have an event which refers to non-existent auth_events, ignore said events rather than exploding in a ball of fire. Fixes #6605.
* sanity-checking for events used in state res (#6531)Richard van der Hoff2019-12-161-27/+73
| | | | | When we perform state resolution, check that all of the events involved are in the right room.
* Replace returnValue with return (#5736)Amber Brown2019-07-231-13/+13
|
* Run Black. (#5482)Amber Brown2019-06-201-48/+44
|
* Pass through room version to event authErik Johnston2019-01-251-5/+9
|
* Add helpers for getting prev and auth events (#4139)Erik Johnston2018-11-061-8/+8
| | | | | | | * Add helpers for getting prev and auth events This is in preparation for allowing the event format to change between room versions.
* Fix None exception in state res v2Erik Johnston2018-11-021-0/+4
|
* Rename resolve_events_with_factoryErik Johnston2018-10-241-1/+1
|
* Add v2 state res algorithm.Erik Johnston2018-10-161-0/+544
We hook this up to the vdh test room version.