You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Kirill Tkalenko (Jira)" <ji...@apache.org> on 2024/10/08 14:58:00 UTC

[jira] [Assigned] (IGNITE-23286) Add CompactedException throwing for MetaStorageManager#getLocally

     [ 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)