priyeshkaratha opened a new pull request, #10768:
URL: https://github.com/apache/ozone/pull/10768
## What changes were proposed in this pull request?
SCM's `ScmBlockDeletingServiceMetrics` currently exposes only
**transaction-level** deletion metrics, such as
`numBlockDeletionTransactionCreated` and
`numBlockDeletionTransactionCompleted`. This makes it difficult to measure
actual block deletion throughput.
This PR adds a new metric, `numBlocksDeleted`
(`scm_block_deleting_service_metrics_num_blocks_deleted`), which counts the
total number of blocks deleted once a delete transaction has been fully
acknowledged by all replicas and removed from the deleted-block log.
Since datanode acknowledgements only contain the transaction ID, container
ID, and status, SCM tracks the block count using an in-memory
`transactionToBlockCountMap` (`txID → block count`). The map is populated when
transactions are prepared for sending and consumed when transactions are
completed, covering both the normal ACK path and the container
deleted/not-found path.
This approach avoids RocksDB lookups during commit and does not rely on the
existing `txSizeMap`, which is only populated for newer layout versions.
Removing entries after use ensures each transaction is counted exactly once,
even with retries or duplicate acknowledgements. The added work is O(1) and has
no measurable impact on deletion performance.
## What is the link to the Apache JIRA
HDDS-13110
## How was this patch tested?
Tested manually and using mini ozone cluster in code
Generated by AI
--
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]