[ 
https://issues.apache.org/jira/browse/IGNITE-16685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17508117#comment-17508117
 ] 

Vladimir Steshin edited comment on IGNITE-16685 at 3/17/22, 10:36 AM:
----------------------------------------------------------------------

Comparing performance drop with IGNITE-14341:

*Current:*
Benchmark                                  Mode  Cnt     Score      Error   
Units
JmhCacheExpireBenchmark.putWithExpire     thrpt    3   112,877 ±   30,047  
ops/ms
JmhCacheExpireBenchmark.putWithoutExpire  thrpt    3  2325,133 ± 2441,084  
ops/ms

Process finished with exit code 0   

*Master*
Benchmark                                  Mode  Cnt     Score      Error   
Units
JmhCacheExpireBenchmark.putWithExpire     thrpt    3   114,695 ±   25,674  
ops/ms
JmhCacheExpireBenchmark.putWithoutExpire  thrpt    3  2098,765 ± 4596,228  
ops/ms


was (Author: vladsz83):
Benchmark                                  Mode  Cnt     Score      Error   
Units
JmhCacheExpireBenchmark.putWithExpire     thrpt    3   137,921 ±   60,580  
ops/ms
JmhCacheExpireBenchmark.putWithoutExpire  thrpt    3  2638,007 ± 4247,924  
ops/ms

Benchmark                                  Mode  Cnt     Score      Error   
Units
JmhCacheExpireBenchmark.putWithExpire     thrpt    3   112,877 ±   30,047  
ops/ms
JmhCacheExpireBenchmark.putWithoutExpire  thrpt    3  2325,133 ± 2441,084  
ops/ms

Process finished with exit code 0   

Master
Benchmark                                  Mode  Cnt     Score      Error   
Units
JmhCacheExpireBenchmark.putWithExpire     thrpt    3   114,695 ±   25,674  
ops/ms
JmhCacheExpireBenchmark.putWithoutExpire  thrpt    3  2098,765 ± 4596,228  
ops/ms

Benchmark                                  Mode  Cnt     Score     Error   Units
JmhCacheExpireBenchmark.putWithExpire     thrpt    3   111,894 ±  85,329  ops/ms
JmhCacheExpireBenchmark.putWithoutExpire  thrpt    3  2435,289 ± 725,230  ops/ms

> Expiration fails on topology version when cluster gets re-activated.
> --------------------------------------------------------------------
>
>                 Key: IGNITE-16685
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16685
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Vladimir Steshin
>            Assignee: Vladimir Steshin
>            Priority: Major
>
> Expiration can fail on initialized topology version.
> {code:java}
> java.lang.AssertionError: Invalid topology version 
> [topVer=AffinityTopologyVersion [topVer=-1, minorTopVer=0], group=TEST_CACHE]
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopologyImpl.readyTopologyVersion(GridDhtPartitionTopologyImpl.java:315)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.nextVersion(GridCacheAdapter.java:4208)
>       at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.purgeExpiredInternal(GridCacheOffheapManager.java:3147)
>       at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.purgeExpired(GridCacheOffheapManager.java:3066)
>       at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.expire(GridCacheOffheapManager.java:1262)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheTtlManager.expire(GridCacheTtlManager.java:246)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheSharedTtlCleanupManager$CleanupWorker.lambda$body$0(GridCacheSharedTtlCleanupManager.java:193)
>       at 
> java.util.concurrent.ConcurrentHashMap.computeIfPresent(ConcurrentHashMap.java:1769)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheSharedTtlCleanupManager$CleanupWorker.body(GridCacheSharedTtlCleanupManager.java:192)
>       at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
>       at java.lang.Thread.run(Thread.java:750)
> {code}
> Cause:
> * Cache starts and launches expiration routines.
> * Expiration timeouts begin to exaust.
> * Cluster gets deactivated.
> * Cluster is deactivated longer than the expiration timouts.
> * Cluster gets activated, caches starts, expiration routines start anew.
> * The expiration sees some records is expired and attempts to remove them.
> * During the cache start, topology version isn't confirmed yet (by 
> FullMessage etc.)
> * Expiration fails
> Solutions:
> # Skip partition if topology version isn't initialized additionally to 
> partition state checking (state==OWNING).
> # Start expiration later, on confirmed topology. 



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

Reply via email to