2007-05-09 13:31:29

by Leon Woestenberg

[permalink] [raw]
Subject: commit only journal entries older than commit period?

Hello all,

this is something I have long wondered about but have been afraid to ask.

When my system is chewing away on builds, the disk I/O write access
pattern of my ext3 root filesystem (using CFQ, Intel SATA controller,
hard disk) when visualized by GNOME System Monitor clearly shows a
repetitive landscape of large peaks, 5 seconds apart, which not much
activity inbetween.

I understand that's due to the ex3 journal commit interval (defaults
to 5 seconds).

But why isn't the filesystem continuously committing only that part of
the journal that is older than 5 seconds?

I would then expect the write requests to be smoothened over time,
which can only be good in terms of performance and low latency.

Regards,
--
Leon


2007-05-09 16:44:18

by Andreas Dilger

[permalink] [raw]
Subject: Re: commit only journal entries older than commit period?

On May 09, 2007 15:31 +0200, Leon Woestenberg wrote:
> this is something I have long wondered about but have been afraid to ask.
>
> When my system is chewing away on builds, the disk I/O write access
> pattern of my ext3 root filesystem (using CFQ, Intel SATA controller,
> hard disk) when visualized by GNOME System Monitor clearly shows a
> repetitive landscape of large peaks, 5 seconds apart, which not much
> activity inbetween.
>
> I understand that's due to the ex3 journal commit interval (defaults
> to 5 seconds).
>
> But why isn't the filesystem continuously committing only that part of
> the journal that is older than 5 seconds?
>
> I would then expect the write requests to be smoothened over time,
> which can only be good in terms of performance and low latency.

The journal cannot start checkpoint of blocks to the filesystem until
the transaction is committed, otherwise a crash would leave the filesystem
inconsistent. After the transaction is committed the blocks are written
into the fs and I'd guess that this can happen quickly enough that it
only takes a fraction of a second.

Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.