Hello, Please find below link to SQL documentation :
https://apacheignite-sql.readme.io/docs/overview You will find answers to most of your queries here. 1. H2 is only used as SQL query parsing engine and for generating execution plans. Data was/is always stored in Caches. 3. All kind of queries will copy data from off heap to on heap before returning the resultset back to client. Amount of data copied to on-heap depends on WHERE clause. Best Regards, Gaurav On 14-Sep-2018 4:39 PM, "eugene miretsky" <[email protected]> wrote: Hello, Trying to understand how exactly SQL queries are executed in Ignite. A few questions 1. To what extent is H2 used? Does it store the data? Does it create the indexes? Is it used only for generating execution plans? I believe that all the data used to be stored in H2, but with the new durable memory architecture, I believe that's no longer the case. 2. Which indexes are used? Ignite creates B+ tree indexes and stores them in Index pages, but I also see AFFINITY_KEY, _key_PK and _key_PK_hash indexes created in H2. 3. When is data brought onto the heap? I am assuming that groupby and aggregate require all the matching queries to first be copied from off-heap to heap 4. How does lazy evaluation work? For example, for group_by, does it bring batches of matching records with the same group_by key onto the heap? I am not necessarily looking for the exact answers, but rather pointer in the right direction (documentation, code, jiras) Cheers, Eugene
