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]
