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.
