Hello Charlin,

As I wrote, the first option is the `full sync` mode:
CacheConfiguration.WriteSynchronizationMode =
CacheWriteSynchronizationMode.FullSync [1]
The second one is disabling reading from backups:
CacheConfiguration.ReadFromBackup = false [2]

[1]
https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html#Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_WriteSynchronizationMode
[2]
https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html#Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_ReadFromBackup

Thanks,
S.


ср, 12 июн. 2024 г. в 12:58, Charlin S <charli...@hotelhub.com>:

> Hi  Slava Koptilin
>
> Thanks for your email.
>
> Cache configuration used at time of cache creation in C# code. Please
> suggest me if any configuration changes required in cache level or grid
> level
> CacheConfiguration.CopyOnRead=false
> CacheConfiguration.EagerTtl=true
> CacheConfiguration.CacheMode = CacheMode.Partitioned
> CacheConfiguration.Backups = 1
>
> *Client node xml bean*
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans";
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>        xmlns:util="http://www.springframework.org/schema/util";
>        xsi:schemaLocation="http://www.springframework.org/schema/beans
>
> http://www.springframework.org/schema/beans/spring-beans.xsd
>                            http://www.springframework.org/schema/util
>
> http://www.springframework.org/schema/util/spring-util.xsd";>
>   <bean class="org.apache.ignite.configuration.IgniteConfiguration">
>     <property name="clientMode" value="true"/>
>     <property name="clientFailureDetectionTimeout" value="120000"/>
>     <property name="igniteInstanceName" value="DynamicGrid_Prod"/>
>     <property name="longQueryWarningTimeout" value="4000"/>
>     <property name="failureDetectionTimeout" value="120000"/>
>     <property name="localHost" value="1.0.0.3"/>
>     <property name="segmentationPolicy" value="RESTART_JVM"/>
>     <property name="segmentCheckFrequency" value="20000"/>
>     <property name="segmentationResolveAttempts" value="10"/>
>     <property name="discoverySpi">
>       <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
> <property name="localPort" value="55500"/>
>         <property name="ipFinder">
>           <bean
> class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
>             <property name="addresses">
>               <list>
> <value>1.0.0.1:55500</value>
>
> <value>1.0.0.2:55500</value>
>               </list>
>             </property>
>           </bean>
>         </property>
>       </bean>
>     </property>
> <property name="communicationSpi">
>         <bean
> class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
>    <property name="sharedMemoryPort" value="-1"/>
>             <property name="localPort" value="55605"/>
>         </bean>
>     </property>
>   </bean>
> </beans>
>
> *Server node xml bean*
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans";
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>        xmlns:util="http://www.springframework.org/schema/util";
>        xsi:schemaLocation="http://www.springframework.org/schema/beans
>
> http://www.springframework.org/schema/beans/spring-beans.xsd
>                            http://www.springframework.org/schema/util
>
> http://www.springframework.org/schema/util/spring-util.xsd";>
>   <bean id="expireCache"
> class="org.apache.ignite.configuration.CacheConfiguration" abstract="true">
>     <property name="expiryPolicyFactory">
>         <bean class="javax.cache.expiry.CreatedExpiryPolicy"
> factory-method="factoryOf">
>             <constructor-arg>
>                 <bean class="javax.cache.expiry.Duration">
>                     <constructor-arg value="MINUTES"/>
>                     <constructor-arg value="60"/>
>                 </bean>
>             </constructor-arg>
>        </bean>
>     </property>
>   </bean>
>   <bean class="org.apache.ignite.configuration.IgniteConfiguration">
>     <property name="clientMode" value="false"/>
>     <property name="clientFailureDetectionTimeout" value="120000"/>
>     <property name="igniteInstanceName" value="DynamicGrid_Prod"/>
>     <property name="longQueryWarningTimeout" value="4000"/>
>     <property name="failureDetectionTimeout" value="120000"/>
>     <property name="localHost" value="1.0.0.1"/>
>     <property name="segmentationPolicy" value="RESTART_JVM"/>
>     <property name="segmentCheckFrequency" value="20000"/>
>     <property name="segmentationResolveAttempts" value="10"/>
>     <property name="discoverySpi">
>       <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
>         <property name="localPort" value="55500"/>
>         <property name="ipFinder">
>           <bean
> class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
>             <property name="addresses">
>               <list>
>                         <value>1.0.0.1:55500</value>
>                         <value>1.0.0.2:55500</value>
>               </list>
>             </property>
>           </bean>
>         </property>
>       </bean>
>     </property>
>    <property name="cacheConfiguration">
>                         <list>
>                                 <bean parent="expireCache">
>                                         <property name="name"
> value="TestModel1"/>
>                                 </bean>
>                                 <bean parent="expireCache">
>                                         <property name="name"
> value="TestModel2"/>
>                                 </bean>
>                                 <bean parent="expireCache">
>                                         <property name="name"
> value="TestModel3"/>
>                                 </bean>
>                                 <bean parent="expireCache">
>                                         <property name="name"
> value="TestModel4"/>
>                                 </bean>
>                                 <bean parent="expireCache">
>                                         <property name="name"
> value="TestModel5"/>
>                                 </bean>
>                         </list>
>                 </property>
>         <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>
>         <property name="communicationSpi">
>         <bean
> class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
>             <property name="sharedMemoryPort" value="-1"/>
>             <property name="localPort" value="55605"/>
>         </bean>
>     </property>
>   </bean>
> </beans>
>
> Thanks & Regards,
> Charlin
>
>
>
> On Wed, 12 Jun 2024 at 13:07, Вячеслав Коптилин <slava.kopti...@gmail.com>
> wrote:
>
>> Hi Charlin,
>>
>> I mean that it might be "well-known" behavior if you use `primary sync`
>> mode and the `readFromBackup` property equals `true` (which is `true` by
>> default).
>>
>> The first option, to overcome this problem, is using `full sync` mode. In
>> that case, the update request will wait for the write to complete on all
>> participating nodes (primary and backups).
>> The second option, that can be used here, is to use 'primary sync' and
>> set 'CacheConfiguration#readFromBackup' flag to false. Ignite will always
>> send the request to the primary node and get the value from there.
>>
>> Thanks,
>> S.
>>
>> пн, 10 июн. 2024 г. в 14:22, Вячеслав Коптилин <slava.kopti...@gmail.com
>> >:
>>
>>> Hello Charlin,
>>>
>>> Could you share your cache configuration? Specifically, what values are
>>> used for `readFromBackup` and `writeSynchronizationMode`.
>>>
>>> Thanks,
>>> S.
>>>
>>> ср, 5 июн. 2024 г. в 15:49, Charlin S <charli...@hotelhub.com>:
>>>
>>>> Hi All,
>>>> I am unable to fetch data from cache by reading by
>>>> key.intermittently (very rarely).
>>>>
>>>> Ignite version: 2.10
>>>> Cache mode: Partition
>>>> Client : C# with Ignite thick client
>>>>
>>>> Scenario:
>>>> My C# application received a request for cache data insertion
>>>> @ 09:09:35 and successfully insertion initiated at application side.
>>>> Thereafter @ 09:10:21 C# application received a request to read cache
>>>> data for the same key and Ignite TryGet could not fetch data.
>>>> Note: We are able to get cache data by the same key after some time.
>>>>
>>>> Cache creation code
>>>> var IgniteCache= IIgnite.GetCache<string, cacheModel>("cacheModel")
>>>>         .WithExpiryPolicy(new ExpiryPolicy(
>>>>              TimeSpan.FromMinutes(60),
>>>>              TimeSpan.FromMinutes(60),
>>>>              TimeSpan.FromMinutes(60)
>>>>              ));
>>>>
>>>> Cache data insertion code
>>>> IgniteCache.Put(cacheKey, (T)data);
>>>>
>>>> Cache data reading code
>>>>   IgniteCache.TryGet(Key, out var value);
>>>>
>>>> Thanks & Regards,
>>>> Charlin
>>>>
>>>>
>>>>
>>>>

Reply via email to