When does memory spike during BGSAVE?
If the parent process rewrites a large fraction of the dataset while the child is dumping, the OS must copy many pages. A 50% rewrite of an 8 GB heap can require 4 GB of new physical memory.
Answered in
Copy-on-Write Snapshotsfork() shares parent memory, copying only written pages for non-blocking snapshots. Write-heavy loads can spike memory to 2x under load.
Read the full analysisOther questions this article answers
More system design questions
- Why does an index's internal data structure matter if it all ends up 'faster than a scan'?
- Why is disk I/O the thing index structures are actually optimizing for?
- Why can't a hash index handle range queries?
- What makes a bitmap index different from a B-tree, and when is it better?
- Why do B-trees stay balanced automatically as data is inserted?
- Why does a database need an index at all — why can't it just scan the table?
- When is a hash index better than a B-tree index?
- What is a composite index and why does column order matter?
Every answer on Crashtech is written by the editor of the article it comes from — never auto-summarised. Browse all answers or the System Design beat.