summary refs log tree commit diff
path: root/synapse/util/jsonobject.py (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-10-14Use autocommit mode for single statement DB functions. (#8542)Erik Johnston5-70/+156
Autocommit means that we don't wrap the functions in transactions, and instead get executed directly. Introduced in #8456. This will help: 1. reduce the number of `could not serialize access due to concurrent delete` errors that we see (though there are a few functions that often cause serialization errors that we don't fix here); 2. improve the DB performance, as it no longer needs to deal with the overhead of `REPEATABLE READ` isolation levels; and 3. improve wall clock speed of these functions, as we no longer need to send `BEGIN` and `COMMIT` to the DB. Some notes about the differences between autocommit mode and our default `REPEATABLE READ` transactions: 1. Currently `autocommit` only applies when using PostgreSQL, and is ignored when using SQLite (due to silliness with [Twisted DB classes](https://twistedmatrix.com/trac/ticket/9998)). 2. Autocommit functions may get retried on error, which means they can get applied *twice* (or more) to the DB (since they are not in a transaction the previous call would not get rolled back). This means that the functions need to be idempotent (or otherwise not care about being called multiple times). Read queries, simple deletes, and updates/upserts that replace rows (rather than generating new values from existing rows) are all idempotent. 3. Autocommit functions no longer get executed in [`REPEATABLE READ`](https://www.postgresql.org/docs/current/transaction-iso.html) isolation level, and so data can change queries, which is fine for single statement queries.
2020-10-14Remove racey assertion in MultiWriterIDGenerator (#8530)Erik Johnston2-7/+1
We asserted that the IDs returned by postgres sequence was greater than any we had seen, however this is technically racey as we may update the current positions out of order. We now assert that the sequences are correct on startup, so the assertion is no longer really required, so we remove them.
2020-10-14Add note to manhole.md about bind_address when using with docker (#8526)Christopher May-Townsend2-7/+40
Signed-off-by: Christopher May-Townsend <chris@maytownsend.co.uk>
2020-10-14Update documentation on retention policies limits (#8529)Brendan Abolivier2-12/+23
* Update documentation on retention policies limits Document the changes from https://github.com/matrix-org/synapse/pull/8104
2020-10-14Add basic tests for sync/pagination with vector clock tokens. (#8488)Erik Johnston3-1/+249
These are tests for #8439
2020-10-14Fix not sending events over federation when using sharded event persisters ↵Erik Johnston10-21/+51
(#8536) * Fix outbound federaio