Class RocksDBMemoryConfiguration

java.lang.Object
org.apache.flink.state.rocksdb.RocksDBMemoryConfiguration
All Implemented Interfaces:
Serializable

public final class RocksDBMemoryConfiguration extends Object implements Serializable
The settings regarding RocksDBs memory usage.
See Also:
  • Constructor Details

    • RocksDBMemoryConfiguration

      public RocksDBMemoryConfiguration()
  • Method Details

    • setUseManagedMemory

      public void setUseManagedMemory(boolean useManagedMemory)
      Configures RocksDB to use the managed memory of a slot. See RocksDBOptions.USE_MANAGED_MEMORY for details.
    • setFixedMemoryPerSlot

      public void setFixedMemoryPerSlot(org.apache.flink.configuration.MemorySize fixedMemoryPerSlot)
      Configures RocksDB to use a fixed amount of memory shared between all instances (operators) in a slot. See RocksDBOptions.FIX_PER_SLOT_MEMORY_SIZE for details.
    • setFixedMemoryPerSlot

      public void setFixedMemoryPerSlot(String totalMemoryPerSlotStr)
      Configures RocksDB to use a fixed amount of memory shared between all instances (operators) in a slot. See setFixedMemoryPerSlot(MemorySize) for details.
    • setWriteBufferRatio

      public void setWriteBufferRatio(double writeBufferRatio)
      Sets the fraction of the total memory to be used for write buffers. This only has an effect is either setUseManagedMemory(boolean) or setFixedMemoryPerSlot(MemorySize) are set.

      See RocksDBOptions.WRITE_BUFFER_RATIO for details.

    • setHighPriorityPoolRatio

      public void setHighPriorityPoolRatio(double highPriorityPoolRatio)
      Sets the fraction of the total memory to be used for high priority blocks like indexes, dictionaries, etc. This only has an effect is either setUseManagedMemory(boolean) or setFixedMemoryPerSlot(MemorySize) are set.

      See RocksDBOptions.HIGH_PRIORITY_POOL_RATIO for details.

    • isUsingManagedMemory

      public boolean isUsingManagedMemory()
      Gets whether the state backend is configured to use the managed memory of a slot for RocksDB. See RocksDBOptions.USE_MANAGED_MEMORY for details.
    • isUsingFixedMemoryPerSlot

      public boolean isUsingFixedMemoryPerSlot()
      Gets whether the state backend is configured to use a fixed amount of memory shared between all RocksDB instances (in all tasks and operators) of a slot. See RocksDBOptions.FIX_PER_SLOT_MEMORY_SIZE for details.
    • getFixedMemoryPerSlot

      @Nullable public org.apache.flink.configuration.MemorySize getFixedMemoryPerSlot()
      Gets the fixed amount of memory to be shared between all RocksDB instances (in all tasks and operators) of a slot. Null is not configured. See RocksDBOptions.USE_MANAGED_MEMORY for details.
    • getWriteBufferRatio

      public double getWriteBufferRatio()
      Gets the fraction of the total memory to be used for write buffers. This only has an effect is either setUseManagedMemory(boolean) or setFixedMemoryPerSlot(MemorySize) are set.

      See RocksDBOptions.WRITE_BUFFER_RATIO for details.

    • getHighPriorityPoolRatio

      public double getHighPriorityPoolRatio()
      Gets the fraction of the total memory to be used for high priority blocks like indexes, dictionaries, etc. This only has an effect is either setUseManagedMemory(boolean) or setFixedMemoryPerSlot(MemorySize) are set.

      See RocksDBOptions.HIGH_PRIORITY_POOL_RATIO for details.

    • isUsingPartitionedIndexFilters

      public Boolean isUsingPartitionedIndexFilters()
      Gets whether the state backend is configured to use partitioned index/filters for RocksDB.

      See RocksDBOptions.USE_PARTITIONED_INDEX_FILTERS for details.

    • validate

      public void validate()
      Validates if the configured options are valid with respect to one another.
    • fromOtherAndConfiguration

      public static RocksDBMemoryConfiguration fromOtherAndConfiguration(RocksDBMemoryConfiguration other, org.apache.flink.configuration.ReadableConfig config)
      Derives a RocksDBMemoryConfiguration from another object and a configuration. The values set on the other object take precedence, and the values from the configuration are used if no values are set on the other config object.
    • fromConfiguration

      public static RocksDBMemoryConfiguration fromConfiguration(org.apache.flink.configuration.Configuration configuration)