@InterfaceAudience.Private @InterfaceStability.Evolving public class QuotaTableUtil extends java.lang.Object
ROW-KEY FAM/QUAL DATA n.<namespace> q:s <global-quotas> t.<namespace> u:p <namespace-quota policy> t.<table> q:s <global-quotas> t.<table> u:p <table-quota policy> u.<user> q:s <global-quotas> u.<user> q:s.<table> <table-quotas> u.<user> q:s.<ns>: <namespace-quotas>
Modifier and Type | Class and Description |
---|---|
static interface |
QuotaTableUtil.NamespaceQuotasVisitor |
static interface |
QuotaTableUtil.QuotasVisitor |
static interface |
QuotaTableUtil.TableQuotasVisitor |
static interface |
QuotaTableUtil.UserQuotasVisitor |
Modifier and Type | Field and Description |
---|---|
protected static byte[] |
QUOTA_FAMILY_INFO |
protected static byte[] |
QUOTA_FAMILY_USAGE |
protected static byte[] |
QUOTA_NAMESPACE_ROW_KEY_PREFIX |
protected static java.lang.String |
QUOTA_POLICY_COLUMN |
protected static byte[] |
QUOTA_QUALIFIER_POLICY |
protected static byte[] |
QUOTA_QUALIFIER_SETTINGS |
protected static byte[] |
QUOTA_QUALIFIER_SETTINGS_PREFIX |
static TableName |
QUOTA_TABLE_NAME
System table for quotas
|
protected static byte[] |
QUOTA_TABLE_ROW_KEY_PREFIX |
protected static byte[] |
QUOTA_USER_ROW_KEY_PREFIX |
Constructor and Description |
---|
QuotaTableUtil() |
Modifier and Type | Method and Description |
---|---|
protected static Result |
doGet(Connection connection,
Get get) |
protected static Result[] |
doGet(Connection connection,
java.util.List<Get> gets) |
static void |
extractQuotaSnapshot(Result result,
java.util.Map<TableName,SpaceQuotaSnapshot> snapshots)
Extracts the
SpaceViolationPolicy and TableName from the provided
Result and adds them to the given Map . |
static SpaceQuotaSnapshot |
getCurrentSnapshot(Connection conn,
java.lang.String namespace)
Returns the Master's view of a quota on the given
namespace or null if the
Master has no quota information on that namespace. |
static SpaceQuotaSnapshot |
getCurrentSnapshot(Connection conn,
TableName tn)
Returns the Master's view of a quota on the given
tableName or null if the
Master has no quota information on that table. |
static java.util.Map<TableName,java.lang.Long> |
getMasterReportedTableSizes(Connection conn)
Fetches the table sizes on the filesystem as tracked by the HBase Master.
|
protected static java.lang.String |
getNamespaceFromRowKey(byte[] key) |
static QuotaProtos.Quotas |
getNamespaceQuota(Connection connection,
java.lang.String namespace) |
protected static byte[] |
getNamespaceRowKey(java.lang.String namespace) |
protected static java.lang.String |
getNamespaceRowKeyRegex(java.lang.String namespace) |
protected static QuotaProtos.SpaceQuota |
getProtoViolationPolicy(SpaceViolationPolicy policy) |
static java.util.Map<TableName,SpaceQuotaSnapshot> |
getRegionServerQuotaSnapshots(Connection conn,
ServerName regionServer)
Fetches the observed
SpaceQuotaSnapshot s observed by a RegionServer. |
protected static byte[] |
getSettingsQualifierForUserNamespace(java.lang.String namespace) |
protected static byte[] |
getSettingsQualifierForUserTable(TableName tableName) |
protected static java.lang.String |
getSettingsQualifierRegexForUserNamespace(java.lang.String namespace) |
protected static java.lang.String |
getSettingsQualifierRegexForUserTable(java.lang.String table) |
static java.util.Map<TableName,SpaceQuotaSnapshot> |
getSnapshots(Connection conn)
Fetches all
SpaceQuotaSnapshot objects from the hbase:quota table. |
protected static TableName |
getTableFromRowKey(byte[] key) |
static QuotaProtos.Quotas |
getTableQuota(Connection connection,
TableName table) |
protected static byte[] |
getTableRowKey(TableName table) |
protected static java.lang.String |
getTableRowKeyRegex(java.lang.String table) |
protected static java.lang.String |
getUserFromRowKey(byte[] key) |
static QuotaProtos.Quotas |
getUserQuota(Connection connection,
java.lang.String user) |
static QuotaProtos.Quotas |
getUserQuota(Connection connection,
java.lang.String user,
java.lang.String namespace) |
static QuotaProtos.Quotas |
getUserQuota(Connection connection,
java.lang.String user,
TableName table) |
protected static byte[] |
getUserRowKey(java.lang.String user) |
protected static java.lang.String |
getUserRowKeyRegex(java.lang.String user) |
protected static SpaceViolationPolicy |
getViolationPolicy(QuotaProtos.SpaceQuota proto) |
static boolean |
isEmptyQuota(QuotaProtos.Quotas quotas) |
protected static boolean |
isNamespaceRowKey(byte[] key) |
protected static boolean |
isTableRowKey(byte[] key) |
protected static boolean |
isUserRowKey(byte[] key) |
static Filter |
makeFilter(QuotaFilter filter)
converts quotafilter to serializeable filterlists.
|
static Get |
makeGetForNamespaceQuotas(java.lang.String namespace) |
static Get |
makeGetForTableQuotas(TableName table) |
static Get |
makeGetForUserQuotas(java.lang.String user,
java.lang.Iterable<TableName> tables,
java.lang.Iterable<java.lang.String> namespaces) |
static Scan |
makeQuotaSnapshotScan()
Creates a
Scan which returns only quota snapshots from the quota table. |
static Scan |
makeScan(QuotaFilter filter) |
static void |
parseNamespaceResult(Result result,
QuotaTableUtil.NamespaceQuotasVisitor visitor) |
protected static void |
parseNamespaceResult(java.lang.String namespace,
Result result,
QuotaTableUtil.NamespaceQuotasVisitor visitor) |
static void |
parseResult(Result result,
QuotaTableUtil.QuotasVisitor visitor) |
static void |
parseTableResult(Result result,
QuotaTableUtil.TableQuotasVisitor visitor) |
protected static void |
parseTableResult(TableName table,
Result result,
QuotaTableUtil.TableQuotasVisitor visitor) |
static void |
parseUserResult(Result result,
QuotaTableUtil.UserQuotasVisitor visitor) |
protected static void |
parseUserResult(java.lang.String userName,
Result result,
QuotaTableUtil.UserQuotasVisitor visitor) |
static Put |
putSpaceSnapshot(TableName tableName,
SpaceQuotaSnapshot snapshot)
|
protected static QuotaProtos.Quotas |
quotasFromData(byte[] data) |
protected static QuotaProtos.Quotas |
quotasFromData(byte[] data,
int offset,
int length) |
protected static byte[] |
quotasToData(QuotaProtos.Quotas data) |
public static final TableName QUOTA_TABLE_NAME
protected static final byte[] QUOTA_FAMILY_INFO
protected static final byte[] QUOTA_FAMILY_USAGE
protected static final byte[] QUOTA_QUALIFIER_SETTINGS
protected static final byte[] QUOTA_QUALIFIER_SETTINGS_PREFIX
protected static final byte[] QUOTA_QUALIFIER_POLICY
protected static final java.lang.String QUOTA_POLICY_COLUMN
protected static final byte[] QUOTA_USER_ROW_KEY_PREFIX
protected static final byte[] QUOTA_TABLE_ROW_KEY_PREFIX
protected static final byte[] QUOTA_NAMESPACE_ROW_KEY_PREFIX
public static QuotaProtos.Quotas getTableQuota(Connection connection, TableName table) throws java.io.IOException
java.io.IOException
public static QuotaProtos.Quotas getNamespaceQuota(Connection connection, java.lang.String namespace) throws java.io.IOException
java.io.IOException
public static QuotaProtos.Quotas getUserQuota(Connection connection, java.lang.String user) throws java.io.IOException
java.io.IOException
public static QuotaProtos.Quotas getUserQuota(Connection connection, java.lang.String user, TableName table) throws java.io.IOException
java.io.IOException
public static QuotaProtos.Quotas getUserQuota(Connection connection, java.lang.String user, java.lang.String namespace) throws java.io.IOException
java.io.IOException
public static Get makeGetForNamespaceQuotas(java.lang.String namespace)
public static Get makeGetForUserQuotas(java.lang.String user, java.lang.Iterable<TableName> tables, java.lang.Iterable<java.lang.String> namespaces)
public static Scan makeScan(QuotaFilter filter)
public static Filter makeFilter(QuotaFilter filter)
public static Scan makeQuotaSnapshotScan()
Scan
which returns only quota snapshots from the quota table.public static java.util.Map<TableName,SpaceQuotaSnapshot> getSnapshots(Connection conn) throws java.io.IOException
SpaceQuotaSnapshot
objects from the hbase:quota
table.conn
- The HBase connectionjava.io.IOException
public static void extractQuotaSnapshot(Result result, java.util.Map<TableName,SpaceQuotaSnapshot> snapshots)
SpaceViolationPolicy
and TableName
from the provided
Result
and adds them to the given Map
. If the result does not contain
the expected information or the serialized policy in the value is invalid, this method
will throw an IllegalArgumentException
.result
- A row from the quota table.snapshots
- A map of snapshots to add the result of this method into.public static void parseResult(Result result, QuotaTableUtil.QuotasVisitor visitor) throws java.io.IOException
java.io.IOException
public static void parseNamespaceResult(Result result, QuotaTableUtil.NamespaceQuotasVisitor visitor) throws java.io.IOException
java.io.IOException
protected static void parseNamespaceResult(java.lang.String namespace, Result result, QuotaTableUtil.NamespaceQuotasVisitor visitor) throws java.io.IOException
java.io.IOException
public static void parseTableResult(Result result, QuotaTableUtil.TableQuotasVisitor visitor) throws java.io.IOException
java.io.IOException
protected static void parseTableResult(TableName table, Result result, QuotaTableUtil.TableQuotasVisitor visitor) throws java.io.IOException
java.io.IOException
public static void parseUserResult(Result result, QuotaTableUtil.UserQuotasVisitor visitor) throws java.io.IOException
java.io.IOException
protected static void parseUserResult(java.lang.String userName, Result result, QuotaTableUtil.UserQuotasVisitor visitor) throws java.io.IOException
java.io.IOException
public static Put putSpaceSnapshot(TableName tableName, SpaceQuotaSnapshot snapshot)
public static java.util.Map<TableName,java.lang.Long> getMasterReportedTableSizes(Connection conn) throws java.io.IOException
java.io.IOException
public static java.util.Map<TableName,SpaceQuotaSnapshot> getRegionServerQuotaSnapshots(Connection conn, ServerName regionServer) throws java.io.IOException
SpaceQuotaSnapshot
s observed by a RegionServer.java.io.IOException
public static SpaceQuotaSnapshot getCurrentSnapshot(Connection conn, TableName tn) throws java.io.IOException
tableName
or null if the
Master has no quota information on that table.java.io.IOException
public static SpaceQuotaSnapshot getCurrentSnapshot(Connection conn, java.lang.String namespace) throws java.io.IOException
namespace
or null if the
Master has no quota information on that namespace.java.io.IOException
protected static QuotaProtos.Quotas quotasFromData(byte[] data) throws java.io.IOException
java.io.IOException
protected static QuotaProtos.Quotas quotasFromData(byte[] data, int offset, int length) throws java.io.IOException
java.io.IOException
protected static byte[] quotasToData(QuotaProtos.Quotas data) throws java.io.IOException
java.io.IOException
public static boolean isEmptyQuota(QuotaProtos.Quotas quotas)
protected static Result doGet(Connection connection, Get get) throws java.io.IOException
java.io.IOException
protected static Result[] doGet(Connection connection, java.util.List<Get> gets) throws java.io.IOException
java.io.IOException
protected static byte[] getUserRowKey(java.lang.String user)
protected static byte[] getTableRowKey(TableName table)
protected static byte[] getNamespaceRowKey(java.lang.String namespace)
protected static byte[] getSettingsQualifierForUserTable(TableName tableName)
protected static byte[] getSettingsQualifierForUserNamespace(java.lang.String namespace)
protected static java.lang.String getUserRowKeyRegex(java.lang.String user)
protected static java.lang.String getTableRowKeyRegex(java.lang.String table)
protected static java.lang.String getNamespaceRowKeyRegex(java.lang.String namespace)
protected static java.lang.String getSettingsQualifierRegexForUserTable(java.lang.String table)
protected static java.lang.String getSettingsQualifierRegexForUserNamespace(java.lang.String namespace)
protected static boolean isNamespaceRowKey(byte[] key)
protected static java.lang.String getNamespaceFromRowKey(byte[] key)
protected static boolean isTableRowKey(byte[] key)
protected static TableName getTableFromRowKey(byte[] key)
protected static boolean isUserRowKey(byte[] key)
protected static java.lang.String getUserFromRowKey(byte[] key)
protected static QuotaProtos.SpaceQuota getProtoViolationPolicy(SpaceViolationPolicy policy)
protected static SpaceViolationPolicy getViolationPolicy(QuotaProtos.SpaceQuota proto)