> Why it is not possible with on heap ? Well-known garbage collectors that are available in Oracle/Open/IBM JDKs works not to nice with heaps of size > 20 GB on high-performant applications like the ones that are built on top of Ignite. The reason is that stop-the-world pauses can become lengthy measuring in tens or hundreds of seconds. Go though this discussion to get more details [1].
The only known garbage collector that can keep up with the heaps of hundreds of gygabates and that avoids stop-the-world pauses is Zing from Azul. [2] Since you need to pay to Azul if you want to use its JVM the only possible way is to fall back to off-heap space in Ignite that will let to avoid lengthy GC pauses. > Why off heap is faster than two others layers ? It depends. Usually off-heap based solutions show comparable performance if properly tuned. However there can be minor performance degradation in high performant degradation since objects have to be moved from off-heap to on-heap when you need them (cache.get/results sets of SQL query/etc.). But as a benefit you won’t have long gc pauses. [1] http://stackoverflow.com/questions/214362/java-very-large-heap-sizes <http://stackoverflow.com/questions/214362/java-very-large-heap-sizes> [2] http://www.infoq.com/presentations/Understanding-Java-Garbage-Collection <http://www.infoq.com/presentations/Understanding-Java-Garbage-Collection> — Denis > On May 11, 2016, at 7:59 PM, tomk <[email protected]> wrote: > > Thanks for your answer, nevertheless I still don't understand. > I know that nodes in ignite are launched in jvm. > It seems to me that off heap make it possible to cache large dataset (such > large as RAM). Why it is not possible with on heap ? > > Why off heap is faster than two others layers ? > > > > -- > View this message in context: > http://apache-ignite-users.70518.x6.nabble.com/Off-Heap-Memory-simpler-explanation-than-in-docs-tp4790p4877.html > Sent from the Apache Ignite Users mailing list archive at Nabble.com.
