Hazelcast IMDG Enterprise HD
This chapter explains the Hazelcast's Hot Restart Persistence feature, introduced with Hazelcast 3.6. Hot Restart Persistence provides fast cluster restarts by storing the states of the cluster members on the disk. This feature is currently provided for the Hazelcast map data structure and the Hazelcast JCache implementation.
Hot Restart Persistence Overview
Hot Restart Persistence enables you to get your cluster up and running swiftly after a cluster restart. A restart can be caused by a planned shutdown (including rolling upgrades) or a sudden cluster-wide crash, e.g., power outage. For Hot Restart Persistence, required states for Hazelcast clusters and members are introduced. Please refer to the Managing Cluster and Member States section for information on the cluster and member states. The purpose of the Hot Restart Persistence is to provide a maintenance window for member operations and restart the cluster in a fast way. It is not meant to recover the catastrophic shutdown of one member.
Hot Restart Types
The Hot Restart feature is supported for the following restart types:
Restart after a planned shutdown:
The cluster is shut down completely and restarted with the exact same previous setup and data.
You can shut down the cluster completely using the method
HazelcastInstance.getCluster().shutdown()or you can manually change the cluster state to
PASSIVEand then shut down each member one by one. When you send the command to shut the cluster down, i.e.
HazelcastInstance.getCluster().shutdown(), the members that are not in the
PASSIVEstate temporarily change their states to
PASSIVE. Then, each member shuts itself down by calling the method
Difference between explicitly changing state to
PASSIVEbefore shutdown and shutting down cluster directly via
HazelcastInstance.getCluster().shutdown()is, on latter case when cluster is restarted, cluster state will be in the latest state before shutdown. That means if cluster is
ACTIVEbefore shutdown, cluster state will automatically become
ACTIVEafter restart is completed.
Rolling restart: The cluster is restarted intentionally member by member. For example, this could be done to install an operating system patch or new hardware.
To be able to shut down the cluster member by member as part of a planned restart, each member in the cluster should be in the
PASSIVEstate. After the cluster state is changed to
PASSIVE, you can manually shut down each member by calling the method
HazelcastInstance.shutdown(). When that member is restarted, it will rejoin the running cluster. After all members are restarted, the cluster state can be changed back to
Restart after a cluster crash: The cluster is restarted after all its members crashed at the same time due to a power outage, networking interruptions, etc.