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
