[
https://issues.apache.org/jira/browse/IGNITE-17232?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Philipp Shergalis reassigned IGNITE-17232:
------------------------------------------
Assignee: 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
> Assignee: Philipp Shergalis
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> When creating *DelateFilePageStore* 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 *DelateFilePageStore*, 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) *DelateFilePageStore*,
> 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)