I am noticing that some users struggle with performance when using
collocated compute and off-heap cache. The main reason is that collocated
computations access data locally, directly on the server, and with off-heap
cache all binary objects need to be deserialized for every access.

A much more efficient approach is to enable on-heap cache, so the data is
deserialized once and then stored in the on-heap cache. However, the
disadvantage of this approach is that the data foot print in memory doubles
because the data is now stores in both, on-heap and off-heap caches.

What if we suggested the following configuration for the collocated compute

   - enable the *on-heap cache* and make it large enough to fit all the data
   - enable *Ignite native persistence* in BACKGROUND mode, so there is no
   performance overhead for persisting data
   - make *off-heap cache* very small compared to the on-heap cache.

This way, the memory will be consumed by the on-heap cache mostly, the data
will be cached in deserialized form, and there should be no performance

Will this approach work?


Reply via email to