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