Siyao Meng created HDDS-17107:
---------------------------------

             Summary: Show startup progress in Datanode web UI
                 Key: HDDS-17107
                 URL: https://issues.apache.org/jira/browse/HDDS-17107
             Project: Apache Ozone
          Issue Type: Improvement
          Components: Ozone Datanode
            Reporter: Siyao Meng
            Assignee: Siyao Meng


h3. Problem
Unlike the HDFS NameNode ("Startup Progress" tab), Ozone services expose no 
startup progress. A datanode with many containers can take a long time to 
start, and until it does, operators can only follow the logs. They cannot tell 
which phase the datanode is in, how long each phase has taken, or how long 
startup will still take.

h3. Proposal
Track datanode startup in phases and show it in the Datanode web UI:
# Initializing
# Waiting for SCM (until the version response is received)
# Preparing volumes (formatting volumes and loading volume DBs)
# Loading containers (one step per volume, with done / total containers)
# Checking volumes
# Starting container services (including Ratis pipeline recovery)

For each phase, show its status (pending / running / complete / failed) and 
elapsed time. Container loading counts the container directories of each volume 
up front, so done / total and an estimated remaining time can be shown per 
volume. If startup fails, the running phase and any failed volume are marked as 
failed.

The progress is exposed through a {{StartupProgress}} MXBean 
({{Hadoop:service=HddsDatanode,name=StartupProgress}}), so it is also available 
via {{/jmx}}. A new "Startup Progress" page in the Datanode web UI renders it.

The datanode HTTP server already starts before the slow phases, so their 
progress is visible while the datanode is starting.

h3. Follow-ups (out of scope)
The tracker lives in hdds-server-framework so that it can be reused for OM and 
SCM. Those services start their HTTP server near the end of startup, so they 
would first need the web UI to be available earlier.

h3. Related
* HDDS-12391, HDDS-13331, HDDS-13332: reduce datanode startup time (container 
set loading). This page makes the effect of such changes visible.
* HDDS-13896, HDDS-13897: datanode startup can hang on a slow or stuck volume 
without logging. Per-volume loading progress shows which volume is stuck.
* HDDS-16425, HDDS-16504: fail datanode startup cleanly, and add a watchdog for 
container initialization.
* HDDS-17078: OM startup can take hours with many snapshots (motivation for the 
OM follow-up).



--
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