From time to time, during internal IT test and from customer, we often see master initialization failed due to namespace table region takes long time to assign (eg. sometimes split log takes long time or hanging; or sometimes RS is temporarily not available; sometimes due to some unknown assignment issue). In the past, there was some proposal to improve this situation, eg.
HBASE-13556 / HBASE-14190 (Assign system tables ahead of user region assignment) or HBASE-13557 (Special WAL handling for system tables) or HBASE-14623 (Implement dedicated WAL for system tables).
This JIRA proposes another way to solve this master initialization fail issue: namespace service is only used by a handful operations (eg. create table / namespace DDL / get namespace API / some RS group DDL). Only quota manager depends on it and quota management is off by default. Therefore, namespace service is not really needed for master to be functional. So we could start namespace service asynchronizely without blocking master startup.