Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
0.22.0
-
None
-
None
-
safe mode, safemode, startup
Description
If we could differentiate between "startup safemode" vs other safemode, it would be easier to do startup optimizations like HDFS-1295. Looking at FSNamesystem, this can be queried, but not with a single query, and the semantics are not reliable under future changes. Also, the FSNamesystem code itself, internally, uses more than one way to test for manual safe mode.
Proposal is to create a status field and query method in FSNamesystem with enum values
{NOT_IN_SAFEMODE, SAFEMODE_STARTUP, SAFEMODE_EXTENSION, SAFEMODE_MANUAL}If in the future we add automatic fallback to safe mode, we would add value SAFEMODE_AUTOMATIC.
This change will make it easier to do startup optimizations, and will also allow making the safemode management code in FSNamesystem simpler and more consistent.