Hazelcast IMDG Enterprise HD
If you have Hazelcast IMDG Enterprise HD, your Hazelcast Java client's Near Cache can benefit from the High-Density Memory Store.
Let's recall the Java client's Near Cache configuration (please see the Configuring Client Near Cache section) without High-Density Memory Store:
</hazelcast-client> ... ... <near-cache name="MENU"> <max-size>2000</max-size> <time-to-live-seconds>0</time-to-live-seconds> <max-idle-seconds>0</max-idle-seconds> <eviction-policy>LFU</eviction-policy> <invalidate-on-change>true</invalidate-on-change> <in-memory-format>OBJECT</in-memory-format> </near-cache> ... </hazelcast-client>
You can configure this Near Cache to use Hazelcast's High-Density Memory Store by setting the in-memory format to NATIVE. Please see the following configuration example:
</hazelcast-client> ... ... <near-cache> ... <time-to-live-seconds>0</time-to-live-seconds> <max-idle-seconds>0</max-idle-seconds> <invalidate-on-change>true</invalidate-on-change> <in-memory-format>NATIVE</in-memory-format> <eviction size="1000" max-size-policy="ENTRY_COUNT" eviction-policy="LFU"/> ... </near-cache> </hazelcast-client>
Please notice that when the in-memory format is NATIVE, i.e. High-Density Memory Store is enabled, the configuration element
<eviction> is used to specify the eviction behavior of your client's Near Cache. In this case, the elements
<eviction-policy> used in the configuration of a Near Cache without High-Density Memory Store do not have any impact.
<eviction> has the following attributes:
size: Maximum size (entry count) of the Near Cache.
max-size-policy: Maximum size policy for eviction of the Near Cache. Available values are as follows:
- ENTRY_COUNT: Maximum entry count per member.
- USED_NATIVE_MEMORY_SIZE: Maximum used native memory size in megabytes.
- USED_NATIVE_MEMORY_PERCENTAGE: Maximum used native memory percentage.
- FREE_NATIVE_MEMORY_SIZE: Minimum free native memory size to trigger cleanup.
- FREE_NATIVE_MEMORY_PERCENTAGE: Minimum free native memory percentage to trigger cleanup.
eviction-policy: Eviction policy configuration. Its default values is NONE. Available values are as follows:
- NONE: No items will be evicted and the property max-size will be ignored. You still can combine it with time-to-live-seconds.
- LRU: Least Recently Used.d.
- LFU: Least Frequently Used.d.
Keep in mind that you should have already enabled the High-Density Memory Store usage for your client, using the
<native-memory> element in the client's configuration.
Please see the High-Density Memory Store section for more information on Hazelcast's High-Density Memory Store feature.