5946aa0877 
								
							
								 
							
						 
						
							
							
								
								Prefill forward extrems and event to state groups  
							
							
							
						 
						
							2017-06-29 15:38:48 +01:00  
				
					
						
							
							
								 
						
							
							
								8060974344 
								
							
								 
							
						 
						
							
							
								
								Fix replication  
							
							
							
						 
						
							2017-06-09 16:40:52 +01:00  
				
					
						
							
							
								 
						
							
							
								b0d975e216 
								
							
								 
							
						 
						
							
							
								
								Comments  
							
							
							
						 
						
							2017-06-09 16:25:42 +01:00  
				
					
						
							
							
								 
						
							
							
								e54d7d536e 
								
							
								 
							
						 
						
							
							
								
								Cache state deltas  
							
							
							
						 
						
							2017-06-09 16:24:00 +01:00  
				
					
						
							
							
								 
						
							
							
								ea11ee09f3 
								
							
								 
							
						 
						
							
							
								
								Ensure we don't use unpersisted state group as prev group  
							
							
							
						 
						
							2017-06-08 11:59:57 +01:00  
				
					
						
							
							
								 
						
							
							
								6ba21bf2b8 
								
							
								 
							
						 
						
							
							
								
								Comments  
							
							
							
						 
						
							2017-06-07 11:08:36 +01:00  
				
					
						
							
							
								 
						
							
							
								dfbda5e025 
								
							
								 
							
						 
						
							
							
								
								Faster cache for get_joined_hosts  
							
							
							
						 
						
							2017-05-25 17:24:44 +01:00  
				
					
						
							
							
								 
						
							
							
								bbfe4e996c 
								
							
								 
							
						 
						
							
							
								
								Make get_state_groups_from_groups faster.  
							
							... 
							
							
							
							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. 
							
						 
						
							2017-05-17 15:12:15 +01:00  
				
					
						
							
							
								 
						
							
							
								608b5a6317 
								
							
								 
							
						 
						
							
							
								
								Take a copy before prefilling, as it may be a frozendict  
							
							
							
						 
						
							2017-05-16 12:55:29 +01:00  
				
					
						
							
							
								 
						
							
							
								e4435b014e 
								
							
								 
							
						 
						
							
							
								
								Update comment  
							
							
							
						 
						
							2017-05-15 15:11:30 +01:00  
				
					
						
							
							
								 
						
							
							
								871605f4e2 
								
							
								 
							
						 
						
							
							
								
								Comments  
							
							
							
						 
						
							2017-05-15 15:11:30 +01:00  
				
					
						
							
							
								 
						
							
							
								bfbc907cec 
								
							
								 
							
						 
						
							
							
								
								Prefill state caches  
							
							
							
						 
						
							2017-05-15 15:11:13 +01:00  
				
					
						
							
							
								 
						
							
							
								587f07543f 
								
							
								 
							
						 
						
							
							
								
								Revert "Prefill state caches"  
							
							
							
						 
						
							2017-05-04 15:07:27 +01:00  
				
					
						
							
							
								 
						
							
							
								2c2dcf81d0 
								
							
								 
							
						 
						
							
							
								
								Update comment  
							
							
							
						 
						
							2017-05-03 10:00:29 +01:00  
				
					
						
							
							
								 
						
							
							
								1827057acc 
								
							
								 
							
						 
						
							
							
								
								Comments  
							
							
							
						 
						
							2017-05-03 09:56:05 +01:00  
				
					
						
							
							
								 
						
							
							
								a2c89a225c 
								
							
								 
							
						 
						
							
							
								
								Prefill state caches  
							
							
							
						 
						
							2017-05-02 10:40:31 +01:00  
				
					
						
							
							
								 
						
							
							
								f053a1409e 
								
							
								 
							
						 
						
							
							
								
								Make state caches cache in ascii  
							
							
							
						 
						
							2017-04-25 17:22:55 +01:00  
				
					
						
							
							
								 
						
							
							
								22f3d3ae76 
								
							
								 
							
						 
						
							
							
								
								Reduce _get_state_group_for_event cache size  
							
							
							
						 
						
							2017-04-25 11:43:03 +01:00  
				
					
						
							
							
								 
						
							
							
								e4f3431116 
								
							
								 
							
						 
						
							
							
								
								Remove unused cache  
							
							
							
						 
						
							2017-04-24 13:27:38 +01:00  
				
					
						
							
							
								 
						
							
							
								2a3e822f44 
								
							
								 
							
						 
						
							
							
								
								Comment  
							
							
							
						 
						
							2017-04-07 13:47:04 +01:00  
				
					
						
							
							
								 
						
							
							
								d72667fcce 
								
							
								 
							
						 
						
							
							
								
								Speed up get_current_state_ids  
							
							... 
							
							
							
							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. 
							
						 
						
							2017-04-07 10:10:49 +01:00  
				
					
						
							
							
								 
						
							
							
								3ce8d59176 
								
							
								 
							
						 
						
							
							
								
								Increase cache size for _get_state_group_for_event  
							
							
							
						 
						
							2017-03-29 14:31:46 +01:00  
				
					
						
							
							
								 
						
							
							
								d58b1ffe94 
								
							
								 
							
						 
						
							
							
								
								Replace some calls to cursor_to_dict  
							
							... 
							
							
							
							cursor_to_dict can be surprisinglh expensive for large result sets, so lets
