[
https://issues.apache.org/jira/browse/IGNITE-17627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17608238#comment-17608238
]
Ivan Bessonov commented on IGNITE-17627:
----------------------------------------
[~Sergey Uttsel] for performance purposes, scan API is going to be more
complicated (and implemented in another Issue). Everything else is reflected in
PR, thank you!
[~sdanilov] code looks good to me, thank you! Please proceed with merge
> Extend MvPartitionStorage read API with write intent resolution capabilities
> ----------------------------------------------------------------------------
>
> Key: IGNITE-17627
> URL: https://issues.apache.org/jira/browse/IGNITE-17627
> Project: Ignite
> Issue Type: Improvement
> Reporter: Ivan Bessonov
> Assignee: Semyon Danilov
> Priority: Major
> Labels: ignite-3
> Time Spent: 2h 40m
> Remaining Estimate: 0h
>
> 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{}}}.
> h3. 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
--
This message was sent by Atlassian Jira
(v8.20.10#820010)