One of the most costly operations during commit is flushing the buffers of the database file. In regular mode the commit call has to wait until this operation has completed.
When asynchronous sync is turned on, the sync operation will run in a dedicated thread, blocking all other file access until it has completed. This way the commit can returns immediately. This allows db4o and other processes to continue running side-by-side while the flush call is executed.
IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration(); configuration.File.AsynchronousSync = true;
Dim configuration As IEmbeddedConfiguration = Db4oEmbedded.NewConfiguration() configuration.File.AsynchronousSync = True
The commit call will return much faster. Because it doesn't have to wait until everything is written to disk.
After the commit-call, you have no guaranties that everything is persistent. Maybe the commit is still in progress. On a failure, this means that you can loose a commit.
A setup with this option still guarantees ACID transaction processing: A database file is always either in the state before commit or in the state after commit. Corruption can not occur. You can just not rely on the transaction already having been applied when the commit() call returns.