Oh wow! Thanks Dmitry for all these references. I think that the fact
Corretto includes that into JDK is the testament of the quality.

David, I hope this answers your concerns pretty much?

On Thu, Dec 11, 2025 at 12:27 PM Dmitry Konstantinov <[email protected]> wrote:
>
> + 1 from my side
>
> 1) it is well known mature profiling tool, there are other cases when Apache 
> projects embedded it, for example:
>  - https://issues.apache.org/jira/browse/HADOOP-18055
>   - https://issues.apache.org/jira/browse/HBASE-29045
>   - https://issues.apache.org/jira/browse/FLINK-33325
> 2) Apache-2.0 license
> 3) the dependency has a small size (less than 1Mb) and does not have 
> transitive dependencies to other 3rd parties
> 4) the main contributors are now in Amazon, it is even included into Corretto 
> JDK now 
> (https://aws.amazon.com/about-aws/whats-new/2025/10/amazon-corretto-october-2025-quarterly-updates/
>  )
> 5) the logic is disabled by default, so no impact if you do not use it.
>
>
> On Wed, 10 Dec 2025 at 18:08, Štefan Miklošovič <[email protected]> 
> wrote:
>>
>> This capability is disabled by default, it is driven by a system
>> property you have to set to true in order to be able to get an
>> instance of AsyncProfiler which does the actual profiling. If
>> disabled, which is default, then any calls via nodetool which needs
>> AsyncProfiler (start, stop, status) would return a message that
>> profiling is not enabled.
>>
>> Not sure if this answers your concerns but without knowingly turning
>> it on nothing happens.
>>
>> On Wed, Dec 10, 2025 at 6:28 PM David Capwell <[email protected]> wrote:
>> >
>> > I have no issues adding it.  I think my only real comment would be the 
>> > same as with manager; w/e we expose to the public api (in this case 
>> > Nodetool) we have to support, so if a 3rd party lib breaks compatibility 
>> > that puts us in a bind if we didn’t think about that up front.
>> >
>> > Having async-profiler exposed makes it easier to profile is a good thing.  
>> > Manager has (or is in the process of adding) API auth so we can lock down 
>> > async-profiler to those “allowed” but do we have similar in Nodetool?  We 
>> > had an issue in the past that async-profiler would trigger a JVM crash 
>> > (JVM bug), so we had to limit calls to it until it was fixed.
>> >
>> > > On Dec 10, 2025, at 9:00 AM, Štefan Miklošovič <[email protected]> 
>> > > wrote:
>> > >
>> > > Worth to mention that we were also contemplating about the inclusion
>> > > of jfr-convert so a user can also convert raw JFR files to e.g. HTML
>> > > with heatmaps but we evaluated that it is not necessary. Sure, it
>> > > would be comfortable, but ultimately not needed. Conversion of such a
>> > > file via nodetool, on server side, is just not a good idea, it is not
>> > > a job of a server to convert anything.
>> > >
>> > > In majority of cases, people using the profiler just want to get a
>> > > HTML with cpu / allocation profile, it can even gather JFR files as
>> > > such and fetch it is, it is just that the conversion as such can
>> > > happen on client's side instead.
>> > >
>> > > I am +1 for introducing the core async profiler library only.
>> > >
>> > > On Wed, Dec 10, 2025 at 5:46 PM Bernardo Botella
>> > > <[email protected]> wrote:
>> > >>
>> > >> 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 captures the effort and the details of 
>> > >> the proposal, and this PR proposes its implementation.
>> > >>
>> > >> I want to note that this feature was already discussed in this 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 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
>> >
>
>
>
> --
> Dmitry Konstantinov

Reply via email to