Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make get_state_groups_from_groups faster. | Erik Johnston | 2017-05-17 | 1 | -29/+11 |
| | | | | | | | | | Most of the time was spent copying a dict to filter out sentinel values that indicated that keys did not exist in the dict. The sentinel values were added to ensure that we cached the non-existence of keys. By updating DictionaryCache to keep track of which keys were known to not exist itself we can remove a dictionary copy. | ||||
* | Take a copy before prefilling, as it may be a frozendict | Erik Johnston | 2017-05-16 | 1 | -1/+1 |
| | |||||
* | Update comment | Erik Johnston | 2017-05-15 | 1 | -1/+2 |
| | |||||
* | Comments | Erik Johnston | 2017-05-15 | 1 | -0/+3 |
| | |||||
* | Prefill state caches | Erik Johnston | 2017-05-15 | 1 | -0/+8 |
| | |||||
* | Revert "Prefill state caches" | Erik Johnston | 2017-05-04 | 1 | -12/+0 |
| | |||||
* | Update comment | Erik Johnston | 2017-05-03 | 1 | -1/+2 |
| | |||||
* | Comments | Erik Johnston | 2017-05-03 | 1 | -0/+3 |
| | |||||
* | Prefill state caches | Erik Johnston | 2017-05-02 | 1 | -0/+8 |
| | |||||
* | Make state caches cache in ascii | Erik Johnston | 2017-04-25 | 1 | -2/+3 |
| | |||||
* | Reduce _get_state_group_for_event cache size | Erik Johnston | 2017-04-25 | 1 | -1/+1 |
| | |||||
* | Remove unused cache | Erik Johnston | 2017-04-24 | 1 | -6/+1 |
| | |||||
* | Comment | Erik Johnston | 2017-04-07 | 1 | -0/+9 |
| | |||||
* | Speed up get_current_state_ids | Erik Johnston | 2017-04-07 | 1 | -10/+17 |
| | | | | | | | | | | | | Using _simple_select_list is fairly expensive for functions that return a lot of rows and/or get called a lot. (This is because it carefully constructs a list of dicts). get_current_state_ids gets called a lot on startup and e.g. when the IRC bridge decided to send tonnes of joins/leaves (as it invalidates the cache). We therefore replace it with a custon txn function that builds up the final result dict without building up and intermediate representation. | ||||
* | Increase cache size for _get_state_group_for_event | Erik Johnston | 2017-03-29 | 1 | -1/+1 |
| | |||||
* | Replace some calls to cursor_to_dict | Erik Johnston | 2017-03-24 | 1 | -4/+4 |
| | | | | | cursor_to_dict can be surprisinglh expensive for large result sets, so lets only call it when we need to. | ||||
* | Use iter(items|values) | Erik Johnston | 2017-03-24 | 1 | -27/+28 |
| | |||||
* | User Cursor.__iter__ instead of fetchall | Erik Johnston | 2017-03-23 | 1 | -2/+1 |
| | | | | This prevents unnecessary construction of lists | ||||
* | Avoid resetting state on rejected events | Richard van der Hoff | 2017-03-17 | 1 | -0/+10 |
| | | | | | | | When we get a rejected event, give it the same state_group as its prev_event, rather than no state_group at all. This should fix https://github.com/matrix-org/synapse/issues/1935. | ||||
* | Get current state by using current_state_events table | Erik Johnston | 2017-03-10 | 1 | -1/+13 |
| | |||||
* | Fix bugs in the /keys/changes api | Richard van der Hoff | 2017-02-14 | 1 | -1/+13 |
| | | | | | | | | | | | | | | | * `get_forward_extremeties_for_room` takes a numeric `stream_ordering`. We were passing a `RoomStreamToken`, which meant that it returned the *current* extremities, rather than those corresponding to the `from_token`. However: * `get_state_ids_for_events` required a second ('types') parameter; this meant that a `TypeError` was thrown and we ended up acting as though there was *no* prev state. * `get_state_ids_for_events` actually returns a map from event_id to state dictionary - just looking up the state keys in it again meant that we acted as though there was no prev state. We now check if each member's state has changed since *any* of the extremities. Also add/fix some comments. | ||||
* | Add an index to make membership queries faster | Erik Johnston | 2017-01-31 | 1 | -0/+8 |
| | |||||
* | Insert delta of current_state_events to be more efficient | Erik Johnston | 2017-01-20 | 1 | -52/+0 |
| | |||||
* | Up cache max entries for state | Erik Johnston | 2017-01-16 | 1 | -1/+1 |
| | |||||
* | Increase cache size limit | Erik Johnston | 2017-01-16 | 1 | -1/+1 |
| | |||||
* | Optionally measure size of cache by sum of length of values | Erik Johnston | 2017-01-13 | 1 | -1/+1 |
| | |||||
* | fix annoying typos | Matthew Hodgson | 2017-01-05 | 1 | -1/+1 |
| | |||||
* | Correctly intern keys in state cache | Erik Johnston | 2016-11-08 | 1 | -1/+4 |
| | |||||
* | Remove duplication | Erik Johnston | 2016-09-27 | 1 | -31/+19 |
| | |||||
* | Remove unused variable | Erik Johnston | 2016-09-27 | 1 | -3/+0 |
| | |||||
* | Fix perf of fetching state in SQLite | Erik Johnston | 2016-09-26 | 1 | -20/+41 |
| | |||||
* | Fix reindex | Erik Johnston | 2016-09-14 | 1 | -15/+16 |
| | |||||
* | Ensure we don't mutate state cache entries | Erik Johnston | 2016-09-14 | 1 | -20/+25 |
| | |||||
* | Create new index concurrently | Erik Johnston | 2016-09-12 | 1 | -1/+1 |
| | |||||
* | Change state fetch query for postgres to be faster | Erik Johnston | 2016-09-12 | 1 | -19/+35 |
| | | | | | | It turns out that postgres doesn't like doing a list of OR's and is about 1000x slower, so we just issue a query for each specific type seperately. | ||||
* | Reindex state_groups_state after pruning | Erik Johnston | 2016-09-08 | 1 | -0/+33 |
| | |||||
* | Temporarily disable sequential scans for state fetching | Erik Johnston | 2016-09-08 | 1 | -0/+4 |
| | |||||
* | Comment | Erik Johnston | 2016-09-07 | 1 | -0/+4 |
| | |||||
* | Add appopriate framing clause | Erik Johnston | 2016-09-07 | 1 | -0/+1 |
| | |||||
* | Use windowing function to make use of index | Erik Johnston | 2016-09-07 | 1 | -5/+5 |
| | |||||
* | Scale the batch size so that we're not bitten by the minimum | Erik Johnston | 2016-09-05 | 1 | -1/+5 |
| | |||||
* | Correctly handle reindexing state groups that already have an edge | Erik Johnston | 2016-09-05 | 1 | -0/+19 |
| | |||||
* | Take value in a better way | Erik Johnston | 2016-09-05 | 1 | -2/+2 |
| | |||||
* | Comment about sqlite and WITH RECURSIVE | Erik Johnston | 2016-09-05 | 1 | -0/+4 |
| | |||||
* | Add comments | Erik Johnston | 2016-09-05 | 1 | -41/+38 |
| | |||||
* | Add upgrade script that will slowly prune state_groups_state entries | Erik Johnston | 2016-09-05 | 1 | -75/+203 |
| | |||||
* | Limit the length of state chains | Erik Johnston | 2016-09-02 | 1 | -22/+78 |
| | |||||
* | Move to storing state_groups_state as deltas | Erik Johnston | 2016-09-01 | 1 | -59/+102 |
| | |||||
* | Use state_groups table to test existence | Erik Johnston | 2016-08-31 | 1 | -1/+1 |
| | |||||
* | Correctly handle the difference between prev and current state | Erik Johnston | 2016-08-31 | 1 | -3/+0 |
| | |||||
* | Generate state group ids in state layer | Erik Johnston | 2016-08-31 | 1 | -7/+17 |
| | |||||
* | Make _state_groups_id_gen a normal IdGenerator | Erik Johnston | 2016-08-30 | 1 | -3/+0 |
| | |||||
* | Make sync not pull out full state | Erik Johnston | 2016-08-25 | 1 | -0/+33 |
| | |||||
* | Replace context.current_state with context.current_state_ids | Erik Johnston | 2016-08-25 | 1 | -8/+8 |
| | |||||
* | Pull out event ids rather than full events for state | Erik Johnston | 2016-08-25 | 1 | -17/+38 |
| | |||||
* | Remove lru option | Erik Johnston | 2016-08-19 | 1 | -2/+2 |
| | |||||
* | Add cache to _get_state_groups_from_groups | Erik Johnston | 2016-04-19 | 1 | -3/+16 |
| | |||||
* | Make the cache objects be per instance rather than being global | Mark Haines | 2016-04-06 | 1 | -2/+2 |
| | |||||
* | Merge pull request #686 from matrix-org/markjh/doc_strings | Mark Haines | 2016-04-01 | 1 | -5/+8 |
|\ | | | | | Use google style doc strings. | ||||
| * | Use google style doc strings. | Mark Haines | 2016-04-01 | 1 | -5/+8 |
| | | | | | | | | | | | | | | pycharm supports them so there is no need to use the other format. Might as well convert the existing strings to reduce the risk of people accidentally cargo culting the wrong doc string format. | ||||
* | | Use a stream id generator for backfilled ids | Mark Haines | 2016-04-01 | 1 | -1/+1 |
|/ | |||||
* | Add a replication stream for state groups | Mark Haines | 2016-03-30 | 1 | -0/+30 |
| | |||||
* | Use a stream id generator to assign state group ids | Mark Haines | 2016-03-30 | 1 | -8/+8 |
| | |||||
* | Don't bother interning keys that are already interned | Erik Johnston | 2016-03-23 | 1 | -3/+1 |
| | |||||
* | Intern all the things | Erik Johnston | 2016-03-23 | 1 | -5/+5 |
| | |||||
* | String intern | Erik Johnston | 2016-03-23 | 1 | -3/+9 |
| | |||||
* | Don't cache events in get_current_state_for_key | Erik Johnston | 2016-03-23 | 1 | -7/+9 |
| | |||||
* | Don't cache events in _state_group_cache | Erik Johnston | 2016-03-22 | 1 | -60/+48 |
| | | | | | | | | | Instead, simply cache the event ids, relying on the event cache to cache the actual events. The problem was that while the state groups cache was limited in the number of groups it could hold, each individual group could consist of thousands of events. | ||||
* | Load the current id in the IdGenerator constructor | Mark Haines | 2016-03-01 | 1 | -1/+1 |
| | | | | | | | | | Rather than loading them lazily. This allows us to remove all the yield statements and spurious arguments for the get_next methods. It also allows us to replace all instances of get_next_txn with get_next since get_next no longer needs to access the db. | ||||
* | Batch fetch _get_state_groups_from_groups | Erik Johnston | 2016-02-10 | 1 | -32/+34 |
| | |||||
* | Use _simple_select_many for _get_state_group_for_events | Erik Johnston | 2016-02-10 | 1 | -16/+10 |
| | |||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 1 | -1/+1 |
| | |||||
* | Fix a few race conditions in the state calculation | Richard van der Hoff | 2015-11-13 | 1 | -0/+14 |
| | | | | | | | | | | | | | | | | | | | Be a bit more careful about how we calculate the state to be returned by /sync. In a few places, it was possible for /sync to return slightly later state than that represented by the next_batch token and the timeline. In particular, the following cases were susceptible: * On a full state sync, for an active room * During a per-room incremental sync with a timeline gap * When the user has just joined a room. (Refactor check_joined_room to make it less magical) Also, use store.get_state_for_events() (and thus the existing stategroups) to calculate the state corresponding to a particular sync position, rather than state_handler.compute_event_context(), which recalculates from first principles (and tends to miss some state). Merged from PR https://github.com/matrix-org/synapse/pull/372 | ||||
* | Remove unused room_id parameter | Erik Johnston | 2015-10-12 | 1 | -6/+5 |
| | |||||
* | synapse/storage/state.py: _make_group_id was unused | Mark Haines | 2015-09-23 | 1 | -6/+0 |
| | |||||
* | Actually check if event_id isn't returned by _get_state_groups | Erik Johnston | 2015-08-21 | 1 | -2/+9 |
| | |||||
* | Remove newline because vertical whitespace makes mjark sad | Erik Johnston | 2015-08-18 | 1 | -2/+1 |
| | |||||
* | Rejig the code to make it nicer | Erik Johnston | 2015-08-18 | 1 | -3/+2 |
| | |||||
* | Ensure we never return a None event from _get_state_for_groups | Erik Johnston | 2015-08-18 | 1 | -3/+8 |
| | |||||
* | Reduce cache size from obscenely large to quite large | Erik Johnston | 2015-08-18 | 1 | -1/+1 |
| | |||||
* | Fix bug where we were leaking None into state event lists | Erik Johnston | 2015-08-17 | 1 | -2/+3 |
| | |||||
* | Remove some vertical space | Erik Johnston | 2015-08-13 | 1 | -36/+9 |
| | |||||
* | Replace list comprehension | Erik Johnston | 2015-08-13 | 1 | -8/+3 |
| | |||||
* | Comment | Erik Johnston | 2015-08-12 | 1 | -1/+2 |
| | |||||
* | Explain why we're prefilling dict with Nones | Erik Johnston | 2015-08-12 | 1 | -0/+4 |
| | |||||
* | Better variable name | Erik Johnston | 2015-08-12 | 1 | -5/+5 |
| | |||||
* | Split _get_state_for_group_from_cache into two | Erik Johnston | 2015-08-12 | 1 | -32/+53 |
| | |||||
* | Move all the caches into their own package, synapse.util.caches | Erik Johnston | 2015-08-11 | 1 | -1/+4 |
| | |||||
* | Comments | Erik Johnston | 2015-08-11 | 1 | -3/+11 |
| | |||||
* | Fix application of ACLs | Erik Johnston | 2015-08-11 | 1 | -3/+3 |
| | |||||
* | Fix state cache | Erik Johnston | 2015-08-11 | 1 | -36/+49 |
| | |||||
* | Clean up StateStore | Erik Johnston | 2015-08-10 | 1 | -62/+11 |
| | |||||
* | Remove unused function | Erik Johnston | 2015-08-10 | 1 | -7/+0 |
| | |||||
* | Do bounds check | Erik Johnston | 2015-08-10 | 1 | -1/+4 |
| | |||||
* | Line length | Erik Johnston | 2015-08-10 | 1 | -1/+2 |
| | |||||
* | Merge branch 'erikj/cache_varargs_interface' of ↵ | Erik Johnston | 2015-08-07 | 1 | -1/+0 |
|\ | | | | | | | github.com:matrix-org/synapse into erikj/dictionary_cache | ||||
| * | Remove unnecessary cache | Erik Johnston | 2015-08-07 | 1 | -2/+1 |
| | | |||||
* | | Batch up various DB requests for event -> state | Erik Johnston | 2015-08-07 | 1 | -77/+142 |
| | | |||||
* | | Remove unncessary cache | Erik Johnston | 2015-08-07 | 1 | -1/+0 |
| | | |||||
* | | Store absence of state in cache | Erik Johnston | 2015-08-07 | 1 | -6/+16 |
| | | |||||
* | | Merge branch 'erikj/cached_keyword_args' of github.com:matrix-org/synapse ↵ | Erik Johnston | 2015-08-05 | 1 | -3/+2 |
|\| | | | | | | | into erikj/dictionary_cache | ||||
| * | Add support for using keyword arguments with cached functions | Erik Johnston | 2015-07-27 | 1 | -3/+2 |
| | | |||||
* | | Use dictionary cache to do group -> state fetching | Erik Johnston | 2015-08-05 | 1 | -65/+126 |
| | | |||||
* | | Add comment | Erik Johnston | 2015-08-04 | 1 | -0/+15 |
| | | |||||
* | | Speed up event filtering (for ACL) logic | Erik Johnston | 2015-08-04 | 1 | -38/+79 |
|/ | |||||
* | Merge pull request #193 from matrix-org/erikj/bulk_persist_event | Erik Johnston | 2015-07-14 | 1 | -12/+24 |
|\ | | | | | Add bulk insert events API | ||||
| * | Add bulk insert events API | Erik Johnston | 2015-06-25 | 1 | -12/+24 |
| | | |||||
* | | Add basic impl for room history ACL on GET /messages client API | Erik Johnston | 2015-07-02 | 1 | -2/+61 |
|/ | |||||
* | Add cache to get_state_groups | Erik Johnston | 2015-06-03 | 1 | -8/+12 |
| | |||||
* | Merge branch 'master' of github.com:matrix-org/synapse into develop | Erik Johnston | 2015-05-22 | 1 | -1/+24 |
|\ | |||||
| * | Add a cache for get_current_state with state_key | Mark Haines | 2015-05-21 | 1 | -1/+24 |
| | | |||||
* | | Don't fetch prev_content for current_state | Erik Johnston | 2015-05-15 | 1 | -1/+1 |
| | | |||||
* | | Make store.get_current_state fetch events asyncly | Erik Johnston | 2015-05-15 | 1 | -3/+4 |
| | | |||||
* | | Move fetching of events into their own transactions | Erik Johnston | 2015-05-14 | 1 | -2/+0 |
| | | |||||
* | | Refactor _get_events | Erik Johnston | 2015-05-14 | 1 | -1/+1 |
| | | |||||
* | | Fetch events from events_id in their own transactions | Erik Johnston | 2015-05-13 | 1 | -5/+5 |
| | | |||||
* | | Fetch events in bulk | Erik Johnston | 2015-05-13 | 1 | -21/+1 |
| | | |||||
* | | Don't fetch redaction and rejection stuff for each event, so we can use ↵ | Erik Johnston | 2015-05-13 | 1 | -2/+5 |
| | | | | | | | | index only scan | ||||
* | | Temp turn off checking for rejections and redactions | Erik Johnston | 2015-05-13 | 1 | -5/+2 |
| | | |||||
* | | defer.gatherResults loop | Erik Johnston | 2015-05-13 | 1 | -1/+7 |
| | | |||||
* | | Batch fetching of events for state groups | Erik Johnston | 2015-05-13 | 1 | -1/+24 |
| | | |||||
* | | Load events for state group seperately | Erik Johnston | 2015-05-13 | 1 | -3/+9 |
|/ | |||||
* | Add support for using executemany | Erik Johnston | 2015-05-05 | 1 | -7/+9 |
| | |||||
* | Remove pointless join | Erik Johnston | 2015-04-30 | 1 | -5/+4 |
| | |||||
* | Need more yield | Erik Johnston | 2015-04-30 | 1 | -1/+1 |
| | |||||
* | Add missing param | Erik Johnston | 2015-04-30 | 1 | -1/+1 |
| | |||||
* | Fix up get_current_state and get_room_name_and_aliases queries to parse ↵ | Erik Johnston | 2015-04-30 | 1 | -16/+19 |
| | | | | events in transaction | ||||
* | Don't use sub queries, it makes postgres sad | Erik Johnston | 2015-04-30 | 1 | -11/+5 |
| | |||||
* | Don't needlessly join on state_events | Erik Johnston | 2015-04-30 | 1 | -3/+2 |
| | |||||
* | For backwards compat, make state_groups.id have a type of int, not varchar | Erik Johnston | 2015-04-13 | 1 | -1/+1 |
| | |||||
* | PEP8 | Erik Johnston | 2015-04-07 | 1 | -1/+0 |
| | |||||
* | Don't use AUTOINCREMENT, use an in memory version | Erik Johnston | 2015-04-07 | 1 | -3/+3 |
| | |||||
* | Remove uses of REPLACE and ON CONFLICT IGNORE to make the SQL more portable. | Erik Johnston | 2015-03-23 | 1 | -1/+0 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into mysql | Erik Johnston | 2015-03-20 | 1 | -0/+1 |
|\ | |||||
| * | Rearrange storage modules | Erik Johnston | 2015-03-20 | 1 | -0/+32 |
| | | |||||
* | | Rearrange storage modules | Erik Johnston | 2015-03-20 | 1 | -0/+32 |
| | | |||||
* | | Convert storage layer to be mysql compatible | Erik Johnston | 2015-03-19 | 1 | -2/+8 |
|/ | |||||
* | Copy dict of context.current_state before changing it. | Erik Johnston | 2015-03-16 | 1 | -1/+1 |
| | |||||
* | Remove unused functions | Mark Haines | 2015-01-13 | 1 | -6/+0 |
| | |||||
* | Merge pull request #28 from matrix-org/erikj-perf | Mark Haines | 2015-01-06 | 1 | -8/+6 |
|\ | | | | | Database performance improvements. | ||||
| * | Remove debug lines | Erik Johnston | 2015-01-06 | 1 | -7/+0 |
| | | |||||
| * | Add some debug logging | Erik Johnston | 2015-01-06 | 1 | -0/+12 |
| | | |||||
| * | Test some ideas that might help performance a bit | Erik Johnston | 2014-12-17 | 1 | -8/+1 |
| | | |||||
* | | Update copyright notices | Mark Haines | 2015-01-06 | 1 | -1/+1 |
|/ | |||||
* | Various typos and bug fixes. | Erik Johnston | 2014-12-08 | 1 | -3/+3 |
| | |||||
* | Start making more things use EventContext rather than event.* | Erik Johnston | 2014-12-05 | 1 | -4/+9 |
| | |||||
* | Correctly handle the case where we get an event for an unknown room, which ↵ | Erik Johnston | 2014-11-26 | 1 | -1/+1 |
| | | | | turns out we are actually in | ||||
* | Document StateStore and use transactions | Erik Johnston | 2014-11-12 | 1 | -28/+56 |
| | |||||
* | Fix bugs with invites/joins across federatiom. | Erik Johnston | 2014-11-12 | 1 | -3/+6 |
| | | | | | Both in terms of auth and not trying to fetch missing PDUs for invites, joins etc. | ||||
* | Fix bug where we /always/ created a new state group | Erik Johnston | 2014-11-11 | 1 | -7/+2 |
| | |||||
* | Add transaction level logging and timing information. Add a _simple_delete ↵ | Erik Johnston | 2014-10-28 | 1 | -0/+1 |
| | | | | method | ||||
* | Use state groups to get current state. Make join dance actually work. | Erik Johnston | 2014-10-17 | 1 | -0/+3 |
| | |||||
* | Begin making auth use event.old_state_events | Erik Johnston | 2014-10-15 | 1 | -1/+1 |
| | |||||
* | Add missing package storate.state | Erik Johnston | 2014-10-15 | 1 | -0/+97 |