Hi,
> The main reason is most likely that when closing the database, and on 
> checkpoint, H2 now calls
> FileDescriptor.fsync(). Other databases call it for each commit by default
>   

Thomas, don't believe that  FSYNC usage (on db files / on transaction
log / on commit / on timer )  must to be a user selectable setup ?

Their usage is closely related to power and hardware guaranties of each
installation environment and usage type.
In others dbm it's the first switch to turn off to get a significant
performance gain.
 
> I did enable fsync because it reduces the probability of corrupted
> databases in the power failure test. But I'm not sure if it will
> actually solve the problem in each case. 
>   
The closest way to achieve durability  it's a good RAID hardware with
internal battery power.
Of course we must to differentiate the lost of last transactions from a
corrupted or unrecoverable database. 
> Anyway, if your test closes the database a lot (the H2 built-in tests
> do), or if you use a small log size, it will be slower. If not, then
> it shouldn't matter that much. If it does, maybe I should add a way to
> disable calling fsync.
In our real world applications I can see some performance lost but no
more than 25-30%.

regards,
Dario

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to