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