Hello, I have been struggling with this question myself for a while now too. I think the documents are very ambiguous on how exactly H2 is being used.
The document that you linked say "Apache Ignite leverages from H2's SQL query parser and optimizer as well as the execution planner. Lastly, *H2 executes a query locally* on a particular node and passes a local result to a distributed Ignite SQL engine for further processing." And "However, *the data, as well as the indexes, are always stored in the Ignite that executes queries* in a distributed and fault-tolerant manner which is not supported by H2." To me, this leaves a lot of ambiguity on how H2 is leveraged on a single Ignite node. (I get that the Reduce stage, as well as distributed transactions, are handled by Ignite, but how about the 'map' stage on a single node). How is a query executed on a single node? Example query: Select count(customer_id) from user where (age > 20) group by customer_id What steps are taken? 1. execution plan: H2 creates an execution plan 2. data retrieval: Since data is stored off-heap, it has to be brought into heap. Does H2 have anything to do with this step, or is it only Ignite? When are indexes used for that? 3. Query execution: Once the data is on heap, what executes the Query (the group_by, aggregations, filters that were not handled by indexes, etc.)? H2 or Ignite? On Fri, Sep 21, 2018 at 9:27 AM Mikhail <michael.cherka...@gmail.com> wrote: > Hi, > > Could you please formulate your question? Because right not your message > looks like a request for google. > I think the following article has answer for your question: > https://apacheignite-sql.readme.io/docs/how-ignite-sql-works > > Thanks, > Mike. > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >