Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
10.1.1.0
-
None
Description
Need to document the new property - derby.system.durability
This should probably go along with other properties in Tuning guide.
--------------------------------------------------
derby.system.durability
Currently the only valid supported case insensitive value is 'test'
If this property is set to any other value other than 'test', this
property setting is ignored
In the future, this property can be used to set different modes of durability
- for example a form of relaxed durability where database can recover to a
consistent state, or to enable some kind of in-memory mode.
When set to 'test', the store system will not force sync calls in the
following cases
- for the log file at each commit
- for the log file before data page is forced to disk
- for page allocation when file is grown
- for data writes during checkpoint
That means
- 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
- database can be in an inconsistent state
This setting is provided for performance reasons and should ideally
only be used when the system can withstand the above consequences.
One sample use would be to use this mode (derby.system.durability=test)
when using Derby as a test database, where high performance is required
and the data is not very important.
If database is booted with derby.system.durability=test, the following warning message is logged in derby.log
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, database may be in an inconsistent state. Please use this mode only when these consequences are acceptable
and a similar message will appear in derby.log if the database was booted with derby.system.durability=test at any time previously.
It is important to realize that once the database is booted with derby.system.durability=test, there are no guarantees on if the database is consistent or not.
-------------------
Valid supported values are test
Example
derby.system.durability=test
One can set this as a command line option to the JVM when starting the
application or in the derby.properties file. It is a system level
property.
This property is static; if you change it while Derby is running,
the change does not take effect until you reboot.