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

Sergey Uttsel updated IGNITE-19745:
-----------------------------------
    Description: 
h3. *Motivation*

Occurred that it's not possible to subscribe to old meta storage revision. 
Alternative solution will be a combination of subscription for new ones along 
with scanning/retrieving old revisions in a following way:
 # Register a watch listener that will receive new entries.
 # Read an applied revision.
 # Retrieve existing entries up to the applied revision.
 # If an existing entries list contains the expected entry then use it. Else 
wait when the watch listener receive the expected entry.

Currently there's no method in meta storage API that will provide an ability to 
scan over revisions {*}locally{*}, so that we may add such mehod, e.g.
{code:java}
private List<Entry> doGet(byte[] key, long revLowerBound, long revUpperBound) 
{code}
Aforementioned method is a method in RocksDbKeyValueStorage that should be both 
properly exposed to ms API and also implemented in KeyValueStorage.
h3. Definition of Done.

It's possible to retrieve/scan over meta storage revisions for a specific key.

 

  was:
h3. *Motivation*

Occurred that it's not possible to subscribe to old meta storage revision. 
Alternative solution will be a combination of subscription for new ones along 
with scanning/retrieving old revisions in a following way:
 # Register watch with a listener that blocks new entries processing with latch 
or similar before all already exisiting entries will be retrieved.
 # Retrieve existing entries.
 # Unblock watch processing.

Currently there's no method in meta storage API that will provide an ability to 
scan over revisions {*}locally{*}, so that we may add such mehod, e.g.
{code:java}
private List<Entry> doGet(byte[] key, long revLowerBound, long revUpperBound) 
{code}
Aforementioned method is a method in RocksDbKeyValueStorage that should be both 
properly exposed to ms API and also implemented in KeyValueStorage.
h3. Definition of Done.

It's possible to retrieve/scan over meta storage revisions for a specific key.

 


> Add ability to retrieve/scan over meta storage revisions for a specific key
> ---------------------------------------------------------------------------
>
>                 Key: IGNITE-19745
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19745
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Sergey Uttsel
>            Assignee: Sergey Uttsel
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> h3. *Motivation*
> Occurred that it's not possible to subscribe to old meta storage revision. 
> Alternative solution will be a combination of subscription for new ones along 
> with scanning/retrieving old revisions in a following way:
>  # Register a watch listener that will receive new entries.
>  # Read an applied revision.
>  # Retrieve existing entries up to the applied revision.
>  # If an existing entries list contains the expected entry then use it. Else 
> wait when the watch listener receive the expected entry.
> Currently there's no method in meta storage API that will provide an ability 
> to scan over revisions {*}locally{*}, so that we may add such mehod, e.g.
> {code:java}
> private List<Entry> doGet(byte[] key, long revLowerBound, long revUpperBound) 
> {code}
> Aforementioned method is a method in RocksDbKeyValueStorage that should be 
> both properly exposed to ms API and also implemented in KeyValueStorage.
> h3. Definition of Done.
> It's possible to retrieve/scan over meta storage revisions for a specific key.
>  



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

Reply via email to