Search code examples
javaignitejcache

How Apache Ignite in embedded mode with Off Heap Storage works?


I'm thinking of replacing custom built mechanism of storing key-value pair in off-heap storage(using Java NIO) with Ignite embedded mode. I don't need to share the key-value store with any other instance of the application. Is Apache Ignite in Embedded mode a good alternative? Internally, how put and get operation works on Ignite Embedded Cache? Based on Apache Ignite documents, I can understand that new Ignite node started on the same JVM as that of Application. So put and get operation must need to communicate with Ignite node using some protocol. I think put and get on Ignite Cache would likely to be slower than native put and get on my inbuilt key value store.


Solution

  • Embedded node is started within the same process, so in case of single node deployment there will be no interprocess communication and data will stored in the application's local memory. Ignite is a distributed and scalable system though, and this obviously requires additional overhead which will affect local data manipulations as well. However, it's hard to predict difference in latency, you should run tests and check.