Re: [PATCH 2/2] improve ext3 fsync batching

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Andrew Morton
Date: Tuesday, August 19, 2008 - 1:29 pm

Could I just point out that this is a very very painful way of writing
a changelog?  All these new revelations are important and relevant and
should have been there!

On Tue, 19 Aug 2008 14:08:31 -0400
Ric Wheeler <rwheeler@redhat.com> wrote:


Has this been empirically confirmed?

Commits can takes tens of seconds and causing an fsync() to block
itself for such periods could have quite bad effects.  How do we (ie:
I) know that there are no such scenarios with this change?


well yes.  This represents yet another attempt to predict future
application behaviour.  The way in which we _usually_ do that is by
monitoring past application behaviour.

Only this patch didn't do that (directly) and I'm wondering why not.


Current code has:

	/*
	 * Implement synchronous transaction batching.  If the handle
	 * was synchronous, don't force a commit immediately.  Let's
	 * yield and let another thread piggyback onto this transaction.
	 * Keep doing that while new threads continue to arrive.
	 * It doesn't cost much - we're about to run a commit and sleep
	 * on IO anyway.  Speeds up many-threaded, many-dir operations
	 * by 30x or more...
	 *
	 * But don't do this if this process was the most recent one to
	 * perform a synchronous write.  We do this to detect the case where a
	 * single process is doing a stream of sync writes.  No point in waiting
	 * for joiners in that case.
	 */

has the 30x been reproduced?  If not, what broke?  If so, what effect
did the proposed change have upon it?


See above - has this been tested and confirmed?


Well, as I said - last time I checked, it did seem to be broken.  By
what means did you confirm that it is still effective, and what were
the results?


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 1/2] add hrtimer_sleep_ns helper function, Josef Bacik, (Wed Aug 6, 12:08 pm)
[PATCH 2/2] improve ext3 fsync batching, Josef Bacik, (Wed Aug 6, 12:15 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Josef Bacik, (Wed Aug 6, 12:23 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Andrew Morton, (Mon Aug 18, 9:31 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Andreas Dilger, (Mon Aug 18, 10:44 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Ric Wheeler, (Tue Aug 19, 4:01 am)
Re: [PATCH 2/2] improve ext3 fsync batching, Andrew Morton, (Tue Aug 19, 10:56 am)
Re: [PATCH 2/2] improve ext3 fsync batching, Ric Wheeler, (Tue Aug 19, 11:08 am)
Re: [PATCH 2/2] improve ext3 fsync batching, Ric Wheeler, (Tue Aug 19, 11:43 am)
Re: [PATCH 1/2] add hrtimer_sleep_ns helper function, Matthew Wilcox, (Tue Aug 19, 12:15 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Josef Bacik, (Tue Aug 19, 12:18 pm)
Re: [PATCH 1/2] add hrtimer_sleep_ns helper function, Josef Bacik, (Tue Aug 19, 12:22 pm)
Re: [PATCH 1/2] add hrtimer_sleep_ns helper function, Matthew Wilcox, (Tue Aug 19, 12:36 pm)
Re: [PATCH 1/2] add hrtimer_sleep_ns helper function, Josef Bacik, (Tue Aug 19, 12:39 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Andrew Morton, (Tue Aug 19, 1:29 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Andrew Morton, (Tue Aug 19, 1:34 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Ric Wheeler, (Tue Aug 19, 1:55 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Andrew Morton, (Tue Aug 19, 2:18 pm)
Re: [PATCH 2/2] improve ext3 fsync batching, Ric Wheeler, (Tue Aug 19, 2:29 pm)