Re: Performance of ext4

Theodore Tso
2008-06-20T09:00:54Z

On Fri, Jun 20, 2008 at 08:32:52AM +0000, Holger Kiehl wrote:
>> It sounds like i_size is actually dropping in
>> size at some pointer long after the file was written. If I had to

sorry, "at some point"...

>> guess the value in the inode cache is correct; and perhaps so is the
>> value on the journal. But somehow, the wrong value is getting written
>> to disk

Or, "the right value is never getting written to disk". (Which as I
think about it is more likely; it's likely that an update to i_size is
getting *lost*, perhaps because the delalloc code is possibly
modifying i_size without starting a transaction first. Again this is
just a guess.)

> What I find strange is that the missing parts of the file are not for
> example exactly 512 or 1024 or 4096 bytes it is mostly some odd number
> of bytes.

Is there any chance the truncation point is related to how the program
is writing its output file? i.e., if it is a text file, is the
truncation happening after a new-line or when the stdio library might
have done an explicit or implicit fflush()?

- Ted