Class SplitBrainProtectionConfig
- java.lang.Object
-
- com.hazelcast.config.SplitBrainProtectionConfig
-
- All Implemented Interfaces:
NamedConfig
,DataSerializable
,IdentifiedDataSerializable
public class SplitBrainProtectionConfig extends java.lang.Object implements IdentifiedDataSerializable, NamedConfig
Configuration for cluster split brain protection, a means to protect consistency of data from network partitions. In this context, split brain protection refers to the number of members in the cluster required for an operation to succeed.Since Hazelcast 3.5, the default built-in split brain protection implementation keeps track of the number of members in the cluster, as determined by Hazelcast's cluster membership management.
Since Hazelcast 3.10, two additional built-in split brain protection implementations, decoupled from the existing cluster membership management, are provided:
- Probabilistic split brain protection: in this mode, member heartbeats are tracked and an adaptive failure
detector determines for each member the suspicion level. Additionally, when the Hazelcast member
is configured with the ICMP ping failure detector enabled and operating in parallel mode,
ping information is also used to detect member failures early.
To create a
SplitBrainProtectionConfig
for probabilistic split brain protection, usenewProbabilisticSplitBrainProtectionConfigBuilder(String, int)
to configure and build theSplitBrainProtectionConfig
. - Recently-active split brain protection: in this mode, for a member to be considered present for split brain
protection, a heartbeat must be received within the configured time-window since now. Additionally, when the
Hazelcast member is configured with the ICMP ping failure detector enabled and operating in
parallel mode, ping information is also used to detect member failures early.
To create a
SplitBrainProtectionConfig
for recently-active split brain protection, usenewRecentlyActiveSplitBrainProtectionConfigBuilder(String, int, int)
to configure and build theSplitBrainProtectionConfig
.
- See Also:
SplitBrainProtectionFunction
,ProbabilisticSplitBrainProtectionFunction
,RecentlyActiveSplitBrainProtectionFunction
-
-
Constructor Summary
Constructors Constructor Description SplitBrainProtectionConfig()
SplitBrainProtectionConfig(SplitBrainProtectionConfig splitBrainProtectionConfig)
SplitBrainProtectionConfig(java.lang.String name)
SplitBrainProtectionConfig(java.lang.String name, boolean enabled)
SplitBrainProtectionConfig(java.lang.String name, boolean enabled, int minimumClusterSize)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description SplitBrainProtectionConfig
addListenerConfig(SplitBrainProtectionListenerConfig listenerConfig)
boolean
equals(java.lang.Object o)
int
getClassId()
Returns type identifier for this class.int
getFactoryId()
Returns DataSerializableFactory factory ID for this class.java.lang.String
getFunctionClassName()
SplitBrainProtectionFunction
getFunctionImplementation()
java.util.List<SplitBrainProtectionListenerConfig>
getListenerConfigs()
int
getMinimumClusterSize()
java.lang.String
getName()
SplitBrainProtectionOn
getProtectOn()
int
hashCode()
boolean
isEnabled()
static ProbabilisticSplitBrainProtectionConfigBuilder
newProbabilisticSplitBrainProtectionConfigBuilder(java.lang.String name, int minimumClusterSize)
Returns a builder forSplitBrainProtectionConfig
with the givenname
using a probabilistic split brain protection function, for the given split brain protectionsize
that is enabled by default.static RecentlyActiveSplitBrainProtectionConfigBuilder
newRecentlyActiveSplitBrainProtectionConfigBuilder(java.lang.String name, int minimumClusterSize, int toleranceMillis)
Returns a builder for aSplitBrainProtectionConfig
with the givenname
using a recently-active split brain protection function for the given split brain protectionsize
that is enabled by default.void
readData(ObjectDataInput in)
Reads fields from the input streamSplitBrainProtectionConfig
setEnabled(boolean enabled)
SplitBrainProtectionConfig
setFunctionClassName(java.lang.String functionClassName)
SplitBrainProtectionConfig
setFunctionImplementation(SplitBrainProtectionFunction functionImplementation)
SplitBrainProtectionConfig
setListenerConfigs(java.util.List<SplitBrainProtectionListenerConfig> listenerConfigs)
SplitBrainProtectionConfig
setMinimumClusterSize(int minimumClusterSize)
SplitBrainProtectionConfig
setName(java.lang.String name)
SplitBrainProtectionConfig
setProtectOn(SplitBrainProtectionOn protectOn)
java.lang.String
toString()
void
writeData(ObjectDataOutput out)
Writes object fields to output stream
-
-
-
Constructor Detail
-
SplitBrainProtectionConfig
public SplitBrainProtectionConfig()
-
SplitBrainProtectionConfig
public SplitBrainProtectionConfig(java.lang.String name)
-
SplitBrainProtectionConfig
public SplitBrainProtectionConfig(java.lang.String name, boolean enabled)
-
SplitBrainProtectionConfig
public SplitBrainProtectionConfig(java.lang.String name, boolean enabled, int minimumClusterSize)
-
SplitBrainProtectionConfig
public SplitBrainProtectionConfig(SplitBrainProtectionConfig splitBrainProtectionConfig)
-
-
Method Detail
-
getName
public java.lang.String getName()
- Specified by:
getName
in interfaceNamedConfig
-
setName
public SplitBrainProtectionConfig setName(java.lang.String name)
- Specified by:
setName
in interfaceNamedConfig
-
isEnabled
public boolean isEnabled()
-
setEnabled
public SplitBrainProtectionConfig setEnabled(boolean enabled)
-
getMinimumClusterSize
public int getMinimumClusterSize()
-
setMinimumClusterSize
public SplitBrainProtectionConfig setMinimumClusterSize(int minimumClusterSize)
-
getProtectOn
public SplitBrainProtectionOn getProtectOn()
-
setProtectOn
public SplitBrainProtectionConfig setProtectOn(SplitBrainProtectionOn protectOn)
-
getListenerConfigs
public java.util.List<SplitBrainProtectionListenerConfig> getListenerConfigs()
-
setListenerConfigs
public SplitBrainProtectionConfig setListenerConfigs(java.util.List<SplitBrainProtectionListenerConfig> listenerConfigs)
-
addListenerConfig
public SplitBrainProtectionConfig addListenerConfig(SplitBrainProtectionListenerConfig listenerConfig)
-
getFunctionClassName
public java.lang.String getFunctionClassName()
-
setFunctionClassName
public SplitBrainProtectionConfig setFunctionClassName(java.lang.String functionClassName)
-
getFunctionImplementation
public SplitBrainProtectionFunction getFunctionImplementation()
-
setFunctionImplementation
public SplitBrainProtectionConfig setFunctionImplementation(SplitBrainProtectionFunction functionImplementation)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getFactoryId
public int getFactoryId()
Description copied from interface:IdentifiedDataSerializable
Returns DataSerializableFactory factory ID for this class.- Specified by:
getFactoryId
in interfaceIdentifiedDataSerializable
- Returns:
- factory ID
-
getClassId
public int getClassId()
Description copied from interface:IdentifiedDataSerializable
Returns type identifier for this class. It should be unique per DataSerializableFactory.- Specified by:
getClassId
in interfaceIdentifiedDataSerializable
- Returns:
- type ID
-
writeData
public void writeData(ObjectDataOutput out) throws java.io.IOException
Description copied from interface:DataSerializable
Writes object fields to output stream- Specified by:
writeData
in interfaceDataSerializable
- Parameters:
out
- output- Throws:
java.io.IOException
- if an I/O error occurs. In particular, anIOException
may be thrown if the output stream has been closed.
-
readData
public void readData(ObjectDataInput in) throws java.io.IOException
Description copied from interface:DataSerializable
Reads fields from the input stream- Specified by:
readData
in interfaceDataSerializable
- Parameters:
in
- input- Throws:
java.io.IOException
- if an I/O error occurs. In particular, anIOException
may be thrown if the input stream has been closed.
-
newProbabilisticSplitBrainProtectionConfigBuilder
public static ProbabilisticSplitBrainProtectionConfigBuilder newProbabilisticSplitBrainProtectionConfigBuilder(java.lang.String name, int minimumClusterSize)
Returns a builder forSplitBrainProtectionConfig
with the givenname
using a probabilistic split brain protection function, for the given split brain protectionsize
that is enabled by default.- Parameters:
name
- the split brain protection's nameminimumClusterSize
- minimum count of members in the cluster not to be considered it split.- See Also:
ProbabilisticSplitBrainProtectionFunction
-
newRecentlyActiveSplitBrainProtectionConfigBuilder
public static RecentlyActiveSplitBrainProtectionConfigBuilder newRecentlyActiveSplitBrainProtectionConfigBuilder(java.lang.String name, int minimumClusterSize, int toleranceMillis)
Returns a builder for aSplitBrainProtectionConfig
with the givenname
using a recently-active split brain protection function for the given split brain protectionsize
that is enabled by default.- Parameters:
name
- the split brain protection's nameminimumClusterSize
- minimum count of members in the cluster not to be considered it split.toleranceMillis
- maximum amount of milliseconds that may have passed since last heartbeat was received for a member to be considered present for split brain protection.- See Also:
RecentlyActiveSplitBrainProtectionFunction
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-