1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase;
19
20 import com.google.common.collect.Sets;
21 import org.apache.hadoop.conf.Configuration;
22 import org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy;
23 import org.apache.hadoop.hbase.testclassification.IntegrationTests;
24 import org.apache.hadoop.hbase.util.Bytes;
25 import org.apache.hadoop.util.ToolRunner;
26 import org.junit.Test;
27 import org.junit.experimental.categories.Category;
28
29 import java.util.Set;
30
31
32
33
34
35
36
37
38
39
40
41
42
43 @Category(IntegrationTests.class)
44 public class IntegrationTestAcidGuarantees extends IntegrationTestBase {
45 private static final int SERVER_COUNT = 1;
46
47
48 TestAcidGuarantees tag;
49
50 @Override
51 public int runTestFromCommandLine() throws Exception {
52 Configuration c = getConf();
53 int millis = c.getInt("millis", 5000);
54 int numWriters = c.getInt("numWriters", 50);
55 int numGetters = c.getInt("numGetters", 2);
56 int numScanners = c.getInt("numScanners", 2);
57 int numUniqueRows = c.getInt("numUniqueRows", 3);
58 boolean useMob = c.getBoolean("useMob",false);
59 tag.runTestAtomicity(millis, numWriters, numGetters, numScanners, numUniqueRows, true, useMob);
60 return 0;
61 }
62
63 @Override
64 public void setUpCluster() throws Exception {
65
66 util = getTestingUtil(getConf());
67 util.initializeCluster(SERVER_COUNT);
68 conf = getConf();
69 conf.set(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, String.valueOf(128*1024));
70
71 conf.set(HConstants.HBASE_REGION_SPLIT_POLICY_KEY,
72 ConstantSizeRegionSplitPolicy.class.getName());
73 this.setConf(util.getConfiguration());
74
75
76
77 tag = new TestAcidGuarantees();
78 tag.setHBaseTestingUtil(util);
79 }
80
81 @Override
82 public TableName getTablename() {
83 return TestAcidGuarantees.TABLE_NAME;
84 }
85
86 @Override
87 protected Set<String> getColumnFamilies() {
88 return Sets.newHashSet(Bytes.toString(TestAcidGuarantees.FAMILY_A),
89 Bytes.toString(TestAcidGuarantees.FAMILY_B),
90 Bytes.toString(TestAcidGuarantees.FAMILY_C));
91 }
92
93
94
95 @Test
96 public void testGetAtomicity() throws Exception {
97 tag.runTestAtomicity(20000, 5, 5, 0, 3);
98 }
99
100 @Test
101 public void testScanAtomicity() throws Exception {
102 tag.runTestAtomicity(20000, 5, 0, 5, 3);
103 }
104
105 @Test
106 public void testMixedAtomicity() throws Exception {
107 tag.runTestAtomicity(20000, 5, 2, 2, 3);
108 }
109
110
111
112
113 public static void main(String[] args) throws Exception {
114 Configuration conf = HBaseConfiguration.create();
115 IntegrationTestingUtility.setUseDistributedCluster(conf);
116 int ret = ToolRunner.run(conf, new IntegrationTestAcidGuarantees(), args);
117 System.exit(ret);
118 }
119 }
120
121