Skip to content

[C#] Limit number of preloaded pages during recovery#292

Merged
badrishc merged 4 commits intomasterfrom
recovery-preload-limit
Sep 9, 2020
Merged

[C#] Limit number of preloaded pages during recovery#292
badrishc merged 4 commits intomasterfrom
recovery-preload-limit

Conversation

@badrishc
Copy link
Collaborator

@badrishc badrishc commented Jul 31, 2020

Currently we load all log pages (from headAddress to untilAddress) of a checkpoint into main memory part of hybrid log during recovery. This can take time to load, and keeps the database inaccessible until recovery is complete. Users can instead preload only a few pages (or no pages) into memory during recovery. This allows us to declare the key-value store ready for operation immediately after loading the hash table in memory and completing the (usually short) UNDO part of recovery.

To reduce the time taken to UNDO, users can take a sequence of [hlog checkpoint, index checkpoint, hlog checkpoint]. This can reduce the number of operations in flight that need to be checked for undo.

Usage: store.Recover(int numPagesToPreload = -1)

@badrishc badrishc merged commit e3f3379 into master Sep 9, 2020
@badrishc badrishc deleted the recovery-preload-limit branch November 11, 2020 02:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant