Skip to content

Comments

ECSqlReader can see uncommitted changes on primary connection.#7740

Draft
khanaffan wants to merge 1 commit intomasterfrom
affank/read-uncommitted
Draft

ECSqlReader can see uncommitted changes on primary connection.#7740
khanaffan wants to merge 1 commit intomasterfrom
affank/read-uncommitted

Conversation

@khanaffan
Copy link
Contributor

@khanaffan khanaffan commented Feb 19, 2025

imodel-native: iTwin/imodel-native#1012

Editing application need to read changes as present on primary connection. ECSqlReader uses concurrent queries to read data which uses separate connection which does not see current changes on primary db.

This can be solved with usePrimaryConn option but we lose the concurrency in doing so.

An alternative method is to use PRAGMA read_uncommitted=1 which only works if shared cache is on. So, this PR enables read_uncommitted from concurrent query and enables shared cache by default.

  • Need to get more feedback on this fix from SQLite dev

I sent out an email to sqlite dev asking them if enabling shared cache is clever idea and if there is alternative or they can implement something new for WAL mode.

This is obsolete method and may cause concurrent queries to block each other on shared page cache.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant