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