Fix a bug in computing the size of a segment that led to utilization > 1.0.
authorMichael Vrable <mvrable@cs.ucsd.edu>
Fri, 14 Dec 2007 19:51:41 +0000 (11:51 -0800)
committerMichael Vrable <mvrable@turin.ucsd.edu>
Fri, 14 Dec 2007 19:51:41 +0000 (11:51 -0800)
commitd38558b79c81f446698c272a85f1a2782667bce3
tree7a04fb1e53ac91a418c32514914bc46be05f1ad0
parent0ab3b10e857ee5916f1765e3b8f773446cf4de45
Fix a bug in computing the size of a segment that led to utilization > 1.0.

The old code for computing the size of a segment (to be stored in the
segments table) could leave off the last object to be written to the
segment.  This could cause the computed segment utilization to be greater
than 1.0, which should be impossible.  Fix the size calculation so that it
should always include all data written to the segment.  As a bonus, this
also correctly computes the size of metadata-log segments, even though the
metadata objects don't appear in the block_index table (which was
previously used for computing the segment size, but is no longer).
localdb.cc
localdb.h
store.cc
store.h