Details
-
Improvement
-
Status: In Progress
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
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.
Attachments
Issue Links
- is a child of
-
IGNITE-17230 Support split-file page store
- Resolved