[ 
https://issues.apache.org/jira/browse/IGNITE-17627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Semyon Danilov reassigned IGNITE-17627:
---------------------------------------

    Assignee: Semyon Danilov

> Extend MvPartitionStorage 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
>
> 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.
> h3. Scan
> This one is tricky, we can't just return a cursor. Special type of cursor is 
> required, and it must allow same read capabilities on each individual element.
> API is to be defined.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to