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

Kirill Tkalenko updated IGNITE-17372:
-------------------------------------
    Description: 
For the new checkpoint, we need to implement *DeltaFilePageStore*.

Will consist of:
* File header, similar to *FilePageStore*, but in addition it will store a 
sorted list of pageIdx in which it will be stored;
* Pages themselves, sorted by pageIdx.

Some implementation notes
* Format of the file name for the *DeltaFilePageStore* is 
*part-%d-delta-%d.bin* for example *part-1-delta-3.bin* where the first digit 
is the partition identifier, and the second is the serial number of the delta 
file for this partition;
* Before creating *part-1-delta-3.bin*, a temporary file 
*part-1-delta-3.bin.tmp* will be created at the checkpoint first, then filled, 
then renamed to *part-1-delta-3.bin*;
* In each delta file we will store the 
*org.apache.ignite.internal.storage.pagememory.io.PartitionMetaIo*, which will 
be the first page in this file, and it will be special.

  was:
For the new checkpoint, we need to implement *DeltaFilePageStore*.

Will consist of:
* File header, similar to *FilePageStore*, but in addition it will store a 
sorted list of pageIdx in which it will be stored;
* Pages themselves, sorted by pageIdx.

At the checkpoint, a temporary file will be created at the beginning, then 
filled and then renamed. Thus, if the checkpoint did not end at the time the 
node was dropped, then we will have a temporary file that we can delete and the 
data could re-enter the storage through logical recovery from the raft.


> Implement DeltaFilePageStore
> ----------------------------
>
>                 Key: IGNITE-17372
>                 URL: https://issues.apache.org/jira/browse/IGNITE-17372
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Kirill Tkalenko
>            Assignee: Kirill Tkalenko
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-alpha6
>
>
> For the new checkpoint, we need to implement *DeltaFilePageStore*.
> Will consist of:
> * File header, similar to *FilePageStore*, but in addition it will store a 
> sorted list of pageIdx in which it will be stored;
> * Pages themselves, sorted by pageIdx.
> Some implementation notes
> * Format of the file name for the *DeltaFilePageStore* is 
> *part-%d-delta-%d.bin* for example *part-1-delta-3.bin* where the first digit 
> is the partition identifier, and the second is the serial number of the delta 
> file for this partition;
> * Before creating *part-1-delta-3.bin*, a temporary file 
> *part-1-delta-3.bin.tmp* will be created at the checkpoint first, then 
> filled, then renamed to *part-1-delta-3.bin*;
> * In each delta file we will store the 
> *org.apache.ignite.internal.storage.pagememory.io.PartitionMetaIo*, which 
> will be the first page in this file, and it will be special.



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

Reply via email to