rich7420 commented on PR #10503:
URL: https://github.com/apache/ozone/pull/10503#issuecomment-5044079840

   Nice to see this back in motion, thanks @spacemonkd. The CockroachDB / 
YugabyteDB section is a really helpful framing.
   
   I've been poking at the current write path and a couple of findings might be 
useful for ยง1 and the benchmark gate.
   
   Caveat up front: I only have a single-node compose setup on a laptop (M3 
Pro, one 8 GB Docker VM), and the OM heap falls over under sustained load, so I 
don't trust the absolute throughput. The structural stuff below is stable 
though.
   
   The bottleneck right now looks like the single apply thread, not the bucket 
lock. Spreading OBS create-key load across many buckets doesn't help throughput 
at all, so `BUCKET_LOCK` is basically uncontended with one writer. The 
`newSingleThreadExecutor` / `validateAndUpdateCache` path in 
`OzoneManagerStateMachine` serializes everything. So finer locking only pays 
off once execution is parallel, which fits doing planning-parallelism and 
granular locking together rather than locking alone.
   
   From jstack under load the apply thread is the top CPU consumer (about 2/3 
of a core, mostly runnable), roughly: object/proto building and collection 
churn ~35%, Ratis reply unpark ~30%, RocksDB gets ~15%, sync audit-log flush 
~10%. The audit bit matches the "audit/metrics not wired up yet" TODO. For 
reference the old prototype (#7406) reported ~3x on OBS create.
   
   Since a laptop can't give trustworthy numbers anyway, I'd be happy to help 
build a proper benchmark that runs on a real cluster and gates each migration 
phase (freon sweep + apply-thread profiling + the multi-bucket check). Let me 
know if that'd be useful.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to