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

Ignite TC Bot commented on IGNITE-14341:
----------------------------------------

{panel:title=Branch: [pull/9992/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/9992/head] Base: [master] : New Tests 
(105)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}PDS 5{color} [[tests 
42|https://ci.ignite.apache.org/viewLog.html?buildId=6577021]]
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testPutRemove_1_20_mm2_1 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testPutRemove_1_20_mp2_1 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testMassiveRemove2_true_range - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testMassiveRemove3_true_range - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testIterateConcurrentPutRemoveRange_10 - 
PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testPutRemove_2_40_pp2_1 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testIterateConcurrentPutRemove_10 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testBasicBatchRemove - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testMassiveRemove1_true_range - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testPutRemove_2_40_mp2_1 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite5: 
BPlusTreePageMemoryImplTest.testPutRemove_2_40_pm2_1 - PASSED{color}
... and 31 new tests

{color:#00008b}Basic 4{color} [[tests 
63|https://ci.ignite.apache.org/viewLog.html?buildId=6577015]]
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testMassiveRemove2_true_range - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testMassiveRemove3_true_range - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testIterateConcurrentPutRemoveRange_10 - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testPutRemove_2_40_pp2_1 - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testIterateConcurrentPutRemove_10 - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: BPlusTreeSelfTest.testBasicBatchRemove 
- PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testMassiveRemove1_true_range - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testPutRemove_2_40_mp2_1 - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testPutRemove_2_40_pm2_1 - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeSelfTest.testPutRemove_2_40_mm2_1 - PASSED{color}
* {color:#013220}IgniteBasicTestSuite2: 
BPlusTreeFakeReuseSelfTest.testPutRemove_2_40_mm2_1 - PASSED{color}
... and 52 new tests

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=6577034&buildTypeId=IgniteTests24Java8_RunAll]

> Reduce contention in the PendingEntriesTree when cleaning up expired entries.
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-14341
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14341
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Aleksey Plekhanov
>            Assignee: Pavel Pereslegin
>            Priority: Major
>              Labels: ise
>         Attachments: JmhCacheExpireBenchmark.java
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, there is a significant performance drop when expired entries 
> concurrently evicted by threads that perform some actions with cache (see 
> attached reproducer):
> {noformat}
> Benchmark                                  Mode  Cnt     Score     Error   
> Units
> JmhCacheExpireBenchmark.putWithExpire     thrpt    3   100,132 ±  21,025  
> ops/ms
> JmhCacheExpireBenchmark.putWithoutExpire  thrpt    3  2133,122 ± 559,694  
> ops/ms{noformat}
> Root cause: pending entries tree (offheap BPlusTree) is used to track expired 
> entries, after each cache operation (and by timeout thread) there is an 
> attempt to evict some amount of expired entries. these entries looked up from 
> the start of the pending entries tree and there is a contention on the first 
> leaf page of that tree.
> All threads waiting for the same page lock:
> {noformat}
>   at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
>   at 
> org.apache.ignite.internal.util.OffheapReadWriteLock.waitAcquireWriteLock(OffheapReadWriteLock.java:503)
>   at 
> org.apache.ignite.internal.util.OffheapReadWriteLock.writeLock(OffheapReadWriteLock.java:244)
>   at 
> org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl.writeLock(PageMemoryNoStoreImpl.java:528)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.util.PageHandler.writeLock(PageHandler.java:422)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.util.PageHandler.writePage(PageHandler.java:350)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.DataStructure.write(DataStructure.java:325)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.access$13200(BPlusTree.java:100)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Remove.doRemoveFromLeaf(BPlusTree.java:4588)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Remove.removeFromLeaf(BPlusTree.java:4567)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Remove.tryRemoveFromLeaf(BPlusTree.java:5196)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Remove.access$6800(BPlusTree.java:4209)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.removeDown(BPlusTree.java:2189)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.removeDown(BPlusTree.java:2165)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.removeDown(BPlusTree.java:2165)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doRemove(BPlusTree.java:2076)
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.removex(BPlusTree.java:1905)
>   at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.expireInternal(IgniteCacheOffheapManagerImpl.java:1426)
>   at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.expire(IgniteCacheOffheapManagerImpl.java:1375)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheTtlManager.expire(GridCacheTtlManager.java:246)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.unwindEvicts(GridCacheUtils.java:882){noformat}



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

Reply via email to