Hi All, Thank you for your response. I am able to reproduce the same issue with *fullsync *mode. so I am suspecting this issue due to following steps under load. 1. Insert (success) 2. Read (success) 3. Update (success) 4. Read (Failed)
Please suggest this to me. Tanks & Regards, Charlin On Wed, 29 Jan 2025 at 01:00, Jeremy McMillan <j...@gridgain.com> wrote: > This code seems odd to me. It shouldn't matter if you're truly using > FULL_SYNC, but this might invoke some corner case code path(s). > > First we set the cache mode to partitioned, then we make the number of > backup partitions equal to running the cache in replicated mode. This makes > me very suspicious of finding other very idiosyncratic implementation > details that can make a system brittle. Why isn't this a replicated cache? > Why so many backups? Is the topology unstable? > > cg.CacheMode = CacheMode.Partitioned; > if (nodeCount > 1) > { > cg.Backups = nodeCount - 1; > } > > On Fri, Jan 24, 2025 at 3:36 AM Charlin S <charli...@hotelhub.com> wrote: > >> Hi All, >> TTL is defined at cache level and cache definition and configuration are >> CacheConfiguration cg = null; >> int nodeCount = IgniteInstanceDetail.IIgniteInstance.GetCluster(). >> ForServers().GetNodes().Count(); >> if (nodeCount == 0) >> { >> // If the node count is 0 then it will return from here itself. >> Exception custom = new Exception("Nodes are not available,Please >> check Ignite cluster." ); >> return; >> } >> >> cg = new CacheConfiguration(cacheName, new QueryEntity(typeof(string), >> typeofclass)); >> cg.CopyOnRead = false; >> cg.EagerTtl = true; >> cg.CacheMode = CacheMode.Partitioned; >> if (nodeCount > 1) >> { >> cg.Backups = nodeCount - 1; >> } >> >> var cache = Ignite.GetOrCreateCache<string, object>(cg) >> .WithExpiryPolicy(new ExpiryPolicy( >> TimeSpan.FromMinutes(60), >> TimeSpan.FromMinutes(60), >> TimeSpan.FromMinutes(60) >> )); >> >> Cache configuration >> QueryParallelism 1 >> ReadFromBackup True >> ReadThrough False >> RebalanceBatchesPrefetchCount 3 >> RebalanceBatchSize 524288 >> RebalanceDelay 00:00:00 >> RebalanceMode Async >> RebalanceOrder 0 >> RebalanceThrottle 00:00:00 >> RebalanceTimeout 00:00:10 >> SqlEscapeAll False >> SqlIndexMaxInlineSize -1 >> SqlSchema null >> StoreConcurrentLoadAllThreshold 5 >> WriteBehindBatchSize 512 >> WriteBehindCoalescing True >> WriteBehindEnabled False >> WriteBehindFlushFrequency 00:00:05 >> WriteBehindFlushSize 10240 >> WriteBehindFlushThreadCount 1 >> WriteSynchronizationMode PrimarySync >> WriteThrough False Thanks, >> Charlin >> >> >> On Fri, 24 Jan 2025 at 14:50, Stephen Darlington <sdarling...@apache.org> >> wrote: >> >>> Please also share your cache configuration. TTL is defined at the cache >>> level. >>> >>> On Fri, 24 Jan 2025 at 06:55, Charlin S <charli...@hotelhub.com> wrote: >>> >>>> Hi All, >>>> I am trying for full_sync mode meanwhile I am having doubts on TTL. >>>> TTL expires time is still longer. for me data not found happening in a >>>> minute also. still I am not sure whether expiring data immediately or >>>> reading is happening from another node. >>>> My data region size 18GB and Java process for the grid used 14.0GB. is >>>> causing TTL expiry policy earlier. >>>> My data region configuration :- >>>> <property name="dataStorageConfiguration"> >>>> <bean >>>> class="org.apache.ignite.configuration.DataStorageConfiguration"> >>>> <property name="defaultDataRegionConfiguration"> >>>> <bean >>>> class="org.apache.ignite.configuration.DataRegionConfiguration"> >>>> <property name="name" >>>> value="Common_Dynamic_Data_Region"/> >>>> <property name="initialSize" value="#{1L * 1024 >>>> * 1024 * 1024}"/> >>>> <property name="maxSize" value="#{18L * 1024 * >>>> 1024 * 1024}"/> >>>> <property name="pageEvictionMode" >>>> value="RANDOM_2_LRU"/> >>>> <property name="evictionThreshold" value="0.7"/> >>>> <property name="emptyPagesPoolSize" >>>> value="65536"/> >>>> </bean> >>>> </property> >>>> </bean> >>>> </property> >>>> >>>> Thanks >>>> Charlin >>>> >>>> >>>> On Thu, 23 Jan 2025 at 21:10, Jeremy McMillan <j...@gridgain.com> wrote: >>>> >>>>> 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 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>