git: hammer2 - recover, improve scaling
Matthew Dillon
dillon at crater.dragonflybsd.org
Wed Oct 4 18:09:31 PDT 2023
commit eefc659d345ccfd93a9146d3aa9637bee107afbd
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Sep 30 21:39:24 2023 -0700
hammer2 - recover, improve scaling
* Do not store the inode content in memory during the media pass.
This eats gigabytes will a few million inodes and can easily
blow out memory if there are tens of millions of inodes.
Instead, a simple crc is recorded to catch races against live
filesystems and the inode content is re-read in the second pass
as it is needed.
* Optimize the inode_entry structure to reduce memory consumption a bit.
* Reduce cpu overhead when the scan scales into the tens of millions
of inodes by increasing the hash tables from 1M to 4M entries. These
settings should keep things reasonably smooth when scanning large
volumes.
* Improve the hammer2_cache_read() API to reduce code duplication.
Summary of changes:
sbin/hammer2/cmd_recover.c | 236 +++++++++++++++++++++++++++++----------------
sbin/hammer2/hammer2.8 | 12 ++-
2 files changed, 166 insertions(+), 82 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/eefc659d345ccfd93a9146d3aa9637bee107afbd
--
DragonFly BSD source repository
More information about the Commits
mailing list