现在的位置: 首页 > 综合 > 正文

Hbase Table Isolation for Multi-tenancy using Region Server Grouping

2013年01月15日 ⁄ 综合 ⁄ 共 1723字 ⁄ 字号 评论关闭

Motivation:

HBase table isolation is required for scenarios that involve multiple users sharing a common HBase instance. We want to isolate the impact of usage (like read,write patterns) and maintenance activity (like compaction, region
splits) of different applications. In the current state, there is no way we can control what regions of a table get assigned to given region servers. A feature to group region servers and assigning tables based on groups will be very useful in multi-tenant
environments. In this way, tables belonging to different applications can be assigned to different region server group and hence each application behavior can be isolated to good extent. This design is based on existing work done in the JIRA HBASE-5169. The
major difference being usage of command line to manage region server groups and the restriction that a table can only belong to a single region server group at a given time.

Proposal:

The work related to this feature can be split into two major components:

1. Developing API to execute commands related to region server grouping.

2. Developing group based assignment manager.

Region Server Group API:

To provide commands through hbase shell to do the following:

  •  Create/Delete region server groups.
  • Move region servers between groups.
  • Move HBase tables between groups.

The following APIs will be required for operations related to grouping region servers and
assigning region server groups to tables.

  • boolean addGroup(String gName)
  • boolean deleteGroup(String gName)
  • void moveServerToGroup(String serverName, String gName)
  • Map<String, GroupInfo> listGroupMappings()
  • Map<ServerName, ServerPlan> listServersInTransition()
  • GroupInfo getGroupInfo(String gName)
  • GroupInfo getGroupOfTable(String tableName)
  • GroupInfo getGroupOfServer(String serverName)
  • boolean moveTableToGroup(String tableName, String gName)

We plan to implement all the above functionality using a coprocessor end point.


Ref: http://issues.apache.org/jira/browse/HBASE-6721


【上篇】
【下篇】

抱歉!评论已关闭.