On 9/20/07, Thomas E Enebo <[EMAIL PROTECTED]> wrote:
> > Commenting out channel.force(false) in IOHandlerSeekable#sync feels
> > correct, and speeds up writes enormously. Does that look right?

I've been playing with this a tad more on the plane, and came to the
same conclusion.

With file.sync = true JRuby calls channel.force() on each write, which
in turn performs fdatasync. MRI doesn't do fdatasync, and that is our
logging bottleneck. So, removing channel.force(false) should be the
right thing.

However, I'm not sure if it's the only thing. Flushing the internal
buffer to OS level I/O buffer on write ensures that two *separate
processes*, writing to the same log file, will have their log entries
in the right order in the file. So, what will make that happen?

-- 
Alexey Verkhovsky
CruiseControl.rb [http://cruisecontrolrb.thoughtworks.com]
RubyWorks [http://rubyworks.thoughtworks.com]

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to