Hi everyone!

I’d like to propose adding the async-profiler library to the Cassandra project. 
This will enable us to add a new nodetool command to do profiling tasks on the 
process running Cassandra. This information can be useful to debug a wide range 
of potential issues and performance optimizations. CASSANDRA-20854 
<https://issues.apache.org/jira/browse/CASSANDRA-20854> captures the effort and 
the details of the proposal, and this PR 
<https://github.com/apache/cassandra/pull/4487> proposes its implementation.

I want to note that this feature was already discussed in this 
<https://lists.apache.org/thread/98y59qp42zwwrtbcvnzvlh254c5vyhoq> thread, and 
this one only want to make sure that no one has any concerns about adding the 
library as a dependency.

What is async-profiler?
async-profiler <https://github.com/async-profiler/async-profiler> is a low 
overhead sampling profiler for Java that does not suffer from the Safepoint 
bias problem. It features HotSpot-specific API to collect stack traces and to 
track memory allocations. The profiler works with OpenJDK and other Java 
runtimes based on the HotSpot JVM.

Unlike traditional Java profilers, async-profiler monitors non-Java threads 
(e.g., GC and JIT compiler threads) and shows native and kernel frames in stack 
traces.

What can be profiled:

CPU time
Allocations in Java Heap
Native memory allocations and leaks
Contended locks
Hardware and software performance counters like cache misses, page faults, 
context switches
and more.

We propose to add async-profiler 4.2 as a dependency to Cassandra.

Any concerns?
Bernardo

Reply via email to