On Jul 5, 2010, at 8:49 AM, Volker Mische wrote:

> Hi All,
> 
> delayed_commits were enabled to have better performance especially for single 
> writers. The price you pay for is that you potentially lose up to one second 
> of writes in case of a crash.
> 
> Such a setting makes sense, though in my opinion it shouldn't be enabled by 
> default. I expect* that people running into performance issues at least take 
> a look at the README or a FAQ section somewhere. There the delayed_commit 
> setting could be pointed out.
> 
> I'd like to be able to say that on a vanilla CouchDB it's hard to lose data, 
> but I can't atm. I'm also well aware that there will be plenty of performance 
> tests when 1.0 is released and people will complain (if delayed_commits would 
> be set to false by default) that it is horrible slow. Though safety of the 
> data is more important for me.
> 
> If the only reason why delayed_commits is true by default are the performance 
> tests of some noobs, I really don't think it's a price worth paying.
> 
> *I know that in reality people don't
> 
> I would like to see delayed_commits=false for 1.0

Last year we turned off delayed commits by default. We got lots of complaints, 
the performance impact was too great. So we switched it back. We aren't the 
first storage engine to go around on this. For example, Apple's core data 
switched to using full fsyncs for each write in 10.4, but then switched it back 
for 10.5:

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CoreData/Articles/cdPersistentStores.html

"Important: The default behaviors in Mac OS X v10.4 an 10.5 are different. In 
Mac OS X v10.4, SQLite uses FULL_FSYNC by default; in Mac OS X v10.5 it does 
not."

Anyway, we can improve the documentation warning's, etc, but we should stay 
with the current defaults.

-Damien

> 
> Cheers,
>  Volker

Reply via email to