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
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>

Reply via email to