Provide a means for coprocessors to create tables for internal use
------------------------------------------------------------------

                 Key: HBASE-4424
                 URL: https://issues.apache.org/jira/browse/HBASE-4424
             Project: HBase
          Issue Type: Improvement
          Components: coprocessors
            Reporter: Gary Helmling


When developing access controls as a coprocessor, we needed to create an 
internal "_acl_" table for persisting the permission grants.  We could have 
done this in the coprocessor through HBaseAdmin, but it seems silly to go 
through an RPC loop when we're already implementing a MasterObserver running on 
HMaster.

So the simplest approach was to expose createTable() in MasterServices:
{code}
  /**
   * Create a table using the given table definition.
   * @param desc The table definition
   * @param splitKeys Starting row keys for the initial table regions.  If null
   *     a single region is created.
   * @param sync If true, waits for all initial regions to be assigned before
   *     returning
   */
  public void createTable(HTableDescriptor desc, byte [][] splitKeys)
      throws IOException;
{code}

Other coprocessor implementations will likely have similar needs, so I propose 
we add this to MasterServices.

The alternative would be to expose some sort of HBaseAdmin like interface via 
MasterCoprocessorEnvironment, similar to what we do for HTable, but this would 
be a fair bit more work, and I still think we'll need a way to provide this 
capability in the short term.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to