db4o lets you configure a lot of low level details. It even lets you configure things which endanger the safety of the database integrity and transaction integrity. You should avoid these settings and only use them in very special cases.
One dangerous setting is disabling file-flushes. When you add the non-flushing decorator you get better performance. However due to the missing file-flushes, the ACID-properties cannot be guaranteed.
IStorage fileStorage = new FileStorage();
configuration.File.Storage
= new NonFlushingStorage(fileStorage);
Dim fileStorage As IStorage = New FileStorage() configuration.File.Storage = New NonFlushingStorage(fileStorage)
Another setting which endangers the ACID properties is disabling the commit-recovery. This setting should only be used in emergency situations after consulting db4o support. The ACID flow of the commit can be re-enabled after restoring the original configuration.
configuration.File.DisableCommitRecovery();
configuration.File.DisableCommitRecovery()