Function
This property changes the default durability of
Derby to improve performance
at the expense of consistency and durability of the database. The only valid
supported case insensitive value is test. If this property is
set to any value other than test, this property setting is
ignored. When derby.system.durability is set to
test, the store system will not force I/O synchronization calls
for:
- The log file at each commit
- The log file before a data page is forced to disk
- Page allocation when a file is grown
- Data writes during checkpoints
While performance is improved, note that under these conditions, a commit no
longer guarantees that the transaction's modification will survive a system
crash or JVM termination, the database may not recover successfully upon
restart, a near-full disk at runtime may cause unexpected errors, and the
database may be in an inconsistent state.
If you boot the database with this property set to test,
the following warning message is logged in the
derby.log file:
WARNING: The database is booted with derby.system.durability=test.
In this mode, it is possible that database may not be able
to recover, committed transactions may be lost, and the database
may be in an inconsistent state. Please use this mode only when
these consequences are acceptable.
A similar message will appear in the derby.log file if the
database was booted with derby.system.durability=test at any
time previously.
Once the database is booted with
derby.system.durability=test, there are no guarantees that the
database is consistent.
Example
derby.system.durability=test
Since this is a system property, you can set it in the
derby.properties file or on the command line of the JVM when
starting the application.
You might enable this property when using
Derby as a test database
where consistency or recoverability is not an issue.