Does your app logic have a race condition between read activity and TTL expiry policy?
1. start an operation reading an object from the cache just prior to TTL expiration, successfully read 2. TTL expires, next read operation will not find that key 3. subsequent update of the object from the cache just after TTL expiration fails because the key is not found On Wed, Jan 22, 2025 at 6:09 AM Charlin S <charli...@hotelhub.com> wrote: > Hi Pavel, > We are not changing mode explicitly so its Default value is PRIMARY_SYNC > <https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cache/CacheWriteSynchronizationMode.html#PRIMARY_SYNC> > only. > > Thanks > Charlin > > > On Wed, 22 Jan 2025 at 17:29, Pavel Tupitsyn <ptupit...@apache.org> wrote: > >> Which CacheWriteSynchronizationMode [1] do you use? >> >> >> [1] >> https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cache/CacheWriteSynchronizationMode.html >> >> On Wed, Jan 22, 2025 at 1:55 PM Charlin S <charli...@hotelhub.com> wrote: >> >>> Hi Pavel, >>> >>> Data read and write happening from different client nodes. >>> Scenario:- >>> 1. Insert into cache >>> 2. Landing on the second page ( reading cache data - some time failing) >>> 3. Landing on the third page (reading cache again - some time failing) >>> >>> Web tier(2 web server) calls app tier(3 servers) for cache operation and >>> app tier connected to Ignite using tick client >>> Data insertion happening from one client node and reading happening from >>> another client node.I am not sure if this intermittent failure happening >>> when its reading from another client node. >>> >>> Thanks, >>> Charlin >>> >>> >>> >>> >>> On Wed, 22 Jan 2025 at 17:11, Pavel Tupitsyn <ptupit...@apache.org> >>> wrote: >>> >>>> Do you have an exact measurement? Could it be some race condition? Do >>>> you read from the same node/client as write? >>>> >>>> On Wed, Jan 22, 2025 at 12:31 PM Charlin S <charli...@hotelhub.com> >>>> wrote: >>>> >>>>> Hi Pavel, >>>>> I am expecting data since read is happening soon after insert. Data >>>>> expiry will happen after 1 hour. So my expectation data should be present. >>>>> >>>>> Thanks, >>>>> Charlin >>>>> >>>>> >>>>> On Wed, 22 Jan 2025 at 13:48, Pavel Tupitsyn <ptupit...@apache.org> >>>>> wrote: >>>>> >>>>>> What is the difference between expected and actual expiry time? >>>>>> >>>>>> On Wed, Jan 22, 2025 at 8:54 AM Charlin S <charli...@hotelhub.com> >>>>>> wrote: >>>>>> >>>>>>> Hi Pavel, >>>>>>> This is happening only at production environment and data >>>>>>> keynotfound exception before triggering expiry policy (expiry policy >>>>>>> time >>>>>>> still longer) >>>>>>> >>>>>>> Following configuration part of xml bean file for communication. Is >>>>>>> there any issue in that please let me know. >>>>>>> <property name="communicationSpi"> >>>>>>> <bean >>>>>>> class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi"> >>>>>>> <property name="sharedMemoryPort" value="-1"/> >>>>>>> <property name="localPort" value="57605"/> >>>>>>> </bean> >>>>>>> </property> >>>>>>> >>>>>>> Thanks & Regards, >>>>>>> Charlin >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Tue, 21 Jan 2025 at 12:49, Pavel Tupitsyn <ptupit...@apache.org> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi, please provide more details. >>>>>>>> >>>>>>>> - Do you have a reproducer? >>>>>>>> - Do you mean that expiry policy triggers sooner than expected? >>>>>>>> >>>>>>>> On Tue, Jan 21, 2025 at 9:14 AM Charlin S <charli...@hotelhub.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi All, >>>>>>>>> I am getting below error while reading data by key but data >>>>>>>>> presents cache as expiry policy time not reached. >>>>>>>>> Cache mode: Partition >>>>>>>>> Number Server Node: 2 >>>>>>>>> Number client Node : 8 >>>>>>>>> The given key was not present in the cache: >>>>>>>>> Test|2711e8b9-7411-41bc-938c-d3d4ae9722ce@$@System.Collections.Generic.KeyNotFoundException: >>>>>>>>> The given key was not present in the cache: >>>>>>>>> Test|2711e8b9-7411-41bc-938c-d3d4ae9722ce >>>>>>>>> at >>>>>>>>> Apache.Ignite.Core.Impl.Cache.CacheImpl`2.<>c__DisplayClass49_0.<Get>b__1(IBinaryStream >>>>>>>>> stream, Int64 res) >>>>>>>>> at >>>>>>>>> Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutLong[TR](Int32 >>>>>>>>> type, >>>>>>>>> Func`2 outAction, Func`3 inAction, Func`2 readErrorAction) >>>>>>>>> at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.Get(TK key) >>>>>>>>> >>>>>>>>> Thanks & Regards, >>>>>>>>> Charlin >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>