DragonFly BSD
DragonFly commits List (threaded) for 2013-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: hammer2 - flush sequencing part 1


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 3 May 2013 21:36:38 -0700 (PDT)

commit d001f460bbf1795b8f37fce7ccc3243202a5d5f6
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri May 3 21:31:31 2013 -0700

    hammer2 - flush sequencing part 1
    
    * Rip out the jerry-rigged flush sequencer and start work on a real
      one.
    
    * Sync and fsync calls create synchronization points and will be serialized
      against each other.
    
    * Modifying operations occurring before a synchronization point will stall
      modifying operations occurring after the synchronization point until
      they complete.  This will need to be optimized.
    
    * However, the synchronization points are coded such that modifying operations
      occurring after a synchronization point will be able to run concurrently
      with the disk flush related to that synchronization point.
    
      So if there is only one synchronization point (sync or fsync or background
      sync) active, modifying operations will generally not stall.  At least not
      for very long.

Summary of changes:
 sys/vfs/hammer2/hammer2.h        |  58 +++++++++++++++----
 sys/vfs/hammer2/hammer2_chain.c  |  50 +++++++---------
 sys/vfs/hammer2/hammer2_flush.c  | 121 ++++++++++++++++++++++++++-------------
 sys/vfs/hammer2/hammer2_ioctl.c  |   4 +-
 sys/vfs/hammer2/hammer2_vfsops.c |  23 +++++++-
 sys/vfs/hammer2/hammer2_vnops.c  |  42 ++++++++------
 6 files changed, 197 insertions(+), 101 deletions(-)

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


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]