Yes, it's reasonable.

On Wed, Apr 12, 2017 at 3:23 PM, Sergi Vladykin <sergi.vlady...@gmail.com>
wrote:

> Good point, but I'm not sure. The difference is that on client node you
> should not be able to enable isLocal, while isReplicatedOnly is perfectly
> valid. What do you think?
>
> Sergi
>
> 2017-04-12 15:18 GMT+03:00 Andrey Mashenkov <andrey.mashen...@gmail.com>:
>
> > Sergi,
> >
> > Got it.
> >
> > Does query execution way and results will be same for isReplicatedOnly
> flag
> > and for isLocal flag turned on?
> > If my understanding is correct, we will get same results and there is no
> > need to introduce a new flag.
> >
> >
> >
> > On Wed, Apr 12, 2017 at 2:54 PM, Sergi Vladykin <
> sergi.vlady...@gmail.com>
> > wrote:
> >
> > > Ok, let it be an exception. I'm just saying that the thing does not
> work
> > > now.
> > >
> > > Sergi
> > >
> > > 2017-04-12 14:50 GMT+03:00 Andrey Mashenkov <
> andrey.mashen...@gmail.com
> > >:
> > >
> > > > Sergi,
> > > >
> > > > I wounder how it is possible?
> > > >
> > > > Looks like it is impossible to run query on replicated cache, but
> > select
> > > > data from a
> > > > partitioned table. It will result with IlleagalStateException on
> stable
> > > > topology or
> > > > IgniteCacheException on unstable topology.
> > > > See ReduceQueryExecutor.stableDataNodes() and
> > > > replicatedUnstableDataNodes()
> > > >  methods.
> > > >
> > > > BTW, IlleagalStateException with no message is confusing.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Wed, Apr 12, 2017 at 2:36 PM, Sergi Vladykin <
> > > sergi.vlady...@gmail.com>
> > > > wrote:
> > > >
> > > > > Andrey,
> > > > >
> > > > > Because if you run query on replicated cache, but select data from
> a
> > > > > partitioned table, you will get only a part of the result.
> > > > >
> > > > > Igor,
> > > > >
> > > > > You are mostly right, but
> > > > >
> > > > > 1. Performance characteristics may change.
> > > > > 2. Ignite SQL processing pipeline may not support all the stuff in
> H2
> > > SQL
> > > > > and fail in some case where it worked previously.
> > > > >
> > > > > Because of this the change may affect existing applications and I
> > want
> > > to
> > > > > have it in 2.0 to make it legal.
> > > > >
> > > > > Sergi
> > > > >
> > > > > 2017-04-12 14:10 GMT+03:00 Igor Sapego <isap...@gridgain.com>:
> > > > >
> > > > > > Also, is it really a breaking change if the results are wrong?
> > > > > > To me it looks more like a bugfix, i.e. you can't break something
> > > > > > that does not work properly.
> > > > > >
> > > > > > Best Regards,
> > > > > > Igor
> > > > > >
> > > > > > On Wed, Apr 12, 2017 at 2:04 PM, Andrey Mashenkov <
> > > > > > andrey.mashen...@gmail.com> wrote:
> > > > > >
> > > > > > > Sergi,
> > > > > > >
> > > > > > > How can query to replicated cache leads to to wrong results?
> > > > > > > Is it due to we can read backup entries?
> > > > > > >
> > > > > > > On Wed, Apr 12, 2017 at 12:31 PM, Sergi Vladykin <
> > > > > > sergi.vlady...@gmail.com
> > > > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Guys,
> > > > > > > >
> > > > > > > > I want to introduce another breaking change for 2.0.
> > > > > > > >
> > > > > > > > Currently SQL is being processed differently when we call
> > method
> > > > > > `query`
> > > > > > > on
> > > > > > > > partitioned cache and on replicated: on replicated cache we
> do
> > > not
> > > > do
> > > > > > any
> > > > > > > > extra processing and execute the query as is on current node.
> > > > > > > >
> > > > > > > > This behavior historically existed for performance reasons.
> But
> > > it
> > > > is
> > > > > > not
> > > > > > > > obvious and leads to wrong query results. This issue becomes
> > even
> > > > > more
> > > > > > > > creepy with JDBC and ODBC drivers.
> > > > > > > >
> > > > > > > > In 2.0 I want to execute all the SQL queries the same way
> > through
> > > > the
> > > > > > > whole
> > > > > > > > processing pipeline to guaranty the correct result
> > irrespectively
> > > > to
> > > > > > the
> > > > > > > > cache that was the query originator.
> > > > > > > >
> > > > > > > > To be able to have the old behavior (skip all the
> preprocessing
> > > and
> > > > > run
> > > > > > > > query on current node) add a flag isReplicatedOnly() on
> > SqlQuery
> > > > and
> > > > > > > > SqlFieldsQuery. It will be disabled by default and if one
> knows
> > > > that
> > > > > > the
> > > > > > > > only replicated tables participate in a query, then he can
> > enable
> > > > it
> > > > > > for
> > > > > > > > better performance.
> > > > > > > >
> > > > > > > > Sergi
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Best regards,
> > > > > > > Andrey V. Mashenkov
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Best regards,
> > > > Andrey V. Mashenkov
> > > >
> > >
> >
> >
> >
> > --
> > Best regards,
> > Andrey V. Mashenkov
> >
>



-- 
Best regards,
Andrey V. Mashenkov

Reply via email to