sadanand48 opened a new pull request, #11962: URL: https://github.com/apache/ozone/pull/11962
## What changes were proposed in this pull request? HDDS-16723 added a count-based limit for reports in datanode heartbeats, but it did not limit their serialized size. A small number of command-status reports containing accumulated delete-block ACKs could still exceed ipc.maximum.data.length. This PR: - Adds hdds.heartbeat.max.command.status.report.size, defaulting to 64MB. - Limits command-status data to the smaller of: the configured limit; or the remaining space within 90% of ipc.maximum.data.length. - Adds command-status reports after other heartbeat fields so their available budget reflects existing payload size. - Splits aggregate reports only between complete CommandStatus entries. - Never splits an individual delete ACK or its result list. - Leaves deferred reports queued for subsequent scheduled heartbeats. - Removes immediate follow-up heartbeats to avoid burst RPCs during backlog recovery. - Preserves selected reports and ordering when an RPC fails. - Adds per-endpoint metrics for queued, sent, deferred, requeued, and oversized command-status bytes. - Adds tests covering byte budgeting, splitting, ordering, retry, and heartbeat scheduling. - The existing report-count limit remains in place for full reports and ICR backlogs. This change adds a complementary byte-based safeguard for command-status reports. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-17724 ## How was this patch tested? Unit tests Developed with help of Cursor (GPT-5.6 Sol) -- 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]
