I have an 8-node cluster, each having 16GB RAM. Previously, I have used Ignite 1.2 version without any problem. Recently I moved to 2.6. Now, for a small dataset, it works fine. But for a large dataset, each time it is giving me an error "out of memory" or "Failed to send a message" etc. My Ignite configuration for each node is below:
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="initialSize" value="#{500 * 1024 * 1024}"/>
<property name="maxSize" value="#{12L * 1024 * 1024 * 1024}"/>
<property name="pageEvictionMode" value="RANDOM_2_LRU"/>
<property name="persistenceEnabled" value="true"/>
<property name="metricsEnabled" value="true"/>
</bean>
</property>
And I ran Ignite in each node using "Ignite.sh -Xmx15g -Xms15g". I have configured two caches(cache1, cache2) as below and run a join query on them.
RendezvousAffinityFunction affFunc = new RendezvousAffinityFunction();
affFunc.setExcludeNeighbors(true);
affFunc.setPartitions(1024);
CacheConfiguration<Long, EMP> cache1 = new CacheConfiguration<>(EMP_CACHE);
cache1.setIndexedTypes(Long.class, EMP.class);
cache1.setSqlFunctionClasses(EMPFunctions.class);
cache1.setCacheMode(CacheMode.PARTITIONED);
cache1.setAffinity(affFunc);
My largest dataset contains more than 4million records. I tried with many ways, even with the on-heap option. But join operation with large dataset gives me an error. But for a smaller dataset, it's just working fine. Anyone help me to configure ON-HEAP or OFF-HEAP for my cluster.