1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.chaos.actions;
20
21 import org.apache.hadoop.hbase.HBaseTestingUtility;
22 import org.apache.hadoop.hbase.client.HBaseAdmin;
23 import org.apache.hadoop.hbase.util.Bytes;
24
25
26
27
28 public class FlushTableAction extends Action {
29 private final byte[] tableNameBytes;
30 private final long sleepTime;
31 private final String tableName;
32
33 public FlushTableAction(String tableName) {
34 this(-1, tableName);
35 }
36
37 public FlushTableAction(int sleepTime, String tableName) {
38 this.tableNameBytes = Bytes.toBytes(tableName);
39 this.sleepTime = sleepTime;
40 this.tableName = tableName;
41 }
42
43 @Override
44 public void perform() throws Exception {
45 HBaseTestingUtility util = context.getHBaseIntegrationTestingUtility();
46 HBaseAdmin admin = util.getHBaseAdmin();
47
48 LOG.info("Performing action: Flush table " + tableName);
49 try {
50 admin.flush(tableNameBytes);
51 } catch (Exception ex) {
52 LOG.warn("Flush failed, might be caused by other chaos: " + ex.getMessage());
53 }
54 if (sleepTime > 0) {
55 Thread.sleep(sleepTime);
56 }
57 }
58 }