Set Isolation Level to READ_UNCOMMITTED for read-only datastore connection
- Dominant language
- No language data
- Stars
- 39
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
For large CKAN installations that use the Datastore and use postgresql replication, performance/concurrency has been vastly improved with the introduction of `datastore.write_url` and `datastore.read_url` set to the master and replica respectively.
Performance/concurrency can be further improved by allowing "dirty reads" of the datastore. This can be done by setting the SQLAlchemy engine isolation level to "READ_UNCOMMMITTED" for the read_url connection.
Installations that don't employ Postgres replication for the Datastore should also benefit from this change.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names datastore.read_url as the entry point; inspect how that read-only connection is configured and where its isolation level is set. Done means the read_url connection uses READ_UNCOMMITTED while installations without PostgreSQL replication continue to benefit, with relevant behavior covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql, sqlalchemy
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100