ckan / ckan/ideas

Set Isolation Level to READ_UNCOMMITTED for read-only datastore connection

Open
#241 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.