Arafat Khan created HDDS-14913:
----------------------------------

             Summary: Implement Scalable CSV Export for Unhealthy Containers in 
Recon UI
                 Key: HDDS-14913
                 URL: https://issues.apache.org/jira/browse/HDDS-14913
             Project: Apache Ozone
          Issue Type: Sub-task
          Components: Ozone Recon
            Reporter: Arafat Khan


*Problem:* Currently, exporting a large number of unhealthy container records 
(e.g., Missing, Under-Replicated, Mis-Replicated, etc.) from Recon is 
difficult. The UI is paginated and cannot efficiently handle downloading 
millions of records. Administrators often have to rely on manual, non-scalable 
database extraction methods (like connecting the Derby {{ij}} client) to 
analyze cluster health data.



*Solution:* This ticket implements a native, scalable CSV export feature 
directly in the Recon UI and Backend.
 # *Frontend:* Added an "{*}Export CSV{*}" button to the Recon Containers page 
with a dropdown selector allowing administrators to quickly extract data blocks 
ranging from 10K up to 5 Million records based on their currently active 
diagnostic tab (Missing, Under-Replicated, etc).
 # *Backend:* Added a new REST endpoint 
({{{}/api/v1/containers/unhealthy/export{}}}) that uses jOOQ cursors and JAX-RS 
{{StreamingOutput}} to fetch and stream records lazily. By piping data directly 
from the Derby database to the HTTP response, the JVM heap memory is protected 
from OutOfMemory errors, regardless of scale.
 # *Security & Limits:* The endpoint sits behind Recon's robust {{@AdminOnly}} 
authorization. Additionally, a new configuration property 
{{ozone.recon.csv.export.max.records}} (default: 5,000,000) was introduced to 
forcefully cap exports, protecting the server connection pool and worker 
threads from accidental misuse or abuse.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to