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

Kirill Tkalenko reassigned IGNITE-23286:
----------------------------------------

    Assignee: Kirill Tkalenko

> Add CompactedException throwing for MetaStorageManager#getLocally
> -----------------------------------------------------------------
>
>                 Key: IGNITE-23286
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23286
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Kirill Tkalenko
>            Assignee: Kirill Tkalenko
>            Priority: Major
>              Labels: ignite-3
>
> Add CompactedException throwing for MetaStorageManager#getLocally
> We need to add throwing 
> *org.apache.ignite.internal.metastorage.exceptions.CompactedException* for 
> *org.apache.ignite.internal.metastorage.MetaStorageManager#getLocally(byte[], 
> long, long)*.
> Such method will throw a *CompactedException*:
> # The key exists and either both requested boundary revisions or only the 
> lower one have already been compacted
> # The key does not exist and any of the requested boundary revisions have 
> already been compacted.
> Let's look at examples.
> Let's say there is a key "foo" in the metastorage with a single revision 3.
> The metastorage has finished compacting to revision 5. 
> The key "bar" has never been in the metastorage.
> Let's look at some examples:
> # MetaStorageManager#getLocally(“foo”, 1, 1) - a CompactedException will be 
> thrown.
> # MetaStorageManager#getLocally(“foo”, 1, 2) - a CompactedException will be 
> thrown.
> # MetaStorageManager#getLocally(“foo”, 2, 3) - a CompactedException will be 
> thrown.
> # MetaStorageManager#getLocally(“foo”, 3, 6) - will return a single value 
> with revision 3.
> # MetaStorageManager#getLocally(“foo”, 5, 6) - will return a single value 
> with revision 3.
> # MetaStorageManager#getLocally(“bar”, 1, 2) - a CompactedException will be 
> thrown.
> # MetaStorageManager#getLocally(“bar”, 3, 5) - a CompactedException will be 
> thrown.
> # MetaStorageManager#getLocally(“bar”, 6, 7) - will return an empty list.



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

Reply via email to