[
https://issues.apache.org/jira/browse/IGNITE-22069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17838695#comment-17838695
]
Aleksey Plekhanov commented on IGNITE-22069:
--------------------------------------------
Benchmark results ({{{}JmhCacheExpireBenchmark{}}}) on my laptop:
Before fix:
{noformat}
Benchmark (persistence) Mode Cnt Score
Error Units
JmhCacheExpireBenchmark.putWithExpire TRUE thrpt 3 29,968 ±
15,287 ops/ms
{noformat}
After fix:
{noformat}
Benchmark (persistence) Mode Cnt Score
Error Units
JmhCacheExpireBenchmark.putWithExpire TRUE thrpt 3 172,777 ±
22,737 ops/ms
{noformat}
> Fix contention on expiration for persistent caches
> --------------------------------------------------
>
> Key: IGNITE-22069
> URL: https://issues.apache.org/jira/browse/IGNITE-22069
> Project: Ignite
> Issue Type: Improvement
> Reporter: Aleksey Plekhanov
> Assignee: Aleksey Plekhanov
> Priority: Major
> Labels: ise
> Time Spent: 10m
> Remaining Estimate: 0h
>
> We've fixed contention on expiration for in-memory caches by IGNITE-14341 and
> IGNITE-21929 tickets, but persistent caches use another method to expire
> entries and this method should be fixed too. Moreover, there are some other
> optimizations related to expiration we can made:
> # Use batch pending tree entries removal for persistent caches (already
> implemented for in-memory)
> # Randomize iteration over cache data stores during expiration to reduce
> contention
> # For each transaction, we try to expire entries for every cache in the
> cluster. At least we can limit the list of caches to caches related to
> transaction.
> # On cache destroy batch removal from pending entries tree can be used
> (instead of one-by-one deletion).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)