Skip to content
feiben edited this page Jan 28, 2016 · 4 revisions

LunarMMU has an internal garbage collector to release the memory allocated by lmalloc. Its design aims to collect various memory blocks allocated by user at JAVA end, but strictly makes sure it will never cause any pause at run-time. It is light weighted, but can clean up discarded blocks via hundreds of GB memories. And if user want a direct control of big off-heap memory, LunarMMU is the right choice to you.

Internally, LunarBase use MMU to cache hot data, e.g. the latest one million records in memory. Data inside heap is controlled by JVM memory unit and GC, there is a serialization and de-serialization procedure to transfer data from inside to the outside direct memory.

In run time, user may specify via cache_records_in_memory parameter to control the memory upper bound.

cache_records_in_memory = 24 

In this example, 1<<24=16M records will be cached. If with each size of 1k, the memory consumption will up to 16GB.

Clone this wiki locally