Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The number of executor threads per Member for the Executor. Executor's task queue capacity. 0 means Integer.MAX_VALUE. Enable/disable statistics Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The number of executor threads per Member for the Executor. The durability of the executor Executor's task capacity (per partition) Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The number of executor threads per member for the executor. The durability of the scheduled executor. The maximum number of tasks that a scheduler can have at any given point in time per partition. Number of synchronous backups. For example, if 1 is set as the backup-count, then the cardinality estimation will be copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the async-backup-count, then cardinality estimation will be copied to one other JVM (asynchronously) for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the cardinality estimator. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Value of maximum size of items in the Queue. Count of synchronous backups. Remember that, Queue is a non-partitioned data structure, i.e. all entries of a Set resides in one partition. When this parameter is '1', it means there will be a backup of that Set in another node in the cluster. When it is '2', 2 nodes will have the backup. Count of asynchronous backups. Enable/disable statistics. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Includes the ring buffer store factory class name. The store format is the same as the in-memory-format for the ringbuffer. Name of the class or bean implementing MapLoader and/or MapStore. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Number of items in the ringbuffer. If no time-to-live-seconds is set, the size will always be equal to capacity after the head completed the first loop around the ring. This is because no items are getting expired. The default value is 10000. Number of synchronous backups. For example, if 1 is set as the backup-count, then the items in the ringbuffer are copied to one other JVM for fail-safety. `backup-count` + `async-backup-count` cannot be bigger than maximum backup count which is `6`. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then the items in the ringbuffer are copied to one other JVM for fail-safety. `backup-count` + `async-backup-count` cannot be bigger than maximum backup count which is `6`. Valid numbers are 0 (no backup), 1, 2 ... 6. Sets the time to live in seconds which is the maximum number of seconds for each item to stay in the ringbuffer before being removed. Entries that are older than time-to-liveSeconds are removed from the ringbuffer on the next ringbuffer operation (read or write). Time to live can be disabled by setting time-to-liveSeconds to 0. It means that items won't get removed because they expire. They may only be overwritten. When time-to-liveSeconds is disabled and after the tail does a full loop in the ring, the ringbuffer size will always be equal to the capacity. The time-to-liveSeconds can be any integer between 0 and Integer#MAX_VALUE. 0 means infinite. The default is 0. Sets the in-memory format. Setting the in-memory format controls the format of the stored item in the ringbuffer: - OBJECT: the item is stored in deserialized format (a regular object) - BINARY (default): the item is stored in serialized format (a binary blob) The object in-memory format is useful when: - the object stored in object format has a smaller footprint than in binary format - if there are readers using a filter. Since for every filter invocation, the object needs to be available in object format. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The thread count to which the concurrent access is limited. For example, if you set it to "3", concurrent access to the object is limited to 3 threads. Number of synchronous backups. For example, if 1 is set as the backup-count, then the items in the ringbuffer are copied to one other JVM for fail-safety. `backup-count` + `async-backup-count` cannot be bigger than maximum backup count which is `6`. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then the items in the ringbuffer are copied to one other JVM for fail-safety. `backup-count` + `async-backup-count` cannot be bigger than maximum backup count which is `6`. Valid numbers are 0 (no backup), 1, 2 ... 6. Enable/disable statistics. The maximum number of items to read in a batch. Policy to handle an overloaded topic. Available values are `DISCARD_OLDEST`, `DISCARD_NEWEST`, `BLOCK` and `ERROR`. The default value is `BLOCK. Name of the class or bean implementing MapLoader and/or MapStore. Number of seconds to delay to call the MapStore.store(key, value). If the value is zero then it is write-through so MapStore.store(key, value) will be called as soon as the entry is updated. Otherwise it is write-behind so updates will be stored after write-delay-seconds value by calling Hazelcast.storeAll(map). Default value is 0. Used to create batch chunks when writing map store. In default mode all entries will be tried to persist in one go. To create batch chunks, minimum meaningful value for write-batch-size is 2. For values smaller than 2, it works as in default mode. Setting write-coalescing is meaningful if you are using write-behind map-store. Otherwise it has no effect. When write-coalescing is true, only the latest store operation on a key in the write-delay-seconds time-window will be reflected to the map-store. Hazelcast can replicate some or all of the cluster data. For example, you can have 5 different maps but you want only one of these maps replicating across clusters. To achieve this you mark the maps to be replicated by adding this element. This configuration lets you index the attributes and also order them. This configuration lets you define extractors for custom attributes. This configuration lets you add listeners (listener classes) for the map entries. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. List of partition lost listeners Internal eviction algorithm finds most appropriate entry to evict from this map by using this policy. Data type used to store entries. Possible values: BINARY (default): keys and values are stored as binary data. OBJECT: values are stored in their object forms. NATIVE: keys and values are stored in native memory. Only available on Hazelcast Enterprise. You can retrieve some statistics like owned entry count, backup entry count, last update time, locked entry count by setting this parameter's value as "true". The method for retrieving the statistics is `getLocalMapStats()`. This parameter is deprecated as of Hazelcast 3.6 Use cache-deserialized-values attribute instead. When both optimize-query and cache-deserialized-values are used at the same time Hazelcast will do its best to detect possible conflicts. Conflict detection is done on best-effort basis and you should not rely on it. This parameter is used to increase the speed of query processes in the map. It only works when `in-memory-format` is set as `BINARY` and performs a pre-caching on the entries queried. Control caching of de-serialized values. Caching makes query evaluation faster, but it cost memory. Possible Values: NEVER: Never cache de-serialized object INDEX-ONLY: Cache values only when they are inserted into an index. ALWAYS: Always cache de-serialized values. Number of sync backups. If 1 is set as the backup-count for example, then all entries of the map will be copied to another JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of async backups. If 1 is set as the backup-count for example, then all entries of the map will be copied to another JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Maximum number of seconds for each entry to stay in the map. Entries that are older than `time-to-live-seconds` and not updated for `time-to-live-seconds` will get automatically evicted from the map. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. Maximum size. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. Valid values are: PER_NODE: Maximum number of map entries in each Hazelcast instance. This is the default policy. PER_PARTITION: Maximum number of map entries within each partition. Storage size depends on the partition count in a Hazelcast instance. This attribute should not be used often. Avoid using this attribute with a small cluster: if the cluster is small it will be hosting more partitions, and therefore map entries, than that of a larger cluster. Thus, for a small cluster, eviction of the entries will decrease performance (the number of entries is large). USED_HEAP_SIZE: Maximum used heap size in megabytes per map for each Hazelcast instance. USED_HEAP_PERCENTAGE: Maximum used heap size percentage per map for each Hazelcast instance. If, for example, JVM is configured to have 1000 MB and this value is 10, then the map entries will be evicted when used heap size exceeds 100 MB. FREE_HEAP_SIZE: Minimum free heap size in megabytes for each JVM. FREE_HEAP_PERCENTAGE: Minimum free heap size percentage for each JVM. For example, if JVM is configured to have 1000 MB and this value is 10, then the map entries will be evicted when free heap size is below 100 MB. USED_NATIVE_MEMORY_SIZE: Maximum used native memory size in megabytes per map for each Hazelcast instance. USED_NATIVE_MEMORY_PERCENTAGE: Maximum used native memory size percentage per map for each Hazelcast instance. FREE_NATIVE_MEMORY_SIZE: Minimum free native memory size in megabytes for each Hazelcast instance. FREE_NATIVE_MEMORY_PERCENTAGE: Minimum free native memory size percentage for each Hazelcast instance. Maximum number of seconds for each entry to stay idle in the map. Entries that are idle(not touched) for more than max-idle-seconds will get automatically evicted from the map. Entry is touched if get, put or containsKey is called. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. This parameter is deprecated as of version 3.7 due to the eviction mechanism change. (New eviction mechanism uses a probabilistic algorithm based on sampling. Please see documentation for further details.) When max. size is reached, specified percentage of the map will be evicted. Any integer between 0 and 100. If 25 is set for example, 25% of the entries will get evicted. This parameter is deprecated as of version 3.7 due to the eviction mechanism change. (New eviction mechanism uses a probabilistic algorithm based on sampling. Please see documentation for further details.) Minimum time in milliseconds which should pass before checking if a partition of this map is evictable or not. Default value is 100 millis. Valid values are: NONE (no eviction), LRU (Least Recently Used), LFU (Least Frequently Used). NONE is the default. This boolean parameter enables reading local backup entries when set as `true`. When maximum size is reached, cache is evicted based on the eviction policy. size: maximum size can be any integer between 0 and Integer.MAX_VALUE. Default value is 0. max-size-policy: max-size-policy has these valid values: ENTRY_COUNT (Maximum number of cache entries in the cache), USED_NATIVE_MEMORY_SIZE (Maximum used native memory size in megabytes per cache for each Hazelcast instance), USED_NATIVE_MEMORY_PERCENTAGE (Maximum used native memory size percentage per cache for each Hazelcast instance), FREE_NATIVE_MEMORY_SIZE (Minimum free native memory size in megabytes for each Hazelcast instance), FREE_NATIVE_MEMORY_PERCENTAGE (Minimum free native memory size percentage for each Hazelcast instance). Default value is "ENTRY_COUNT". eviction-policy: Eviction policy has these valid values: LRU (Least Recently Used), LFU (Least Frequently Used). Default value is "LRU". List of cache entry listeners List of partition lost listeners Defines the expiry policy factory class name or defines the expiry policy factory from predefined ones with duration configuration. Hazelcast can replicate some or all of the cluster data. For example, you can have 5 different caches but you want only one of these caches replicating across clusters. To achieve this you mark the caches to be replicated by adding this element. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. While recovering from split-brain (network partitioning), cache entries in the small cluster merge into the bigger cluster based on the policy set here. When an entry merges into the cluster, an entry with the same key might already exist in the cluster. The values of these entries might be different for that same key. Which value should be set for the key? The conflict is resolved by the policy set here.


