Dan Debrunner posted a fix to allow for relaxed durability changes in
http://article.gmane.org/gmane.comp.apache.db.derby.user/681/match=relaxed+durability
1) Need to add this option in Derby maybe as some property
2) Also from discussions on the list, Mike suggested that
- that the logging system be changed to somehow
record that the database has operated in this manner, so that if
the database goes corrupt we don't waste effort trying to figure out
what when wrong. Probably need some way to mark the log records, the
log control file and write a message to the user error log file.
Changes include:
1)To enable this no syncs mode, the property setting is derby.system.durability=test If it is set to any other value other than test, then this property setting is ignored and the system will default to the usual mode where all syncs happen correctly.
2) If database is booted in this mode then the flag to indicate this mode is being used is set in log.ctrl file and it will not change after that.Thus there wont be any switching between this mode ( no syncs) to default ( all syncs) mode because we cannot guarantee that the database will be in a consistent state once its booted in this no sync mode..
3) This flag is now written out as part of the log control flags in log.ctrl file instead of using a spare byte.
4) Syncs not forced for
- the log file at each commit
- the log file before data page is forced to disk
- page allocation when file is grown
- data writes during checkpoint