Question
How does Firebird's result set cache behave under READ COMMITTED isolation when concurrent updates occur?
Ari Cedar
0 reputation · 16 Oct 2024, 16:02 UTC
139.1K views0
In a Firebird 3.0 database, a table is subject to frequent UPDATE and INSERT statements from several concurrent sessions. A reporting session repeatedly executes the same SELECT statement under the READ COMMITTED isolation level, expecting to see the latest committed changes after each transaction completes. Occasionally the query returns rows that reflect an earlier state, indicating that the result set cache might be serving stale data despite committed transactions. The goal is to understand when the result set cache is considered valid and how to detect whether a cached result set is being used in this setting.
How can I determine if the result set cache is being used for a particular SELECT statement?
What conditions cause the cache to retain outdated data under READ COMMITTED isolation?
Is there a way to disable or flush the result set cache for a session without affecting other connections?