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]

Reply via email to