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