There are built-in merge policies, such as:
`com.hazelcast.cache.merge.PassThroughCacheMergePolicy` or `PASS_THROUGH`: The entry will be added directly even though there is an existing entry for the key.
`com.hazelcast.cache.merge.PutIfAbsentCacheMergePolicy` or `PUT_IF_ABSENT`: The entry will be added if there is no existing entry for the key.
`com.hazelcast.cache.merge.HigherHitsCacheMergePolicy` or `HIGHER_HITS`: The entry with the higher number of hits wins.
`com.hazelcast.cache.merge.LatestAccessCacheMergePolicy` or `LATEST_ACCESS`: The entry which has been accessed more recently wins.
Default policy is 'com.hazelcast.cache.merge.PutIfAbsentCacheMergePolicy'

Name of the cache. the type of keys provided as full class name the type of values provided as full class name Defines whether statistics gathering is enabled on a cache. Defines whether management is enabled on a cache. Set if read-through caching should be used. Disables invalidation events for per entry but full-flush invalidation events are still enabled. Full-flush invalidation event means that invalidation events for all entries on clear. Set if write-through caching should be used. Data type that will be used for storing records. Possible values: BINARY (default): keys and values will be stored as binary data OBJECT : values will be stored in their object forms NATIVE : keys and values will be stored in native memory. Defines the cache loader factory class name. Defines the cache loader class name. Defines the cache writer factory class name. Defines the cache writer class name. Defines the expiry policy factory class name. Number of synchronous backups. For example, if `1` is set as the `backup-count`, then all entries of the cache are copied to one other instance as synchronous for fail-safety. `backup-count` + `async-backup-count` cannot be bigger than maximum backup count which is `6`. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if `1` is set as the `async-backup-count`, then all entries of the cache are copied to one other instance as asynchronous for fail-safety. `backup-count` + `async-backup-count` cannot be bigger than maximum backup count which is `6`. Valid numbers are 0 (no backup), 1, 2 ... 6. This boolean parameter enables hot-restart feature when set as true. Only available on Hazelcast Enterprise.
Configuration for an event journal. The event journal keeps events related to a specific partition and data structure. For instance, it could keep map add, update, remove, merge events along with the key, old value, new value and so on. This configuration is not tied to a specific data structure and can be reused. The name of the map to which this config applies. The name of the cache to which this config applies. True if the event journal is enabled, false otherwise. Number of items in the event journal. If no time-to-live-seconds is set, the size will always be equal to capacity after the event journal has been filled. This is because no items are getting retired. The default value is 10000. Maximum number of seconds for each entry to stay in the event journal. Entries that are older than <time-to-live-seconds> are evicted from the journal. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. Configuration for a merkle tree. The merkle tree is a data structure used for efficient comparison of the difference in the contents of large data structures. The precision of such a comparison mechanism is defined by the depth of the merkle tree. A larger depth means that a data synchronization mechanism will be able to pinpoint a smaller subset of the data structure contents in which a change occurred. This causes the synchronization mechanism to be more efficient. On the other hand, a larger tree depth means the merkle tree will consume more memory. A smaller depth means the data synchronization mechanism will have to transfer larger chunks of the data structure in which a possible change happened. On the other hand, a shallower tree consumes less memory. The depth must be between 2 and 27 (exclusive). As the comparison mechanism is iterative, a larger depth will also prolong the duration of the comparison mechanism. Care must be taken to not have large tree depths if the latency of the comparison operation is high. The default depth is 10. This configuration is not tied to a specific data structure and can be reused. See https://en.wikipedia.org/wiki/Merkle_tree. The name of the map to which this config applies. True if the merkle tree is enabled, false otherwise. The depth of the merkle tree. A larger depth means that a data synchronization mechanism will be able to pinpoint a smaller subset of the data structure contents in which a change occurred. This causes the synchronization mechanism to be more efficient. On the other hand, a larger tree depth means the merkle tree will consume more memory. A smaller depth means the data synchronization mechanism will have to transfer larger chunks of the data structure in which a possible change happened. On the other hand, a shallower tree consumes less memory. The depth must be between 2 and 27 (exclusive). The default depth is 10. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Number of sync backups. If 1 is set as the backup-count for example, then all entries of the map will be copied to another JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of async backups. If 1 is set as the backup-count for example, then all entries of the map will be copied to another JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Type of value collection. It can be Set or List. You can retrieve some statistics like owned entry count, backup entry count, last update time, locked entry count by setting this parameter's value as "true". The method for retrieving the statistics is `getLocalMultiMapStats()`. By default, BINARY in-memory format is used, meaning that the object is stored in a serialized form. You can set it to false, then, the OBJECT in-memory format is used, which is useful when the OBJECT in-memory format has a smaller memory footprint than BINARY. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Maximum size. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. Count of synchronous backups. Remember that, List is a non-partitioned data structure, i.e. all entries of a List resides in one partition. When this parameter is '1', it means there will be a backup of that List in another node in the cluster. When it is '2', 2 nodes will have the backup. Count of asynchronous backups. Enable/disable statistics Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Maximum size. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. Count of synchronous backups. Remember that, Set is a non-partitioned data structure, i.e. all entries of a List resides in one partition. When this parameter is '1', it means there will be a backup of that List in another node in the cluster. When it is '2', 2 nodes will have the backup. Count of asynchronous backups. Enable/disable statistics If set as `true`, you can retrieve statistics for the topic using the method `getLocalTopicStats()`. By default, it is false, meaning there is no global order guarantee by default. Default is `false`, meaning only one dedicated thread will handle topic messages. When multi-threading enabled (true) all threads from event thread pool can be used for message handling. The JobTracker configuration is used to setup behavior of the Hazelcast MapReduce framework. Every JobTracker is capable of running multiple map reduce jobs at once and so once configuration is meant as a shared resource for all jobs created by the same JobTracker. The configuration gives full control over the expected load behavior and thread counts to be used. The max-thread-size setting configures the maximum thread pool size of the JobTracker. The queue-size defines the maximum number of tasks are able to wait to be processed. A value of 0 means number of partitions * 2. retry-count is currently not used but reserved for later use where the framework will automatically try to restart / retry operations from an available savepoint. The chunk-size defined the number of emitted values before a chunk is sent to the reducers. If your emitted values are big or you want to better balance your work you might want to change this to a lower or higher value. A value of 0 means immediate transmission but remember that low values mean higher traffic costs. A very high value might cause an OutOfMemoryError to occur if emitted values not fit into heap memory before being send to reducers. To prevent this you might want to use a combiner to pre-reduce values on mapping nodes. The communicate-stats setting defines if statistics (for example about processed entries) are transmitted to the job emitter. This might be used to show any kind of progress to an user inside of an UI system but produces additional traffic. If not needed you might want to deactivate this. The topology-changed-strategy defines how the map reduce framework will react on topology changes while executing a job. Currently only CANCEL_RUNNING_OPERATION is fully supported which throws an exception to the job emitter (throws com.hazelcast.mapreduce.TopologyChangedException). A replicated map is a implementation of the map interface which is not partitioned but fully replicates all data to all members. Due to the nature of weak consistency there is a chance of reading staled data and no guarantee is given to retrieve the same value on multiple get calls. ReplicatedMap was added in Hazelcast 3.2. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Number of parallel mutexes to minimize contention on keys. The default value is 32 which is a good number for lots of applications. If higher contention is seen on writes to values inside of the replicated map this value can be adjusted to the needs. Defines a number of milliseconds after a put is executed before the value is replicated to other nodes. In this time multiple puts can be operated and are cached up to be send at once. Default value is 100ms before a replication is operated, if set to 0 no delay is used and all values are replicated one by one. This value defines it the replicated map is available for reads before the initial replication is completed. Default is true. If set to false no Exception will be thrown when replicated map is not yet ready but call will block until finished. Specify the name, type and value of your attribute here. True to set the node as a lite member, false otherwise. Number of replicas on which the CRDT state will be kept. The updates are replicated asynchronously between replicas. The number must be greater than 1 and up to 2147483647 (Integer.MAX_VALUE). The default value is 2147483647 (Integer.MAX_VALUE). Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the PN counter. Enable/disable statistics for this PN counter.
Custom classes implementing com.hazelcast.nio.serialization.DataSerializableFactory to be registered. These can be used to speed up serialization/deserialization of objects. PortableFactory class to be registered. Global serializer class to be registered if no other serializer is applicable. Defines the class name of the serializer implementation. Blacklist used for deserialization class filtering. Blacklist used for deserialization class filtering. Disables including default list entries (hardcoded in Hazelcast source code). Name of a class to be included in the list. Name of a package to be included in the list. Class name prefix to be included in the list. Configure the hazelcast instance Configure the hazelcast client Retrieve a Hazelcast IMap instance Retrieve a JCache cache manager from specified Hazelcast instance Retrieve a Hazelcast MultiMap instance Retrieve a Hazelcast ReplicatedMap instance Retrieve a Hazelcast IQueue instance Retrieve a Hazelcast Ringbuffer instance Retrieve a Hazelcast ITopic instance Retrieve a Hazelcast ITopic instance Retrieve a Hazelcast ISet instance Retrieve a Hazelcast IList instance Retrieve a Hazelcast IExecutorService instance Retrieve a Hazelcast IExecutorService instance Retrieve a Hazelcast IScheduledExecutorService instance Retrieve a Hazelcast IdGenerator instance Retrieve a Hazelcast FlakeIdGenerator instance Retrieve a Hazelcast CardinalityEstimator instance Retrieve a Hazelcast IAtomicLong instance Retrieve a Hazelcast IAtomicReference instance Retrieve a Hazelcast ICountDownLatch instance Retrieve a Hazelcast ISemaphore instance Retrieve a Hazelcast ILock instance Retrieve a Hazelcast PNCounter instance element.]]> Encryption algorithm such as DES/ECB/PKCS5Padding, PBEWithMD5AndDES, AES/CBC/PKCS5Padding, Blowfish, DESede. This configuration is not intended to provide addresses of other cluster members with which the hazelcast instance will form a cluster. This is an SPI for advanced use in cases where the DefaultAddressPicker does not pick suitable addresses to bind to and publish to other cluster members. For instance, this could allow easier deployment in some cases when running on Docker, AWS or other cloud environments. That said, if you are just starting with Hazelcast, you will probably want to set the member addresses by using the tcp-ip or multicast configuration or adding a discovery strategy. Member address provider allows to plug in own strategy to customize: 1. What address Hazelcast will bind to 2. What address Hazelcast will advertise to other members on which they can bind to In most environments you don't need to customize this and the default strategy will work just fine. However in some cloud environments the default strategy does not make the right choice and the member address provider delegates the process of address picking to external code. Includes IP addresses of trusted members. When a node wants to join to the cluster, its join request will be rejected if it is not a trusted member. You can give an IP addresses range using the wildcard (*) on the last digit of the IP address (e.g. 192.168.1.* or 192.168.1.100-110). Sets the strategy for checking consistency of data between source and target cluster. Any inconsistency will not be reconciled, it will be merely reported via the usual mechanisms (e.g. statistics, diagnostics). The user must initiate WAN sync to reconcile there differences. For the check procedure to work properly, the target cluster should support the chosen strategy. Default value is NONE, which means the check is disabled. While recovering from split-brain (network partitioning), data structure entries in the small cluster merge into the bigger cluster based on the policy set here. When an entry merges into the cluster, an entry with the same key (or value) might already exist in the cluster. The merge policy resolves these conflicts with different out-of-the-box or custom strategies. The out-of-the-box merge polices can be references by their simple class name. For custom merge policies you have to provide a fully qualified class name.

