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