ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ALEKSEY KUZNETSOV <alkuznetsov...@gmail.com>
Subject Re: TouchedExpiryPolicy works incorrect in some cases IGNITE-4401
Date Tue, 18 Apr 2017 09:21:39 GMT
Yeah. I've already run the test with two caches. Definately, the bug hidden
in cache.query() method. cache.query() calls
IgniteH2Indexing#queryLocalSql(), which calls executeSqlQueryWithTimer, and
then it sinks into JdbcPreparedStatement.executeQuery(). There is no
key-value operations subsequent

пн, 17 апр. 2017 г. в 21:15, Denis Magda <dmagda@apache.org>:

> It doesn’t matter who is right and who is wrong unless someone gets to the
> bottom of the issue debugging it.
>
> I would suggest to create a simple unit test with two caches and trying to
> reproduce the following without computations and other redundant stuff.
> Would you like to work on this?
>
> —
> Denis
>
> > On Apr 17, 2017, at 12:44 AM, ALEKSEY KUZNETSOV <
> alkuznetsov.sb@gmail.com> wrote:
> >
> > Why do u think so.
> > First of all, the output above is not correct. After 3 iteration
> key-value
> > API strats to return empty value.
> >
> > Every 5 seconds(iteration sleep time)
> repository.getAttributes("1").size()
> > is got called. Which makes an entry "touch" and the entry wont be expired
> > for as long as 10 seconds.
> >
> > Expiry policy says:
> >
> > An {@link ExpiryPolicy} that defines the expiry {@link Duration}
> > * of a Cache Entry based on when it was last touched. A touch includes
> > ** creation, update or **access**.*
> >
> >
> > пт, 14 апр. 2017 г. в 18:42, Denis Magda <dmagda@apache.org>:
> >
> >> The iteration happens multiple time which means that the key-value API
> had
> >> to return an empty result set on second or third iteration. But this
> never
> >> happens.
> >>
> >> In any case, do you want to find a root of the issue and fix it?
> >> Otherwise, we can update the description and wait while someone else
> fixes
> >> it.
> >>
> >> —
> >> Denis
> >>
> >>> On Apr 14, 2017, at 1:33 AM, ALEKSEY KUZNETSOV <
> alkuznetsov.sb@gmail.com>
> >> wrote:
> >>>
> >>> Because expiry time is 10 seconds, while loop iterates every 5 seconds
> >>>
> >>> пт, 14 апр. 2017 г. в 11:32, ALEKSEY KUZNETSOV <
> alkuznetsov.sb@gmail.com
> >>> :
> >>>
> >>>> No, the bug is in SQL query, not key-value storage.
> >>>>
> >>>> пт, 14 апр. 2017 г. в 11:11, Vladislav Pyatkov <vldpyatkov@gmail.com
> >:
> >>>>
> >>>>> Denis, Aleksey,
> >>>>>
> >>>>> It is correct, remember I have already said something like[1].
> >>>>> I have no idea, why this happened in this case with SQL.
> >>>>>
> >>>>> [1]:
> >>>>>
> >>>>>
> >>
> http://apache-ignite-developers.2346864.n4.nabble.com/TouchedExpiryPolicy-works-incorrect-in-some-cases-IGNITE-4401-td16349.html#a16356
> >>>>>
> >>>>> On Fri, Apr 14, 2017 at 4:29 AM, Denis Magda <dmagda@apache.org>
> >> wrote:
> >>>>>
> >>>>>> I could reproduce the issue and this should be what Denis K.
meant
> by
> >>>>>> saying “expiration policy works incorrectly”.
> >>>>>>
> >>>>>> If you remove the expiration policy from the caches' configuration
> >> then
> >>>>>> the issue disappears. In general, SQL engine processes an expiration
> >>>>> event
> >>>>>> properly because the SQL queries return an empty result set
as
> >> expected
> >>>>> but
> >>>>>> something doesn’t work well with key-value operations.
> >>>>>>
> >>>>>> *Denis K*, *Vlad P.*, as creators of the ticket please confirm
that
> >> this
> >>>>>> is the case.
> >>>>>>
> >>>>>> Please keep debugging this and switch to the latest Ignite version.
> >>>>>>
> >>>>>> —
> >>>>>> Denis
> >>>>>>
> >>>>>>
> >>>>>>> On Apr 13, 2017, at 4:22 AM, ALEKSEY KUZNETSOV <
> >>>>> alkuznetsov.sb@gmail.com>
> >>>>>> wrote:
> >>>>>>>
> >>>>>>> any feedback?
> >>>>>>>
> >>>>>>> чт, 13 апр. 2017 г. в 11:51, ALEKSEY KUZNETSOV <
> >>>>> alkuznetsov.sb@gmail.com
> >>>>>>> :
> >>>>>>>
> >>>>>>>> You should run ExpiryPolicyTest. The output should contain
strings
> >>>>> like
> >>>>>>>> contains? new AffinityKey("1", "1"): and contains?2
new
> >>>>>> AffinityKey("1", "
> >>>>>>>> 1"): and empty cursor? =
> >>>>>>>> If you look at them you will see, that cache contains
affinity key
> >>>>> new
> >>>>>>>> AffinityKey("1", "1") whereas cursor is empty(on second
> iteration).
> >>>>> From
> >>>>>>>> this output you can conclude SQL query returns icorrect
data(empty
> >>>>>> value)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> чт, 13 апр. 2017 г. в 3:42, Denis Magda <dmagda@apache.org>:
> >>>>>>>>
> >>>>>>>>> Bluntly speaking I have no idea where to look and
what to expect.
> >>>>> This
> >>>>>> is
> >>>>>>>>> output of the test execution of my machine:
> >>>>>>>>>
> >>>>>>>>> SQL res: [[1], [d]]
> >>>>>>>>> 2
> >>>>>>>>> Op consume: 303
> >>>>>>>>> Value: org.ignite.test.EDU@22db8f4
> >>>>>>>>> SQL res: []
> >>>>>>>>> 0
> >>>>>>>>> Op consume: 9
> >>>>>>>>> Value: org.ignite.test.EDU@29caf222
> >>>>>>>>> SQL res: []
> >>>>>>>>> 0
> >>>>>>>>> Op consume: 15
> >>>>>>>>> Value: org.ignite.test.EDU@7cd1ac19
> >>>>>>>>> SQL res: []
> >>>>>>>>> 0
> >>>>>>>>> Op consume: 5
> >>>>>>>>>
> >>>>>>>>> Please be more specific, there are too many files
in the code.
> >>>>>>>>>
> >>>>>>>>> —
> >>>>>>>>> Denis
> >>>>>>>>>
> >>>>>>>>>> On Apr 12, 2017, at 4:50 AM, ALEKSEY KUZNETSOV
<
> >>>>>>>>> alkuznetsov.sb@gmail.com> wrote:
> >>>>>>>>>>
> >>>>>>>>>> So what do u think about the issue ?
> >>>>>>>>>>
> >>>>>>>>>> ср, 12 апр. 2017 г. в 10:42, ALEKSEY
KUZNETSOV <
> >>>>>>>>> alkuznetsov.sb@gmail.com>:
> >>>>>>>>>>
> >>>>>>>>>>> I have already attached simlified version.
Shall i simplify it
> >>>>> more ?
> >>>>>>>>>>>
> >>>>>>>>>>> вт, 11 апр. 2017 г. в 19:28, Denis
Magda <dmagda@apache.org>:
> >>>>>>>>>>>
> >>>>>>>>>>> Can you attach the simplified version? Just
want to avoid any
> >> side
> >>>>>>>>> effects.
> >>>>>>>>>>>
> >>>>>>>>>>> —
> >>>>>>>>>>> Denis
> >>>>>>>>>>>
> >>>>>>>>>>>> On Apr 11, 2017, at 9:14 AM, ALEKSEY
KUZNETSOV <
> >>>>>>>>> alkuznetsov.sb@gmail.com>
> >>>>>>>>>>> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>> I took it from
> >> https://issues.apache.org/jira/browse/IGNITE-4401
> >>>>> <
> >>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-4401>
and
> >>>>> simplified .
> >>>>>>>>> See
> >>>>>>>>>>> in attached
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> вт, 11 апр. 2017 г. в 19:03,
Denis Magda <dmagda@apache.org
> >>>>>> <mailto:
> >>>>>>>>>>> dmagda@apache.org>>:
> >>>>>>>>>>>> Hello,
> >>>>>>>>>>>>
> >>>>>>>>>>>> Do you have sample code?
> >>>>>>>>>>>>
> >>>>>>>>>>>> —
> >>>>>>>>>>>> Denis
> >>>>>>>>>>>>> On Apr 11, 2017, at 2:45 AM, ALEKSEY
KUZNETSOV <
> >>>>>>>>>>> alkuznetsov.sb@gmail.com <mailto:alkuznetsov.sb@gmail.com>>
> >>>>> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Hi, igniters!
> >>>>>>>>>>>>> While doing
> https://issues.apache.org/jira/browse/IGNITE-4401
> >> <
> >>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-4401>
ticket i
> came
> >>>>>>>>>>>>> across the fact that cache querying
returns null , while
> cache
> >>>>>> still
> >>>>>>>>>>> has
> >>>>>>>>>>>>> got entry.
> >>>>>>>>>>>>> Cache query : SELECT nameProp FROM
EDUProp WHERE EDUId = 1
> >>>>>>>>>>>>> Cache get operation : ignite().cache("eduPropCache").get(new
> >>>>>>>>>>> AffinityKey("1",
> >>>>>>>>>>>>> "1")) non-null
> >>>>>>>>>>>>> I cannot even imagine what could
be wrong with it.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> --
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> *Best Regards,*
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> *Kuznetsov Aleksey*
> >>>>>>>>>>>>
> >>>>>>>>>>>> --
> >>>>>>>>>>>> Best Regards,
> >>>>>>>>>>>>
> >>>>>>>>>>>> Kuznetsov Aleksey
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> --
> >>>>>>>>>>>
> >>>>>>>>>>> *Best Regards,*
> >>>>>>>>>>>
> >>>>>>>>>>> *Kuznetsov Aleksey*
> >>>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>>
> >>>>>>>>>> *Best Regards,*
> >>>>>>>>>>
> >>>>>>>>>> *Kuznetsov Aleksey*
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>
> >>>>>>>> *Best Regards,*
> >>>>>>>>
> >>>>>>>> *Kuznetsov Aleksey*
> >>>>>>>>
> >>>>>>> --
> >>>>>>>
> >>>>>>> *Best Regards,*
> >>>>>>>
> >>>>>>> *Kuznetsov Aleksey*
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Vladislav Pyatkov
> >>>>>
> >>>> --
> >>>>
> >>>> *Best Regards,*
> >>>>
> >>>> *Kuznetsov Aleksey*
> >>>>
> >>> --
> >>>
> >>> *Best Regards,*
> >>>
> >>> *Kuznetsov Aleksey*
> >>
> >> --
> >
> > *Best Regards,*
> >
> > *Kuznetsov Aleksey*
>
> --

*Best Regards,*

*Kuznetsov Aleksey*

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message