smengcl opened a new pull request, #11615: URL: https://github.com/apache/ozone/pull/11615
Generated-by: Claude Code (Opus 5.5) ## What changes were proposed in this pull request? With `ozone.client.incremental.chunk.list=true` (recommended for HBase), `DatanodeStoreWithIncrementalChunkList#putBlockWithPartialChunks` reads and decodes the block's `BlockData` on every PutBlock. When the PutBlock carries a single partial chunk, which is the common case for each hsync of an HBase WAL, the value is only used to check whether the block exists. This change uses `Table#isExist` in that case, which skips copying and decoding the value, and only gets the `BlockData` in the multiple chunk branch that uses it. Behavior is unchanged. In a CPU profile of the leader datanode under a write plus hsync loop of 1 KB edits, this lookup was 3.9% of datanode CPU, 2.5% of it decoding the value. The decoding cost grows with the number of full chunks already recorded for the block. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-17112 ## How was this patch tested? Existing tests covering the incremental chunk list path: `TestBlockManagerImpl` and `TestDatanodeUpgradeToHBaseSupport` pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
