Yaman:

Thank you for taking this on - the plan to me looks great, and I'm looking 
forward to seeing it progress.

Doug

> On Jul 2, 2025, at 3:26 PM, Yaman Ziadeh (BLOOMBERG/ 919 3RD A) 
> <yzia...@bloomberg.net> wrote:
> 
> Hey everyone!
> 
> Thanks for the great discussion - I've consolidated the discussion points 
> into the following set of requirements:
> Include the async-profiler library with Cassandra
> Allow for easy async-profiler library version upgrades independent of 
> Cassandra
> Expose a JMX interface to access common commands (start, stop, etc.)
> Expose a default-disabled interface to access the 'execute' method for 
> advanced usage
> Create a nodetool command that reaches out to this interface
> Expose this feature through Sidecar's API
> 
> Given these requirements, I'll be developing this feature with the following 
> general plan in mind:
> Drop-in async-profiler jar & native lib files into top-level cassandra repo
> Include these files into the Cassandra build via build.xml
> Make an AsyncProfilerService class for loading native lib file and calling 
> out to the async-profiler.jar
> Register an MBean for the AsyncProfilerService
> MBean provides 3 methods: start, stop, and raw
> "Simple mode": start/stop will allow a common subset of flags (duration, 
> event, output format, etc.)
> raw will expose the execute method for free-use
> default disabled - calls are rejected at runtime unless a JVM flag is 
> included to enable this feature
> Add new `nodetool profile` command
> `nodetool profile start --duration 30 --event cpu`
> `nodetool profile stop `
> `nodetool profile --raw ...`
> Create Sidecar API interface to call out to C* node-specific 
> AsyncProfilerService
> Build a unit/integration test suite for this async-profiler integration in C* 
> and Sidecar

Reply via email to