On 05/21/2013 10:10 AM, Stephan von Krawczynski wrote:
See it as a corner case of a configurable option like: self-heal-chunksize = X 128k < X < (unsigned)-1 (meaning all bits 1, don't know how many you have here :-)
Unfortunately that doesn't quite work because a whole-file lock covers more than just the data bits - i.e. inode information including size. Really it's more like there are two locks, but the second (inode) is always taken concurrently with the first (data). Maybe what we need to do is actually treat it as two locks, similar to the approach Pranith suggested but where truncate also interacts with the non-data lock. This approach would also be more consistent with the data/metadata distinction we make for a changelog, reducing the number of permutations we have to consider.