Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 89 lines (61 sloc) 2.362 kb
2e435f5 @dgomezferro Omid project
dgomezferro authored
1 Omid
2 =====
3
4 This project provides transactional support for HBase (or any other key-value store) using Snapshot Isolation.
5
6 Architecture
7 ------------
8
9 Omid is composed by a server (the Status Oracle) and several clients. The server contains all the information
10 needed to manage transactions and replicates it to the clients which just contact the server when they want
11 to start a transaction or commit it.
12
13 The server uses BookKeeper as a Writer Ahead Log where it dumps all its state. In case of crash it is possible
14 to restart the server without losing any commit information.
15
16 Compilation
17 -----------
18
eb791da @dgomezferro Use temporary repo for {zoo,book}keeper
dgomezferro authored
19 Omid uses Maven for its build system. We are using a temporary repository for zookeeper and bookkeeper packages to ease
20 the installation procedure
2e435f5 @dgomezferro Omid project
dgomezferro authored
21
22 Then to compile omid:
23
24 $ tar jxvf omid-1.0-SNAPSHOT.tar.bz2
25 $ cd omid-1.0-SNAPSHOT
26 $ mvn install
27
28 Tests should run cleanly.
29
30 Running
31 -------
32
33 You need to run four components before running the transactional
34 client. They are bookkeeper, zookeeper, omid tso and
35 hbase. Bookkeeper is needed by the TSO. Zookeeper is needed by
36 bookkeeper and hbase. The TSO is needed by hbase. Hence, the order of
37 starting should be:
38 1. Zookeeper
39 2. Bookkeeper
40 3. TSO
41 4. Hbase
42
43 ### Zookeeper & Bookkeeper
44 For simplicity we've included a utility script which starts zookeeper
45 and bookkeeper. Run:
46
47 $ bin/omid.sh bktest
48
49 Omid doesn't use anything special in zookeeper or bookkeeper, so you
50 can use any install for these. However, if you are running this
51 anywhere but localhost, you need to update the setting for hbase and
52 TSO. See the hbase docs for changing the zookeeper quorum. For TSO,
53 you need to modify bin/omid.sh.
54
55 ### TSO
56 To start the TSO, run:
57
58 $ bin/omid.sh tso
59
60 ### Benchmark
61 To benchmark the TSO alone, run:
62
63 $ bin/omid.sh tsobench
64
65 ### HBase
66 We've included a utility script to start a HBase cluster on your local
67 machine. Run:
68
69 $ bin/omid.sh tran-hbase
70
71 For running in a cluster
72
73 API
74 ---
75
76 The public api is in
77
78 src/main/java/com/yahoo/omid/client/TransactionalTable.java
79 src/main/java/com/yahoo/omid/client/TransactionState.java
80 src/main/java/com/yahoo/omid/client/TransactionManager.java
81
82 For an example of usage, look in
83
84 src/test/java/com/yahoo/omid/TestBasicTransaction.java
85
86 Logging
87 -------
88 Logging can be adjusted in src/main/resource/log4j.properties.
Something went wrong with that request. Please try again.