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

cvs commit: src/sbin/hammer cmd_prune.c misc.c src/sys/sys buf.h src/sys/vfs/hammer hammer.h hammer_btree.c hammer_cursor.c hammer_inode.c hammer_ioctl.c hammer_ioctl.h hammer_object.c hammer_vnops.c

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 4 Feb 2008 23:58:43 -0800 (PST)

dillon      2008/02/04 23:58:43 PST

DragonFly src repository

  Modified files:
    sbin/hammer          cmd_prune.c misc.c 
    sys/sys              buf.h 
    sys/vfs/hammer       hammer.h hammer_btree.c hammer_cursor.c 
                         hammer_inode.c hammer_ioctl.c 
                         hammer_ioctl.h hammer_object.c 
  HAMMER 25/many: Pruning code
  * Add b_tid to struct buf so dirty buffer cache buffers can be tagged with
    a transaction id to try to retain consistency when doing as-of queries
    on files that change size (so the data records have a TID <= the inode
    record).  This is also an issue when a file is created and immediately
    written to.  This may be temporary, a more sophisticated solution is needed.
  * Fix a bug in the special handling of create_tid for as-of queries
    in btree_search().  An assignment was off by one, causing historical
    queries to not be able to find bits of data here and there.
  * Freeze the transaction id for newly created inodes until the initial
    inode record is laid down on disk, so the transaction id matches the
    transaction id of the related directory entry.
  * Major work on the pruning code.   When pruning the tree to a particular
    granularity the create_tid and delete_tid of related records must be
    aligned to that granularity in order to avoid creating 'holes' at
    various time points.
    This requires some serious B-Tree manipulation because the right-hand
    boundary may need to be shifted when the create_tid of an existing
    record is forward aligned.  This work is still in progress but it works
    in basic testing.
    Prune the tree in the reverse direction instead of in the forward
    direction.  This keeps the B-Tree consistent when we have to adjust
    the right-hand boundary to accomodate the realignment of create_tid.
  Revision  Changes    Path
  1.2       +4 -4      src/sbin/hammer/cmd_prune.c
  1.3       +5 -10     src/sbin/hammer/misc.c
  1.43      +1 -0      src/sys/sys/buf.h
  1.32      +7 -1      src/sys/vfs/hammer/hammer.h
  1.28      +539 -2    src/sys/vfs/hammer/hammer_btree.c
  1.16      +29 -0     src/sys/vfs/hammer/hammer_cursor.c
  1.26      +5 -2      src/sys/vfs/hammer/hammer_inode.c
  1.2       +167 -26   src/sys/vfs/hammer/hammer_ioctl.c
  1.2       +4 -3      src/sys/vfs/hammer/hammer_ioctl.h
  1.28      +8 -4      src/sys/vfs/hammer/hammer_object.c
  1.26      +18 -1     src/sys/vfs/hammer/hammer_vnops.c


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