Hi Jens, This is a two patch set. blockalign.patch: This patch modifies the behavior of write logging such that *any* overlap between a newly-submitted io_piece and elements in the hist_tree results in the stale element(s) being evicted and replaced by the new io_piece. The current implementation performs replacement only for totally overlapping (i.e., aligned) io_pieces. This restriction causes verification failures for random overwrite workloads if blockalign is smaller than blocksize, and the patch allows such workloads to succeed. Note that this changes verification semantics for the specified workload. Instead of verifying each written byte, verification for this case covers only fully-intact blocks, i.e., remnants of partially-overwritten blocks are left unverified. bsrange.patch: This takes advantage of the behavior introduced by blockalign.patch to unlock verification of random overwrite workloads with multiple blocksizes. The caveat about verification applies here as well, so I've left the warning in init.c. Thanks, Justin
Attachment:
blockalign.patch
Description: blockalign.patch
Attachment:
bsrange.patch
Description: bsrange.patch