only call it when we need to. 
							
						 
						
							2017-03-24 11:07:02 +00:00  
				
					
						
							
							
								 
						
							
							
								e71940aa64 
								
							
								 
							
						 
						
							
							
								
								Use iter(items|values)  
							
							
							
						 
						
							2017-03-24 10:57:02 +00:00  
				
					
						
							
							
								 
						
							
							
								00957d1aa4 
								
							
								 
							
						 
						
							
							
								
								User Cursor.__iter__ instead of fetchall  
							
							... 
							
							
							
							This prevents unnecessary construction of lists 
							
						 
						
							2017-03-23 17:53:49 +00:00  
				
					
						
							
							
								 
						
							
							
								0c01f829ae 
								
							
								 
							
						 
						
							
							
								
								Avoid resetting state on rejected events  
							
							... 
							
							
							
							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 . 
							
						 
						
							2017-03-17 15:06:08 +00:00  
				
					
						
							
							
								 
						
							
							
								8ffbe43ba1 
								
							
								 
							
						 
						
							
							
								
								Get current state by using current_state_events table  
							
							
							
						 
						
							2017-03-10 17:39:35 +00:00  
				
					
						
							
							
								 
						
							
							
								fc2f29c1d0 
								
							
								 
							
						 
						
							
							
								
								Fix bugs in the /keys/changes api  
							
							... 
							
							
							
							* `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. 
							
						 
						
							2017-02-14 13:59:50 +00:00  
				
					
						
							
							
								 
						
							
							
								21b7375778 
								
							
								 
							
						 
						
							
							
								
								Add an index to make membership queries faster  
							
							
							
						 
						
							2017-01-31 15:15:57 +00:00  
				
					
						
							
							
								 
						
							
							
								a55fa2047f 
								
							
								 
							
						 
						
							
							
								
								Insert delta of current_state_events to be more efficient  
							
							
							
						 
						
							2017-01-20 17:10:18 +00:00  
				
					
						
							
							
								 
						
							
							
								897f8752da 
								
							
								 
							
						 
						
							
							
								
								Up cache max entries for state  
							
							
							
						 
						
							2017-01-16 15:08:17 +00:00  
				
					
						
							
							
								 
						
							
							
								01521299c7 
								
							
								 
							
						 
						
							
							
								
								Increase cache size limit  
							
							
							
						 
						
							2017-01-16 11:56:51 +00:00  
				
					
						
							
							
								 
						
							
							
								2fae34bd2c 
								
							
								 
							
						 
						
							
							
								
								Optionally measure size of cache by sum of length of values  
							
							
							
						 
						
							2017-01-13 17:46:17 +00:00  
				
					
						
							
							
								 
						
							
							
								8cfc0165e9 
								
							
								 
							
						 
						
							
							
								
								fix annoying typos  
							
							
							
						 
						
							2017-01-05 13:39:43 +00:00  
				
					
						
							
							
								 
						
							
							
								587d8ac60f 
								
							
								 
							
						 
						
							
							
								
								Correctly intern keys in state cache  
							
							
							
						 
						
							2016-11-08 11:53:25 +00:00  
				
					
						
							
							
								 
						
							
							
								4974147aa3 
								
							
								 
							
						 
						
							
							
								
								Remove duplication  
							
							
							
						 
						
							2016-09-27 09:27:54 +01:00  
				
					
						
							
							
								 
						
							
							
								13122e5e24 
								
							
								 
							
						 
						
							
							
								
								Remove unused variable  
							
							
							
						 
						
							2016-09-27 09:21:51 +01:00  
				
					
						
							
							
								 
						
							
							
								cf3e1cc200 
								
							
								 
							
						 
						
							
							
								
								Fix perf of fetching state in SQLite  
							
							
							
						 
						
							2016-09-26 17:16:24 +01:00  
				
					
						
							
							
								 
						
							
							
								00f51493f5 
								
							
								 
							
						 
						
							
							
								
								Fix reindex  
							
							
							
						 
						
							2016-09-14 10:18:30 +01:00  
				
					
						
							
							
								 
						
							
							
								d5ae1f1291 
								
							
								 
							
						 
						
							
							
								
								Ensure we don't mutate state cache entries  
							
							
							
						 
						
							2016-09-14 10:03:48 +01:00  
				
					
						
							
							
								 
						
							
							
								03a98aff3c 
								
							
								 
							
						 
						
							
							
								
								Create new index concurrently  
							
							
							
						 
						
							2016-09-12 14:27:01 +01:00  
				
					
						
							
							
								 
						
							
							
								897d57bc58 
								
							
								 
							
						 
						
							
							
								
								Change state fetch query for postgres to be faster  
							
							... 
							
							
							
							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. 
							
						 
						
							2016-09-12 10:05:07 +01:00  
				
					
						
							
							
								 
						
							
							
								5beda10bbd 
								
							
								 
							
						 
						
							
							
								
								Reindex state_groups_state after pruning  
							
							
							
						 
						
							2016-09-08 16:18:01 +01:00  
				
					
						
							
							
								 
						
							
							
								b568ca309c 
								
							
								 
							
						 
						
							
							
								
								Temporarily disable sequential scans for state fetching  
							
							
							
						 
						
							2016-09-08 09:38:54 +01:00  
				
					
						
							
							
								 
						
							
							
								513188aa56 
								
							
								 
							
						 
						
							
							
								
								Comment  
							
							
							
						 
						
							2016-09-07 14:53:23 +01:00  
				
					
						
							
							
								 
						
							
							
								fadb01551a 
								
							
								 
							
						 
						
							
							
								
								Add appopriate framing clause  
							
							
							
						 
						
							2016-09-07 14:39:01 +01:00  
				
					
						
							
							
								 
						
							
							
								d25c20ccbe 
								
							
								 
							
						 
						
							
							
								
								Use windowing function to make use of index  
							
							
							
						 
						
							2016-09-07 14:22:22 +01:00  
				
					
						
							
							
								 
						
							
							
								0595413c0f 
								
							
								 
							
						 
						
							
							
								
								Scale the batch size so that we're not bitten by the minimum  
							
							
							
						 
						
							2016-09-05 15:49:57 +01:00  
				
					
						
							
							
								 
						
							
							
								a7032abb2e 
								
							
								 
							
						 
						
							
							
								
								Correctly handle reindexing state groups that already have an edge  
							
							
							
						 
						
							2016-09-05 15:07:23 +01:00  
				
					
						
							
							
								 
						
							
							
								70332a12dd 
								
							
								 
							
						 
						
							
							
								
								Take value in a better way  
							
							
							
						 
						
							2016-09-05 14:57:14 +01:00