Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
Docs Required, Release Notes Required
Description
Commit of RW transaction is not instantaneous. RO transaction might require reads of data that's in the process of being committed. Current API doesn't support such scenario.
RO API in partition storage has only two methods: read and scan.
Read
This one is pretty simple. It should return pair of binaryRow and txId. After that, caller can check the state of the transaction and either return the value or repeat the call.
There must be a way to hint read method that uncommitted data must be skipped.
An interesting way of reading data might be required: it there's a write intent, but we see a commit done after the timestamp, we can safely proceed with reading.
Unfortunately, such optimization may be heavy on the storage read operations, because it requires a "deep" look-ahead request. So, whether or not we implement this depends on one thing - how often do we have write intent resolution in real RO transactions?
API is to be defined.
For scans see https://issues.apache.org/jira/browse/IGNITE-17720
Attachments
Issue Links
- blocks
-
IGNITE-17261 Implement a coordinator path write intent resolution logic for RO reads
- Resolved
-
IGNITE-17637 Implement a commit partition path write intent resolution logic for RO reads
- Resolved
- links to