[jira] [Updated] (IGNITE-16135) Expiry policy is not applied to Ignite cache after serialization

2022-05-16 Thread Alexey Kukushkin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexey Kukushkin updated IGNITE-16135:
--
Remaining Estimate: 56h  (was: 40h)
 Original Estimate: 56h  (was: 40h)

> Expiry policy is not applied to Ignite cache after serialization
> 
>
> Key: IGNITE-16135
> URL: https://issues.apache.org/jira/browse/IGNITE-16135
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.11
>Reporter: Alexey Kukushkin
>Priority: Major
>  Labels: cggg
>   Original Estimate: 56h
>  Remaining Estimate: 56h
>
> Expiry Policy specified in Ignite cache operation context is not applied to 
> the cache after the cache serialization/deserialization.
> h3. Steps to Reproduce
>  # Run an Ignite server with a cache without expiry policy
>  # A client node joins the server, gets the cache proxy and applies expiry 
> policy to the cache proxy
>  # The client executes a Compute task taking the cache proxy as a parameter 
> on the server.
>  # The Compute task puts an entry to the cache using the cache proxy received 
> from the client.
>  # The client sleeps for a time period longer than the TTL specified for the 
> expiry policy
>  # The client checks if the entry that the Compute task added still exists
> h3. Expected
> The entry does not exist since it must expire
> h3. Actual
> The entry still exists in the cache.
> h3. Reproducer
> {code:java}
> public class IgniteCacheSerializationTest {
> /** Expiry Policy specified in Ignite cache operation context is enabled 
> after the cache serialization. */
> @Test
> public void igniteCacheWithExpiryPolicySerialization() throws 
> InterruptedException {
> var cacheName = "cache1";
> var ttl = 1000;
> Supplier igniteCfgFactory = () ->
> new IgniteConfiguration()
> .setDiscoverySpi(
> new TcpDiscoverySpi()
> .setIpFinder(
> new 
> TcpDiscoveryVmIpFinder().setAddresses(Collections.singleton("127.0.0.1:47500"))
> )
> )
> .setCacheConfiguration(new CacheConfiguration<>(cacheName));
> try (var ignored = 
> Ignition.start(igniteCfgFactory.get().setIgniteInstanceName("server"))) {
> try (var ignite = Ignition.start(
> 
> igniteCfgFactory.get().setIgniteInstanceName("test").setClientMode(true))
> ) {
> // Apply a 1-second expiry policy to the cache
> var expiryPolicy = TouchedExpiryPolicy.factoryOf(new 
> Duration(TimeUnit.MILLISECONDS, ttl)).create();
> var cache = ignite. String>cache(cacheName).withExpiryPolicy(expiryPolicy);
> // Run a Compute Task that serializes the cache with the 
> 1-second expiry policy applied.
> // The task adds a key 1 to the cache
> ignite.compute().affinityRun(cacheName, 1, new Put1(cache));
> // Sleep for a time twice longer than the TTL
> Thread.sleep(ttl * 2);
> // The key 1 must expiry by this time
> assertFalse(cache.containsKey(1), "The entry still exists in 
> the cache");
> }
> }
> }
> private static final class Put1 implements IgniteRunnable {
> private final IgniteCache cache;
> public Put1(IgniteCache cache) {
> this.cache = cache;
> }
> @Override public void run() {
> cache.put(1, "ignored");
> }
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16135) Expiry policy is not applied to Ignite cache after serialization

2022-05-12 Thread Alexey Kukushkin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexey Kukushkin updated IGNITE-16135:
--
Remaining Estimate: 40h  (was: 168h)
 Original Estimate: 40h  (was: 168h)

> Expiry policy is not applied to Ignite cache after serialization
> 
>
> Key: IGNITE-16135
> URL: https://issues.apache.org/jira/browse/IGNITE-16135
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.11
>Reporter: Alexey Kukushkin
>Priority: Major
>  Labels: cggg
>   Original Estimate: 40h
>  Remaining Estimate: 40h
>
> Expiry Policy specified in Ignite cache operation context is not applied to 
> the cache after the cache serialization/deserialization.
> h3. Steps to Reproduce
>  # Run an Ignite server with a cache without expiry policy
>  # A client node joins the server, gets the cache proxy and applies expiry 
> policy to the cache proxy
>  # The client executes a Compute task taking the cache proxy as a parameter 
> on the server.
>  # The Compute task puts an entry to the cache using the cache proxy received 
> from the client.
>  # The client sleeps for a time period longer than the TTL specified for the 
> expiry policy
>  # The client checks if the entry that the Compute task added still exists
> h3. Expected
> The entry does not exist since it must expire
> h3. Actual
> The entry still exists in the cache.
> h3. Reproducer
> {code:java}
> public class IgniteCacheSerializationTest {
> /** Expiry Policy specified in Ignite cache operation context is enabled 
> after the cache serialization. */
> @Test
> public void igniteCacheWithExpiryPolicySerialization() throws 
> InterruptedException {
> var cacheName = "cache1";
> var ttl = 1000;
> Supplier igniteCfgFactory = () ->
> new IgniteConfiguration()
> .setDiscoverySpi(
> new TcpDiscoverySpi()
> .setIpFinder(
> new 
> TcpDiscoveryVmIpFinder().setAddresses(Collections.singleton("127.0.0.1:47500"))
> )
> )
> .setCacheConfiguration(new CacheConfiguration<>(cacheName));
> try (var ignored = 
> Ignition.start(igniteCfgFactory.get().setIgniteInstanceName("server"))) {
> try (var ignite = Ignition.start(
> 
> igniteCfgFactory.get().setIgniteInstanceName("test").setClientMode(true))
> ) {
> // Apply a 1-second expiry policy to the cache
> var expiryPolicy = TouchedExpiryPolicy.factoryOf(new 
> Duration(TimeUnit.MILLISECONDS, ttl)).create();
> var cache = ignite. String>cache(cacheName).withExpiryPolicy(expiryPolicy);
> // Run a Compute Task that serializes the cache with the 
> 1-second expiry policy applied.
> // The task adds a key 1 to the cache
> ignite.compute().affinityRun(cacheName, 1, new Put1(cache));
> // Sleep for a time twice longer than the TTL
> Thread.sleep(ttl * 2);
> // The key 1 must expiry by this time
> assertFalse(cache.containsKey(1), "The entry still exists in 
> the cache");
> }
> }
> }
> private static final class Put1 implements IgniteRunnable {
> private final IgniteCache cache;
> public Put1(IgniteCache cache) {
> this.cache = cache;
> }
> @Override public void run() {
> cache.put(1, "ignored");
> }
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16135) Expiry policy is not applied to Ignite cache after serialization

2022-05-12 Thread Alexey Kukushkin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexey Kukushkin updated IGNITE-16135:
--
Remaining Estimate: 168h
 Original Estimate: 168h

> Expiry policy is not applied to Ignite cache after serialization
> 
>
> Key: IGNITE-16135
> URL: https://issues.apache.org/jira/browse/IGNITE-16135
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.11
>Reporter: Alexey Kukushkin
>Priority: Major
>  Labels: cggg
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Expiry Policy specified in Ignite cache operation context is not applied to 
> the cache after the cache serialization/deserialization.
> h3. Steps to Reproduce
>  # Run an Ignite server with a cache without expiry policy
>  # A client node joins the server, gets the cache proxy and applies expiry 
> policy to the cache proxy
>  # The client executes a Compute task taking the cache proxy as a parameter 
> on the server.
>  # The Compute task puts an entry to the cache using the cache proxy received 
> from the client.
>  # The client sleeps for a time period longer than the TTL specified for the 
> expiry policy
>  # The client checks if the entry that the Compute task added still exists
> h3. Expected
> The entry does not exist since it must expire
> h3. Actual
> The entry still exists in the cache.
> h3. Reproducer
> {code:java}
> public class IgniteCacheSerializationTest {
> /** Expiry Policy specified in Ignite cache operation context is enabled 
> after the cache serialization. */
> @Test
> public void igniteCacheWithExpiryPolicySerialization() throws 
> InterruptedException {
> var cacheName = "cache1";
> var ttl = 1000;
> Supplier igniteCfgFactory = () ->
> new IgniteConfiguration()
> .setDiscoverySpi(
> new TcpDiscoverySpi()
> .setIpFinder(
> new 
> TcpDiscoveryVmIpFinder().setAddresses(Collections.singleton("127.0.0.1:47500"))
> )
> )
> .setCacheConfiguration(new CacheConfiguration<>(cacheName));
> try (var ignored = 
> Ignition.start(igniteCfgFactory.get().setIgniteInstanceName("server"))) {
> try (var ignite = Ignition.start(
> 
> igniteCfgFactory.get().setIgniteInstanceName("test").setClientMode(true))
> ) {
> // Apply a 1-second expiry policy to the cache
> var expiryPolicy = TouchedExpiryPolicy.factoryOf(new 
> Duration(TimeUnit.MILLISECONDS, ttl)).create();
> var cache = ignite. String>cache(cacheName).withExpiryPolicy(expiryPolicy);
> // Run a Compute Task that serializes the cache with the 
> 1-second expiry policy applied.
> // The task adds a key 1 to the cache
> ignite.compute().affinityRun(cacheName, 1, new Put1(cache));
> // Sleep for a time twice longer than the TTL
> Thread.sleep(ttl * 2);
> // The key 1 must expiry by this time
> assertFalse(cache.containsKey(1), "The entry still exists in 
> the cache");
> }
> }
> }
> private static final class Put1 implements IgniteRunnable {
> private final IgniteCache cache;
> public Put1(IgniteCache cache) {
> this.cache = cache;
> }
> @Override public void run() {
> cache.put(1, "ignored");
> }
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16135) Expiry policy is not applied to Ignite cache after serialization

2022-01-12 Thread Alexey Kukushkin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-16135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexey Kukushkin updated IGNITE-16135:
--
Labels: cggg  (was: )

> Expiry policy is not applied to Ignite cache after serialization
> 
>
> Key: IGNITE-16135
> URL: https://issues.apache.org/jira/browse/IGNITE-16135
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.11
>Reporter: Alexey Kukushkin
>Priority: Major
>  Labels: cggg
>
> Expiry Policy specified in Ignite cache operation context is not applied to 
> the cache after the cache serialization/deserialization.
> h3. Steps to Reproduce
>  # Run an Ignite server with a cache without expiry policy
>  # A client node joins the server, gets the cache proxy and applies expiry 
> policy to the cache proxy
>  # The client executes a Compute task taking the cache proxy as a parameter 
> on the server.
>  # The Compute task puts an entry to the cache using the cache proxy received 
> from the client.
>  # The client sleeps for a time period longer than the TTL specified for the 
> expiry policy
>  # The client checks if the entry that the Compute task added still exists
> h3. Expected
> The entry does not exist since it must expire
> h3. Actual
> The entry still exists in the cache.
> h3. Reproducer
> {code:java}
> public class IgniteCacheSerializationTest {
> /** Expiry Policy specified in Ignite cache operation context is enabled 
> after the cache serialization. */
> @Test
> public void igniteCacheWithExpiryPolicySerialization() throws 
> InterruptedException {
> var cacheName = "cache1";
> var ttl = 1000;
> Supplier igniteCfgFactory = () ->
> new IgniteConfiguration()
> .setDiscoverySpi(
> new TcpDiscoverySpi()
> .setIpFinder(
> new 
> TcpDiscoveryVmIpFinder().setAddresses(Collections.singleton("127.0.0.1:47500"))
> )
> )
> .setCacheConfiguration(new CacheConfiguration<>(cacheName));
> try (var ignored = 
> Ignition.start(igniteCfgFactory.get().setIgniteInstanceName("server"))) {
> try (var ignite = Ignition.start(
> 
> igniteCfgFactory.get().setIgniteInstanceName("test").setClientMode(true))
> ) {
> // Apply a 1-second expiry policy to the cache
> var expiryPolicy = TouchedExpiryPolicy.factoryOf(new 
> Duration(TimeUnit.MILLISECONDS, ttl)).create();
> var cache = ignite. String>cache(cacheName).withExpiryPolicy(expiryPolicy);
> // Run a Compute Task that serializes the cache with the 
> 1-second expiry policy applied.
> // The task adds a key 1 to the cache
> ignite.compute().affinityRun(cacheName, 1, new Put1(cache));
> // Sleep for a time twice longer than the TTL
> Thread.sleep(ttl * 2);
> // The key 1 must expiry by this time
> assertFalse(cache.containsKey(1), "The entry still exists in 
> the cache");
> }
> }
> }
> private static final class Put1 implements IgniteRunnable {
> private final IgniteCache cache;
> public Put1(IgniteCache cache) {
> this.cache = cache;
> }
> @Override public void run() {
> cache.put(1, "ignored");
> }
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)