cvs commit: src/sys/vfs/hammer hammer_btree.c hammer_cursor.h hammer_object.c hammer_spike.c

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jan 25 13:52:02 PST 2008


dillon      2008/01/25 13:50:56 PST

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer_btree.c hammer_cursor.h 
                         hammer_object.c hammer_spike.c 
  Log:
  HAMMER 24B/many: Edge cases, cleanups
  
  * Use create_tid instead of delete_tid in B-Tree key comparisons.  I
    actually used create_tid's originally, then switched to delete_tid's
    because historical searches could iterate forwards to locate
    matching records whereas using create_tid required a backwards
    iteration.
  
    However, because delete_tid's can be modified in-place (0 -> delete stamp),
    this introduced some rare edges cases that I had not considered.
  
    So go back to using create_tid's.  The iteration code actually just does
    a re-search now with a slightly different key, so no new code had
    to be written for the reverse-direction.  Create TIDs do not change once
    they are laid down so there are no additional cases to consider.
  
  * Fix a missing create_tid initialization in hammer_object.c.
  
  Revision  Changes    Path
  1.26      +91 -117   src/sys/vfs/hammer/hammer_btree.c
  1.11      +3 -3      src/sys/vfs/hammer/hammer_cursor.h
  1.26      +13 -11    src/sys/vfs/hammer/hammer_object.c
  1.14      +10 -10    src/sys/vfs/hammer/hammer_spike.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.25&r2=1.26&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.h.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.25&r2=1.26&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_spike.c.diff?r1=1.13&r2=1.14&f=u





More information about the Commits mailing list