Skip to content

HTTPS clone URL

Subversion checkout URL

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