Class MapConfig

java.lang.Object
com.hazelcast.config.MapConfig
All Implemented Interfaces:
NamedConfig, UserCodeNamespaceAwareConfig<MapConfig>, DataSerializable, IdentifiedDataSerializable, com.hazelcast.nio.serialization.impl.Versioned

public class MapConfig extends Object implements IdentifiedDataSerializable, NamedConfig, com.hazelcast.nio.serialization.impl.Versioned, UserCodeNamespaceAwareConfig<MapConfig>
Contains the configuration for an IMap.
  • Field Details

    • MIN_BACKUP_COUNT

      public static final int MIN_BACKUP_COUNT
      The minimum number of backups
      See Also:
    • DEFAULT_BACKUP_COUNT

      public static final int DEFAULT_BACKUP_COUNT
      The default number of backups
      See Also:
    • MAX_BACKUP_COUNT

      public static final int MAX_BACKUP_COUNT
      The maximum number of backups
      See Also:
    • DISABLED_TTL_SECONDS

      public static final int DISABLED_TTL_SECONDS
      The number of Time to Live that represents disabling TTL.
      See Also:
    • DEFAULT_TTL_SECONDS

      public static final int DEFAULT_TTL_SECONDS
      The number of default Time to Live in seconds.
      See Also:
    • DEFAULT_MAX_IDLE_SECONDS

      public static final int DEFAULT_MAX_IDLE_SECONDS
      The number of default time to wait eviction in seconds.
      See Also:
    • DEFAULT_IN_MEMORY_FORMAT

      public static final InMemoryFormat DEFAULT_IN_MEMORY_FORMAT
      Default In-Memory format is binary.
    • DEFAULT_CACHED_DESERIALIZED_VALUES

      public static final CacheDeserializedValues DEFAULT_CACHED_DESERIALIZED_VALUES
      We want to cache values only when an index is defined.
    • DEFAULT_METADATA_POLICY

      public static final MetadataPolicy DEFAULT_METADATA_POLICY
      Default metadata policy
    • DEFAULT_STATISTICS_ENABLED

      public static final boolean DEFAULT_STATISTICS_ENABLED
      Default value of whether statistics are enabled or not
      See Also:
    • DEFAULT_ENTRY_STATS_ENABLED

      public static final boolean DEFAULT_ENTRY_STATS_ENABLED
      Default value of whether per entry statistics are enabled or not
      See Also:
    • DEFAULT_MAX_SIZE

      public static final int DEFAULT_MAX_SIZE
      Default max size.
      See Also:
    • DEFAULT_MAX_SIZE_POLICY

      public static final MaxSizePolicy DEFAULT_MAX_SIZE_POLICY
      Default max size policy
    • DEFAULT_EVICTION_POLICY

      public static final EvictionPolicy DEFAULT_EVICTION_POLICY
      Default eviction policy
  • Constructor Details

    • MapConfig

      public MapConfig()
    • MapConfig

      public MapConfig(String name)
    • MapConfig

      public MapConfig(MapConfig config)
  • Method Details

    • getName

      public String getName()
      Returns the name of this IMap
      Specified by:
      getName in interface NamedConfig
      Returns:
      the name of the IMap
    • setName

      public MapConfig setName(String name)
      Sets the name of the IMap
      Specified by:
      setName in interface NamedConfig
      Parameters:
      name - the name to set for this IMap
    • getInMemoryFormat

      public InMemoryFormat getInMemoryFormat()
      Returns the data type that will be used for storing records.
      Returns:
      data type that will be used for storing records
    • setInMemoryFormat

      public MapConfig setInMemoryFormat(InMemoryFormat inMemoryFormat)
      Binary 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: values will be stored in non-heap region of JVM (Hazelcast Enterprise only)
      Parameters:
      inMemoryFormat - the record type to set for this IMap
      Throws:
      IllegalArgumentException - if inMemoryFormat is null
    • getEvictionConfig

      public EvictionConfig getEvictionConfig()
      Gets the EvictionConfig instance of the eviction configuration for this IMap.
      Returns:
      the EvictionConfig instance of the eviction configuration
    • setEvictionConfig

      public MapConfig setEvictionConfig(EvictionConfig evictionConfig)
      Sets the EvictionConfig instance for eviction configuration for this IMap.
      Parameters:
      evictionConfig - the EvictionConfig instance to set for the eviction configuration
      Returns:
      current map config instance
    • getBackupCount

      public int getBackupCount()
      Returns the backupCount for this IMap
      Returns:
      the backupCount for this IMap
      See Also:
    • setBackupCount

      public MapConfig setBackupCount(int backupCount)
      Number of synchronous backups. For example, if 1 is set as the backup count, then all entries of the map will be copied to another JVM for fail-safety. 0 means no sync backup.
      Parameters:
      backupCount - the number of synchronous backups to set for this IMap
      Returns:
      the updated MapConfig
      See Also:
    • getAsyncBackupCount

      public int getAsyncBackupCount()
      Returns the asynchronous backup count for this IMap.
      Returns:
      the asynchronous backup count
      See Also:
    • setAsyncBackupCount

      public MapConfig setAsyncBackupCount(int asyncBackupCount)
      Sets the number of asynchronous backups. 0 means no backups.
      Parameters:
      asyncBackupCount - the number of asynchronous synchronous backups to set
      Returns:
      the updated MapConfig
      Throws:
      IllegalArgumentException - if asyncBackupCount smaller than 0, or larger than the maximum number of backup or the sum of the backups and async backups is larger than the maximum number of backups
      See Also:
    • getTotalBackupCount

      public int getTotalBackupCount()
      Returns the total number of backups: backupCount plus asyncBackupCount.
      Returns:
      the total number of backups: synchronous + asynchronous
    • getTimeToLiveSeconds

      public int getTimeToLiveSeconds()
      Returns the maximum number of seconds for each entry to stay in the map.
      Returns:
      the maximum number of seconds for each entry to stay in the map
    • setTimeToLiveSeconds

      public MapConfig setTimeToLiveSeconds(int timeToLiveSeconds)
      The maximum number of seconds for each entry to stay in the map. Entries that are older than timeToLiveSeconds will be automatically evicted from the map. Updates on the entry will change the eviction time. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0.
      Parameters:
      timeToLiveSeconds - the timeToLiveSeconds to set
    • getMaxIdleSeconds

      public int getMaxIdleSeconds()
      Returns the maximum number of seconds for each entry to stay idle in the map.
      Returns:
      the maximum number of seconds for each entry to stay idle in the map
    • setMaxIdleSeconds

      public MapConfig setMaxIdleSeconds(int maxIdleSeconds)
      Maximum number of seconds for each entry to stay idle in the map. Entries that are idle (not touched) for more than maxIdleSeconds will get automatically evicted from the map. Entry is touched if get(), getAll(), put() or containsKey() is called. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. The time precision is limited by 1 second. The MaxIdle that less than 1 second can lead to unexpected behaviour.
      Parameters:
      maxIdleSeconds - the maxIdleSeconds (the maximum number of seconds for each entry to stay idle in the map) to set
    • getMapStoreConfig

      public MapStoreConfig getMapStoreConfig()
      Returns the map store configuration
      Returns:
      the mapStoreConfig (map store configuration)
    • setMapStoreConfig

      public MapConfig setMapStoreConfig(MapStoreConfig mapStoreConfig)
      Sets the map store configuration
      Parameters:
      mapStoreConfig - the mapStoreConfig (map store configuration) to set
    • getNearCacheConfig

      public NearCacheConfig getNearCacheConfig()
      Returns the Near Cache configuration
      Returns:
      the Near Cache configuration
    • setNearCacheConfig

      public MapConfig setNearCacheConfig(NearCacheConfig nearCacheConfig)
      Sets the Near Cache configuration
      Parameters:
      nearCacheConfig - the Near Cache configuration
      Returns:
      the updated map configuration
    • getMergePolicyConfig

      public MergePolicyConfig getMergePolicyConfig()
      Gets the MergePolicyConfig for this map.
      Returns:
      the MergePolicyConfig for this map
    • setMergePolicyConfig

      public MapConfig setMergePolicyConfig(MergePolicyConfig mergePolicyConfig)
      Sets the MergePolicyConfig for this map. Note that you may need to enable per entry stats via setPerEntryStatsEnabled(boolean) to see all fields of entry view in your SplitBrainMergePolicy implementation.
      Returns:
      the updated map configuration
    • isStatisticsEnabled

      public boolean isStatisticsEnabled()
      Checks if statistics are enabled for this map.
      Returns:
      true if statistics are enabled, false otherwise
    • setStatisticsEnabled

      public MapConfig setStatisticsEnabled(boolean statisticsEnabled)
      Set to enable/disable map level statistics for this map. This setting is only for map level stats such as last access time to map, total number of hits etc. For entry level stats see perEntryStatsEnabled
      Parameters:
      statisticsEnabled - true to enable map statistics, false to disable
      Returns:
      the current map config instance
      See Also:
    • isPerEntryStatsEnabled

      public boolean isPerEntryStatsEnabled()
      Checks if entry level statistics are enabled for this map.
      Returns:
      true if entry level statistics are enabled, false otherwise
      Since:
      4.2
    • setPerEntryStatsEnabled

      public MapConfig setPerEntryStatsEnabled(boolean perEntryStatsEnabled)
      Set to enable/disable per entry statistics. Its default value is false. When you enable per entry stats, you can retrieve entry level statistics such as hits, creation time, last access time, last update time, last stored time for an entry.
      Parameters:
      perEntryStatsEnabled - true to enable entry level statistics, false to disable
      Returns:
      the current map config instance
      Since:
      4.2
    • isReadBackupData

      public boolean isReadBackupData()
      Checks if read-backup-data (reading local backup entries) is enabled for this map.
      Returns:
      true if read-backup-data is enabled, false otherwise
    • setReadBackupData

      public MapConfig setReadBackupData(boolean readBackupData)
      Sets read-backup-data (reading local backup entries) for this map.
      Parameters:
      readBackupData - true to enable read-backup-data, false to disable
      Returns:
      the current map config instance
    • getWanReplicationRef

      public WanReplicationRef getWanReplicationRef()
      Gets the WAN target replication reference.
      Returns:
      the WAN target replication reference
    • setWanReplicationRef

      public MapConfig setWanReplicationRef(WanReplicationRef wanReplicationRef)
      Sets the WAN target replication reference.
      Parameters:
      wanReplicationRef - the WAN target replication reference
      Returns:
      the current map config instance
    • addEntryListenerConfig

      public MapConfig addEntryListenerConfig(EntryListenerConfig listenerConfig)
    • getEntryListenerConfigs

      public List<EntryListenerConfig> getEntryListenerConfigs()
    • setEntryListenerConfigs

      public MapConfig setEntryListenerConfigs(List<EntryListenerConfig> listenerConfigs)
    • addMapPartitionLostListenerConfig

      public MapConfig addMapPartitionLostListenerConfig(MapPartitionLostListenerConfig listenerConfig)
    • getPartitionLostListenerConfigs

      public List<MapPartitionLostListenerConfig> getPartitionLostListenerConfigs()
    • setPartitionLostListenerConfigs

      public MapConfig setPartitionLostListenerConfigs(List<MapPartitionLostListenerConfig> listenerConfigs)
    • addIndexConfig

      public MapConfig addIndexConfig(IndexConfig indexConfig)
    • getIndexConfigs

      public List<IndexConfig> getIndexConfigs()
    • setIndexConfigs

      public MapConfig setIndexConfigs(List<IndexConfig> indexConfigs)
    • addAttributeConfig

      public MapConfig addAttributeConfig(AttributeConfig attributeConfig)
    • getAttributeConfigs

      public List<AttributeConfig> getAttributeConfigs()
    • setAttributeConfigs

      public MapConfig setAttributeConfigs(List<AttributeConfig> attributeConfigs)
    • getMetadataPolicy

      public MetadataPolicy getMetadataPolicy()
      Returns MetadataPolicy for this map.
      Returns:
      MetadataPolicy for this map
    • setMetadataPolicy

      public MapConfig setMetadataPolicy(MetadataPolicy metadataPolicy)
      Sets the metadata policy. See MetadataPolicy for more information.
      Parameters:
      metadataPolicy - the metadata policy
    • addQueryCacheConfig

      public MapConfig addQueryCacheConfig(QueryCacheConfig queryCacheConfig)
      Adds a new QueryCacheConfig to this MapConfig.
      Parameters:
      queryCacheConfig - the config to be added
      Returns:
      this MapConfig instance
      Throws:
      IllegalArgumentException - if there is already a QueryCache with the same QueryCacheConfig#name
    • getQueryCacheConfigs

      public List<QueryCacheConfig> getQueryCacheConfigs()
      Returns all QueryCacheConfig instances defined on this MapConfig.
      Returns:
      all QueryCacheConfig instances defined on this MapConfig
    • setQueryCacheConfigs

      public MapConfig setQueryCacheConfigs(List<QueryCacheConfig> queryCacheConfigs)
      Sets QueryCacheConfig instances to this MapConfig.
      Returns:
      this configuration
    • getPartitioningStrategyConfig

      public PartitioningStrategyConfig getPartitioningStrategyConfig()
    • setPartitioningStrategyConfig

      public MapConfig setPartitioningStrategyConfig(PartitioningStrategyConfig partitioningStrategyConfig)
    • isNearCacheEnabled

      public boolean isNearCacheEnabled()
      Checks if Near Cache is enabled.
      Returns:
      true if Near Cache is enabled, false otherwise
    • setCacheDeserializedValues

      public MapConfig setCacheDeserializedValues(CacheDeserializedValues cacheDeserializedValues)
      Configure de-serialized value caching. Default: CacheDeserializedValues.INDEX_ONLY
      Returns:
      this MapConfig instance
      Since:
      3.6
      See Also:
    • getHotRestartConfig

      @Nonnull public HotRestartConfig getHotRestartConfig()
      Gets the HotRestartConfig for this MapConfig
      Returns:
      hot restart config
    • getDataPersistenceConfig

      @Nonnull public DataPersistenceConfig getDataPersistenceConfig()
      Gets the DataPersistenceConfig for this MapConfig
      Returns:
      dataPersistenceConfig config
    • setHotRestartConfig

      @Deprecated public MapConfig setHotRestartConfig(@Nonnull HotRestartConfig hotRestartConfig)
      Sets the HotRestartConfig for this MapConfig
      Parameters:
      hotRestartConfig - hot restart config
      Returns:
      this MapConfig instance
    • setDataPersistenceConfig

      public MapConfig setDataPersistenceConfig(@Nonnull DataPersistenceConfig dataPersistenceConfig)
      Sets the DataPersistenceConfig for this MapConfig
      Parameters:
      dataPersistenceConfig - dataPersistenceConfig config
      Returns:
      this MapConfig instance
    • getMerkleTreeConfig

      @Nonnull public MerkleTreeConfig getMerkleTreeConfig()
      Gets the MerkleTreeConfig for this MapConfig
      Returns:
      merkle tree config
    • setMerkleTreeConfig

      public MapConfig setMerkleTreeConfig(@Nonnull MerkleTreeConfig merkleTreeConfig)
      Sets the MerkleTreeConfig for this MapConfig
      Parameters:
      merkleTreeConfig - merkle tree config
      Returns:
      this MapConfig instance
    • getEventJournalConfig

      @Nonnull public EventJournalConfig getEventJournalConfig()
      Gets the EventJournalConfig for this MapConfig
      Returns:
      event journal config
    • setEventJournalConfig

      public MapConfig setEventJournalConfig(@Nonnull EventJournalConfig eventJournalConfig)
      Sets the EventJournalConfig for this MapConfig
      Parameters:
      eventJournalConfig - event journal config
      Returns:
      this MapConfig instance
    • getTieredStoreConfig

      public TieredStoreConfig getTieredStoreConfig()
      Gets the TieredStoreConfig for this MapConfig
      Returns:
      tiered-store config
    • setTieredStoreConfig

      public MapConfig setTieredStoreConfig(TieredStoreConfig tieredStoreConfig)
      Sets the TieredStoreConfig for this MapConfig
      Parameters:
      tieredStoreConfig - tiered-store config
      Returns:
      this MapConfig instance
    • getCacheDeserializedValues

      public CacheDeserializedValues getCacheDeserializedValues()
      Get current value cache settings
      Returns:
      current value cache settings
      Since:
      3.6
    • getSplitBrainProtectionName

      public String getSplitBrainProtectionName()
    • setSplitBrainProtectionName

      public MapConfig setSplitBrainProtectionName(String splitBrainProtectionName)
    • getPartitioningAttributeConfigs

      public List<PartitioningAttributeConfig> getPartitioningAttributeConfigs()
      Get Partition Attribute configs used for creation of AttributePartitioningStrategy
      Returns:
      list of partitioning attribute configs
    • setPartitioningAttributeConfigs

      public MapConfig setPartitioningAttributeConfigs(List<PartitioningAttributeConfig> partitioningAttributeConfigs)
    • getUserCodeNamespace

      @Nullable public String getUserCodeNamespace()
      Retrieve the User Code Deployment Namespace to be used for ClassLoader awareness during operations related to the structure associated with this configuration.
      Specified by:
      getUserCodeNamespace in interface UserCodeNamespaceAwareConfig<MapConfig>
      Returns:
      Namespace Name for use with the UserCodeNamespaceService, or null if there is no User Code Namespace to associate with.
    • setUserCodeNamespace

      public MapConfig setUserCodeNamespace(@Nullable String userCodeNamespace)
      Associates the provided Namespace Name with this structure for ClassLoader awareness.

      The behaviour of setting this to null is outlined in the documentation for UserCodeNamespaceAwareConfig.DEFAULT_NAMESPACE.

      Specified by:
      setUserCodeNamespace in interface UserCodeNamespaceAwareConfig<MapConfig>
      Parameters:
      userCodeNamespace - The ID of the Namespace to associate with this structure.
      Returns:
      the updated MapConfig instance
      Since:
      5.4
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getFactoryId

      public int getFactoryId()
      Description copied from interface: IdentifiedDataSerializable
      Returns DataSerializableFactory factory ID for this class.
      Specified by:
      getFactoryId in interface IdentifiedDataSerializable
      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 interface IdentifiedDataSerializable
      Returns:
      type ID
    • writeData

      public void writeData(ObjectDataOutput out) throws IOException
      Description copied from interface: DataSerializable
      Writes object fields to output stream
      Specified by:
      writeData in interface DataSerializable
      Parameters:
      out - output
      Throws:
      IOException - if an I/O error occurs. In particular, an IOException may be thrown if the output stream has been closed.
    • readData

      public void readData(ObjectDataInput in) throws IOException
      Description copied from interface: DataSerializable
      Reads fields from the input stream
      Specified by:
      readData in interface DataSerializable
      Parameters:
      in - input
      Throws:
      IOException - if an I/O error occurs. In particular, an IOException may be thrown if the input stream has been closed.