synapse-product/synapse
Sean Quah f792dd74e1
Remove option to skip locking of tables during emulated upserts (#14469)
To perform an emulated upsert into a table safely, we must either:
 * lock the table,
 * be the only writer upserting into the table
 * or rely on another unique index being present.

When the 2nd or 3rd cases were applicable, we previously avoided locking
the table as an optimization. However, as seen in #14406, it is easy to
slip up when adding new schema deltas and corrupt the database.

The only time we lock when performing emulated upserts is while waiting
for background updates on postgres. On sqlite, we do no locking at all.

Let's remove the option to skip locking tables, so that we don't shoot
ourselves in the foot again.

Signed-off-by: Sean Quah <seanq@matrix.org>
2022-11-28 13:42:06 +00:00
..
_scripts let update_synapse_database run on a multi-database configurations (#13422) 2022-10-19 19:08:40 +01:00
api Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
app Remove legacy Prometheus metrics names. They were deprecated in Synapse v1.69.0 and disabled by default in Synapse v1.71.0. (#14538) 2022-11-24 09:09:17 +00:00
appservice Merge branch 'master' into develop 2022-10-28 15:59:51 +01:00
config Remove legacy Prometheus metrics names. They were deprecated in Synapse v1.69.0 and disabled by default in Synapse v1.71.0. (#14538) 2022-11-24 09:09:17 +00:00
crypto Fix /key/v2/server calls with URL-unsafe key IDs (#14490) 2022-11-18 19:56:42 +00:00
events Faster joins: do not wait for full state when creating events to send (#14403) 2022-11-17 17:01:14 +01:00
federation Faster joins: use initial list of servers if we don't have the full state yet (#14408) 2022-11-24 18:09:47 +01:00
handlers Add support for handling avatar with SSO login (#13917) 2022-11-25 15:16:50 +00:00
http Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
logging Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
metrics Remove legacy Prometheus metrics names. They were deprecated in Synapse v1.69.0 and disabled by default in Synapse v1.71.0. (#14538) 2022-11-24 09:09:17 +00:00
module_api Add a type hint for get_device_handler() and fix incorrect types. (#14055) 2022-11-22 14:08:04 -05:00
push Send content rules with pattern_type to clients (#14356) 2022-11-15 15:29:30 +00:00
replication Add a type hint for get_device_handler() and fix incorrect types. (#14055) 2022-11-22 14:08:04 -05:00
res Fix HTML templates missing correct HTML tags (#14448) 2022-11-16 11:14:38 +00:00
rest Add a type hint for get_device_handler() and fix incorrect types. (#14055) 2022-11-22 14:08:04 -05:00
server_notices Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
spam_checker_api Fix import in module_api module and docs on the new check_event_for_spam signature (#12918) 2022-05-31 12:04:53 +02:00
state Faster joins: do not wait for full state when creating events to send (#14403) 2022-11-17 17:01:14 +01:00
static Add viewport directive to HTML templates to optimise for mobile (#13493) 2022-08-11 14:04:20 +01:00
storage Remove option to skip locking of tables during emulated upserts (#14469) 2022-11-28 13:42:06 +00:00
streams Implement message forward pagination from start when no from is given, fixes #12383 (#14149) 2022-11-24 09:10:51 +00:00
util Batch fetch bundled annotations (#14491) 2022-11-22 07:26:11 -05:00
__init__.py Parse SYNAPSE_ASYNC_IO_REACTOR env variable & log the reactor on startup (#14092) 2022-10-07 15:19:59 +01:00
event_auth.py Revert "Fix event size checks (#13710)" 2022-11-01 11:47:09 +00:00
notifier.py Batch up notifications after event persistence (#14033) 2022-10-05 10:12:48 -07:00
py.typed Mark Module API error imports as re-exported and mark Synapse as containing type annotations (#11054) 2021-10-13 08:42:41 +01:00
server.py Add a type hint for get_device_handler() and fix incorrect types. (#14055) 2022-11-22 14:08:04 -05:00
types.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
visibility.py Faster joins: filter out non local events when a room doesn't have its full state (#14404) 2022-11-21 16:46:14 +01:00