[
https://issues.apache.org/jira/browse/CASSANDRA-20677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sam Lightfoot updated CASSANDRA-20677:
--------------------------------------
Description:
Per comments in FileUtils::clean
{code:java}
// TODO Once we can get rid of Java 8, it's simpler to call
sun.misc.Unsafe.invokeCleaner(ByteBuffer),
// but need to take care of the attachment handling (i.e. whether 'buf' is a
duplicate or slice) - that
// is different in sun.misc.Unsafe.invokeCleaner and this implementation. {code}
We can now use Unsafe.invokeCleaner to clean direct byte buffers which should
tidy up the existing code.
was:
If we use direct io to read SSTables during compaction, we can avoid polluting
the page cache with data we're about to delete. As another side effect, we
also evict pages to make room for whatever we're putting in. This unnecessary
churn leads to higher CPU overhead and can cause dips in client read latency,
as we're going to be evicting pages that could be used to serve those reads.
This is most notable with STCS as the SSTables get larger, potentially evicting
the entire hot dataset out of cache, but is affected by every compaction
strategy.
This is a follow up to be done after CASSANDRA-15452 since we will have an
internal buffer.
> Migrate to JDK11 DirectByteBuffer cleaner
> -----------------------------------------
>
> Key: CASSANDRA-20677
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20677
> Project: Apache Cassandra
> Issue Type: Improvement
> Components: Local/Other
> Reporter: Sam Lightfoot
> Assignee: Sam Lightfoot
> Priority: Normal
>
> Per comments in FileUtils::clean
> {code:java}
> // TODO Once we can get rid of Java 8, it's simpler to call
> sun.misc.Unsafe.invokeCleaner(ByteBuffer),
> // but need to take care of the attachment handling (i.e. whether 'buf' is a
> duplicate or slice) - that
> // is different in sun.misc.Unsafe.invokeCleaner and this implementation.
> {code}
> We can now use Unsafe.invokeCleaner to clean direct byte buffers which should
> tidy up the existing code.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]