[ 
https://issues.apache.org/jira/browse/IGNITE-4106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15667581#comment-15667581
 ] 

Andrew Mashenkov commented on IGNITE-4106:
------------------------------------------

We need to split GridH2TreeIndex into segments, to each thread can work with 
its own segment. 

GridH2Tree.doFind method is feasible candidate. Partition filter that was saved 
in GridH2QueryContext is accessed in doFind method. We can add additional 
context property to transfer some "segment index" instead of using partition 
filter. This will reduce message size and simplify code, due to we shouldn't be 
bothered with distributing partitions among the threads in 
GridReduceQueryExecutor. 


> SQL: parallelize sql queries over cache local partitions
> --------------------------------------------------------
>
>                 Key: IGNITE-4106
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4106
>             Project: Ignite
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 1.6, 1.7
>            Reporter: Andrew Mashenkov
>            Assignee: Andrew Mashenkov
>              Labels: performance
>         Attachments: 1node-4thread.jfr, 4node-1thread.jfr
>
>
> If we run SQL query on cache partitioned over several cluster nodes, it will 
> be split into several queries running in parallel. But really we will have 
> one thread per query on each node.
> So, for now, to improve SQL query performance we need to run more Ignite 
> instances or split caches manually.
> It seems to be better to split local SQL queries over cache partitions, so we 
> would be able to parallelize SQL query on every single node and utilize CPU 
> more efficiently.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to