ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Denis Magda <dma...@apache.org>
Subject Re: TouchedExpiryPolicy works incorrect in some cases IGNITE-4401
Date Mon, 17 Apr 2017 18:15:03 GMT
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*


Mime
View raw message