Siyao Meng created HDDS-17114:
---------------------------------

             Summary: Show startup progress and readiness for OM, SCM and 
Datanode
                 Key: HDDS-17114
                 URL: https://issues.apache.org/jira/browse/HDDS-17114
             Project: Apache Ozone
          Issue Type: New Feature
          Components: SCM, Ozone Manager, Ozone Datanode
            Reporter: Siyao Meng


h3. Problem
OM, SCM and datanodes can take a long time to start on large clusters: opening 
RocksDB, loading containers and pipelines, the OM snapshot chain and prefixes, 
replaying the Raft log, and waiting for SCM safe mode exit. During that time 
operators only have the logs. The services expose no startup phase, progress or 
estimated remaining time, unlike the HDFS NameNode's "Startup Progress" page.

OM and SCM also start their HTTP server near the end of startup, so their web 
UI, /jmx and /prom are unavailable for most of it. There is no endpoint that 
says whether a service is ready, so scripts and Kubernetes probes use an open 
port as a stand-in:
* The Kubernetes liveness probes use TCP on the OM and SCM RPC ports (9862, 
9861) with a 30s initial delay. OM binds 9862 only after loading its DB, and an 
HA SCM follower binds 9861 only after catching up with the leader, so a slow 
start can be killed by the probe.
* The rolling-upgrade test waits on the SCM HTTP port (9876) before restarting 
the next SCM.

h3. Proposal
# Track startup in phases with a reusable StartupProgress MXBean 
({{Hadoop:service=<service>,name=StartupProgress}}). Report status, elapsed 
time, done / total and the estimated remaining time per phase and per step.
# Show it on a "Startup Progress" page in each service's web UI.
# Start the OM and SCM HTTP servers right after Kerberos login. Until the 
service is ready, servlets that need service state (/dbCheckpoint, 
/v2/dbCheckpoint, /serviceList, /snapshotList) return 503.
# Startup is complete once the Raft log has been replayed (OM and SCM) and SCM 
has left safe mode.
# Add /health/live and /health/ready to OM, SCM and the datanode, following the 
S3 Gateway endpoints from HDDS-16360, and use them in the Kubernetes examples 
and the rolling-upgrade test.

h3. Related
* HDDS-16360: S3 Gateway health check endpoints (pattern to reuse)
* HDDS-17078: OM startup can take hours with many snapshots
* HDDS-16299, HDDS-16301: guard leadership transfer to an OM or SCM that is not 
ready



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