Hi Pierre,

On a controller crash, the recovery log content is not supposed to be up-to-date (since it has crashed with the controller). This is why the recovery procedure requires the recovery log to be resynchronized from a remote controller. If you want HSQL to flush data more often to disk, there is a parameter that you can tune in HSQLDB. Here is an excerpt from the HSQLDB doc:
-----
SET WRITE_DELAY {{TRUE | FALSE} | <seconds> | <milliseconds> MILLIS

The default is TRUE and indicates that the changes to the database that have been logged are synched to the file system once every 20 seconds. FALSE indicates there is no delay and at each commit a file synch operation is performed. Numeric values from 0 can also be specified for the synch delay.

The purpose of this command is to control the amount of data loss in case of a total system crash. A delay of 1 second means at most the data written to disk during the last second before the crash is lost. All data written prior to this has been synced and should be recoverable

This setting should be specified on the basis of the reliability of the hardware used for running the database engine, the type of disk system used, the possibility of power failure etc. Also the nature of the data stored should be considered.

In general, when the system is very reliable, the setting can be left to the default. If it is not very reliable, or the data is critical a setting of 1 or 2 seconds would suffice. Only in the worst case scenario or with the most critical data should a setting of 0 or FALSE be specified as this will slow the engine down to the speed at which the file synch operation can be performed by the disk subsystem.

Values down to 10 millisconds can be specified by adding MILLIS to the command, but in practice a delay of 100 milliseconds provides 99.99999% reliability with an average one system crash per 6 days.

----

Hope this helps,
Emmanuel


I experience some problem on server crash :
In traces I can see :
        26 Mar 2008 14:54:55,611 | sequoia.controller.recoverylog | [EMAIL PROTECTED] 
INTO RECOVERY VALUES(<myRequest>...
        and traces untill 26 Mar 2008 14:54:56,090, then the server crashes

but on restart, <myRequest> is not in my recoveryLog :(

I use hsqldb with file (jdbc:hsqldb:file:<mydb>)


Has anybody experienced such behaviour ?
Or have an idea on how fix this "bug" ?


Thanks in advance
Pierre




--
Emmanuel Cecchet
FTO @ Frog Thinker Open Source Development & Consulting
--
Web: http://www.frogthinker.org
email: [EMAIL PROTECTED]
Skype: emmanuel_cecchet

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to