[
https://issues.apache.org/jira/browse/CASSANDRA-18116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17655097#comment-17655097
]
Josh McKenzie commented on CASSANDRA-18116:
-------------------------------------------
We originally intentionally returned null on the
{{PartitionDenylist.buildEmptyCache}} load() path on the Caffeine cache so as
to preserve the old value in the cache. Which, as I type that out, seems
fundamentally flawed to begin with; if you can't find an entry from CQL on the
table you probably shouldn't have the old value persist in the cache since that
makes removing entries... challenging.
Let's update the javadoc
[here|https://github.com/jrwest/cassandra/blob/trunk/src/java/org/apache/cassandra/schema/PartitionDenylist.java#L395]
to reflect our return pattern (empty entry) on not found and the implications
to the cache.
Otherwise +1; a couple circle flakes on some dtests.
> Denylist can load perpetually and too frequently if it fails persistently
> --------------------------------------------------------------------------
>
> Key: CASSANDRA-18116
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18116
> Project: Cassandra
> Issue Type: Bug
> Components: Feature/Rate Limiting
> Reporter: Jordan West
> Assignee: Jordan West
> Priority: Normal
> Fix For: 4.0.x, 4.1.x
>
>
> When the denylist fails its initial load it can [return a value of
> null|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/schema/PartitionDenylist.java#L453]
> for a key in the cache. The [BoundedLoadingCache
> implementation|https://github.com/ben-manes/caffeine/blob/master/caffeine/src/main/java/com/github/benmanes/caffeine/cache/BoundedLocalCache.java#L2591-L2615]
> that is used treats null as missing and will end up trying to load the key
> on reads. Besides the performance impact this can also lead to significant
> log spam leading to disk or CPU usage issues.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]