Serj,  you can see a PR attached to jira issue [1], that can be opened with
upsource [2].

Tanks, I remember about distributed queries and wiil rework them right
after we come to agreemant that the solution for simple queries is ok.

[1] https://issues.apache.org/jira/browse/IGNITE-4106
[2] http://reviews.ignite.apache.org/ignite/review/IGNT-CR-15



On Wed, Nov 30, 2016 at 5:34 PM, Sergi Vladykin <sergi.vlady...@gmail.com>
wrote:

> Per cache SQL parallelism level looks reasonable to me here.
>
> I'm not sure what do you mean about "prepared statement cache is useless
> with splitted indices", most probably you parallelize queries in some wrong
> way if this is true.
>
> Also do not forget about distributed joins: with parallel queries on the
> same node we will need to make index range requests not only to remote
> nodes, but to query contexts in parallel threads on the same local node as
> well.
>
> Sergi
>
> 2016-11-30 17:23 GMT+03:00 Andrey Mashenkov <andrey.mashen...@gmail.com>:
>
> > It looks like we can't just split sql query to several threads due to H2
> > limitations.
> > We can bound query thread with certain set of partitions, but, actually,
> H2
> > will read whole index and then filter entries regarding its partition.
> So,
> > we can get significant speed-up that way.
> >
> > Unfortunatelly, H2 does not support sharding, and we need to have a
> > workaround. We can try to split indices, so each query thread would be
> > bounded with its own index part.
> > I've implemented such prototype and get significant speed up with single
> > node grid as if it was several node grid.
> > Due to H2 knows nothing about splitted indices, we must bother about
> every
> > query should be run as TwoStepQuery and utilize all table index parts.
> >
> > As index creation on demand is very heavy operation, index should be
> > splitted when it is created. So we can set parallelizm level on per-cache
> > base but not per-query.
> >
> > Another issue I've faced is that our implementation of prepared statement
> > cache is useless with splitted indices. Prepared statement cached  in
> > thread local variable and it seems that the statement is bounded with
> > certain index part. So if we reuse same statement for different index
> parts
> > we will get unexpected results.
> >
> > On Sun, Oct 30, 2016 at 8:46 PM, Dmitriy Setrakyan <
> dsetrak...@apache.org>
> > wrote:
> >
> > > Completely agree, great point!
> > >
> > > On Sun, Oct 30, 2016 at 9:17 AM, Sergi Vladykin <
> > sergi.vlady...@gmail.com>
> > > wrote:
> > >
> > > > I think it must be a maximum local parallelism level but not just
> `on`
> > > and
> > > > `off` setting (the default is obviously 1). This along with
> separately
> > > > configurable query thread pool will give a finer grained control over
> > > > resources.
> > > >
> > > > Sergi
> > > >
> > > > 2016-10-30 18:22 GMT+03:00 Dmitriy Setrakyan <dsetrak...@apache.org
> >:
> > > >
> > > > > I already mentioned this in another email, but we should be able to
> > > turn
> > > > > this property on and off on per-query and per-cache levels.
> > > > >
> > > > > On Sat, Oct 29, 2016 at 11:45 AM, Sergi Vladykin <
> > > > sergi.vlady...@gmail.com
> > > > > >
> > > > > wrote:
> > > > >
> > > > > > Agree, lets implement such a parallelization.
> > > > > >
> > > > > > I think we will need an explicit setting for SqlQuery and
> > > > SqlFieldsQuery,
> > > > > > the default behavior should not change.
> > > > > >
> > > > > > Sergi
> > > > > >
> > > > > > 2016-10-28 22:39 GMT+03:00 Andrey Mashenkov <
> > amashen...@gridgain.com
> > > >:
> > > > > >
> > > > > > > So, now we have every SQL query run on each node in single
> > thread.
> > > > This
> > > > > > can
> > > > > > > be an issue for heavy queries or queries running on big data
> > sets,
> > > > e.g.
> > > > > > > analytical queries.
> > > > > > >
> > > > > > > For now, the only way to speed up such queries is to add more
> > nodes
> > > > to
> > > > > > grid
> > > > > > > running on same server. In this case, data will be partitioned
> > over
> > > > all
> > > > > > > these nodes and query will be split and run on all nodes.
> > > > > > >
> > > > > > > It seems, we can have a benefit if split SQL queries locally as
> > we
> > > do
> > > > > it
> > > > > > > across nodes with TwoStepQuery.
> > > > > > >
> > > > > > >
> > > > > > > Thoughts?
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> >
> >
> > --
> > С уважением,
> > Машенков Андрей Владимирович
> > Тел. +7-921-932-61-82
> >
> > Best regards,
> > Andrey V. Mashenkov
> > Cerr: +7-921-932-61-82
> >
>



-- 
С уважением,
Машенков Андрей Владимирович
Тел. +7-921-932-61-82

Best regards,
Andrey V. Mashenkov
Cerr: +7-921-932-61-82

Reply via email to