You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Prasad Bhalerao <pr...@gmail.com> on 2018/10/19 14:35:32 UTC

GridMergeTable

Hi,

I was debugging ignite sql execution code for following query.

SELECT id, moduleId,ipEnd, ipStart
FROM IpContainerIpV4Data USE INDEX(ip_container_ipv4_idx1)
WHERE subscriptionId = ?  AND moduleId         = ? AND (ipStart        <= ?
AND ipEnd           >= ?)
UNION ALL
SELECT id, moduleId,ipEnd, ipStart
FROM IpContainerIpV4Data USE INDEX(ip_container_ipv4_idx1)
WHERE subscriptionId = ? AND moduleId         = ? AND (ipStart        <= ?
AND ipEnd           >= ?)
UNION ALL
SELECT id, moduleId,ipEnd, ipStart
FROM IpContainerIpV4Data USE INDEX(ip_container_ipv4_idx1)
WHERE subscriptionId = ? AND moduleId         = ? AND (ipStart        >= ?
AND ipEnd           <= ?)

I found that ignite splits this union query into 3 different map queries
and then creates GridMergeTable. [code::
GridReduceQueryExecutor.createMergeTable]. But could not spend more time on
debugging.

Is this a in-memory temp table or real table created in H2 DB in file
system.

Can some please explain this?

If it is In memory table then how does ignite handle and merge/sort/group
large results sets which does not fit into application heap ?

Thanks,
Prasad

Re: GridMergeTable

Posted by "ilya.kasnacheev" <il...@gmail.com>.
Hello!

GridMergeTable is H2 table which is stored on Java heap.

This means you have to plan carefully and make sure that you always have
enough heap for merge/sort/group.

Regards,



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/