Re: [RFC] ext3: per-process soft-syncing data=ordered mode
From: Al Boldi
Date: Sat Jan 26 2008 - 00:29:46 EST
Chris Snook wrote:
> Al Boldi wrote:
> > Greetings!
> >
> > data=ordered mode has proven reliable over the years, and it does this
> > by ordering filedata flushes before metadata flushes. But this
> > sometimes causes contention in the order of a 10x slowdown for certain
> > apps, either due to the misuse of fsync or due to inherent behaviour
> > like db's, as well as inherent starvation issues exposed by the
> > data=ordered mode.
> >
> > data=writeback mode alleviates data=order mode slowdowns, but only works
> > per-mount and is too dangerous to run as a default mode.
> >
> > This RFC proposes to introduce a tunable which allows to disable fsync
> > and changes ordered into writeback writeout on a per-process basis like
> > this:
> >
> > echo 1 > /proc/`pidof process`/softsync
> >
> >
> > Your comments are much welcome!
>
> This is basically a kernel workaround for stupid app behavior.
Exactly right to some extent, but don't forget the underlying data=ordered
starvation problem, which looks like a genuinely deep problem maybe related
to blockIO.
> It
> wouldn't be the first time we've provided such an option, but we shouldn't
> do it without a very good justification. At the very least, we need a
> test case that demonstrates the problem
See the 'konqueror deadlocks in 2.6.22' thread.
> and benchmark results that prove that this approach actually fixes it.
8M-record insert into indexed db-table:
ordered writeback
sqlite3: 75m22s 8m45s
mysql4 : 23m35s 5m29s
> I suspect we can find a cleaner fix for the problem.
I hope so, but even with a fix available addressing the data=ordered
starvation issue, this tunable could remain useful for those apps that
misbehave.
Thanks!
--
Al
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/