dendrite/internal/sqlutil
Player d40221e715
Add SQLite WAL and busy_timeout
SQLite has rather unfortunate defaults for concurrent accesses, leading to database locked errors. https://github.com/matrix-org/dendrite/pull/1290 appears to try to fix some of this, but doesn't appear to cover a concurrent read+write and the errors still happened in large quantities when I joined the dendrite room.

This PR enables WAL for concurrent read+write and much better performance. It also sets busy_timeout to 10 seconds to not immediately fail operations while the database is locked, providing a DB level solution to PR 1290's objective with additional coverage.

I chose this particular location to add the two statements as they should apply to every SQLite DB connection.

From a quick test it looks as if the db locked errors are gone with this change.
2022-08-11 06:39:54 +00:00
..
migrate.go Update database migrations, remove goose (#2264) 2022-07-25 10:39:22 +01:00
migrate_test.go Update database migrations, remove goose (#2264) 2022-07-25 10:39:22 +01:00
postgres.go Run gofmt on dendrite - apply go 1.17 preferred build tags (#2021) 2021-11-02 16:48:48 +00:00
postgres_wasm.go Run gofmt on dendrite - apply go 1.17 preferred build tags (#2021) 2021-11-02 16:48:48 +00:00
sql.go Implement Push Notifications (#1842) 2022-03-03 11:40:53 +00:00
sqlutil.go Add SQLite WAL and busy_timeout 2022-08-11 06:39:54 +00:00
sqlutil_test.go Don't use more than 999 variables in SQLite querys. (#1425) 2020-09-14 16:39:38 +01:00
trace.go Upgrade various dependencies (#2496) 2022-05-26 12:34:43 +01:00
trace_driver.go Run gofmt on dendrite - apply go 1.17 preferred build tags (#2021) 2021-11-02 16:48:48 +00:00
trace_driver_wasm.go Run gofmt on dendrite - apply go 1.17 preferred build tags (#2021) 2021-11-02 16:48:48 +00:00
uri.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
writer.go Component-wide TransactionWriters (#1290) 2020-08-21 10:42:08 +01:00
writer_dummy.go Component-wide TransactionWriters (#1290) 2020-08-21 10:42:08 +01:00
writer_exclusive.go Track goids when running with tracing enabled (#1413) 2020-09-08 17:30:05 +01:00