0
0
Fork 1
mirror of https://mau.dev/maunium/synapse.git synced 2024-07-04 02:18:25 +02:00
synapse/changelog.d
Erik Johnston 19b15d63e8
Use autocommit mode for single statement DB functions. (#8542)
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-14 15:50:59 +01:00
..
.gitignore
7658.feature Add config option for always using "userinfo endpoint" for OIDC (#7658) 2020-10-01 13:54:35 -04:00
7921.docker Multi arch docker support: add arm/v7 and arm64 to our docker images (#7921) 2020-10-12 22:00:33 +01:00
8292.feature Allow ThirdPartyEventRules modules to manipulate public room state (#8292) 2020-10-05 14:57:46 +01:00
8312.feature Add support for MSC2732: olm fallback keys (#8312) 2020-10-06 13:26:29 -04:00
8369.feature Allow background tasks to be run on a separate worker. (#8369) 2020-10-02 08:23:15 -04:00
8380.feature Add support for MSC2697: Dehydrated devices (#8380) 2020-10-07 08:00:17 -04:00
8390.docker Docker: support passing additional commandline args to synapse (#8390) 2020-10-11 20:51:11 +01:00
8407.misc Add typing information to the device handler. (#8407) 2020-10-07 08:58:21 -04:00
8432.misc Enable mypy checking for unreachable code and fix instances. (#8432) 2020-10-01 08:09:18 -04:00
8433.misc Add unit test for event persister sharding (#8433) 2020-10-02 09:57:12 +01:00
8439.misc Use vector clocks for room stream tokens. (#8439) 2020-10-07 15:15:33 +01:00
8443.misc Include a public_baseurl in configs generated by the demo script. (#8443) 2020-10-02 07:24:07 -04:00
8448.misc Add logging on startup/shutdown (#8448) 2020-10-02 15:20:45 +01:00
8450.misc Speed up unit tests when using PostgreSQL (#8450) 2020-10-02 15:09:31 +01:00
8452.misc Remove stream ordering from Metadata dict (#8452) 2020-10-05 14:43:14 +01:00
8454.bugfix Do not assume that account data is of the correct form. (#8454) 2020-10-05 09:28:05 -04:00
8457.bugfix Ensure that event.redacts is the proper type before handling it (#8457) 2020-10-05 10:24:17 -04:00
8458.feature Move additional tasks to the background worker (#8458) 2020-10-07 11:27:56 -04:00
8461.feature Update default room version to 6 (#8461) 2020-10-05 21:40:51 +01:00
8462.doc Update manhole documentation for async/await. (#8462) 2020-10-05 09:40:19 -04:00
8463.misc changelog 2020-10-05 19:04:13 +01:00
8464.misc Combine SpamCheckerApi with the more generic ModuleApi. (#8464) 2020-10-07 12:03:26 +01:00
8465.bugfix Don't bother responding to client requests that have already disconnected (#8465) 2020-10-06 10:03:39 +01:00
8467.feature Fix third-party event modules for check_visibility_can_be_modified check 2020-10-05 20:29:52 +01:00
8468.misc Additional tests for third-party event rules (#8468) 2020-10-06 16:31:31 +01:00
8474.misc unblacklist some tests (#8474) 2020-10-07 13:39:50 +01:00
8476.bugfix Fix message duplication if something goes wrong after persisting the event (#8476) 2020-10-13 12:07:56 +01:00
8477.misc Include the configured log level in phone home stats. (#8477) 2020-10-07 11:13:38 -04:00
8479.feature Allow modules to create and send events into rooms (#8479) 2020-10-09 13:46:36 +01:00
8480.misc Remove docs/sphinx and related references (#8480) 2020-10-07 11:45:31 +01:00
8486.bugfix Fix returning incorrect prev_batch token in incremental sync (#8486) 2020-10-07 13:49:40 +01:00
8488.misc Add basic tests for sync/pagination with vector clock tokens. (#8488) 2020-10-14 13:53:20 +01:00
8489.feature Move additional tasks to the background worker, part 3 (#8489) 2020-10-09 07:37:51 -04:00
8492.misc Clarify error message when plugin config parsers raise an error (#8492) 2020-10-08 11:10:15 +01:00
8493.doc Add useful shields to readme (#8493) 2020-10-08 11:16:56 +01:00
8494.misc Remove the deprecated Handlers object (#8494) 2020-10-09 07:24:34 -04:00
8496.misc Only send RDATA for instance local events. (#8496) 2020-10-09 13:10:33 +01:00
8497.misc Fix threadsafety in ThreadedMemoryReactorClock (#8497) 2020-10-09 17:22:25 +01:00
8499.misc Make event persisters periodically announce position over replication. (#8499) 2020-10-12 15:51:41 +01:00
8501.feature Invalidate the cache when an olm fallback key is uploaded (#8501) 2020-10-08 13:24:46 -04:00
8502.feature Increase default max_upload_size from 10M to 50M (#8502) 2020-10-09 16:58:23 +01:00
8505.misc Add type hints to some handlers (#8505) 2020-10-09 07:20:51 -04:00
8507.misc Add type hints to response cache. (#8507) 2020-10-09 11:35:11 -04:00
8513.feature Move additional tasks to the background worker, part 4 (#8513) 2020-10-13 08:20:32 -04:00
8514.misc Clean-up some broken/unused code in the test framework (#8514) 2020-10-09 14:19:29 -04:00
8517.bugfix Add correct M_BAD_JSON error code to /profile/{userId}/displayname (#8517) 2020-10-14 11:24:58 +01:00
8526.doc Add note to manhole.md about bind_address when using with docker (#8526) 2020-10-14 15:28:59 +01:00
8527.bugfix Make sure a retention policy is a state event (#8527) 2020-10-14 12:00:52 +01:00
8529.doc Update documentation on retention policies limits (#8529) 2020-10-14 15:00:49 +01:00
8530.bugfix Remove racey assertion in MultiWriterIDGenerator (#8530) 2020-10-14 15:40:06 +01:00
8536.bugfix Fix not sending events over federation when using sharded event persisters (#8536) 2020-10-14 13:27:51 +01:00
8542.misc Use autocommit mode for single statement DB functions. (#8542) 2020-10-14 15:50:59 +01:00