@Override
        protected void run() throws IOException {
          getMaster().getMasterCoprocessorHost().preCreateNamespace(namespaceDescriptor);
          // We need to wait for the procedure to potentially fail due to "prepare" sanity
          // checks. This will block only the beginning of the procedure. See HBASE-19953.
          ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();
          LOG.info(getClientIdAuditPrefix() + " creating " + namespaceDescriptor);
          // Execute the operation synchronously - wait for the operation to complete before
          // continuing.
          setProcId(getClusterSchema().createNamespace(namespaceDescriptor, getNonceKey(), latch));
          latch.await();
          getMaster().getMasterCoprocessorHost().postCreateNamespace(namespaceDescriptor);
        }
Create a new Namespace.
@param namespaceDescriptor descriptor for new Namespace
@param nonceGroup          Identifier for the source of the request, a client or process.
@param nonce               A unique identifier for this operation from the client or process
                           identified by <code>nonceGroup</code> (the source must ensure each
                           operation gets a unique id).
@return procedure id
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java