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

Philipp Shergalis reassigned IGNITE-17232:
------------------------------------------

    Assignee:     (was: Philipp Shergalis)

> Optimization of DeltaFilePageStore: write new pages directly to FilePageStore
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-17232
>                 URL: https://issues.apache.org/jira/browse/IGNITE-17232
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Kirill Tkalenko
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.1
>
>
> When creating *DeleteFilePageStore* at checkpoint, we sort the list of all 
> dirty pages of the partition by {*}pageIdx{*}, write to disk the sorted list 
> of *pageIdx* (for *pageId -> pageIdx* binary lookup), the contents of the 
> dirty pages, and the current *pageIdx* of the page allocations.
> I propose to optimize this a bit. 
> In {*}DeleteFilePageStore{*}, store only changes in existing pages, and write 
> all new pages immediately to {*}FilePageStore{*}, so we will reduce the work 
> for the compacter (it will need to write less to the main partition file) and 
> the sorted list of *pageIdx* will be smaller.
> Since the allocation index becomes logical (which is stored in the 
> {*}FilePageStore{*}) and depends on the first (newest) 
> {*}DeleteFilePageStore{*}, then if the checkpoint is not completed, we will 
> not lose or break anything in the *FilePageStore* and on the new checkpoint 
> we will write new pages on over of those that we write on the unfinished 
> previous checkpoint.



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

Reply via email to