com.hazelcast.config

## Class NativeMemoryConfig

- java.lang.Object
- - com.hazelcast.config.NativeMemoryConfig

-     public class NativeMemoryConfig
      extends Object

  Configures native memory region.

  Native memory is allocated outside JVM heap space and is not subject to JVM garbage collection. Therefore, hundreds of gigabytes of native memory can be allocated & used without introducing pressure on GC mechanism.

  Data structures, such as `IMap` and `ICache`, store their data (entries, indexes etc.) in native memory region when they are configured with `InMemoryFormat.NATIVE`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `NativeMemoryConfig.MemoryAllocatorType` Type of memory allocator: STANDARD: allocate/free memory using default OS memory manager POOLED: manage memory blocks in pool

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static float` | `DEFAULT_METADATA_SPACE_PERCENTAGE` Default metadata space percentage
    `static int` | `DEFAULT_MIN_BLOCK_SIZE` Default minimum block size in bytes
    `static int` | `DEFAULT_PAGE_SIZE` Default page size in bytes
    `static int` | `INITIAL_MEMORY_SIZE` Initial memory size in megabytes
    `static int` | `MIN_INITIAL_MEMORY_SIZE` Minimum initial memory size in megabytes

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NativeMemoryConfig()`
    `NativeMemoryConfig(NativeMemoryConfig nativeMemoryConfig)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object o)`
    `NativeMemoryConfig.MemoryAllocatorType` | `getAllocatorType()` Returns the `NativeMemoryConfig.MemoryAllocatorType` to be used while allocating native memory.
    `float` | `getMetadataSpacePercentage()` Returns the percentage of native memory space to be used to store metadata and internal memory structures by the native memory manager.
    `int` | `getMinBlockSize()` Returns the minimum memory block size, in bytes, to be served by native memory manager.
    `int` | `getPageSize()` Returns the page size, in bytes, to be allocated by native memory manager as a single block.
    `MemorySize` | `getSize()` Returns size of the native memory region.
    `int` | `hashCode()`
    `boolean` | `isEnabled()` Returns `true` if native memory allocation is enabled, `false` otherwise.
    `NativeMemoryConfig` | `setAllocatorType(NativeMemoryConfig.MemoryAllocatorType allocatorType)` Sets the `NativeMemoryConfig.MemoryAllocatorType` to be used while allocating native memory.
    `NativeMemoryConfig` | `setEnabled(boolean enabled)` Enables or disables native memory allocation.
    `NativeMemoryConfig` | `setMetadataSpacePercentage(float metadataSpacePercentage)` Sets the percentage of native memory space to be used to store metadata and internal memory structures by the native memory manager.
    `NativeMemoryConfig` | `setMinBlockSize(int minBlockSize)` Sets the minimum memory block size, in bytes, to be served by native memory manager.
    `NativeMemoryConfig` | `setPageSize(int pageSize)` Sets the page size, in bytes, to be allocated by native memory manager as a single block.
    `NativeMemoryConfig` | `setSize(MemorySize size)` Sets size of the native memory region.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_MIN_BLOCK_SIZE

          public static final int DEFAULT_MIN_BLOCK_SIZE

      Default minimum block size in bytes
      See Also:
        Constant Field Values

    - #### DEFAULT_PAGE_SIZE

          public static final int DEFAULT_PAGE_SIZE

      Default page size in bytes
      See Also:
        Constant Field Values

    - #### DEFAULT_METADATA_SPACE_PERCENTAGE

          public static final float DEFAULT_METADATA_SPACE_PERCENTAGE

      Default metadata space percentage
      See Also:
        Constant Field Values

    - #### MIN_INITIAL_MEMORY_SIZE

          public static final int MIN_INITIAL_MEMORY_SIZE

      Minimum initial memory size in megabytes
      See Also:
        Constant Field Values

    - #### INITIAL_MEMORY_SIZE

          public static final int INITIAL_MEMORY_SIZE

      Initial memory size in megabytes
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### NativeMemoryConfig

          public NativeMemoryConfig()

    - #### NativeMemoryConfig

          public NativeMemoryConfig(NativeMemoryConfig nativeMemoryConfig)

  - ### Method Detail

    - #### getSize

          public MemorySize getSize()

      Returns size of the native memory region.

    - #### setSize

          public NativeMemoryConfig setSize(MemorySize size)

      Sets size of the native memory region.

      Total size of the memory blocks allocated in native memory region cannot exceed this memory size. When native memory region is completely allocated and in-use, further allocation requests will fail with `NativeOutOfMemoryError`.

      Parameters:
        `size` - memory size
      Returns:
        this `NativeMemoryConfig` instance

    - #### isEnabled

          public boolean isEnabled()

      Returns `true` if native memory allocation is enabled, `false` otherwise.

    - #### setEnabled

          public NativeMemoryConfig setEnabled(boolean enabled)

      Enables or disables native memory allocation.
      Returns:
        this `NativeMemoryConfig` instance

    - #### getAllocatorType

          public NativeMemoryConfig.MemoryAllocatorType getAllocatorType()

      Returns the `NativeMemoryConfig.MemoryAllocatorType` to be used while allocating native memory.

    - #### setAllocatorType

          public NativeMemoryConfig setAllocatorType(NativeMemoryConfig.MemoryAllocatorType allocatorType)

      Sets the `NativeMemoryConfig.MemoryAllocatorType` to be used while allocating native memory.
      Parameters:
        `allocatorType` - `MemoryAllocatorType`
      Returns:
        this `NativeMemoryConfig` instance

    - #### getMinBlockSize

          public int getMinBlockSize()

      Returns the minimum memory block size, in bytes, to be served by native memory manager. Allocation requests smaller than minimum block size are served with the minimum block size. Default value is `DEFAULT_MIN_BLOCK_SIZE` bytes.

      This configuration is used only by `NativeMemoryConfig.MemoryAllocatorType.POOLED`, otherwise ignored.

    - #### setMinBlockSize

          public NativeMemoryConfig setMinBlockSize(int minBlockSize)

      Sets the minimum memory block size, in bytes, to be served by native memory manager. Allocation requests smaller than minimum block size are served with the minimum block size.

      This configuration is used only by `NativeMemoryConfig.MemoryAllocatorType.POOLED`, otherwise ignored.

      Parameters:
        `minBlockSize` - minimum memory block size
      Returns:
        this `NativeMemoryConfig` instance

    - #### getPageSize

          public int getPageSize()

      Returns the page size, in bytes, to be allocated by native memory manager as a single block. These page blocks are split into smaller blocks to serve allocation requests. Allocation requests greater than the page size are allocated from system directly, instead of managed memory pool. Default value is `DEFAULT_PAGE_SIZE` bytes.

      This configuration is used only by `NativeMemoryConfig.MemoryAllocatorType.POOLED`, otherwise ignored.

    - #### setPageSize

          public NativeMemoryConfig setPageSize(int pageSize)

      Sets the page size, in bytes, to be allocated by native memory manager as a single block. These page blocks are split into smaller blocks to serve allocation requests. Allocation requests greater than the page size are allocated from system directly, instead of managed memory pool.

      This configuration is used only by `NativeMemoryConfig.MemoryAllocatorType.POOLED`, otherwise ignored.

      Parameters:
        `pageSize` - size of the page
      Returns:
        this `NativeMemoryConfig` instance

    - #### getMetadataSpacePercentage

          public float getMetadataSpacePercentage()

      Returns the percentage of native memory space to be used to store metadata and internal memory structures by the native memory manager. Default value is `DEFAULT_METADATA_SPACE_PERCENTAGE`.

      This configuration is used only by `NativeMemoryConfig.MemoryAllocatorType.POOLED`, otherwise ignored.

    - #### setMetadataSpacePercentage

          public NativeMemoryConfig setMetadataSpacePercentage(float metadataSpacePercentage)

      Sets the percentage of native memory space to be used to store metadata and internal memory structures by the native memory manager.

      This configuration is used only by `NativeMemoryConfig.MemoryAllocatorType.POOLED`, otherwise ignored.

      Parameters:
        `metadataSpacePercentage` - percentage of metadata space
      Returns:
        this `NativeMemoryConfig` instance

    - #### 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`

Copyright © 2019. All rights reserved.