Flush Redo Log to Disk

This is only relevant when the redo log swap type is SQLite.

Upon Forced Flush

If the database is offline or you notice that you memory allocation is nearing its limit, you can force a flush of the memory redo log portion to the disk.

com.gigaspaces.utils.RedologFlushNotifier - Using this method the full SpaceClosed Where GigaSpaces data is stored. It is the logical cache that holds data objects in memory and might also hold them in layered in tiering. Data is hosted from multiple SoRs, consolidated as a unified data model. name will be included.

The instructions on how to achieve this can be found in this Git.

Upon System Shutdown

When a Space needs to be undeployed or when there is a system shutdown while the redo log is not empty, the system will try to replicate to the targets. However, if the target is not available, or after timeout, the system will continue in shutdown.

In order to avoid loss of data, an option has been added to flush the memory portion onto the disk.

In order to enable this feature com.gs.redolog.flush.on.shutdown should be set to true

Implement Notification Interface

com.gigaspaces.utils.RedologFlushNotifier - This is an interface including a method with parameters including the full Space name, the redo log size, and the path to where this redo log is stored. This will enable the file to be saved to a safe place in order to use it to recover from if required.

This method will be called by GigaSpaces if flush is enabled and com.gs.redolog.flush.notify.class is set to a class implementing the RedologFlushNotifier interface. The related class, set:com.gs.redolog.flush.notify.class should be packaged to a jar and placed under gs-home/platform/ext

Shutdown Hook Timeout

In order to allow enough time for shutdown to perform the above actions, the shutdown hook timeout should be increased. The default is 10 seconds. The parameter to be updated is com.gs.shutdownhook.timeout (defined in seconds).

Example

A full example, including recovery steps can be found here in Git.