summary refs log tree commit diff
path: root/synapse/storage (follow)
Commit message (Collapse)AuthorAgeFilesLines
* BlackErik Johnston2019-06-201-2/+2
|
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-06-2034-276/+286
|\ | | | | | | erikj/histogram_extremities
| * Run Black. (#5482)Amber Brown2019-06-2033-253/+252
| |
| * Merge pull request #5480 from matrix-org/erikj/extremities_dummy_eventsErik Johnston2019-06-191-0/+29
| |\ | | | | | | Add experimental option to reduce extremities.
| | * Add experimental option to reduce extremities.Erik Johnston2019-06-181-0/+29
| | | | | | | | | | | | | | | | | | | | | Adds new config option `cleanup_extremities_with_dummy_events` which periodically sends dummy events to rooms with more than 10 extremities. THIS IS REALLY EXPERIMENTAL.
| * | Fix typo in deactivation background jobBrendan Abolivier2019-06-191-1/+1
| | |
| * | Remove Postgres 9.4 support (#5448)Amber Brown2019-06-182-24/+6
| |/
* | Add descriptions and remove redundant set(..)Erik Johnston2019-06-191-3/+5
| |
* | Add metrics for len of new extremities persisted.Erik Johnston2019-06-171-1/+23
|/ | | | | Of new events being persisted add metrics for total size of forward extremities and number of unchanged, "stale" extremities.
* Merge pull request #5461 from matrix-org/erikj/histograms_are_cumalitiveErik Johnston2019-06-141-1/+2
|\ | | | | Prometheus histograms are cumalative
| * Prometheus histograms are cumalativeErik Johnston2019-06-141-1/+2
| |
* | Fix background job for deactivated flagBrendan Abolivier2019-06-141-2/+4
| |
* | Don't send renewal emails to deactivated usersBrendan Abolivier2019-06-142-2/+16
|/
* Track deactivated accounts in the database (#5378)Brendan Abolivier2019-06-142-0/+133
|
* Expose statistics on extrems to prometheus (#5384)Amber Brown2019-06-131-13/+31
|
* Merge branch 'release-v1.0.0' of github.com:matrix-org/synapse into developErik Johnston2019-06-112-1/+5
|\
| * Fix defaults on checking threepidsErik Johnston2019-06-101-1/+1
| |
| * Fix bug sending federation transactions with lots of EDUsErik Johnston2019-06-101-0/+4
| | | | | | | | | | | | If we try and send a transaction with lots of EDUs and we run out of space, we call get_new_device_msgs_for_remote with a limit of 0, which then failed.
* | add monthly active users to phonehome stats (#5252)Neil Johnson2019-06-101-15/+29
|/ | | | * add monthly active users to phonehome stats
* Fix key verification when key stored with null valid_until_msErik Johnston2019-06-101-0/+8
| | | | | | | | | | Some keys are stored in the synapse database with a null valid_until_ms which caused an exception to be thrown when using that key. We fix this by treating nulls as zeroes, i.e. they keys will match verification requests with a minimum_valid_until_ms of zero (i.e. don't validate ts) but will not match requests with a non-zero minimum_valid_until_ms. Fixes #5391.
* Prevent multiple device list updates from breaking a batch send (#5156)Andrew Morgan2019-06-061-29/+123
| | | fixes #5153
* Merge pull request #5320 from matrix-org/hawkowl/full-schema-v1Erik Johnston2019-06-065-2/+2352
|\ | | | | Make a full SQL schema
| * fix maybeAmber H. Brown2019-06-071-20/+2
| |
| * just user dir?Amber H. Brown2019-06-071-1/+19
| |
| * remove background updates that arent neededAmber H. Brown2019-06-071-33/+1
| |
| * add more commentsAmber Brown2019-06-061-0/+5
| |
| * add stuff in bg updatesAmber Brown2019-06-041-10/+62
| |
| * WHY IS THIS CALLED A SLIGHTLY DIFFERENT THINGAmber Brown2019-06-031-0/+1
| |
| * more fixAmber Brown2019-06-031-0/+38
| |
| * fix schemasAmber Brown2019-06-034-61/+20
| |
| * full schemaAmber Brown2019-06-033-0/+2315
| |
| * prepareAmber Brown2019-06-031-2/+14
| |
* | Add ability to perform password reset via email without trusting the ↵Andrew Morgan2019-06-064-5/+324
| | | | | | | | | | | | | | | | | | | | | | | | identity server (#5377) Sends password reset emails from the homeserver instead of proxying to the identity server. This is now the default behaviour for security reasons. If you wish to continue proxying password reset requests to the identity server you must now enable the email.trust_identity_server_for_password_resets option. This PR is a culmination of 3 smaller PRs which have each been separately reviewed: * #5308 * #5345 * #5368
* | Merge pull request #5221 from matrix-org/erikj/fix_worker_sytestErik Johnston2019-06-061-1/+11
|\ \ | | | | | | Fix get_max_topological_token to never return None
| * | Better wordsErik Johnston2019-06-061-1/+1
| | |
| * | Fix get_max_topological_token to never return NoneErik Johnston2019-05-211-1/+11
| | |
* | | Fix background updates to handle redactions/rejections (#5352)Erik Johnston2019-06-061-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | * Fix background updates to handle redactions/rejections In background updates based on current state delta stream we need to handle that we may not have all the events (or at least that `get_events` may raise an exception).
* | | FixErik Johnston2019-06-031-1/+2
| | |
* | | Ignore room state with null bytes in for room statsErik Johnston2019-06-031-0/+15
| |/ |/|
* | Merge pull request #5276 from matrix-org/babolivier/account_validity_job_deltaErik Johnston2019-05-311-2/+20
|\ \ | | | | | | Allow configuring a range for the account validity startup job
| * | Move delta from +10% to -10%Brendan Abolivier2019-05-311-2/+2
| | |
| * | Make max_delta equal to period * 10%Brendan Abolivier2019-05-311-4/+3
| | |
| * | Allow configuring a range for the account validity startup jobBrendan Abolivier2019-05-281-2/+21
| | | | | | | | | | | | | | | When enabling the account validity feature, Synapse will look at startup for registered account without an expiration date, and will set one equals to 'now + validity_period' for them. On large servers, it can mean that a large number of users will have the same expiration date, which means that they will all be sent a renewal email at the same time, which isn't ideal. In order to mitigate this, this PR allows server admins to define a 'max_delta' so that the expiration date is a random value in the [now + validity_period ; now + validity_period + max_delta] range. This allows renewal emails to be progressively sent over a configured period instead of being sent all in one big batch.
* | | Merge pull request #5294 from matrix-org/erikj/speed_up_room_statsErik Johnston2019-05-314-87/+111
|\ \ \ | | | | | | | | Speed up room stats background update
| * | | Add indices. Remove room_ids accidentally addedErik Johnston2019-05-312-13/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have to do this by re-inserting a background update and recreating tables, as the tables only get created during a background update and will later be deleted. We also make sure that we remove any entries that should have been removed but weren't due to a race that has been fixed in a previous commit.
| * | | Join against events to use its room_id indexErik Johnston2019-05-301-1/+6
| | | |
| * | | Move deletion from table inside txnErik Johnston2019-05-301-2/+5
| | | |
| * | | Fetch membership counts all at onceErik Johnston2019-05-302-38/+18
| | | |
| * | | Get events all at onceErik Johnston2019-05-301-33/+26
| | | |
* | | | Add index to temp tableErik Johnston2019-05-301-0/+1
|/ / /
* | | Merge pull request #5278 from matrix-org/erikj/cleanup_bad_extremitiesErik Johnston2019-05-305-181/+436
|\ \ \ | | | | | | | | Add DB bg update to cleanup extremities.
| * | | Update synapse/storage/events_bg_updates.pyErik Johnston2019-05-301-1/+1
| | | | | | | | | | | | Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
| * | | Rename constantErik Johnston2019-05-301-3/+3
| | | |
| * | | Move event background updates to a separate fileErik Johnston2019-05-303-369/+405
| | | |
| * | | Fixup comments and loggingErik Johnston2019-05-302-9/+15
| | | |
| * | | Log actual number of entries deletedErik Johnston2019-05-292-5/+13
| | | |
| * | | Add DB bg update to cleanup extremities.Erik Johnston2019-05-292-0/+205
| | | | | | | | | | | | | | | | | | | | Due to #5269 we may have extremities in our DB that we shouldn't have, so lets add a cleanup task such to remove those.
* | | | Implement the SHHS complexity API (#5216)Amber Brown2019-05-301-1/+49
|/ / /
* | | Correctly filter out extremities with soft failed prevs (#5274)Erik Johnston2019-05-291-3/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we receive a soft failed event we, correctly, *do not* update the forward extremity table with the event. However, if we later receive an event that references the soft failed event we then need to remove the soft failed events prev events from the forward extremities table, otherwise we just build up forward extremities. Fixes #5269
* | | Merge pull request #5268 from matrix-org/babolivier/account_validity_fix_schemaBrendan Abolivier2019-05-281-0/+3
|\| | | | | | | | Fix schema update for account validity
| * | Fix schema update for account validityBrendan Abolivier2019-05-281-0/+3
| | |
* | | Fix logging for room stats background updateTravis Ralston2019-05-251-1/+1
| | |
* | | Store key validity time in the storage layerRichard van der Hoff2019-05-232-10/+44
| | | | | | | | | | | | | | | | | | | | | | | | This is a first step to checking that the key is valid at the required moment. The idea here is that, rather than passing VerifyKey objects in and out of the storage layer, we instead pass FetchKeyResult objects, which simply wrap the VerifyKey and add a valid_until_ts field.
* | | Rewrite store_server_verify_key to store several keys at once (#5234)Richard van der Hoff2019-05-231-26/+39
| | | | | | | | | | | | | | | Storing server keys hammered the database a bit. This replaces the implementation which stored a single key, with one which can do many updates at once.
* | | Simplifications and comments in do_auth (#5227)Richard van der Hoff2019-05-231-1/+1
| | | | | | | | | | | | | | | I was staring at this function trying to figure out wtf it was actually doing. This is (hopefully) a non-functional refactor which makes it a bit clearer.
* | | Room Statistics (#4338)Amber Brown2019-05-216-3/+597
| | |
* | | Merge pull request #5203 from matrix-org/erikj/aggregate_by_senderErik Johnston2019-05-211-1/+1
|\ \ \ | | | | | | | | Only count aggregations from distinct senders
| * | | Only count aggregations from distinct sendersErik Johnston2019-05-171-1/+1
| | | | | | | | | | | | | | | | As a user isn't allowed to send a single emoji more than once.
* | | | Merge pull request #5212 from matrix-org/erikj/deny_multiple_reactionsErik Johnston2019-05-211-3/+45
|\ \ \ \ | | | | | | | | | | Block attempts to annotate the same event twice
| * | | | Block attempts to annotate the same event twiceErik Johnston2019-05-201-3/+45
| | |_|/ | |/| |
* | | | Exclude soft-failed events from fwd-extremity candidates. (#5146)Richard van der Hoff2019-05-211-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When considering the candidates to be forward-extremities, we must exclude soft failures. Hopefully fixes #5090.
* | | | Merge pull request #5204 from ↵Brendan Abolivier2019-05-212-12/+62
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| matrix-org/babolivier/account_validity_expiration_date Add startup background job for account validity
| * | Do the select and insert in a single transactionBrendan Abolivier2019-05-211-10/+6
| | |
| * | Add startup background job for account validityBrendan Abolivier2019-05-172-12/+66
| | | | | | | | | | | | If account validity is enabled in the server's configuration, this job will run at startup as a background job and will stick an expiration date to any registered account missing one.
* | | Rename relation types to match MSCErik Johnston2019-05-201-4/+4
| | |
* | | Merge pull request #5209 from matrix-org/erikj/reactions_baseErik Johnston2019-05-204-4/+476
|\ \ \ | | | | | | | | Land basic reaction and edit support.
| * | | Correctly update aggregation counts after redactionErik Johnston2019-05-202-0/+20
| | |/ | |/|
| * | Fixup bsaed on review commentsErik Johnston2019-05-171-15/+17
| | |
| * | Add basic editing supportErik Johnston2019-05-161-2/+58
| | |
| * | Move parsing of tokens out of storage layerErik Johnston2019-05-161-14/+2
| | |
| * | Indirect tuple conversionErik Johnston2019-05-161-0/+6
| | |
| * | Fix relations in worker modeErik Johnston2019-05-162-5/+11
| | |
| * | Add cache to relationsErik Johnston2019-05-161-0/+8
| | |
| * | Add aggregations APIErik Johnston2019-05-161-6/+219
| | |
| * | Actually check for None rather falseyErik Johnston2019-05-151-2/+2
| | |
| * | Add simple pagination APIErik Johnston2019-05-151-0/+80
| | |
| * | Add simple send_relation API and track in DBErik Johnston2019-05-154-0/+93
| | |
* | | Spelling and clarificationsErik Johnston2019-05-171-5/+9
| | |
* | | Update docstringErik Johnston2019-05-161-1/+12
|/ /
* / Make generating SQL bounds for pagination genericErik Johnston2019-05-151-61/+118
|/ | | | | This will allow us to reuse the same structure when we paginate e.g. relations
* Update docstring with correct typeErik Johnston2019-05-151-1/+1
| | | Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Expose DataStore._get_events as get_events_as_listErik Johnston2019-05-145-29/+53
| | | | This is in preparation for reaction work which requires it.
* Limit the number of EDUs in transactions to 100 as expected by receiver (#5138)Quentin Dufour2019-05-091-1/+1
| | | Fixes #3951.
* Fix infinite loop in presence handlerRichard van der Hoff2019-04-261-0/+18
| | | | Fixes #5102
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-04-1769-3786/+2805
|\ | | | | | | babolivier/account_expiration
| * Merge pull request #5047 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-172-18/+159
| |\ | | | | | | Send out emails with links to extend an account's validity period
| * \ Merge pull request #5033 from matrix-org/erikj/fix_schema_deltaErik Johnston2019-04-101-1/+3
| |\ \ | | | | | | | | Fix schema upgrade when dropping tables
| | * | Fix schema upgrade when dropping tablesErik Johnston2019-04-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to drop tables in the correct order due to foreign table constraints (on `application_services`), otherwise the DROP TABLE command will fail. Introduced in #4992.
| * | | Merge pull request #5027 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-092-0/+54
| |\ \ \ | | |/ / | |/| | Add time-based account expiration
| * | | Rewrite Datastore.get_server_verify_keysRichard van der Hoff2019-04-091-28/+46
| | | | | | | | | | | | | | | | Rewrite this so that it doesn't hammer the database.
| * | | Remove unused server_tls_certificates functions (#5028)Richard van der Hoff2019-04-083-59/+5
| | | | | | | | | | | | | | | | These have been unused since #4120, and with the demise of perspectives, it is unlikely that they will ever be used again.
| * | | drop tables listed in #1830 (#4992)Neil Johnson2019-04-0824-752/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tables dropped: * application_services, * application_services_regex, * transaction_id_to_pdu, * stats_reporting * current_state_resets * event_content_hashes * event_destinations * event_edge_hashes * event_signatures * feedback * room_hosts * state_forward_extremities
| * | | Merge pull request #5001 from matrix-org/rav/keyring_cleanupsRichard van der Hoff2019-04-081-2/+2
| |\ \ \ | | | | | | | | | | Cleanups in the Keyring
| | * | | Fix docstring on get_server_keys_jsonRichard van der Hoff2019-04-041-2/+2
| | | | |
| * | | | Clean up the database pagination code (#5007)Amber Brown2019-04-052-67/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rewrite & simplify * changelog * cleanup potential sql injection
| * | | | Add functions to delete a groupErik Johnston2019-04-031-0/+37
| | | | |
| * | | | Fix grammar and document get_current_users_in_room (#4998)Andrew Morgan2019-04-031-1/+1
| |/ / /
| * | | Remove presence lists (#4989)Neil Johnson2019-04-034-96/+20
| | | | | | | | | | | | Remove presence list support as per MSC 1819
| * | | Merge pull request #4982 from matrix-org/erikj/msc1915Erik Johnston2019-04-032-0/+141
| |\ \ \ | | | | | | | | | | Implement MSC1915 - 3PID unbind APIs
| | * | | Fixup docstringsErik Johnston2019-04-022-5/+5
| | | | |
| | * | | Grandfather in existing user threepidsErik Johnston2019-04-012-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We assume, as we did before, that users bound their threepid to one of the trusted identity servers. So we simply fill the new table with all threepids in `user_threepids` joined with the trusted identity servers.
| | * | | Track IS used to bind 3PIDsErik Johnston2019-04-012-0/+104
| | | | | | | | | | | | | | | | | | | | | | | | | This will then be used to know which IS to default to when unbinding the threepid.
| * | | | Run black on the rest of the storage module (#4996)Amber Brown2019-04-0341-2455/+2130
| | | | |
| * | | | Make starting pushers faster during start upErik Johnston2019-04-021-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We start all pushers on start up and immediately start a background process to fetch push to send. This makes start up incredibly painful when dealing with many pushers. Instead, let's do a quick fast DB check to see if there *may* be push to send and only start the background processes for those pushers. We also stagger starting up and doing those checks so that we don't try and handle all pushers at once.
| * | | | Fix sync bug when accepting invites (#4956)Richard van der Hoff2019-04-022-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hopefully this time we really will fix #4422. We need to make sure that the cache on `get_rooms_for_user_with_stream_ordering` is invalidated *before* the SyncHandler is notified for the new events, and we can now do so reliably via the `events` stream.
| * | | | Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-011-1/+2
| |/ / / | | | | | | | | | | | | Collect all the things that make room-versions different to one another into one place, so that it's easier to define new room versions.
| * | | Merge pull request #4955 from matrix-org/rav/merge_state_into_eventsRichard van der Hoff2019-03-281-3/+0
| |\ \ \ | | | | | | | | | | Combine the CurrentStateDeltaStream into the EventStream
| | * | | Combine the CurrentStateDeltaStream into the EventStreamRichard van der Hoff2019-03-271-3/+0
| | | | |
| * | | | Run `black` on some storage modules that the stats branch touches (#4959)Amber Brown2019-03-292-380/+335
| |/ / /
* | | / Add management endpoints for account validityBrendan Abolivier2019-04-171-12/+17
| |_|/ |/| |
* | | Send out emails with links to extend an account's validity periodBrendan Abolivier2019-04-172-18/+159
| |/ |/|
* | Add account expiration featureBrendan Abolivier2019-04-093-1/+55
|/
* Use the state event amount for userdir import batching, not room count (#4944)Amber Brown2019-03-271-8/+20
|
* Fix bug where read-receipts lost their timestamps (#4927)Richard van der Hoff2019-03-251-1/+3
| | | | | Make sure that they are sent correctly over the replication stream. Fixes: #4898
* Refactor out state delta handling into its own class (#4917)Amber Brown2019-03-252-64/+76
|
* Fix upsertErik Johnston2019-03-211-0/+1
|
* comment block_roomErik Johnston2019-03-201-0/+9
|
* Allow blocking a room multiple timesErik Johnston2019-03-201-2/+4
|
* Batching in the user directory import (#4900)Amber Brown2019-03-211-0/+13
|
* Fix user directory background update (#4887)Erik Johnston2019-03-191-1/+1
|
* Migrate the user directory initial population to a background task (#4864)Amber Brown2019-03-193-96/+312
|
* Merge pull request #4846 from matrix-org/hawkowl/userdir-searchErik Johnston2019-03-144-75/+92
|\ | | | | Improve searching in the userdir
| * fixupAmber Brown2019-03-131-1/+1
| |
| * fixupAmber Brown2019-03-132-55/+11
| |
| * fixupAmber Brown2019-03-121-1/+1
| |
| * fixupAmber Brown2019-03-121-1/+2
| |
| * fixupAmber Brown2019-03-122-113/+69
| |
| * fixupAmber Brown2019-03-121-1/+1
| |
| * use the old methodAmber Brown2019-03-121-3/+2
| |
| * fixAmber Brown2019-03-121-1/+1
| |
| * pep8Amber Brown2019-03-121-2/+1
| |
| * fixesAmber Brown2019-03-122-9/+56
| |
| * Merge remote-tracking branch 'origin/develop' into hawkowl/userdir-searchAmber Brown2019-03-112-15/+2
| |\
| * | initialAmber Brown2019-03-113-3/+62
| | |
* | | Transfer local user's push rules on room upgrade (#4838)Andrew Morgan2019-03-121-0/+57
| |/ |/| | | Transfer push rules (notifications) on room upgrade
* | Add comment to schemaErik Johnston2019-03-081-0/+2
| |
* | Make `prev_state` field optionalErik Johnston2019-03-081-15/+0
|/ | | | | | | The `prev_state` field on events is not specced and so synapse shouldn't explode if an event is missing the field. Fixes #4787
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-03-083-181/+156
|\ | | | | | | erikj/soft_fail_impl
| * Rewrite userdir to be faster (#4537)Amber Brown2019-03-072-181/+137
| |
| * Add docstrings from matrix-org-hotfixesErik Johnston2019-03-061-0/+19
| |
* | Implement soft failErik Johnston2019-03-061-0/+1
|/
* Merge pull request #4699 from matrix-org/erikj/stop_fed_not_in_roomErik Johnston2019-03-051-0/+22
|\ | | | | Stop backpaginating when events not visible
| * s/get_forward_events/get_successor_events/Erik Johnston2019-03-041-2/+2
| |
| * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-03-044-43/+120
| |\ | | | | | | | | | erikj/stop_fed_not_in_room
| * | Stop backpaginating when events not visibleErik Johnston2019-02-201-0/+22
| | |
* | | Merge pull request #4796 from matrix-org/erikj/factor_out_e2e_keysErik Johnston2019-03-053-541/+546
|\ \ \ | | | | | | | | Allow /keys/{changes,query} API to run on worker
| * | | Fixup slave storesErik Johnston2019-03-043-541/+546
| | |/ | |/|
* / | Add some debug about processing read receipts.Richard van der Hoff2019-03-041-6/+20
|/ / | | | | | | | | I'm hoping to establish which rooms are having lots of RRs sent for them, and how old the events are when they are sent.
* | Move /account/3pid to client_readerErik Johnston2019-02-271-33/+33
| |
* | Limit cache invalidation replication line length (#4748)Erik Johnston2019-02-271-4/+11
| |
* | Add database version to phonehome stats. (#4753)Richard van der Hoff2019-02-273-0/+42
| |
* | Fix state cache invalidation on workersErik Johnston2019-02-221-6/+34
|/
* UPSERT many functionality (#4644)Amber Brown2019-02-201-12/+134
|
* Merge pull request #4671 from matrix-org/erikj/state_cache_invalidationErik Johnston2019-02-192-25/+58
|\ | | | | Batch cache invalidation over replication
| * DocsErik Johnston2019-02-191-2/+3
| |
| * Use itertoolsErik Johnston2019-02-191-2/+2
| |
| * DocumentationErik Johnston2019-02-191-4/+4
| |
| * Batch cache invalidation over replicationErik Johnston2019-02-182-25/+57
| | | | | | | | | | | | | | | | | | | | Currently whenever the current state changes in a room invalidate a lot of caches, which cause *a lot* of traffic over replication. Instead, lets batch up all those invalidations and send a single poke down the replication streams. Hopefully this will reduce load on the master process by substantially reducing traffic.
* | Split /login into client_readerErik Johnston2019-02-181-41/+41
|/
* Split out registration to workerErik Johnston2019-02-181-115/+115
| | | | | | | | This allows registration to be handled by a worker, though the actual write to the database still happens on master. Note: due to the in-memory session map all registration requests must be handled by the same worker.
* Add configurable room list publishing rulesErik Johnston2019-02-141-0/+25
| | | | | This allows specifying who and what is allowed to be published onto the public room list
* Run `black` on user directory code (#4635)Amber Brown2019-02-131-87/+66
|
* Merge pull request #4627 from matrix-org/erikj/user_ips_analyzeErik Johnston2019-02-122-3/+31
|\ | | | | Analyze user_ips before running deduplication
| * Fix pep8Erik Johnston2019-02-121-1/+1
| |
| * Analyze user_ips before running deduplicationErik Johnston2019-02-122-3/+31
| | | | | | | | | | | | | | Due to the table locks taken out by the naive upsert, the table statistics may be out of date. During deduplication it is important that the correct index is used as otherwise a full table scan may be incorrectly used, which can end up thrashing the database badly.
* | Reduce user_ips bloat during dedupe background updateErik Johnston2019-02-121-3/+60
|/ | | | | | | | | | | | The background update to remove duplicate rows naively deleted and reinserted the duplicates. For large tables with a large number of duplicates this causes a lot of bloat (with postgres), as the inserted rows are appended to the table, since deleted rows will not be overwritten until a VACUUM has happened. This should hopefully also help ensure that the query in the last batch uses the correct index, as inserting a large number of new rows without analyzing will upset the query planner.
* Merge pull request #4580 from matrix-org/uhoreg/e2e_backup_add_updatingErik Johnston2019-02-111-0/+21
|\ | | | | add updating of backup versions
| * add new endpoint to update backup versionsHubert Chathi2019-02-061-0/+21
| |
* | Fix 'no unique or exclusion constraint' error (#4591)Richard van der Hoff2019-02-081-6/+21
| | | | | | | | | | Add more tables to the list of tables which need a background update to complete before we can upsert into them, which fixes a race against the background updates.
* | Filter user directory state query to a subset of state events (#4462)Andrew Morgan2019-02-051-4/+12
|/ | | | | | * Filter user directory state query to a subset of state events * Add changelog
* Merge pull request #4530 from matrix-org/anoa/room_upgrade_federatableAndrew Morgan2019-01-311-11/+27
|\ | | | | Copy over non-federatable trait on room upgrade
| * Raise an exception instead of returning NoneAndrew Morgan2019-01-311-2/+9
| |
| * New function for getting room's create eventAndrew Morgan2019-01-311-11/+20
| |
* | Fix infinite loop when an event is redacted in a v3 room (#4535)Richard van der Hoff2019-01-311-5/+32
|/
* Fix flake8 (#4519)Amber Brown2019-01-303-86/+86
|
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-01-291-0/+23
|\ | | | | | | erikj/redactions_eiah
| * Refactor event building into EventBuilderErik Johnston2019-01-291-0/+23
| | | | | | | | | | This is so that everything is done in one place, making it easier to change the event format based on room version
* | Update synapse/storage/events_worker.pyErik Johnston2019-01-291-1/+1
| |
* | Check redaction state when event is pulled out of the databaseErik Johnston2019-01-291-0/+13
| |
* | Fix typoErik Johnston2019-01-291-1/+1
| |
* | Remove unused argErik Johnston2019-01-291-2/+1
| |
* | Update synapse/storage/events_worker.pyRichard van der Hoff2019-01-291-1/+1
| | | | | | Co-Authored-By: erikjohnston <erikj@jki.re>
* | Implement rechecking of redactionsErik Johnston2019-01-291-1/+25
|/
* Fix typo in upserts code (#4505)Amber Brown2019-01-291-1/+1
| | | | | | * fix obvious problem :| * changelog
* Fix UPSERTs on SQLite 3.24+ (#4477)Amber Brown2019-01-283-12/+20
|
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Andrew Morgan2019-01-282-10/+9
|\ | | | | | | anoa/dm_room_upgrade
| * Merge pull request #4470 from matrix-org/erikj/require_format_versionErik Johnston2019-01-251-6/+2
| |\ | | | | | | Require event format version to parse or create events
| | * Replace missed usages of FrozenEventErik Johnston2019-01-251-6/+2
| | |
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-01-252-2/+25
| |\ \ | | | | | | | | | | | | erikj/sqlite_native_upsert
| | * | Don't require sqlite3 when using postgres (#4466)Andrew Morgan2019-01-251-2/+1
| | | |
| * | | Disable native upserts for sqlite, as they don't workErik Johnston2019-01-251-3/+7
| | |/ | |/|
* | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Andrew Morgan2019-01-2512-64/+334
|\ \ \ | | |/ | |/| | | | anoa/dm_room_upgrade
| * | Merge pull request #4415 from matrix-org/anoa/full_search_upgraded_roomsAndrew Morgan2019-01-251-0/+24
| |\ \ | | |/ | |/| Ability to search entire room history after upgrading room
| | * Merge branch 'anoa/full_search_upgraded_rooms' of ↵Andrew Morgan2019-01-241-1/+1
| | |\ | | | | | | | | | | | | github.com:matrix-org/synapse into anoa/full_search_upgraded_rooms
| | | * Apply suggestions from code reviewRichard van der Hoff2019-01-241-1/+1
| | | | | | | | | | | | Co-Authored-By: anoadragon453 <1342360+anoadragon453@users.noreply.github.com>
| | * | Remove redundant create event None checkAndrew Morgan2019-01-241-3/+0
| | |/
| | * Do not return in a deferred functionAndrew Morgan2019-01-221-3/+3
| | |
| | * Ensure new filter is actually createdAndrew Morgan2019-01-221-1/+0
| | |
| | * Fix a bug with single-room search searching all roomsAndrew Morgan2019-01-221-1/+28
| | | | | | | | | | | | | | | * Create a new method for getting predecessor rooms * Remove formatting change
| | * Search for messages across predecessor roomsAndrew Morgan2019-01-181-0/+1
| | | | | | | | | | | | Signed-off-by: Andrew Morgan <andrew@amorgan.xyz>
| * | Revert "Require event format version to parse or create events"Erik Johnston2019-01-251-2/+6
| | |
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-01-248-33/+238
| |\ \ | | | | | | | | | | | | erikj/require_format_version
| | * \ Merge pull request #4405 from matrix-org/erikj/fixup_rejecting_invitesErik Johnston2019-01-241-4/+4
| | |\ \ | | | | | | | | | | Store rejected remote invite events as outliers
| | | * | Use term 'out of band membership' insteadErik Johnston2019-01-241-3/+3
| | | | |
| | * | | Merge pull request #4437 from matrix-org/erikj/event_format_version_v2Erik Johnston2019-01-243-4/+32
| | |\ \ \ | | | | | | | | | | | | Add support for persisting event format versions
| | * | | | Fix UPSERT check (#4459)Amber Brown2019-01-241-5/+28
| | | | | |
| | * | | | Use native UPSERTs where possible (#4306)Amber Brown2019-01-247-30/+212
| | | | | |
| * | | | | Replace missed usages of FrozenEventErik Johnston2019-01-241-6/+2
| | | | | |
| * | | | | Merge branch 'erikj/fixup_rejecting_invites' of ↵Erik Johnston2019-01-231-4/+4
| |\ \ \ \ \ | | | |_|/ / | | |/| | | | | | | | | github.com:matrix-org/synapse into erikj/require_format_version
| | * | | | Clarify the invite flowsErik Johnston2019-01-231-4/+7
| | | | | |
| | * | | | Store rejected remote invite events as outliersErik Johnston2019-01-231-4/+1
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently they're stored as non-outliers even though the server isn't in the room, which can be problematic in places where the code assumes it has the state for all non outlier events. In particular, there is an edge case where persisting the leave event triggers a state resolution, which requires looking up the room version from state. Since the server doesn't have the state, this causes an exception to be thrown.
| * | / / Merge branch 'erikj/get_pdu_versions' into erikj/require_format_versionErik Johnston2019-01-231-1/+5
| |\| | | | | |/ / | |/| |
| | * | Fixup removal of duplicate `user_ips` rows (#4432)Erik Johnston2019-01-231-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove unnecessary ORDER BY clause * Add logging * Newsfile
| * | | isortErik Johnston2019-01-231-1/+1
| | | |
| * | | Add support for persisting event format versionsErik Johnston2019-01-233-4/+32
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we only have the one event format version defined, but this adds the necessary infrastructure to persist and fetch the format versions alongside the events. We specify the format version rather than the room version as: 1. We don't necessarily know the room version, existing events may be either v1 or v2. 2. We'd need to be careful to prevent/handle correctly if different events in the same room reported to be of different versions, which sounds annoying.
| * | Refactor to rewrite the SQL insteadErik Johnston2019-01-221-13/+16
| | |
| * | Don't shadow paramsErik Johnston2019-01-221-4/+3
| | |
| * | Fix bug when removing duplicate rows from user_ipsErik Johnston2019-01-221-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | This was caused by accidentally overwritting a `last_seen` variable in a for loop, causing the wrong value to be written to the progress table. The result of which was that we didn't scan sections of the table when searching for duplicates, and so some duplicates did not get deleted.
* | | Fix typosAndrew Morgan2019-01-221-1/+1
|/ /
* / Fix race when persisting create event (#4404)Erik Johnston2019-01-181-1/+12
|/ | | | | | | | | * Fix race when persisting create event When persisting a chunk of DAG it is sometimes requried to do a state resolution, which requires knowledge of the room version. If this happens while we're persisting the create event then we need to use that event rather than attempting to look it up in the database.
* Remove duplicates in the user_ips table and add an index (#4370)Amber Brown2019-01-122-4/+160
|
* Fix adding new rows instead of updating them if one of the key values is a ↵Amber Brown2019-01-091-1/+9
| | | | NULL in upserts. (#4369)
* Ensure synchrotrons can access is_support_user in the storage layerNeil Johnson2019-01-021-25/+25
|
* Log roomid along with Unknown room (#4297)Will Hunt2018-12-241-1/+1
|
* create support user (#4141)Neil Johnson2018-12-143-4/+83
| | | | | | Allow for the creation of a support user. A support user can access the server, join rooms, interact with other users, but does not appear in the user directory nor does it contribute to monthly active user limits.
* Settings Fix deleting e2e room keys on xenial (#4295)Amber Brown2018-12-141-1/+1
|
* Initialise user displayname from SAML2 data (#4272)Richard van der Hoff2018-12-071-7/+13
| | | | | When we register a new user from SAML2 data, initialise their displayname correctly.
* drop undocumented dependency on dateutil (#4266)Richard van der Hoff2018-12-061-7/+6
| | | | It turns out we were relying on dateutil being pulled in transitively by pysaml2. There's no need for that bloat.
* Add an option to disable search for homeservers which may not be interested ↵Travis Ralston2018-12-041-0/+6
| | | | | | in it (#4230) This is useful for homeservers not intended for users, such as bot-only homeservers or ones that only process IoT data.
* add more detail to logging regarding "More than one row matched" error (#4234)Ben Parsons2018-12-041-6/+6
|
* Fix UnicodeDecodeError when postgres is not configured in english (#4253)Richard van der Hoff2018-12-041-7/+8
| | | | This is a bit of a half-assed effort at fixing https://github.com/matrix-org/synapse/issues/4252. Fundamentally the right answer is to drop support for Python 2.
* Drop sent_transactionsAaron Raimist2018-12-016-74/+3
| | | | Signed-off-by: Aaron Raimist <aaron@raim.ist>
* Neilj/fix mau initial reserved users (#4211)Neil Johnson2018-11-281-2/+3
| | | | | | | | * fix transaction wrapping bug that caused get_user_id_by_threepid_txn to fail * towncrier * white space
* Ignore __pycache__ directories in schema delta dirRichard van der Hoff2018-11-201-1/+1
| | | | Now that we use py3, compiled python ends up in __pycache__ rather than *.pyc.
* Add option to track MAU stats (but not limit people) (#3830)Travis Ralston2018-11-151-34/+40
|
* Merge remote-tracking branch 'origin/develop' into ↵David Baker2018-11-098-65/+274
|\ | | | | | | dbkr/e2e_backup_versions_are_numbers
| * Lets convert bytes to unicode insteadErik Johnston2018-11-081-5/+3
| |
| * Fix noop checks when updating device keysErik Johnston2018-11-081-0/+5
| | | | | | | | | | | | | | | | | | | | Clients often reupload their device keys (for some reason) so its important for the server to check for no-ops before sending out device list update notifications. The check is broken in python 3 due to the fact comparing bytes and unicode always fails, and that we write bytes to the DB but get unicode when we read.
| * Add helpers for getting prev and auth events (#4139)Erik Johnston2018-11-062-6/+6
| | | | | | | | | | | | | | * Add helpers for getting prev and auth events This is in preparation for allowing the event format to change between room versions.
| * Add unique indexes to a couple of tablesRichard van der Hoff2018-11-023-6/+88
| | | | | | | | | | The indexes on device_lists_remote_extremeties can be unique, and they therefore should, to ensure that the db remains consistent.