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]

Reply via email to