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

Aleksandr Polovtsev updated IGNITE-26645:
-----------------------------------------
    Description: 
This ticket is about the new Raft log storage implementation.

Imagine the following situation:

# We have two Raft groups, A and B;
# The first index file is created, it contains log entries from the both groups;
# The second index file is created, it contains log entries only from the group 
A;
# The third index file is created, it again contains log entries from the both 
groups.
# We search for a Raft log index from B that falls into the index range of the 
third index file.

In this case we expect to get an IndexFilePointer that will point to the index 
file with ordinal 2 (ordinals are zero based). However, current implementation 
does not take possible gaps into account and uses the continuous array index, 
so in this case it will return ordinal 1, because its GroupIndexMeta contains 
two elements in the internal array.

  was:
This ticket is about the new Raft log storage implementation.

Imagine the following situation:

# We have two Raft groups, A and B;
# The first index file is created, it contains log entries from the both groups;
# The second index file is created, it contains log entries only from the group 
A;
# The third index file is created, it again contains log entries from the both 
groups.
# We search for a Raft log index from B that falls into the index range of the 
third index file.

In this case we expect to get an IndexFilePointer that will point to the index 
file with ordinal 2 (ordinals are zero based). However, current implementation 
does not take possible gaps into account and uses the continuous array index, 
so in this case it will return ordinal 1, because it  


> GroupIndexMeta#indexFilePointer does not handle gaps correctly
> --------------------------------------------------------------
>
>                 Key: IGNITE-26645
>                 URL: https://issues.apache.org/jira/browse/IGNITE-26645
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Aleksandr Polovtsev
>            Assignee: Aleksandr Polovtsev
>            Priority: Major
>              Labels: ignite-3
>
> This ticket is about the new Raft log storage implementation.
> Imagine the following situation:
> # We have two Raft groups, A and B;
> # The first index file is created, it contains log entries from the both 
> groups;
> # The second index file is created, it contains log entries only from the 
> group A;
> # The third index file is created, it again contains log entries from the 
> both groups.
> # We search for a Raft log index from B that falls into the index range of 
> the third index file.
> In this case we expect to get an IndexFilePointer that will point to the 
> index file with ordinal 2 (ordinals are zero based). However, current 
> implementation does not take possible gaps into account and uses the 
> continuous array index, so in this case it will return ordinal 1, because its 
> GroupIndexMeta contains two elements in the internal array.



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

Reply via email to