1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.hadoop.hbase.quotas;
18
19 import java.io.IOException;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.apache.hadoop.hbase.TableName;
24 import org.apache.hadoop.hbase.client.Connection;
25 import org.apache.hadoop.hbase.client.Put;
26 import org.apache.hadoop.hbase.client.Table;
27
28
29
30
31 public class TableSpaceQuotaSnapshotNotifier implements SpaceQuotaSnapshotNotifier {
32 private static final Log LOG = LogFactory.getLog(TableSpaceQuotaSnapshotNotifier.class);
33
34 private Connection conn;
35
36 @Override
37 public void transitionTable(
38 TableName tableName, SpaceQuotaSnapshot snapshot) throws IOException {
39 final Put p = QuotaTableUtil.putSpaceSnapshot(tableName, snapshot);
40 try (Table quotaTable = conn.getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {
41 if (LOG.isTraceEnabled()) {
42 LOG.trace("Persisting a space quota snapshot " + snapshot + " for " + tableName);
43 }
44 quotaTable.put(p);
45 }
46 }
47
48 @Override
49 public void initialize(Connection conn) {
50 this.conn = conn;
51 }
52 }