git: HAMMER - Rework write pipelining

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Aug 19 14:05:35 PDT 2009


commit de996e865902051a4e8e4945e7116be8850f871c
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Aug 19 13:54:29 2009 -0700

    HAMMER - Rework write pipelining
    
    * Rework write pipelining so it is based on pending direct writes on an
      inode-by-inode basis.  ip->rsv_recs and hmp->rsv_recs are now
      decremented after the direct has completed rather then when the sync
      code has processed the record.
    
      This fixes serious buffer cache overloading when doing linear writes.
    
    * Implement write clustering or bawrite() calls based on a filesystem
      block getting filled up instead of relying on the buffer cache's bdwrite()
      to keep ahead of the mark.
    
    * vfs.hammer.cluster_enable now effects both read and write clustering.

Summary of changes:
 sys/vfs/hammer/hammer.h        |    1 +
 sys/vfs/hammer/hammer_io.c     |    8 ++++++--
 sys/vfs/hammer/hammer_object.c |   35 +++++++++++++++++++++++++----------
 sys/vfs/hammer/hammer_vfsops.c |    3 +++
 sys/vfs/hammer/hammer_vnops.c  |   35 ++++++++++++++++++++++++++++++++++-
 5 files changed, 69 insertions(+), 13 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/de996e865902051a4e8e4945e7116be8850f871c


-- 
DragonFly BSD source repository





More information about the Commits mailing list