There is always one copy stored in Ignite. The key-value store keeps data and Ignite indexes it using B+trees. H2 calls Ignite’s trees when prepares execution plans.
This is partially mentioned here [1] and there [2] you can read more about the memory architecture. [1] https://apacheignite.readme.io/docs/sql-queries#section-how-sql-queries-work [2] https://apacheignite.readme.io/docs/memory-architecture <https://apacheignite.readme.io/docs/memory-architecture> — Denis > On Oct 11, 2017, at 12:21 AM, Ray <ray...@cisco.com> wrote: > > I've been reading Ignite official document and going through Ignite source > code for a few while now. > > From the source code I see that Ignite can be a key/value store and the data > is stored in a ConcurrentHashMap for every partition. > So this is one copy of data in memory. > > For Ignite SQL function, it seems like Ignite creates a H2 table in memory > based on the fields user want to be query with SQL. > So does it mean for every key with @QuerySqlField annotation, there will be > two copies of data in memory(one in ConcurrentHashMap and one in in-memory > H2 table)? > > > > > > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/