The out-of-the-box policies are:
DiscardMergePolicy: the entry from the smaller cluster will be discarded.
HigherHitsMergePolicy: the entry with the higher number of hits wins.
LatestAccessMergePolicy: the entry with the latest access wins.
LatestUpdateMergePolicy: the entry with the latest update wins.
PassThroughMergePolicy: the entry from the smaller cluster wins.
PutIfAbsentMergePolicy: the entry from the smaller cluster wins if it doesn't exist in the cluster.
The default policy is: PutIfAbsentMergePolicy

The name of the class implementing the com.hazelcast.spi.MemberAddressProvider interface. If both the implementation and the class name are provided, the implementation is used and the class name is ignored. Specifies whether the member address provider SPI is enabled or not. Values can be true or false. ICMP can be used in addition to the other detectors. It operates at layer 3 detects network and hardware issues more quickly Timeout in Milliseconds before declaring a failed ping Maximum number of times the IP Datagram (ping) can be forwarded, in most cases all Hazelcast cluster members would be within one network switch/router therefore default of 0 is usually sufficient Run ICMP detection in parallel with the Heartbeat failure detector Cluster Member will fail to start if it is unable to action an ICMP ping command when ICMP is enabled. Failure is usually due to OS level restrictions. Maximum number of consecutive failed attempts before declaring a member suspect Time in milliseconds between each ICMP ping Enables ICMP Pings to detect and suspect dead members Defines the initial state in which a WAN publisher is started. - REPLICATING (default): State where both enqueuing new events is allowed, enqueued events are replicated to the target cluster and WAN sync is enabled. - PAUSED: State where new events are enqueued but they are not dequeued. Some events which have been dequeued before the state was switched may still be replicated to the target cluster but further events will not be replicated. WAN sync is enabled. - STOPPED: State where neither new events are enqueued nor dequeued. As with the PAUSED state, some events might still be replicated after the publisher has switched to this state. WAN sync is enabled. Configuration for the WAN sync mechanism. Sets the group name used as an endpoint group name for authentication on the target endpoint. If there is no separate publisher ID property defined, this group name will also be used as a WAN publisher ID. This ID is then used for identifying the publisher in a WanReplicationConfig. Sets the publisher ID used for identifying the publisher in a WanReplicationConfig. If there is no publisher ID defined (it is empty), the group name will be used as a publisher ID. Config for processing WAN events received from a target cluster. You can configure certain behaviour when processing incoming WAN events or even configure your own implementation for a WAN consumer. A custom WAN consumer allows you to define custom processing logic and is usually used in combination with a custom WAN publisher. A custom consumer is optional and you may simply omit defining it which will cause the default processing logic to be used. Properties for the custom WAN consumer. These properties are accessible when initalizing the WAN consumer. Defines a custom WAN consumer (WanReplicationConsumer). If you don't define a class name or implementation, the default processing logic for incoming WAN events will be used. When true, an incoming event over WAN replication can be persisted to a database for example, otherwise it will not be persisted. Default value is false. Block or allow actions, submitted as tasks in an Executor from clients and have no permission mappings. true: Blocks all actions that have no permission mapping false: Allows all actions that have no permission mapping Name of the principal. Wildcards(*) can be used. Name of the permission. Wildcards(*) can be used. Endpoint address of principal. Wildcards(*) can be used. Permission actions that are permitted on Hazelcast instance objects. Deprecated element, subject to remove. Please use class-name/implementation attributes instead Credentials className This configuration lets you add listeners (listener classes) for the map entries. This configuration lets you index the attributes and also order them. This configuration lets you index the attributes and also order them. True to enable User Code Deployment on this client, false otherwise. Name of the Flake ID Generator. Sets how many IDs are pre-fetched on the background when one call to FlakeIdGenerator.newId() is made. Value must be in the range 1..100,000, default is 100. This setting pertains only to newId() calls made on the member that configured it. Sets for how long the pre-fetched IDs can be used. If this time elapses, a new batch of IDs will be fetched. Time unit is milliseconds, default is 600,000 (10 minutes). The IDs contain timestamp component, which ensures rough global ordering of IDs. If an ID is assigned to an object that was created much later, it will be much out of order. If you don't care about ordering, set this value to 0. This setting pertains only to newId() calls made on the member that configured it. Sets the offset that will be added to the returned IDs. Default value is 0. Setting might be useful when migrating from IdGenerator, default value works for all green-field projects. For example: Largest ID returned from IdGenerator is 150. FlakeIdGenerator now returns 100. If you configure idOffset of 50 and stop using the IdGenerator, the next ID from FlakeIdGenerator will be 151 or larger and no duplicate IDs will be generated. In real-life, the IDs are much larger. You also need to add a reserve to the offset because the IDs from FlakeIdGenerator are only roughly ordered. Recommended reserve is 2^38, that is 274877906944. Negative values are allowed to increase the lifespan of the generator, however keep in mind that the generated IDs might also be negative. Sets the offset that will be added to the node ID assigned to cluster member for this generator. Might be useful in A/B deployment scenarios where you have cluster A which you want to upgrade. You create cluster B and for some time both will generate IDs and you want to have them unique. In this case, configure node ID offset for generators on cluster B. Enable/disable statistics. Name of the Flake ID Generator. Sets how many IDs are pre-fetched on the background when one call to FlakeIdGenerator.newId() is made. Value must be in the range 1..100,000, default is 100. This setting pertains only to newId() calls made on the member that configured it. Sets for how long the pre-fetched IDs can be used. If this time elapses, a new batch of IDs will be fetched. Time unit is milliseconds, default is 600,000 (10 minutes). The IDs contain timestamp component, which ensures rough global ordering of IDs. If an ID is assigned to an object that was created much later, it will be much out of order. If you don't care about ordering, set this value to 0. This setting pertains only to newId() calls made on the member that configured it. A policy to deal with an overloaded topic; so topic where there is no place to store new messages. This policy can only be used in combination with the com.hazelcast.core.HazelcastInstance#getReliableTopic(String). The reliable topic uses a com.hazelcast.ringbuffer.Ringbuffer to store the messages. A ringbuffer doesn't track where readers are, so it has no concept of a slow consumers. This provides many advantages like high performance reads, but it also gives the ability to the reader to re-read the same message multiple times in case of an error. A ringbuffer has a limited, fixed capacity. A fast producer may overwrite old messages that are still being read by a slow consumer. To prevent this, we may configure a time-to-live on the ringbuffer (see com.hazelcast.config.RingbufferConfig#setTimeToLiveSeconds(int). Once the time-to-live is configured, the TopicOverloadPolicy controls how the publisher is going to deal with the situation that a ringbuffer is full and the oldest item in the ringbuffer is not old enough to get overwritten. Keep in mind that this retention period (time-to-live) can keep messages from being overwritten, even though all readers might have already completed reading. Its default value is BLOCK. Available values are as follows: - DISCARD_OLDEST: Using this policy, a message that has not expired can be overwritten. No matter the retention period set, the overwrite will just overwrite the item. This can be a problem for slow consumers because they were promised a certain time window to process messages. But it will benefit producers and fast consumers since they are able to continue. This policy sacrifices the slow producer in favor of fast producers/consumers. - DISCARD_NEWEST: Message that was to be published is discarded. - BLOCK: The caller will wait until there is space in the Ringbuffer. - ERROR: The publish call fails immediately. Sets the read batch size. The ReliableTopic tries to read a batch of messages from the ringbuffer. It will get at least one, but if there are more available, then it will try to get more to increase throughput. The maximum read batch size can be influenced using the read batch size. Apart from influencing the number of messages to retrieve, the readBatchSize also determines how many messages will be processed by the thread running the MessageListener before it returns back to the pool to look for other MessageListeners that need to be processed. The problem with returning to the pool and looking for new work is that interacting with an executor is quite expensive due to contention on the work-queue. The more work that can be done without retuning to the pool, the smaller the overhead. If the readBatchSize is 10 and there are 50 messages available, 10 items are retrieved and processed consecutively before the thread goes back to the pool and helps out with the processing of other messages. If the readBatchSize is 10 and there are 2 items available, 2 items are retrieved and processed consecutively. If the readBatchSize is an issue because a thread will be busy too long with processing a single MessageListener and it can't help out other MessageListeners, increase the size of the threadpool so the other MessageListeners don't need to wait for a thread, but can be processed in parallel. Name of the Reliable Topic. One of membership-listener, instance-listener or migration-listener Sets the list of class names implementing the CacheWanEventFilter or MapWanEventFilter for filtering outbound WAN replication events. Name of the wan-replication configuration. IMap or ICache instance uses this wan-replication config. Resolve conflicts that occurred when target cluster already has the replicated entry key. 4 merge policy implementations for IMap and 2 merge policy implementations for ICache are provided out-of-the-box. IMap has the following merge policies: com.hazelcast.map.merge.PutIfAbsentMapMergePolicy: Incoming entry merges from the source map to the target map if it does not exist in the target map. com.hazelcast.map.merge.HigherHitsMapMergePolicy: Incoming entry merges from the source map to the target map if the source entry has more hits than the target one. com.hazelcast.map.merge.PassThroughMergePolicy: Incoming entry merges from the source map to the target map unless the incoming entry is not null. com.hazelcast.map.merge.LatestUpdateMapMergePolicy: Incoming entry merges from the source map to the target map if the source entry has been updated more recently than the target entry. Please note that this merge policy can only be used when the clusters' clocks are in sync. ICache has the following merge policies: com.hazelcast.cache.merge.HigherHitsCacheMergePolicy: Incoming entry merges from the source cache to the target cache if the source entry has more hits than the target one. com.hazelcast.cache.merge.PassThroughCacheMergePolicy: Incoming entry merges from the source cache to the target cache unless the incoming entry is not null. When enabled, an incoming event to a member is forwarded to the target cluster of that member. A probabilistic quorum function based on Phi Accrual failure detector. See com.hazelcast.internal.cluster.fd.PhiAccrualClusterFailureDetector for implementation details. Configuration:
- acceptable-heartbeat-pause: duration in milliseconds corresponding to number of potentially lost/delayed heartbeats that will be accepted before considering it to be an anomaly. This margin is important to be able to survive sudden, occasional, pauses in heartbeat arrivals, due to for example garbage collection or network drops.
- threshold: threshold for suspicion level. A low threshold is prone to generate many wrong suspicions but ensures a quick detection in the event of a real crash. Conversely, a high threshold generates fewer mistakes but needs more time to detect actual crashes.
- max-sample-size: number of samples to use for calculation of mean and standard deviation of inter-arrival times.
- first-heartbeat-estimate: bootstrap the stats with heartbeats that corresponds to this duration in milliseconds, with a rather high standard deviation (since environment is unknown in the beginning)
- min-std-deviation: minimum standard deviation (in milliseconds) to use for the normal distribution used when calculating phi. Too low standard deviation might result in too much sensitivity for sudden, but normal, deviations in heartbeat inter arrival times.
A quorum function that keeps track of the last heartbeat timestamp per each member. For a member to be considered live (for the purpose of determining presence of quorum), a heartbeat must have been received at most heartbeat-tolerance milliseconds before current time. The period between two replications of CRDT states in milliseconds. A lower value will increase the speed at which changes are disseminated to other cluster members at the expense of burst-like behaviour - less updates will be batched together in one replication message and one update to a CRDT may cause a sudden burst of replication messages in a short time interval. The value must be a positive non-null integer. The maximum number of target members that we replicate the CRDT states to in one period. A higher count will lead to states being disseminated more rapidly at the expense of burst-like behaviour - one update to a CRDT will lead to a sudden burst in the number of replication messages in a short time interval. Base directory for all hot-restart data. Can be an absolute or relative path to the node startup directory. Base directory for hot backups. Each new backup will be created in a separate directory inside this one. Can be an absolute or relative path to the node startup directory. True to enable hot-restart, false otherwise. Validation timeout for hot-restart process, includes validating cluster members expected to join and partition table on all cluster. Data load timeout for hot-restart process, all members in the cluster should complete restoring their local data before this timeout. Specifies the policy that will be respected during hot restart cluster start. Valid values are : FULL_RECOVERY_ONLY : Starts the cluster only when all expected nodes are present and correct. Otherwise, it fails. PARTIAL_RECOVERY_MOST_RECENT : Starts the cluster with the members which have most up-to-date partition table and successfully restored their data. All other members will leave the cluster and force-start themselves. If no member restores its data successfully, cluster start fails. PARTIAL_RECOVERY_MOST_COMPLETE : Starts the cluster with the largest group of members which have the same partition table version and successfully restored their data. All other members will leave the cluster and force-start themselves. If no member restores its data successfully, cluster start fails. True if disk write should be followed by an fsync() system call, false otherwise. True if hot-restart is enabled, false otherwise Only available on Hazelcast Enterprise.