Hello! 1. I'm not sure it will be immediately available on heap. 2. This sounds a more reasonable assumption. 3. I guess so, but the real issue here is that on-heap cache increases Full GC times. At some point it will become infeasible. 4. Yes, it would counteract the change to off-heap model.
Regards, -- Ilya Kasnacheev сб, 6 июн. 2020 г. в 14:54, VincentCE <v...@cephei.com>: > In our project we are currently using ignite 2.7.6 with native persistence > disabled and java 11. At the moment we are not using the on-heap feature, > i.e. all our data lives in off-heap. However in order to gain performance > we > are thinking about activating on-heap. While there are already quite many > questions/answers on that topic in this forum we are still missing some > points. I would like to use the following scenario for our questions: Say > we > have one ignite-server-instance living on a *kubernetes-pod of 32 GiB > memory > request/limit size* with the following "hypothetical" configuration: > > - JVM options exactly as described here > https://apacheignite.readme.io/docs/jvm-and-system-tuning, i.e. in > particular *10 GB heap fixed*. > - Off-heap is limited to 15 GiB by adjusting the default region with > *initSize = maxSize = 15 GiB*. > No more data regions are defined. > > Before doing anything with our ignite-server-instance we *initially fill > its > off-heap with 10 GiB* of data and this will be the only data that it will > receive. > > What happens when we set > > *org.apache.ignite.configuration.CacheConfiguration.setOnheapCacheEnabled(true) > in each data configuration and for now use no eviction policies* in > particular during loading these 10 GB of data? > > More precisely: > 1. As it is emphasised several times in this forum the data will still be > be > loaded into off-heap. But will it immediately also be loaded into heap, > i.e. > during the loading procedure each data point gets replicated simultaneously > to heap resulting in two copies of the same data one in off-heap and one on > heap after the procedure is finished? > 2. ... Or will a given data point only be replicated to heap when ever it > is > being used, i.e. during computations? > 3. Lets furthermore assume that our overall configuration was stable before > switching to on-heap. In order to guarantee that it will do so afterwards > would we need to increase the heap size by roughly 10 GB to 20 GB and > therefore also our pod size to roughly 42 GiB? That would imply that using > on-heap always goes hand in hand with increasing memory resources. > 4. Obviously in this example we did not define any eviction-policy to > control the on-heap cache size. However this is indeed intended here > because > we would like each data point to be quickly available living also in heap. > Is this a useful approach (i.e. replicating the whole off-heap also in > heap) > in order to reach the overall goal namely better performance? It feels like > this approach would counteract the change to the off-heap model from ignite > 2.x.x onwards in terms of GC impacts and so on. Is this correct? > > Please let me know if you need more detailed informations about the > configurations/settings we use. > > Thanks in advance! > > Vincent > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >