Currently HBase treats all tables, users, and workloads in the same way.
This is ok, until multiple users and workloads are applied on the same cluster/table. Some workloads/users must be prioritized over others, and some other workloads must not impact others.
We can separate the problem into three components.
- Isolation/Partitioning (Physically split on different machines)
- Scheduling (Prioritize small/interactive workloads vs long/batch workloads)
- Quotas (Limit a user/table requests/sec or size)
This is the umbrella jira tracking the multi-tenancy related tasks.
An initial design document is up for comments here: https://docs.google.com/document/d/1ygIwZpDWQuMPdfcryckic6ODi5DHQkrzXKjmOJodfs0