You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@omid.apache.org by oh...@apache.org on 2018/09/20 07:51:52 UTC

[01/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Repository: incubator-omid-site
Updated Branches:
  refs/heads/asf-site 28704dc0b -> 581871ee7


http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/client/TSOProtocol.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/client/TSOProtocol.html b/xref/org/apache/omid/tso/client/TSOProtocol.html
index 85d701c..1b488f4 100644
--- a/xref/org/apache/omid/tso/client/TSOProtocol.html
+++ b/xref/org/apache/omid/tso/client/TSOProtocol.html
@@ -27,73 +27,50 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.tso.client;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConflictDetectionLevel;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * Defines the protocol used on the client side to abstract communication to the TSO server</em>
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> <a href="../../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> {
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <em class="jxr_javadoccomment">     * Returns a new timestamp assigned by on the server-side</em>
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <em class="jxr_javadoccomment">     * @return the newly assigned timestamp as a future. If an error was detected, the future will contain a</em>
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment">     * corresponding protocol exception</em>
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TimestampOracle</em>
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TSOServer</em>
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="37" href="#37">37</a>      TSOFuture&lt;Long&gt; getNewStartTimestamp();
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment">     * Returns the result of the conflict detection made on the server-side for the specified transaction</em>
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment">     * @param transactionId</em>
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     *          the transaction to check for conflicts</em>
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     * @param writeSet</em>
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     *          the writeSet of the transaction, which includes all the modified cells</em>
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     * @return the commit timestamp as a future if the transaction was committed. If the transaction was aborted due</em>
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     * to conflicts with a concurrent transaction, the future will include an AbortException. If an error was detected,</em>
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * the future will contain a corresponding protocol exception</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TimestampOracle</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TSOServer</em>
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="51" href="#51">51</a>      TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; writeSet);
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * Returns the result of the conflict detection made on the server-side for the specified transaction</em>
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * @param transactionId</em>
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     *          the transaction to check for conflicts</em>
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @param writeSet</em>
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     *          the writeSet of the transaction, which includes all the modified cells</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * @param conflictFreeWriteSet</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     *          the conflict free writeSet of the transaction, needed only for table access information.</em>
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * @return the commit timestamp as a future if the transaction was committed. If the transaction was aborted due</em>
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * to conflicts with a concurrent transaction, the future will include an AbortException. If an error was detected,</em>
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * the future will contain a corresponding protocol exception</em>
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TimestampOracle</em>
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TSOServer</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="67" href="#67">67</a>      TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; writeSet, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; conflictFreeWriteSet);
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * Returns a new fence timestamp assigned by on the server-side</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * @param tableId</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     *          the table to create fence for.</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * @return the newly assigned timestamp as a future. If an error was detected, the future will contain a</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * corresponding protocol exception</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TimestampOracle</em>
-<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TSOServer</em>
-<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>      TSOFuture&lt;Long&gt; getFence(<strong class="jxr_keyword">long</strong> tableId);
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * Closes the communication with the TSO server</em>
-<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * @return nothing. If an error was detected, the future will contain a corresponding protocol exception</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="84" href="#84">84</a>      TSOFuture&lt;Void&gt; close();
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>  }
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <em class="jxr_javadoccomment"> * Defines the protocol used on the client side to abstract communication to the TSO server</em>
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> <a href="../../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> {
+<a class="jxr_linenumber" name="26" href="#26">26</a>  
+<a class="jxr_linenumber" name="27" href="#27">27</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <em class="jxr_javadoccomment">     * Returns the epoch of the current TSO server. Used in HA mode.</em>
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <em class="jxr_javadoccomment">     * @return the epoch.</em>
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="32" href="#32">32</a>      <strong class="jxr_keyword">long</strong> getEpoch();
+<a class="jxr_linenumber" name="33" href="#33">33</a>  
+<a class="jxr_linenumber" name="34" href="#34">34</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment">     * Returns a new timestamp assigned by on the server-side</em>
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment">     * @return the newly assigned timestamp as a future. If an error was detected, the future will contain a</em>
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment">     * corresponding protocol exception</em>
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TimestampOracle</em>
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TSOServer</em>
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="41" href="#41">41</a>      TSOFuture&lt;Long&gt; getNewStartTimestamp();
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     * Returns the result of the conflict detection made on the server-side for the specified transaction</em>
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     * @param transactionId</em>
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     *          the transaction to check for conflicts</em>
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * @param writeSet</em>
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     *          the writeSet of the transaction, which includes all the modified cells</em>
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * @return the commit timestamp as a future if the transaction was committed. If the transaction was aborted due</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * to conflicts with a concurrent transaction, the future will include an AbortException. If an error was detected,</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * the future will contain a corresponding protocol exception</em>
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TimestampOracle</em>
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * see org.apache.omid.tso.TSOServer</em>
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="55" href="#55">55</a>      TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; writeSet);
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     * Closes the communication with the TSO server</em>
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * @return nothing. If an error was detected, the future will contain a corresponding protocol exception</em>
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="61" href="#61">61</a>      TSOFuture&lt;Void&gt; close();
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/client/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/client/package-frame.html b/xref/org/apache/omid/tso/client/package-frame.html
index 71c9b4b..20a8589 100644
--- a/xref/org/apache/omid/tso/client/package-frame.html
+++ b/xref/org/apache/omid/tso/client/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso.client</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso.client</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -40,9 +40,6 @@
             	<a href="TSOClient.html" target="classFrame">CommitRequestTimeoutEvent</a>
           	</li>
           	          	<li>
-            	<a href="OmidClientConfiguration.html" target="classFrame">ConflictDetectionLevel</a>
-          	</li>
-          	          	<li>
             	<a href="OmidClientConfiguration.html" target="classFrame">ConnType</a>
           	</li>
           	          	<li>
@@ -67,9 +64,6 @@
             	<a href="TSOClient.html" target="classFrame">ErrorEvent</a>
           	</li>
           	          	<li>
-            	<a href="TSOClient.html" target="classFrame">FenceRequestTimeoutEvent</a>
-          	</li>
-          	          	<li>
             	<a href="ForwardingTSOFuture.html" target="classFrame">ForwardingTSOFuture</a>
           	</li>
           	          	<li>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/client/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/client/package-summary.html b/xref/org/apache/omid/tso/client/package-summary.html
index 1241285..9137c98 100644
--- a/xref/org/apache/omid/tso/client/package-summary.html
+++ b/xref/org/apache/omid/tso/client/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso.client</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso.client</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -77,11 +77,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="OmidClientConfiguration.html" target="classFrame">ConflictDetectionLevel</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="OmidClientConfiguration.html" target="classFrame">ConnType</a>
               		</td>
             	</tr>
@@ -122,11 +117,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TSOClient.html" target="classFrame">FenceRequestTimeoutEvent</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="ForwardingTSOFuture.html" target="classFrame">ForwardingTSOFuture</a>
               		</td>
             	</tr>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/package-frame.html b/xref/org/apache/omid/tso/package-frame.html
index 6928837..04e4d63 100644
--- a/xref/org/apache/omid/tso/package-frame.html
+++ b/xref/org/apache/omid/tso/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -127,9 +127,6 @@
             	<a href="SystemExitPanicker.html" target="classFrame">SystemExitPanicker</a>
           	</li>
           	          	<li>
-            	<a href="TSOServerConfig.html" target="classFrame">TIMESTAMP_TYPE</a>
-          	</li>
-          	          	<li>
             	<a href="TSOChannelHandler.html" target="classFrame">TSOChannelContext</a>
           	</li>
           	          	<li>
@@ -177,9 +174,6 @@
           	          	<li>
             	<a href="TSOServerConfig.html" target="classFrame">WAIT_STRATEGY</a>
           	</li>
-          	          	<li>
-            	<a href="WorldClockOracleImpl.html" target="classFrame">WorldClockOracleImpl</a>
-          	</li>
           	      	</ul>
 
 	</body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/package-summary.html b/xref/org/apache/omid/tso/package-summary.html
index 5811c14..828d2c7 100644
--- a/xref/org/apache/omid/tso/package-summary.html
+++ b/xref/org/apache/omid/tso/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -222,11 +222,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TSOServerConfig.html" target="classFrame">TIMESTAMP_TYPE</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="TSOChannelHandler.html" target="classFrame">TSOChannelContext</a>
               		</td>
             	</tr>
@@ -305,11 +300,6 @@
                 		<a href="TSOServerConfig.html" target="classFrame">WAIT_STRATEGY</a>
               		</td>
             	</tr>
-				            	<tr>
-              		<td>
-                		<a href="WorldClockOracleImpl.html" target="classFrame">WorldClockOracleImpl</a>
-              		</td>
-            	</tr>
 				        	</tbody>
       	</table>
 		

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/util/DummyCellIdImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/util/DummyCellIdImpl.html b/xref/org/apache/omid/tso/util/DummyCellIdImpl.html
index a84fcdd..c5e08d3 100644
--- a/xref/org/apache/omid/tso/util/DummyCellIdImpl.html
+++ b/xref/org/apache/omid/tso/util/DummyCellIdImpl.html
@@ -32,32 +32,17 @@
 <a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/util/DummyCellIdImpl.html">DummyCellIdImpl</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/tso/client/CellId.html">CellId</a> {
 <a class="jxr_linenumber" name="23" href="#23">23</a>  
 <a class="jxr_linenumber" name="24" href="#24">24</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> cellId;
-<a class="jxr_linenumber" name="25" href="#25">25</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> rowId;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  
-<a class="jxr_linenumber" name="27" href="#27">27</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/util/DummyCellIdImpl.html">DummyCellIdImpl</a>(<strong class="jxr_keyword">long</strong> cellId) {
-<a class="jxr_linenumber" name="28" href="#28">28</a>          <strong class="jxr_keyword">this</strong>(cellId, cellId);
-<a class="jxr_linenumber" name="29" href="#29">29</a>      }
-<a class="jxr_linenumber" name="30" href="#30">30</a>  
-<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/util/DummyCellIdImpl.html">DummyCellIdImpl</a>(<strong class="jxr_keyword">long</strong> cellId, <strong class="jxr_keyword">long</strong> rowId) {
-<a class="jxr_linenumber" name="32" href="#32">32</a>          <strong class="jxr_keyword">this</strong>.cellId = cellId;
-<a class="jxr_linenumber" name="33" href="#33">33</a>          <strong class="jxr_keyword">this</strong>.rowId = rowId;
-<a class="jxr_linenumber" name="34" href="#34">34</a>      }
-<a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>      @Override
-<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getCellId() {
-<a class="jxr_linenumber" name="38" href="#38">38</a>          <strong class="jxr_keyword">return</strong> cellId;
-<a class="jxr_linenumber" name="39" href="#39">39</a>      }
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>      @Override
-<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getTableId() {
-<a class="jxr_linenumber" name="43" href="#43">43</a>          <strong class="jxr_keyword">return</strong> cellId;
-<a class="jxr_linenumber" name="44" href="#44">44</a>      }
-<a class="jxr_linenumber" name="45" href="#45">45</a>  
-<a class="jxr_linenumber" name="46" href="#46">46</a>      @Override
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getRowId() {
-<a class="jxr_linenumber" name="48" href="#48">48</a>          <strong class="jxr_keyword">return</strong> rowId;
-<a class="jxr_linenumber" name="49" href="#49">49</a>      }
-<a class="jxr_linenumber" name="50" href="#50">50</a>  }
+<a class="jxr_linenumber" name="25" href="#25">25</a>  
+<a class="jxr_linenumber" name="26" href="#26">26</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/util/DummyCellIdImpl.html">DummyCellIdImpl</a>(<strong class="jxr_keyword">long</strong> cellId) {
+<a class="jxr_linenumber" name="27" href="#27">27</a>          <strong class="jxr_keyword">this</strong>.cellId = cellId;
+<a class="jxr_linenumber" name="28" href="#28">28</a>      }
+<a class="jxr_linenumber" name="29" href="#29">29</a>  
+<a class="jxr_linenumber" name="30" href="#30">30</a>      @Override
+<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getCellId() {
+<a class="jxr_linenumber" name="32" href="#32">32</a>          <strong class="jxr_keyword">return</strong> cellId;
+<a class="jxr_linenumber" name="33" href="#33">33</a>      }
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/util/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/util/package-frame.html b/xref/org/apache/omid/tso/util/package-frame.html
index 17f2057..69a559d 100644
--- a/xref/org/apache/omid/tso/util/package-frame.html
+++ b/xref/org/apache/omid/tso/util/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso.util</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso.util</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/util/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/util/package-summary.html b/xref/org/apache/omid/tso/util/package-summary.html
index 953c586..89ee8f0 100644
--- a/xref/org/apache/omid/tso/util/package-summary.html
+++ b/xref/org/apache/omid/tso/util/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso.util</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso.util</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/zk/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/zk/package-frame.html b/xref/org/apache/omid/zk/package-frame.html
index 19184a8..6a9a0f7 100644
--- a/xref/org/apache/omid/zk/package-frame.html
+++ b/xref/org/apache/omid/zk/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.zk</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.zk</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/zk/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/zk/package-summary.html b/xref/org/apache/omid/zk/package-summary.html
index c6d5b02..85dd939 100644
--- a/xref/org/apache/omid/zk/package-summary.html
+++ b/xref/org/apache/omid/zk/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.zk</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.zk</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/statemachine/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/statemachine/package-frame.html b/xref/org/apache/statemachine/package-frame.html
index 9616216..69525fe 100644
--- a/xref/org/apache/statemachine/package-frame.html
+++ b/xref/org/apache/statemachine/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.statemachine</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.statemachine</title>
 		<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/statemachine/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/statemachine/package-summary.html b/xref/org/apache/statemachine/package-summary.html
index 2fac827..95e7456 100644
--- a/xref/org/apache/statemachine/package-summary.html
+++ b/xref/org/apache/statemachine/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.statemachine</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.statemachine</title>
 		<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/overview-frame.html
----------------------------------------------------------------------
diff --git a/xref/overview-frame.html b/xref/overview-frame.html
index b1bcf23..b4a4c72 100644
--- a/xref/overview-frame.html
+++ b/xref/overview-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference</title>
 		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -16,9 +16,6 @@
 
 		<ul>
 						<li>
-				<a href="org/apache/hadoop/hbase/coprocessor/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.coprocessor</a>
-			</li>
-						<li>
 				<a href="org/apache/hadoop/hbase/regionserver/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.regionserver</a>
 			</li>
 						<li>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/overview-summary.html
----------------------------------------------------------------------
diff --git a/xref/overview-summary.html b/xref/overview-summary.html
index 4b00c45..e5bb0f4 100644
--- a/xref/overview-summary.html
+++ b/xref/overview-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference</title>
 		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -24,7 +24,7 @@
 	        </ul>
       	</div>
 		
-		      	<h2>Omid 0.8.2.11-SNAPSHOT Reference</h2>
+		      	<h2>Omid 0.9.1.0-SNAPSHOT Reference</h2>
 
 		<table class="summary">
         	<thead>
@@ -35,11 +35,6 @@
         	<tbody>
     	    	            	<tr>
               		<td>
-                		<a href="org/apache/hadoop/hbase/coprocessor/package-summary.html">org.apache.hadoop.hbase.coprocessor</a>
-              		</td>
-            	</tr>
-	          	            	<tr>
-              		<td>
                 		<a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a>
               		</td>
             	</tr>


[41/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestAsynchronousPostCommitter.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestAsynchronousPostCommitter.html b/xref-test/org/apache/omid/transaction/TestAsynchronousPostCommitter.html
index 2794aba..efab50c 100644
--- a/xref-test/org/apache/omid/transaction/TestAsynchronousPostCommitter.html
+++ b/xref-test/org/apache/omid/transaction/TestAsynchronousPostCommitter.html
@@ -27,50 +27,50 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.times;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNotNull;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListeningExecutorService;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.MoreExecutors;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ThreadFactoryBuilder;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestAsynchronousPostCommitter.html">TestAsynchronousPostCommitter</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestAsynchronousPostCommitter.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListeningExecutorService;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.MoreExecutors;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ThreadFactoryBuilder;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.times;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNotNull;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  
+<a class="jxr_linenumber" name="52" href="#52">52</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestAsynchronousPostCommitter.html">TestAsynchronousPostCommitter</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestAsynchronousPostCommitter.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] nonExistentFamily = Bytes.toBytes(<span class="jxr_string">"non-existent"</span>);
 <a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"test-qual"</span>);
 <a class="jxr_linenumber" name="60" href="#60">60</a>  
 <a class="jxr_linenumber" name="61" href="#61">61</a>      byte[] row1 = Bytes.toBytes(<span class="jxr_string">"test-is-committed1"</span>);
 <a class="jxr_linenumber" name="62" href="#62">62</a>      byte[] row2 = Bytes.toBytes(<span class="jxr_string">"test-is-committed2"</span>);
-<a class="jxr_linenumber" name="63" href="#63">63</a>      
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
 <a class="jxr_linenumber" name="64" href="#64">64</a>      @Test(timeOut = 30_000)
 <a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPostCommitActionsAreCalledAsynchronously(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="66" href="#66">66</a>  
@@ -117,16 +117,16 @@
 <a class="jxr_linenumber" name="107" href="#107">107</a>             }
 <a class="jxr_linenumber" name="108" href="#108">108</a>         }).when(syncPostCommitter).removeCommitTableEntry(any(AbstractTransaction.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
+<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
 <a class="jxr_linenumber" name="111" href="#111">111</a> 
 <a class="jxr_linenumber" name="112" href="#112">112</a>             <em class="jxr_comment">// Execute tx with async post commit actions</em>
 <a class="jxr_linenumber" name="113" href="#113">113</a>             Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="114" href="#114">114</a> 
 <a class="jxr_linenumber" name="115" href="#115">115</a>             Put put1 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="116" href="#116">116</a>             put1.addColumn(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hey!"</span>));
+<a class="jxr_linenumber" name="116" href="#116">116</a>             put1.add(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hey!"</span>));
 <a class="jxr_linenumber" name="117" href="#117">117</a>             txTable.put(tx1, put1);
 <a class="jxr_linenumber" name="118" href="#118">118</a>             Put put2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="119" href="#119">119</a>             put2.addColumn(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hou!"</span>));
+<a class="jxr_linenumber" name="119" href="#119">119</a>             put2.add(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hou!"</span>));
 <a class="jxr_linenumber" name="120" href="#120">120</a>             txTable.put(tx1, put2);
 <a class="jxr_linenumber" name="121" href="#121">121</a> 
 <a class="jxr_linenumber" name="122" href="#122">122</a>             tm.commit(tx1);
@@ -224,16 +224,16 @@
 <a class="jxr_linenumber" name="214" href="#214">214</a>         }).when(syncPostCommitter).removeCommitTableEntry(any(AbstractTransaction.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="215" href="#215">215</a> 
 <a class="jxr_linenumber" name="216" href="#216">216</a> 
-<a class="jxr_linenumber" name="217" href="#217">217</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
+<a class="jxr_linenumber" name="217" href="#217">217</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
 <a class="jxr_linenumber" name="218" href="#218">218</a> 
 <a class="jxr_linenumber" name="219" href="#219">219</a>             <em class="jxr_comment">// Execute tx with async post commit actions</em>
 <a class="jxr_linenumber" name="220" href="#220">220</a>             Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="221" href="#221">221</a> 
 <a class="jxr_linenumber" name="222" href="#222">222</a>             Put put1 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="223" href="#223">223</a>             put1.addColumn(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hey!"</span>));
+<a class="jxr_linenumber" name="223" href="#223">223</a>             put1.add(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hey!"</span>));
 <a class="jxr_linenumber" name="224" href="#224">224</a>             txTable.put(tx1, put1);
 <a class="jxr_linenumber" name="225" href="#225">225</a>             Put put2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="226" href="#226">226</a>             put2.addColumn(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hou!"</span>));
+<a class="jxr_linenumber" name="226" href="#226">226</a>             put2.add(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hou!"</span>));
 <a class="jxr_linenumber" name="227" href="#227">227</a>             txTable.put(tx1, put2);
 <a class="jxr_linenumber" name="228" href="#228">228</a> 
 <a class="jxr_linenumber" name="229" href="#229">229</a>             tm.commit(tx1);
@@ -293,16 +293,16 @@
 <a class="jxr_linenumber" name="283" href="#283">283</a>         }).when(syncPostCommitter).removeCommitTableEntry(any(AbstractTransaction.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="284" href="#284">284</a> 
 <a class="jxr_linenumber" name="285" href="#285">285</a> 
-<a class="jxr_linenumber" name="286" href="#286">286</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
+<a class="jxr_linenumber" name="286" href="#286">286</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
 <a class="jxr_linenumber" name="287" href="#287">287</a> 
 <a class="jxr_linenumber" name="288" href="#288">288</a>             <em class="jxr_comment">// Execute tx with async post commit actions</em>
 <a class="jxr_linenumber" name="289" href="#289">289</a>             Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="290" href="#290">290</a> 
 <a class="jxr_linenumber" name="291" href="#291">291</a>             Put put1 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="292" href="#292">292</a>             put1.addColumn(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hey!"</span>));
+<a class="jxr_linenumber" name="292" href="#292">292</a>             put1.add(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hey!"</span>));
 <a class="jxr_linenumber" name="293" href="#293">293</a>             txTable.put(tx1, put1);
 <a class="jxr_linenumber" name="294" href="#294">294</a>             Put put2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="295" href="#295">295</a>             put2.addColumn(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hou!"</span>));
+<a class="jxr_linenumber" name="295" href="#295">295</a>             put2.add(family, qualifier, Bytes.toBytes(<span class="jxr_string">"hou!"</span>));
 <a class="jxr_linenumber" name="296" href="#296">296</a>             txTable.put(tx1, put2);
 <a class="jxr_linenumber" name="297" href="#297">297</a> 
 <a class="jxr_linenumber" name="298" href="#298">298</a>             tm.commit(tx1);

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestAutoFlush.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestAutoFlush.html b/xref-test/org/apache/omid/transaction/TestAutoFlush.html
index 8102cad..c8c7961 100644
--- a/xref-test/org/apache/omid/transaction/TestAutoFlush.html
+++ b/xref-test/org/apache/omid/transaction/TestAutoFlush.html
@@ -27,14 +27,14 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
 <a class="jxr_linenumber" name="28" href="#28">28</a>  
 <a class="jxr_linenumber" name="29" href="#29">29</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
 <a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestAutoFlush.html">TestAutoFlush</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
@@ -47,14 +47,14 @@
 <a class="jxr_linenumber" name="37" href="#37">37</a>          byte[] col = Bytes.toBytes(<span class="jxr_string">"col1"</span>);
 <a class="jxr_linenumber" name="38" href="#38">38</a>          byte[] data = Bytes.toBytes(<span class="jxr_string">"data"</span>);
 <a class="jxr_linenumber" name="39" href="#39">39</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="40" href="#40">40</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="40" href="#40">40</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="41" href="#41">41</a>  
 <a class="jxr_linenumber" name="42" href="#42">42</a>          <em class="jxr_comment">// Turn off autoflush</em>
 <a class="jxr_linenumber" name="43" href="#43">43</a>          table.setAutoFlush(false);
 <a class="jxr_linenumber" name="44" href="#44">44</a>  
 <a class="jxr_linenumber" name="45" href="#45">45</a>          Transaction t = tm.begin();
 <a class="jxr_linenumber" name="46" href="#46">46</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="47" href="#47">47</a>          put.addColumn(family, col, data);
+<a class="jxr_linenumber" name="47" href="#47">47</a>          put.add(family, col, data);
 <a class="jxr_linenumber" name="48" href="#48">48</a>          table.put(t, put);
 <a class="jxr_linenumber" name="49" href="#49">49</a>  
 <a class="jxr_linenumber" name="50" href="#50">50</a>          <em class="jxr_comment">// Data shouldn't be in DB yet</em>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.html b/xref-test/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.html
index 088eed1..9692d9e 100644
--- a/xref-test/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.html
+++ b/xref-test/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.html
@@ -27,27 +27,27 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.slf4j.LoggerFactory.getLogger;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.CompareFilter;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.Filter;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.CompareFilter;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.Filter;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.slf4j.LoggerFactory.getLogger;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
 <a class="jxr_linenumber" name="41" href="#41">41</a>  
 <a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment">/**</em>
 <a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * These tests try to analyze the transactional anomalies described by P. Baillis et al. in</em>
@@ -99,7 +99,7 @@
 <a class="jxr_linenumber" name="89" href="#89">89</a>  
 <a class="jxr_linenumber" name="90" href="#90">90</a>          <em class="jxr_comment">// 0) Start transactions</em>
 <a class="jxr_linenumber" name="91" href="#91">91</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="92" href="#92">92</a>          TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="92" href="#92">92</a>          TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="93" href="#93">93</a>  
 <a class="jxr_linenumber" name="94" href="#94">94</a>          Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="95" href="#95">95</a>          Transaction tx2 = tm.begin();
@@ -113,7 +113,7 @@
 <a class="jxr_linenumber" name="103" href="#103">103</a> 
 <a class="jxr_linenumber" name="104" href="#104">104</a>         <em class="jxr_comment">// 2) insert into test (id, value) values(3, 30); -- T2</em>
 <a class="jxr_linenumber" name="105" href="#105">105</a>         Put newRow = <strong class="jxr_keyword">new</strong> Put(rowId3);
-<a class="jxr_linenumber" name="106" href="#106">106</a>         newRow.addColumn(famName, colName, dataValue3);
+<a class="jxr_linenumber" name="106" href="#106">106</a>         newRow.add(famName, colName, dataValue3);
 <a class="jxr_linenumber" name="107" href="#107">107</a>         txTable.put(tx2, newRow);
 <a class="jxr_linenumber" name="108" href="#108">108</a> 
 <a class="jxr_linenumber" name="109" href="#109">109</a>         <em class="jxr_comment">// 3) Commit TX 2</em>
@@ -139,7 +139,7 @@
 <a class="jxr_linenumber" name="129" href="#129">129</a> 
 <a class="jxr_linenumber" name="130" href="#130">130</a>         <em class="jxr_comment">// 0) Start transactions</em>
 <a class="jxr_linenumber" name="131" href="#131">131</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="132" href="#132">132</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="132" href="#132">132</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="133" href="#133">133</a>         Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="134" href="#134">134</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="135" href="#135">135</a> 
@@ -153,7 +153,7 @@
 <a class="jxr_linenumber" name="143" href="#143">143</a>             Put row = <strong class="jxr_keyword">new</strong> Put(updateRes.getRow());
 <a class="jxr_linenumber" name="144" href="#144">144</a>             <strong class="jxr_keyword">int</strong> val = Bytes.toInt(updateRes.getValue(famName, colName));
 <a class="jxr_linenumber" name="145" href="#145">145</a>             LOG.info(<span class="jxr_string">"Updating row id {} with value {}"</span>, Bytes.toString(updateRes.getRow()), val);
-<a class="jxr_linenumber" name="146" href="#146">146</a>             row.addColumn(famName, colName, Bytes.toBytes(val + 10));
+<a class="jxr_linenumber" name="146" href="#146">146</a>             row.add(famName, colName, Bytes.toBytes(val + 10));
 <a class="jxr_linenumber" name="147" href="#147">147</a>             txTable.put(tx1, row);
 <a class="jxr_linenumber" name="148" href="#148">148</a>             updateRes = tx1Scanner.next();
 <a class="jxr_linenumber" name="149" href="#149">149</a>             count++;
@@ -208,7 +208,7 @@
 <a class="jxr_linenumber" name="198" href="#198">198</a> 
 <a class="jxr_linenumber" name="199" href="#199">199</a>         <em class="jxr_comment">// 0) Start transactions</em>
 <a class="jxr_linenumber" name="200" href="#200">200</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="201" href="#201">201</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="201" href="#201">201</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="202" href="#202">202</a>         Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="203" href="#203">203</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="204" href="#204">204</a> 
@@ -247,12 +247,12 @@
 <a class="jxr_linenumber" name="237" href="#237">237</a> 
 <a class="jxr_linenumber" name="238" href="#238">238</a>         <em class="jxr_comment">// 3) update test set value = 11 where id = 1; -- T1</em>
 <a class="jxr_linenumber" name="239" href="#239">239</a>         Put updateRow1Tx1 = <strong class="jxr_keyword">new</strong> Put(rowId1);
-<a class="jxr_linenumber" name="240" href="#240">240</a>         updateRow1Tx1.addColumn(famName, colName, Bytes.toBytes(<span class="jxr_string">"11"</span>));
+<a class="jxr_linenumber" name="240" href="#240">240</a>         updateRow1Tx1.add(famName, colName, Bytes.toBytes(<span class="jxr_string">"11"</span>));
 <a class="jxr_linenumber" name="241" href="#241">241</a>         txTable.put(tx1, updateRow1Tx1);
 <a class="jxr_linenumber" name="242" href="#242">242</a> 
 <a class="jxr_linenumber" name="243" href="#243">243</a>         <em class="jxr_comment">// 4) update test set value = 11 where id = 1; -- T2</em>
 <a class="jxr_linenumber" name="244" href="#244">244</a>         Put updateRow1Tx2 = <strong class="jxr_keyword">new</strong> Put(rowId1);
-<a class="jxr_linenumber" name="245" href="#245">245</a>         updateRow1Tx2.addColumn(famName, colName, Bytes.toBytes(<span class="jxr_string">"11"</span>));
+<a class="jxr_linenumber" name="245" href="#245">245</a>         updateRow1Tx2.add(famName, colName, Bytes.toBytes(<span class="jxr_string">"11"</span>));
 <a class="jxr_linenumber" name="246" href="#246">246</a>         txTable.put(tx2, updateRow1Tx2);
 <a class="jxr_linenumber" name="247" href="#247">247</a> 
 <a class="jxr_linenumber" name="248" href="#248">248</a>         <em class="jxr_comment">// 5) commit -- T1</em>
@@ -284,7 +284,7 @@
 <a class="jxr_linenumber" name="274" href="#274">274</a> 
 <a class="jxr_linenumber" name="275" href="#275">275</a>         <em class="jxr_comment">// 0) Start transactions</em>
 <a class="jxr_linenumber" name="276" href="#276">276</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="277" href="#277">277</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="277" href="#277">277</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="278" href="#278">278</a>         Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="279" href="#279">279</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="280" href="#280">280</a> 
@@ -339,12 +339,12 @@
 <a class="jxr_linenumber" name="329" href="#329">329</a> 
 <a class="jxr_linenumber" name="330" href="#330">330</a>         <em class="jxr_comment">// 4) update test set value = 12 where id = 1; -- T2</em>
 <a class="jxr_linenumber" name="331" href="#331">331</a>         Put updateRow1Tx2 = <strong class="jxr_keyword">new</strong> Put(rowId1);
-<a class="jxr_linenumber" name="332" href="#332">332</a>         updateRow1Tx2.addColumn(famName, colName, Bytes.toBytes(<span class="jxr_string">"12"</span>));
+<a class="jxr_linenumber" name="332" href="#332">332</a>         updateRow1Tx2.add(famName, colName, Bytes.toBytes(<span class="jxr_string">"12"</span>));
 <a class="jxr_linenumber" name="333" href="#333">333</a>         txTable.put(tx1, updateRow1Tx2);
 <a class="jxr_linenumber" name="334" href="#334">334</a> 
 <a class="jxr_linenumber" name="335" href="#335">335</a>         <em class="jxr_comment">// 5) update test set value = 18 where id = 1; -- T2</em>
 <a class="jxr_linenumber" name="336" href="#336">336</a>         Put updateRow2Tx2 = <strong class="jxr_keyword">new</strong> Put(rowId2);
-<a class="jxr_linenumber" name="337" href="#337">337</a>         updateRow2Tx2.addColumn(famName, colName, Bytes.toBytes(<span class="jxr_string">"18"</span>));
+<a class="jxr_linenumber" name="337" href="#337">337</a>         updateRow2Tx2.add(famName, colName, Bytes.toBytes(<span class="jxr_string">"18"</span>));
 <a class="jxr_linenumber" name="338" href="#338">338</a>         txTable.put(tx2, updateRow2Tx2);
 <a class="jxr_linenumber" name="339" href="#339">339</a> 
 <a class="jxr_linenumber" name="340" href="#340">340</a>         <em class="jxr_comment">// 6) commit -- T2</em>
@@ -384,7 +384,7 @@
 <a class="jxr_linenumber" name="374" href="#374">374</a> 
 <a class="jxr_linenumber" name="375" href="#375">375</a>         <em class="jxr_comment">// 0) Start transactions</em>
 <a class="jxr_linenumber" name="376" href="#376">376</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="377" href="#377">377</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="377" href="#377">377</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="378" href="#378">378</a>         Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="379" href="#379">379</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="380" href="#380">380</a> 
@@ -397,9 +397,9 @@
 <a class="jxr_linenumber" name="387" href="#387">387</a>         <em class="jxr_comment">// 3) update test set value = 12 where id = 1; -- T2</em>
 <a class="jxr_linenumber" name="388" href="#388">388</a>         <em class="jxr_comment">// 4) update test set value = 18 where id = 2; -- T2</em>
 <a class="jxr_linenumber" name="389" href="#389">389</a>         Put updateRow1Tx2 = <strong class="jxr_keyword">new</strong> Put(rowId1);
-<a class="jxr_linenumber" name="390" href="#390">390</a>         updateRow1Tx2.addColumn(famName, colName, Bytes.toBytes(12));
+<a class="jxr_linenumber" name="390" href="#390">390</a>         updateRow1Tx2.add(famName, colName, Bytes.toBytes(12));
 <a class="jxr_linenumber" name="391" href="#391">391</a>         Put updateRow2Tx2 = <strong class="jxr_keyword">new</strong> Put(rowId2);
-<a class="jxr_linenumber" name="392" href="#392">392</a>         updateRow2Tx2.addColumn(famName, colName, Bytes.toBytes(18));
+<a class="jxr_linenumber" name="392" href="#392">392</a>         updateRow2Tx2.add(famName, colName, Bytes.toBytes(18));
 <a class="jxr_linenumber" name="393" href="#393">393</a>         txTable.put(tx2, Arrays.asList(updateRow1Tx2, updateRow2Tx2));
 <a class="jxr_linenumber" name="394" href="#394">394</a> 
 <a class="jxr_linenumber" name="395" href="#395">395</a>         <em class="jxr_comment">// 5) commit; -- T2</em>
@@ -445,7 +445,7 @@
 <a class="jxr_linenumber" name="435" href="#435">435</a> 
 <a class="jxr_linenumber" name="436" href="#436">436</a>         <em class="jxr_comment">// 0) Start transactions</em>
 <a class="jxr_linenumber" name="437" href="#437">437</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="438" href="#438">438</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="438" href="#438">438</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="439" href="#439">439</a>         Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="440" href="#440">440</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="441" href="#441">441</a> 
@@ -502,12 +502,12 @@
 <a class="jxr_linenumber" name="492" href="#492">492</a> 
 <a class="jxr_linenumber" name="493" href="#493">493</a>         <em class="jxr_comment">// 3) update test set value = 11 where id = 1; -- T1</em>
 <a class="jxr_linenumber" name="494" href="#494">494</a>         Put updateRow1Tx1 = <strong class="jxr_keyword">new</strong> Put(rowId1);
-<a class="jxr_linenumber" name="495" href="#495">495</a>         updateRow1Tx1.addColumn(famName, colName, Bytes.toBytes(<span class="jxr_string">"11"</span>));
+<a class="jxr_linenumber" name="495" href="#495">495</a>         updateRow1Tx1.add(famName, colName, Bytes.toBytes(<span class="jxr_string">"11"</span>));
 <a class="jxr_linenumber" name="496" href="#496">496</a>         txTable.put(tx1, updateRow1Tx1);
 <a class="jxr_linenumber" name="497" href="#497">497</a> 
 <a class="jxr_linenumber" name="498" href="#498">498</a>         <em class="jxr_comment">// 4) update test set value = 21 where id = 2; -- T2</em>
 <a class="jxr_linenumber" name="499" href="#499">499</a>         Put updateRow2Tx2 = <strong class="jxr_keyword">new</strong> Put(rowId2);
-<a class="jxr_linenumber" name="500" href="#500">500</a>         updateRow2Tx2.addColumn(famName, colName, Bytes.toBytes(<span class="jxr_string">"21"</span>));
+<a class="jxr_linenumber" name="500" href="#500">500</a>         updateRow2Tx2.add(famName, colName, Bytes.toBytes(<span class="jxr_string">"21"</span>));
 <a class="jxr_linenumber" name="501" href="#501">501</a>         txTable.put(tx2, updateRow2Tx2);
 <a class="jxr_linenumber" name="502" href="#502">502</a> 
 <a class="jxr_linenumber" name="503" href="#503">503</a>         <em class="jxr_comment">// 5) commit; -- T1</em>
@@ -533,7 +533,7 @@
 <a class="jxr_linenumber" name="523" href="#523">523</a> 
 <a class="jxr_linenumber" name="524" href="#524">524</a>         <em class="jxr_comment">// 0) Start transactions</em>
 <a class="jxr_linenumber" name="525" href="#525">525</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="526" href="#526">526</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="526" href="#526">526</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="527" href="#527">527</a>         Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="528" href="#528">528</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="529" href="#529">529</a> 
@@ -552,12 +552,12 @@
 <a class="jxr_linenumber" name="542" href="#542">542</a> 
 <a class="jxr_linenumber" name="543" href="#543">543</a>         <em class="jxr_comment">// 3) insert into test (id, value) values(3, 30); -- T1</em>
 <a class="jxr_linenumber" name="544" href="#544">544</a>         Put insertRow3Tx1 = <strong class="jxr_keyword">new</strong> Put(rowId1);
-<a class="jxr_linenumber" name="545" href="#545">545</a>         insertRow3Tx1.addColumn(famName, colName, Bytes.toBytes(<span class="jxr_string">"30"</span>));
+<a class="jxr_linenumber" name="545" href="#545">545</a>         insertRow3Tx1.add(famName, colName, Bytes.toBytes(<span class="jxr_string">"30"</span>));
 <a class="jxr_linenumber" name="546" href="#546">546</a>         txTable.put(tx1, insertRow3Tx1);
 <a class="jxr_linenumber" name="547" href="#547">547</a> 
 <a class="jxr_linenumber" name="548" href="#548">548</a>         <em class="jxr_comment">// 4) insert into test (id, value) values(4, 42); -- T2</em>
 <a class="jxr_linenumber" name="549" href="#549">549</a>         Put updateRow4Tx2 = <strong class="jxr_keyword">new</strong> Put(rowId2);
-<a class="jxr_linenumber" name="550" href="#550">550</a>         updateRow4Tx2.addColumn(famName, colName, Bytes.toBytes(<span class="jxr_string">"42"</span>));
+<a class="jxr_linenumber" name="550" href="#550">550</a>         updateRow4Tx2.add(famName, colName, Bytes.toBytes(<span class="jxr_string">"42"</span>));
 <a class="jxr_linenumber" name="551" href="#551">551</a>         txTable.put(tx2, updateRow4Tx2);
 <a class="jxr_linenumber" name="552" href="#552">552</a> 
 <a class="jxr_linenumber" name="553" href="#553">553</a>         <em class="jxr_comment">// 5) commit; -- T1</em>
@@ -580,14 +580,14 @@
 <a class="jxr_linenumber" name="570" href="#570">570</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> loadBaseDataOnTestTable(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="571" href="#571">571</a> 
 <a class="jxr_linenumber" name="572" href="#572">572</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="573" href="#573">573</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="573" href="#573">573</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="574" href="#574">574</a> 
 <a class="jxr_linenumber" name="575" href="#575">575</a>         Transaction initializationTx = tm.begin();
 <a class="jxr_linenumber" name="576" href="#576">576</a>         Put row1 = <strong class="jxr_keyword">new</strong> Put(rowId1);
-<a class="jxr_linenumber" name="577" href="#577">577</a>         row1.addColumn(famName, colName, dataValue1);
+<a class="jxr_linenumber" name="577" href="#577">577</a>         row1.add(famName, colName, dataValue1);
 <a class="jxr_linenumber" name="578" href="#578">578</a>         txTable.put(initializationTx, row1);
 <a class="jxr_linenumber" name="579" href="#579">579</a>         Put row2 = <strong class="jxr_keyword">new</strong> Put(rowId2);
-<a class="jxr_linenumber" name="580" href="#580">580</a>         row2.addColumn(famName, colName, dataValue2);
+<a class="jxr_linenumber" name="580" href="#580">580</a>         row2.add(famName, colName, dataValue2);
 <a class="jxr_linenumber" name="581" href="#581">581</a>         txTable.put(initializationTx, row2);
 <a class="jxr_linenumber" name="582" href="#582">582</a> 
 <a class="jxr_linenumber" name="583" href="#583">583</a>         tm.commit(initializationTx);

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestBasicTransaction.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestBasicTransaction.html b/xref-test/org/apache/omid/transaction/TestBasicTransaction.html
index 5702ac7..dd9abd8 100644
--- a/xref-test/org/apache/omid/transaction/TestBasicTransaction.html
+++ b/xref-test/org/apache/omid/transaction/TestBasicTransaction.html
@@ -27,20 +27,20 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.fail;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.fail;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
 <a class="jxr_linenumber" name="34" href="#34">34</a>  
 <a class="jxr_linenumber" name="35" href="#35">35</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
 <a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestBasicTransaction.html">TestBasicTransaction</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
@@ -52,7 +52,7 @@
 <a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestampsOfTwoRowsInstertedAfterCommitOfSingleTransactionAreEquals(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="43" href="#43">43</a>  
 <a class="jxr_linenumber" name="44" href="#44">44</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="45" href="#45">45</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="45" href="#45">45</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="46" href="#46">46</a>  
 <a class="jxr_linenumber" name="47" href="#47">47</a>          byte[] rowName1 = Bytes.toBytes(<span class="jxr_string">"row1"</span>);
 <a class="jxr_linenumber" name="48" href="#48">48</a>          byte[] rowName2 = Bytes.toBytes(<span class="jxr_string">"row2"</span>);
@@ -64,10 +64,10 @@
 <a class="jxr_linenumber" name="54" href="#54">54</a>          Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="55" href="#55">55</a>  
 <a class="jxr_linenumber" name="56" href="#56">56</a>          Put row1 = <strong class="jxr_keyword">new</strong> Put(rowName1);
-<a class="jxr_linenumber" name="57" href="#57">57</a>          row1.addColumn(famName1, colName1, dataValue1);
+<a class="jxr_linenumber" name="57" href="#57">57</a>          row1.add(famName1, colName1, dataValue1);
 <a class="jxr_linenumber" name="58" href="#58">58</a>          tt.put(tx1, row1);
 <a class="jxr_linenumber" name="59" href="#59">59</a>          Put row2 = <strong class="jxr_keyword">new</strong> Put(rowName2);
-<a class="jxr_linenumber" name="60" href="#60">60</a>          row2.addColumn(famName1, colName1, dataValue2);
+<a class="jxr_linenumber" name="60" href="#60">60</a>          row2.add(famName1, colName1, dataValue2);
 <a class="jxr_linenumber" name="61" href="#61">61</a>          tt.put(tx1, row2);
 <a class="jxr_linenumber" name="62" href="#62">62</a>  
 <a class="jxr_linenumber" name="63" href="#63">63</a>          tm.commit(tx1);
@@ -98,7 +98,7 @@
 <a class="jxr_linenumber" name="88" href="#88">88</a>              <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="89" href="#89">89</a>  
 <a class="jxr_linenumber" name="90" href="#90">90</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="91" href="#91">91</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="91" href="#91">91</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="92" href="#92">92</a>  
 <a class="jxr_linenumber" name="93" href="#93">93</a>          byte[] rowName1 = Bytes.toBytes(<span class="jxr_string">"row1"</span>);
 <a class="jxr_linenumber" name="94" href="#94">94</a>          byte[] rowName2 = Bytes.toBytes(<span class="jxr_string">"row2"</span>);
@@ -113,10 +113,10 @@
 <a class="jxr_linenumber" name="103" href="#103">103</a>         Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="104" href="#104">104</a> 
 <a class="jxr_linenumber" name="105" href="#105">105</a>         Put row1 = <strong class="jxr_keyword">new</strong> Put(rowName1);
-<a class="jxr_linenumber" name="106" href="#106">106</a>         row1.addColumn(famName1, colName1, dataValue1);
+<a class="jxr_linenumber" name="106" href="#106">106</a>         row1.add(famName1, colName1, dataValue1);
 <a class="jxr_linenumber" name="107" href="#107">107</a>         tt.put(tx1, row1);
 <a class="jxr_linenumber" name="108" href="#108">108</a>         Put row2 = <strong class="jxr_keyword">new</strong> Put(rowName2);
-<a class="jxr_linenumber" name="109" href="#109">109</a>         row2.addColumn(famName1, colName1, dataValue2);
+<a class="jxr_linenumber" name="109" href="#109">109</a>         row2.add(famName1, colName1, dataValue2);
 <a class="jxr_linenumber" name="110" href="#110">110</a>         tt.put(tx1, row2);
 <a class="jxr_linenumber" name="111" href="#111">111</a> 
 <a class="jxr_linenumber" name="112" href="#112">112</a>         tm.commit(tx1);
@@ -124,10 +124,10 @@
 <a class="jxr_linenumber" name="114" href="#114">114</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="115" href="#115">115</a> 
 <a class="jxr_linenumber" name="116" href="#116">116</a>         row1 = <strong class="jxr_keyword">new</strong> Put(rowName1);
-<a class="jxr_linenumber" name="117" href="#117">117</a>         row1.addColumn(famName1, colName1, dataValue3);
+<a class="jxr_linenumber" name="117" href="#117">117</a>         row1.add(famName1, colName1, dataValue3);
 <a class="jxr_linenumber" name="118" href="#118">118</a>         tt.put(tx2, row1);
 <a class="jxr_linenumber" name="119" href="#119">119</a>         row2 = <strong class="jxr_keyword">new</strong> Put(rowName2);
-<a class="jxr_linenumber" name="120" href="#120">120</a>         row2.addColumn(famName1, colName1, dataValue4);
+<a class="jxr_linenumber" name="120" href="#120">120</a>         row2.add(famName1, colName1, dataValue4);
 <a class="jxr_linenumber" name="121" href="#121">121</a>         tt.put(tx2, row2);
 <a class="jxr_linenumber" name="122" href="#122">122</a> 
 <a class="jxr_linenumber" name="123" href="#123">123</a>         tm.commit(tx2);
@@ -165,7 +165,7 @@
 <a class="jxr_linenumber" name="155" href="#155">155</a> 
 <a class="jxr_linenumber" name="156" href="#156">156</a>         TransactionManager tm = newTransactionManager(context);
 <a class="jxr_linenumber" name="157" href="#157">157</a> 
-<a class="jxr_linenumber" name="158" href="#158">158</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="158" href="#158">158</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="159" href="#159">159</a> 
 <a class="jxr_linenumber" name="160" href="#160">160</a>         Transaction t1 = tm.begin();
 <a class="jxr_linenumber" name="161" href="#161">161</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
@@ -177,14 +177,14 @@
 <a class="jxr_linenumber" name="167" href="#167">167</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
 <a class="jxr_linenumber" name="168" href="#168">168</a> 
 <a class="jxr_linenumber" name="169" href="#169">169</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="170" href="#170">170</a>         p.addColumn(fam, col, data1);
+<a class="jxr_linenumber" name="170" href="#170">170</a>         p.add(fam, col, data1);
 <a class="jxr_linenumber" name="171" href="#171">171</a>         tt.put(t1, p);
 <a class="jxr_linenumber" name="172" href="#172">172</a>         tm.commit(t1);
 <a class="jxr_linenumber" name="173" href="#173">173</a> 
 <a class="jxr_linenumber" name="174" href="#174">174</a>         Transaction tread = tm.begin();
 <a class="jxr_linenumber" name="175" href="#175">175</a>         Transaction t2 = tm.begin();
 <a class="jxr_linenumber" name="176" href="#176">176</a>         p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="177" href="#177">177</a>         p.addColumn(fam, col, data2);
+<a class="jxr_linenumber" name="177" href="#177">177</a>         p.add(fam, col, data2);
 <a class="jxr_linenumber" name="178" href="#178">178</a>         tt.put(t2, p);
 <a class="jxr_linenumber" name="179" href="#179">179</a>         tm.commit(t2);
 <a class="jxr_linenumber" name="180" href="#180">180</a> 
@@ -202,7 +202,7 @@
 <a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestManyVersions(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="193" href="#193">193</a> 
 <a class="jxr_linenumber" name="194" href="#194">194</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="195" href="#195">195</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="195" href="#195">195</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="196" href="#196">196</a> 
 <a class="jxr_linenumber" name="197" href="#197">197</a>         Transaction t1 = tm.begin();
 <a class="jxr_linenumber" name="198" href="#198">198</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
@@ -214,14 +214,14 @@
 <a class="jxr_linenumber" name="204" href="#204">204</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
 <a class="jxr_linenumber" name="205" href="#205">205</a> 
 <a class="jxr_linenumber" name="206" href="#206">206</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="207" href="#207">207</a>         p.addColumn(fam, col, data1);
+<a class="jxr_linenumber" name="207" href="#207">207</a>         p.add(fam, col, data1);
 <a class="jxr_linenumber" name="208" href="#208">208</a>         tt.put(t1, p);
 <a class="jxr_linenumber" name="209" href="#209">209</a>         tm.commit(t1);
 <a class="jxr_linenumber" name="210" href="#210">210</a> 
 <a class="jxr_linenumber" name="211" href="#211">211</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 5; ++i) {
 <a class="jxr_linenumber" name="212" href="#212">212</a>             Transaction t2 = tm.begin();
 <a class="jxr_linenumber" name="213" href="#213">213</a>             p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="214" href="#214">214</a>             p.addColumn(fam, col, data2);
+<a class="jxr_linenumber" name="214" href="#214">214</a>             p.add(fam, col, data2);
 <a class="jxr_linenumber" name="215" href="#215">215</a>             tt.put(t2, p);
 <a class="jxr_linenumber" name="216" href="#216">216</a>         }
 <a class="jxr_linenumber" name="217" href="#217">217</a>         Transaction tread = tm.begin();
@@ -241,7 +241,7 @@
 <a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestInterleave(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="232" href="#232">232</a> 
 <a class="jxr_linenumber" name="233" href="#233">233</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="234" href="#234">234</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="234" href="#234">234</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="235" href="#235">235</a> 
 <a class="jxr_linenumber" name="236" href="#236">236</a>         Transaction t1 = tm.begin();
 <a class="jxr_linenumber" name="237" href="#237">237</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
@@ -253,13 +253,13 @@
 <a class="jxr_linenumber" name="243" href="#243">243</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
 <a class="jxr_linenumber" name="244" href="#244">244</a> 
 <a class="jxr_linenumber" name="245" href="#245">245</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="246" href="#246">246</a>         p.addColumn(fam, col, data1);
+<a class="jxr_linenumber" name="246" href="#246">246</a>         p.add(fam, col, data1);
 <a class="jxr_linenumber" name="247" href="#247">247</a>         tt.put(t1, p);
 <a class="jxr_linenumber" name="248" href="#248">248</a>         tm.commit(t1);
 <a class="jxr_linenumber" name="249" href="#249">249</a> 
 <a class="jxr_linenumber" name="250" href="#250">250</a>         Transaction t2 = tm.begin();
 <a class="jxr_linenumber" name="251" href="#251">251</a>         p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="252" href="#252">252</a>         p.addColumn(fam, col, data2);
+<a class="jxr_linenumber" name="252" href="#252">252</a>         p.add(fam, col, data2);
 <a class="jxr_linenumber" name="253" href="#253">253</a>         tt.put(t2, p);
 <a class="jxr_linenumber" name="254" href="#254">254</a> 
 <a class="jxr_linenumber" name="255" href="#255">255</a>         Transaction tread = tm.begin();
@@ -288,7 +288,7 @@
 <a class="jxr_linenumber" name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testInterleavedScanReturnsTheRightSnapshotResults(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="279" href="#279">279</a> 
 <a class="jxr_linenumber" name="280" href="#280">280</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="281" href="#281">281</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="281" href="#281">281</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="282" href="#282">282</a> 
 <a class="jxr_linenumber" name="283" href="#283">283</a>         <em class="jxr_comment">// Basic data-scaffolding for test</em>
 <a class="jxr_linenumber" name="284" href="#284">284</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
@@ -306,7 +306,7 @@
 <a class="jxr_linenumber" name="296" href="#296">296</a>             byte[] row = Bytes.toBytes(<span class="jxr_string">"row-to-scan"</span> + i);
 <a class="jxr_linenumber" name="297" href="#297">297</a> 
 <a class="jxr_linenumber" name="298" href="#298">298</a>             Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="299" href="#299">299</a>             p.addColumn(fam, col, data1);
+<a class="jxr_linenumber" name="299" href="#299">299</a>             p.add(fam, col, data1);
 <a class="jxr_linenumber" name="300" href="#300">300</a>             txTable.put(tx1, p);
 <a class="jxr_linenumber" name="301" href="#301">301</a>         }
 <a class="jxr_linenumber" name="302" href="#302">302</a>         tm.commit(tx1);
@@ -315,7 +315,7 @@
 <a class="jxr_linenumber" name="305" href="#305">305</a>         <em class="jxr_comment">// that scans the table, gets the proper snapshot with the stuff written by Tx1</em>
 <a class="jxr_linenumber" name="306" href="#306">306</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="307" href="#307">307</a>         Put p = <strong class="jxr_keyword">new</strong> Put(randomRow);
-<a class="jxr_linenumber" name="308" href="#308">308</a>         p.addColumn(fam, col, data2);
+<a class="jxr_linenumber" name="308" href="#308">308</a>         p.add(fam, col, data2);
 <a class="jxr_linenumber" name="309" href="#309">309</a>         txTable.put(tx2, p);
 <a class="jxr_linenumber" name="310" href="#310">310</a> 
 <a class="jxr_linenumber" name="311" href="#311">311</a>         Transaction scanTx = tm.begin(); <em class="jxr_comment">// This is the concurrent transactional scanner</em>
@@ -372,7 +372,7 @@
 <a class="jxr_linenumber" name="362" href="#362">362</a>             <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="363" href="#363">363</a> 
 <a class="jxr_linenumber" name="364" href="#364">364</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="365" href="#365">365</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="365" href="#365">365</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="366" href="#366">366</a> 
 <a class="jxr_linenumber" name="367" href="#367">367</a>         <em class="jxr_comment">// Basic data-scaffolding for test</em>
 <a class="jxr_linenumber" name="368" href="#368">368</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
@@ -390,7 +390,7 @@
 <a class="jxr_linenumber" name="380" href="#380">380</a>             byte[] row = Bytes.toBytes(<span class="jxr_string">"row-to-scan"</span> + i);
 <a class="jxr_linenumber" name="381" href="#381">381</a> 
 <a class="jxr_linenumber" name="382" href="#382">382</a>             Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="383" href="#383">383</a>             p.addColumn(fam, col, data1);
+<a class="jxr_linenumber" name="383" href="#383">383</a>             p.add(fam, col, data1);
 <a class="jxr_linenumber" name="384" href="#384">384</a>             txTable.put(tx1, p);
 <a class="jxr_linenumber" name="385" href="#385">385</a>         }
 <a class="jxr_linenumber" name="386" href="#386">386</a>         tm.commit(tx1);
@@ -399,7 +399,7 @@
 <a class="jxr_linenumber" name="389" href="#389">389</a>         <em class="jxr_comment">// right snapshot with the new value in the random row just written by Tx2</em>
 <a class="jxr_linenumber" name="390" href="#390">390</a>         Transaction tx2 = tm.begin();
 <a class="jxr_linenumber" name="391" href="#391">391</a>         Put p = <strong class="jxr_keyword">new</strong> Put(randomRow);
-<a class="jxr_linenumber" name="392" href="#392">392</a>         p.addColumn(fam, col, data2);
+<a class="jxr_linenumber" name="392" href="#392">392</a>         p.add(fam, col, data2);
 <a class="jxr_linenumber" name="393" href="#393">393</a>         txTable.put(tx2, p);
 <a class="jxr_linenumber" name="394" href="#394">394</a> 
 <a class="jxr_linenumber" name="395" href="#395">395</a>         <strong class="jxr_keyword">int</strong> modifiedRows = 0;
@@ -447,44 +447,7 @@
 <a class="jxr_linenumber" name="437" href="#437">437</a> 
 <a class="jxr_linenumber" name="438" href="#438">438</a>     }
 <a class="jxr_linenumber" name="439" href="#439">439</a> 
-<a class="jxr_linenumber" name="440" href="#440">440</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="441" href="#441">441</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAutoCommit(ITestContext context)
-<a class="jxr_linenumber" name="442" href="#442">442</a>             <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="443" href="#443">443</a> 
-<a class="jxr_linenumber" name="444" href="#444">444</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="445" href="#445">445</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="446" href="#446">446</a> 
-<a class="jxr_linenumber" name="447" href="#447">447</a>         byte[] rowName1 = Bytes.toBytes(<span class="jxr_string">"row1"</span>);
-<a class="jxr_linenumber" name="448" href="#448">448</a>         byte[] famName1 = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="449" href="#449">449</a>         byte[] colName1 = Bytes.toBytes(<span class="jxr_string">"col1"</span>);
-<a class="jxr_linenumber" name="450" href="#450">450</a>         byte[] dataValue1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="451" href="#451">451</a> 
-<a class="jxr_linenumber" name="452" href="#452">452</a>         Transaction tx1 = tm.begin();
-<a class="jxr_linenumber" name="453" href="#453">453</a> 
-<a class="jxr_linenumber" name="454" href="#454">454</a>         Put row1 = <strong class="jxr_keyword">new</strong> Put(rowName1);
-<a class="jxr_linenumber" name="455" href="#455">455</a>         row1.addColumn(famName1, colName1, dataValue1);
-<a class="jxr_linenumber" name="456" href="#456">456</a>         tt.put(tx1, row1);
-<a class="jxr_linenumber" name="457" href="#457">457</a> 
-<a class="jxr_linenumber" name="458" href="#458">458</a>         Transaction tx2 = tm.begin();
-<a class="jxr_linenumber" name="459" href="#459">459</a> 
-<a class="jxr_linenumber" name="460" href="#460">460</a>         Transaction tx3 = tm.begin();
-<a class="jxr_linenumber" name="461" href="#461">461</a> 
-<a class="jxr_linenumber" name="462" href="#462">462</a>         Get g = <strong class="jxr_keyword">new</strong> Get(rowName1).setMaxVersions();
-<a class="jxr_linenumber" name="463" href="#463">463</a>         g.addColumn(famName1, colName1);
-<a class="jxr_linenumber" name="464" href="#464">464</a>         Result r = tt.get(tx3, g);
-<a class="jxr_linenumber" name="465" href="#465">465</a>         assertEquals(r.size(), 0, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="466" href="#466">466</a> 
-<a class="jxr_linenumber" name="467" href="#467">467</a>         row1 = <strong class="jxr_keyword">new</strong> Put(rowName1);
-<a class="jxr_linenumber" name="468" href="#468">468</a>         row1.addColumn(famName1, colName1, dataValue1);
-<a class="jxr_linenumber" name="469" href="#469">469</a>         tt.put(tx2, row1, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="470" href="#470">470</a> 
-<a class="jxr_linenumber" name="471" href="#471">471</a>         r = tt.get(tx3, g);
-<a class="jxr_linenumber" name="472" href="#472">472</a>         assertEquals(r.size(), 1, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="473" href="#473">473</a> 
-<a class="jxr_linenumber" name="474" href="#474">474</a>         tt.close();
-<a class="jxr_linenumber" name="475" href="#475">475</a>     }
-<a class="jxr_linenumber" name="476" href="#476">476</a> 
-<a class="jxr_linenumber" name="477" href="#477">477</a> }
+<a class="jxr_linenumber" name="440" href="#440">440</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[46/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index c98be0d..540cb36 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,9 +25,9 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2011 - 2018 Apache Software Foundation</copyright>
     <item>
-      <title>File: 149,
+      <title>File: 139,
              Errors: 0,
-             Warnings: 1292,
+             Warnings: 939,
              Infos: 0
       </title>
             <link>http://omid.incubator.apache.org/checkstyle.html</link>
@@ -52,7 +52,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
                 <td>
                   0
@@ -80,7 +80,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  3
                 </td>
                 <td>
                   0
@@ -122,7 +122,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  18
+                  9
                 </td>
                 <td>
                   0
@@ -150,7 +150,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  1
                 </td>
                 <td>
                   0
@@ -234,7 +234,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  2
                 </td>
                 <td>
                   0
@@ -248,7 +248,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  5
                 </td>
                 <td>
                   0
@@ -276,7 +276,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  4
                 </td>
                 <td>
                   0
@@ -290,7 +290,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  4
                 </td>
                 <td>
                   0
@@ -416,7 +416,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  15
                 </td>
                 <td>
                   0
@@ -542,7 +542,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  31
+                  8
                 </td>
                 <td>
                   0
@@ -578,27 +578,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.timestamp.storage.ZKTimestampStorageModule.java">org/apache/omid/timestamp/storage/ZKTimestampStorageModule.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  2
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.ScannerContext.java">org/apache/hadoop/hbase/regionserver/ScannerContext.java</a>
                 </td>
                 <td>
                   0
                 </td>
-              </tr>
-                          <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.RegionAccessWrapper.java">org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  8
+                  1
                 </td>
                 <td>
                   0
@@ -606,13 +592,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.OmidSnapshotFilter.java">org/apache/omid/transaction/OmidSnapshotFilter.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.ReflectionHelper.java">org/apache/omid/ReflectionHelper.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  26
+                  3
                 </td>
                 <td>
                   0
@@ -620,13 +606,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.CompactorScanner.java">org/apache/hadoop/hbase/regionserver/CompactorScanner.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.timestamp.storage.ZKTimestampStorageModule.java">org/apache/omid/timestamp/storage/ZKTimestampStorageModule.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  19
+                  2
                 </td>
                 <td>
                   0
@@ -634,13 +620,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.AttributeSetSnapshotFilter.java">org/apache/omid/transaction/AttributeSetSnapshotFilter.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.client.TSOClient.java">org/apache/omid/tso/client/TSOClient.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  14
+                  58
                 </td>
                 <td>
                   0
@@ -648,13 +634,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.client.TSOClient.java">org/apache/omid/tso/client/TSOClient.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.AbstractTransaction.java">org/apache/omid/transaction/AbstractTransaction.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  80
+                  6
                 </td>
                 <td>
                   0
@@ -676,20 +662,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.AbstractTransaction.java">org/apache/omid/transaction/AbstractTransaction.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  25
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.timestamp.storage.HBaseTimestampStorageModule.java">org/apache/omid/timestamp/storage/HBaseTimestampStorageModule.java</a>
                 </td>
                 <td>
@@ -732,20 +704,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.WorldClockOracleImpl.java">org/apache/omid/tso/WorldClockOracleImpl.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  15
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.RetryProcessor.java">org/apache/omid/tso/RetryProcessor.java</a>
                 </td>
                 <td>
@@ -858,13 +816,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.committable.hbase.KeyGenerator.java">org/apache/omid/committable/hbase/KeyGenerator.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.client.CellId.java">org/apache/omid/tso/client/CellId.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  2
+                  1
                 </td>
                 <td>
                   0
@@ -872,13 +830,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.client.CellId.java">org/apache/omid/tso/client/CellId.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.committable.hbase.KeyGenerator.java">org/apache/omid/committable/hbase/KeyGenerator.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
                 <td>
                   0
@@ -906,21 +864,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  39
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.SnapshotFilterImpl.java">org/apache/omid/transaction/SnapshotFilterImpl.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  73
+                  34
                 </td>
                 <td>
                   0
@@ -956,34 +900,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.OmidFilterBase.java">org/apache/omid/OmidFilterBase.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  4
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.TableAccessWrapper.java">org/apache/omid/transaction/TableAccessWrapper.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  5
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.client.AbortException.java">org/apache/omid/tso/client/AbortException.java</a>
                 </td>
                 <td>
@@ -1004,7 +920,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  15
+                  14
                 </td>
                 <td>
                   0
@@ -1158,7 +1074,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  23
+                  21
                 </td>
                 <td>
                   0
@@ -1200,7 +1116,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  7
                 </td>
                 <td>
                   0
@@ -1242,7 +1158,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  6
                 </td>
                 <td>
                   0
@@ -1256,7 +1172,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  4
                 </td>
                 <td>
                   0
@@ -1292,13 +1208,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.timestamp.storage.ZKTimestampStorage.java">org/apache/omid/timestamp/storage/ZKTimestampStorage.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.RegionWrapper.java">org/apache/omid/RegionWrapper.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  3
+                  10
                 </td>
                 <td>
                   0
@@ -1306,13 +1222,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.TransactionFilters.java">org/apache/omid/transaction/TransactionFilters.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.timestamp.storage.ZKTimestampStorage.java">org/apache/omid/timestamp/storage/ZKTimestampStorage.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
                 <td>
                   0
@@ -1354,7 +1270,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  11
                 </td>
                 <td>
                   0
@@ -1376,20 +1292,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.hadoop.hbase.coprocessor.BaseRegionObserver.java">org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  3
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.TSOStateManager.java">org/apache/omid/tso/TSOStateManager.java</a>
                 </td>
                 <td>
@@ -1424,7 +1326,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  26
+                  8
                 </td>
                 <td>
                   0
@@ -1466,7 +1368,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  5
                 </td>
                 <td>
                   0
@@ -1494,7 +1396,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  26
+                  21
                 </td>
                 <td>
                   0
@@ -1508,7 +1410,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  10
                 </td>
                 <td>
                   0
@@ -1522,7 +1424,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  18
+                  19
                 </td>
                 <td>
                   0
@@ -1536,7 +1438,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  15
                 </td>
                 <td>
                   0
@@ -1564,7 +1466,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  62
+                  18
                 </td>
                 <td>
                   0
@@ -1572,13 +1474,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.SnapshotFilter.java">org/apache/omid/transaction/SnapshotFilter.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#log4j.properties">log4j.properties</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  11
+                  0
                 </td>
                 <td>
                   0
@@ -1586,13 +1488,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#log4j.properties">log4j.properties</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.PostCommitActions.java">org/apache/omid/transaction/PostCommitActions.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  0
+                  2
                 </td>
                 <td>
                   0
@@ -1600,13 +1502,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.PostCommitActions.java">org/apache/omid/transaction/PostCommitActions.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.RetryProcessorImpl.java">org/apache/omid/tso/RetryProcessorImpl.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  2
+                  18
                 </td>
                 <td>
                   0
@@ -1614,13 +1516,13 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.RetryProcessorImpl.java">org/apache/omid/tso/RetryProcessorImpl.java</a>
+                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.CompactorScanner.java">org/apache/omid/transaction/CompactorScanner.java</a>
                 </td>
                 <td>
                   0
                 </td>
                 <td>
-                  18
+                  19
                 </td>
                 <td>
                   0
@@ -1662,7 +1564,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  4
                 </td>
                 <td>
                   0
@@ -1684,20 +1586,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.HTableAccessWrapper.java">org/apache/omid/transaction/HTableAccessWrapper.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  7
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.HBaseConfigModule.java">org/apache/omid/HBaseConfigModule.java</a>
                 </td>
                 <td>
@@ -1718,7 +1606,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  28
+                  14
                 </td>
                 <td>
                   0
@@ -1732,7 +1620,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  31
+                  17
                 </td>
                 <td>
                   0
@@ -1746,21 +1634,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.CellSkipFilterBase.java">org/apache/omid/transaction/CellSkipFilterBase.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  2
+                  6
                 </td>
                 <td>
                   0
@@ -1788,7 +1662,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  6
                 </td>
                 <td>
                   0
@@ -1872,7 +1746,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  45
+                  32
                 </td>
                 <td>
                   0
@@ -1886,7 +1760,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  8
                 </td>
                 <td>
                   0
@@ -1942,7 +1816,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  6
                 </td>
                 <td>
                   0
@@ -1998,7 +1872,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  5
                 </td>
                 <td>
                   0
@@ -2012,7 +1886,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  11
                 </td>
                 <td>
                   0
@@ -2054,7 +1928,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  3
                 </td>
                 <td>
                   0
@@ -2104,20 +1978,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.transaction.TransactionVisibilityFilterBase.java">org/apache/omid/transaction/TransactionVisibilityFilterBase.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  10
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://omid.incubator.apache.org/checkstyle.html#org.apache.omid.tso.client.HandshakeFailedException.java">org/apache/omid/tso/client/HandshakeFailedException.java</a>
                 </td>
                 <td>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/client-failure-management.html
----------------------------------------------------------------------
diff --git a/client-failure-management.html b/client-failure-management.html
index d5a64b7..fba4cd0 100644
--- a/client-failure-management.html
+++ b/client-failure-management.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>Management of Client Failures</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>Management of Client Failures</h1>
 <p>Upon user application crashes, Transactional Clients may leave some orphaned data in the datastore, even though the data in the datastore is kept in a consistent state. When another Transactional Client comes across this data, it will check whether the associated transaction was committed or not. If the data belongs to a transaction which has not been committed, and the transaction id is lower than the low watermark, then the data is deleted, since it belongs to a transaction that can never be committed.</p>
 <p>If data belongs to a transaction that was already committed, this means that the Transactional Client crashed between sending the commit request and completing the transaction in the commit table. This means that shadow cells have not been deleted. The Transactional Client reading will write the shadow cell for the orphan data. However, it is not able to complete the transaction in the commit table as it can not guarantee that shadow cells have been written for all cells in the transaction, since only the crashed client knew which cells it had written to. Consequently, this means that the commit table can grow indefinitely. Initially, this flaw should not cause many problems, since:</p>
 

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/coding-guide-and-style.html
----------------------------------------------------------------------
diff --git a/coding-guide-and-style.html b/coding-guide-and-style.html
index 0bcdebb..a7bd921 100644
--- a/coding-guide-and-style.html
+++ b/coding-guide-and-style.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>Coding Guide</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>Coding Guide</h1>
 <p>The basic principle is to always write code that is testable, easy to understand, extensible, resistant to bugs. Code is written once but read by many people so we need to focus also on the next person that will read it:</p>
 
 <ul>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/cpd.html
----------------------------------------------------------------------
diff --git a/cpd.html b/cpd.html
index b6981bd..1bccf9c 100644
--- a/cpd.html
+++ b/cpd.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -220,24 +220,24 @@
 <tr class="b">
 <td>org/apache/omid/examples/BasicExample.java</td>
 <td>Omid Client Examples</td>
-<td><a href="./xref/org/apache/omid/examples/BasicExample.html#L93">93</a></td></tr>
+<td><a href="./xref/org/apache/omid/examples/BasicExample.html#L90">90</a></td></tr>
 <tr class="a">
 <td>org/apache/omid/examples/ConfigurationExample.java</td>
 <td>Omid Client Examples</td>
-<td><a href="./xref/org/apache/omid/examples/ConfigurationExample.html#L110">110</a></td></tr>
+<td><a href="./xref/org/apache/omid/examples/ConfigurationExample.html#L107">107</a></td></tr>
 <tr class="b"><td colspan='3'>
 <div>
 <pre>            LOG.info(&quot;Transaction {} STARTED&quot;, tx);
 
             Put row1 = new Put(exampleRow1);
-            row1.addColumn(family, qualifier, dataValue1);
+            row1.add(family, qualifier, dataValue1);
             txTable.put(tx, row1);
             LOG.info(&quot;Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} &quot;,
                      tx, userTableName, Bytes.toString(exampleRow1), Bytes.toString(family),
                      Bytes.toString(qualifier), Bytes.toString(dataValue1));
 
             Put row2 = new Put(exampleRow2);
-            row2.addColumn(family, qualifier, dataValue2);
+            row2.add(family, qualifier, dataValue2);
             txTable.put(tx, row2);
             LOG.info(&quot;Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} &quot;,
                      tx, userTableName, Bytes.toString(exampleRow2), Bytes.toString(family),
@@ -253,11 +253,11 @@
 <tr class="b">
 <td>org/apache/omid/examples/BasicExample.java</td>
 <td>Omid Client Examples</td>
-<td><a href="./xref/org/apache/omid/examples/BasicExample.html#L66">66</a></td></tr>
+<td><a href="./xref/org/apache/omid/examples/BasicExample.html#L64">64</a></td></tr>
 <tr class="a">
 <td>org/apache/omid/examples/ConfigurationExample.java</td>
 <td>Omid Client Examples</td>
-<td><a href="./xref/org/apache/omid/examples/ConfigurationExample.html#L49">49</a></td></tr>
+<td><a href="./xref/org/apache/omid/examples/ConfigurationExample.html#L47">47</a></td></tr>
 <tr class="b"><td colspan='3'>
 <div>
 <pre>    private static final Logger LOG = LoggerFactory.getLogger(BasicExample.class);

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
new file mode 100644
index 0000000..8829412
--- /dev/null
+++ b/dependencies.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.7 at 2018-09-20 
+ | Rendered using Apache Maven Fluido Skin 1.5
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20180920" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Apache Omid &#x2013; Project Dependencies</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
+
+                      </head>
+        <body class="topBarEnabled">
+          
+                        
+                    
+                
+
+    <div id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+                                  <div class="container" style="width: 100%;"><div class="nav-collapse">
+            
+                
+                                <ul class="nav">
+                          <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Home <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="index.html"  title="Overview">Overview</a>
+</li>
+                  
+                      <li>      <a href="license.html"  title="License">License</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Download <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="https://github.com/apache/incubator-omid"  title="Omid Sources">Omid Sources</a>
+</li>
+                  
+                      <li>      <a href="https://dist.apache.org/repos/dist/release/incubator/omid/"  title="Apache Version Repository">Apache Version Repository</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">User Guide & API <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="quickstart.html"  title="Quickstart">Quickstart</a>
+</li>
+                  
+                      <li>      <a href="basic-examples.html"  title="API and Code Examples">API and Code Examples</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Technical Docs <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="basic-concepts.html"  title="Basic Concepts">Basic Concepts</a>
+</li>
+                  
+                      <li>      <a href="omid-components.html"  title="Omid Components">Omid Components</a>
+</li>
+                  
+                      <li>      <a href="basic-algorithm.html"  title="Basic Algorithm">Basic Algorithm</a>
+</li>
+                  
+                      <li>      <a href="client-failure-management.html"  title="Management of Client Failures">Management of Client Failures</a>
+</li>
+                  
+                      <li>      <a href="http://yahoohadoop.tumblr.com/tagged/HBase"  title="Blog Entries">Blog Entries</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contribute <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="https://git-wip-us.apache.org/repos/asf/incubator-omid.git"  title="Source Code">Source Code</a>
+</li>
+                  
+                      <li>      <a href="https://issues.apache.org/jira/browse/Omid"  title="JIRA">JIRA</a>
+</li>
+                  
+                      <li>      <a href="mailing-lists.html"  title="Mailing Lists">Mailing Lists</a>
+</li>
+                  
+                      <li>      <a href="coding-guide-and-style.html"  title="Coding Guide and Style">Coding Guide and Style</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Reports <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li class="dropdown-submenu">
+                                      <a href="project-info.html"  title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                                  <li>      <a href="index.html"  title="About">About</a>
+</li>
+                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
+</li>
+                                  <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
+</li>
+                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
+</li>
+                                  <li>      <a href="dependency-convergence.html"  title="Dependency Convergence">Dependency Convergence</a>
+</li>
+                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
+</li>
+                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
+</li>
+                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
+</li>
+                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
+</li>
+                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
+</li>
+                                  <li>      <a href="license.html"  title="Project License">Project License</a>
+</li>
+                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
+</li>
+                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
+</li>
+                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
+</li>
+                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
+</li>
+                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
+</li>
+                              </ul>
+            </li>
+                  
+                      <li class="dropdown-submenu">
+                                      <a href="project-reports.html"  title="Project Reports">Project Reports</a>
+              <ul class="dropdown-menu">
+                                  <li>      <a href="xref/index.html"  title="Source Xref">Source Xref</a>
+</li>
+                                  <li>      <a href="xref-test/index.html"  title="Test Source Xref">Test Source Xref</a>
+</li>
+                                  <li>      <a href="checkstyle-aggregate.html"  title="Checkstyle">Checkstyle</a>
+</li>
+                                  <li>      <a href="cpd.html"  title="CPD">CPD</a>
+</li>
+                                  <li>      <a href="pmd.html"  title="PMD">PMD</a>
+</li>
+                              </ul>
+            </li>
+                          </ul>
+      </li>
+                  </ul>
+          
+                      <form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+    
+  <input value="omid.incubator.apache.org" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="https://cse.google.com/brand?form=search-form"></script>
+          
+                                                    
+        
+        
+        <ul class="nav pull-right"><li>
+    
+    <a href="https://twitter.com/apacheomid" class="twitter-follow-button" data-show-count="true" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow apacheomid</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </li></ul>
+                              
+                   
+                      </div>
+          
+        </div>
+      </div>
+    </div>
+    
+        <div class="container">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="./" id="bannerLeft">
+                                                                                                <img src="images/omid-logo.png"  alt="Omid" width="200"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://incubator.apache.org/" id="bannerRight">
+                                                                                        <img src="http://incubator.apache.org/images/egg-logo2.png"  alt="Apache Incubator" width="200"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+              
+                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                    </li>
+              
+              
+                  <li id="publishDate" class="pull-right">Last Published: 2018-09-20</li>
+            
+                            </ul>
+      </div>
+
+      
+                
+        <div id="bodyColumn" >
+                                  
+            <a name="Project_Dependencies"></a>
+<div class="section">
+<h2><a name="Project_Dependencies"></a>Project Dependencies</h2>
+<p>There are no dependencies for this project. It is a standalone application that does not depend on any other project.</p></div>
+                  </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container">
+                      <div class="row">
+                                      <p >Copyright &copy;                    2011&#x2013;2018
+                        <a href="http://www.apache.org">Apache Software Foundation</a>.
+            All rights reserved.    
+      </p>
+                </div>
+
+                <p id="poweredBy" class="pull-right">
+                                                                                                                <a href="http://maven.apache.org/" title="Maven" class="builtBy">
+        <img class="builtBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
+      </a>
+                  </p>
+        
+                </div>
+    </footer>
+        </body>
+</html>



[21/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/committable/hbase/HBaseCommitTable.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/committable/hbase/HBaseCommitTable.html b/xref/org/apache/omid/committable/hbase/HBaseCommitTable.html
index 38de08c..4e3a1c9 100644
--- a/xref/org/apache/omid/committable/hbase/HBaseCommitTable.html
+++ b/xref/org/apache/omid/committable/hbase/HBaseCommitTable.html
@@ -27,417 +27,409 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.committable.hbase;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.COMMIT_TABLE_QUALIFIER;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.INVALID_TX_QUALIFIER;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.LOW_WATERMARK_QUALIFIER;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.LOW_WATERMARK_ROW;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ArrayBlockingQueue;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.BlockingQueue;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutorService;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.AbstractFuture;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ThreadFactoryBuilder;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> com.google.protobuf.CodedInputStream;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> com.google.protobuf.CodedOutputStream;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTable</a> {
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseCommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Connection hbaseConnection;
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String tableName;
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] commitTableFamily;
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] lowWatermarkFamily;
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/omid/committable/hbase/KeyGenerator.html">KeyGenerator</a> keygen;
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * Create a hbase commit table.</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * Note that we do not take ownership of the passed htable, it is just used to construct the writer and client.</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * @throws IOException </em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>      @Inject
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a>(Configuration hbaseConfig, <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a> config) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">this</strong>(hbaseConfig, config, KeyGeneratorImplementations.defaultKeyGenerator());
-<a class="jxr_linenumber" name="78" href="#78">78</a>      }
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a>(Configuration hbaseConfig, <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a> config, <a href="../../../../../org/apache/omid/committable/hbase/KeyGenerator.html">KeyGenerator</a> keygen) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.AbstractFuture;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ThreadFactoryBuilder;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> com.google.protobuf.CodedInputStream;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> com.google.protobuf.CodedOutputStream;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ArrayBlockingQueue;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.BlockingQueue;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutorService;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.COMMIT_TABLE_QUALIFIER;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.INVALID_TX_QUALIFIER;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.LOW_WATERMARK_QUALIFIER;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.LOW_WATERMARK_ROW;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTable</a> {
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseCommitTable.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Configuration hbaseConfig;
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String tableName;
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] commitTableFamily;
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] lowWatermarkFamily;
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/omid/committable/hbase/KeyGenerator.html">KeyGenerator</a> keygen;
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * Create a hbase commit table.</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * Note that we do not take ownership of the passed htable, it is just used to construct the writer and client.</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>      @Inject
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a>(Configuration hbaseConfig, <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a> config) {
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">this</strong>(hbaseConfig, config, KeyGeneratorImplementations.defaultKeyGenerator());
+<a class="jxr_linenumber" name="72" href="#72">72</a>      }
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a>(Configuration hbaseConfig, <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a> config, <a href="../../../../../org/apache/omid/committable/hbase/KeyGenerator.html">KeyGenerator</a> keygen) {
+<a class="jxr_linenumber" name="75" href="#75">75</a>  
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">this</strong>.hbaseConfig = hbaseConfig;
+<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">this</strong>.tableName = config.getTableName();
+<a class="jxr_linenumber" name="78" href="#78">78</a>          <strong class="jxr_keyword">this</strong>.commitTableFamily = config.getCommitTableFamily();
+<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">this</strong>.lowWatermarkFamily = config.getLowWatermarkFamily();
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">this</strong>.keygen = keygen;
 <a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">this</strong>.hbaseConnection = ConnectionFactory.createConnection(hbaseConfig);
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">this</strong>.tableName = config.getTableName();
-<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">this</strong>.commitTableFamily = config.getCommitTableFamily();
-<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">this</strong>.lowWatermarkFamily = config.getLowWatermarkFamily();
-<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">this</strong>.keygen = keygen;
+<a class="jxr_linenumber" name="82" href="#82">82</a>      }
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="85" href="#85">85</a>      <em class="jxr_comment">// Reader and Writer</em>
+<a class="jxr_linenumber" name="86" href="#86">86</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
 <a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>      }
+<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseWriter</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/committable/InMemoryCommitTable.html">Writer</a> {
 <a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="91" href="#91">91</a>      <em class="jxr_comment">// Reader and Writer</em>
-<a class="jxr_linenumber" name="92" href="#92">92</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseWriter</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/committable/InMemoryCommitTable.html">Writer</a> {
+<a class="jxr_linenumber" name="90" href="#90">90</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> INITIAL_LWM_VALUE = -1L;
+<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">final</strong> HTable table;
+<a class="jxr_linenumber" name="92" href="#92">92</a>          <em class="jxr_comment">// Our own buffer for operations</em>
+<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">final</strong> List&lt;Put&gt; writeBuffer = <strong class="jxr_keyword">new</strong> LinkedList&lt;&gt;();
+<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">long</strong> lowWatermarkToStore = INITIAL_LWM_VALUE;
 <a class="jxr_linenumber" name="95" href="#95">95</a>  
-<a class="jxr_linenumber" name="96" href="#96">96</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> INITIAL_LWM_VALUE = -1L;
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">final</strong> Table table;
-<a class="jxr_linenumber" name="98" href="#98">98</a>          <em class="jxr_comment">// Our own buffer for operations</em>
-<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">final</strong> List&lt;Put&gt; writeBuffer = <strong class="jxr_keyword">new</strong> LinkedList&lt;&gt;();
-<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">long</strong> lowWatermarkToStore = INITIAL_LWM_VALUE;
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>         <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseWriter</a>() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="103" href="#103">103</a>             table = hbaseConnection.getTable(TableName.valueOf(tableName));
-<a class="jxr_linenumber" name="104" href="#104">104</a>         }
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         @Override
-<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addCommittedTransaction(<strong class="jxr_keyword">long</strong> startTimestamp, <strong class="jxr_keyword">long</strong> commitTimestamp) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="108" href="#108">108</a>             assert (startTimestamp &lt; commitTimestamp);
-<a class="jxr_linenumber" name="109" href="#109">109</a>             Put put = <strong class="jxr_keyword">new</strong> Put(startTimestampToKey(startTimestamp), startTimestamp);
-<a class="jxr_linenumber" name="110" href="#110">110</a>             byte[] value = encodeCommitTimestamp(startTimestamp, commitTimestamp);
-<a class="jxr_linenumber" name="111" href="#111">111</a>             put.addColumn(commitTableFamily, COMMIT_TABLE_QUALIFIER, value);
-<a class="jxr_linenumber" name="112" href="#112">112</a>             writeBuffer.add(put);
-<a class="jxr_linenumber" name="113" href="#113">113</a>         }
-<a class="jxr_linenumber" name="114" href="#114">114</a> 
-<a class="jxr_linenumber" name="115" href="#115">115</a>         @Override
-<a class="jxr_linenumber" name="116" href="#116">116</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateLowWatermark(<strong class="jxr_keyword">long</strong> lowWatermark) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="117" href="#117">117</a>             lowWatermarkToStore = lowWatermark;
-<a class="jxr_linenumber" name="118" href="#118">118</a>         }
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>         @Override
-<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flush() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="122" href="#122">122</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="123" href="#123">123</a>                 addLowWatermarkToStoreToWriteBuffer();
-<a class="jxr_linenumber" name="124" href="#124">124</a>                 table.put(writeBuffer);
-<a class="jxr_linenumber" name="125" href="#125">125</a>                 writeBuffer.clear();
-<a class="jxr_linenumber" name="126" href="#126">126</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="127" href="#127">127</a>                 LOG.error(<span class="jxr_string">"Error flushing data"</span>, e);
-<a class="jxr_linenumber" name="128" href="#128">128</a>                 <strong class="jxr_keyword">throw</strong> e;
-<a class="jxr_linenumber" name="129" href="#129">129</a>             }
-<a class="jxr_linenumber" name="130" href="#130">130</a>         }
-<a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>         @Override
-<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> clearWriteBuffer() {
-<a class="jxr_linenumber" name="134" href="#134">134</a>             writeBuffer.clear();
+<a class="jxr_linenumber" name="96" href="#96">96</a>          <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseWriter</a>() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="97" href="#97">97</a>              table = <strong class="jxr_keyword">new</strong> HTable(hbaseConfig, tableName);
+<a class="jxr_linenumber" name="98" href="#98">98</a>          }
+<a class="jxr_linenumber" name="99" href="#99">99</a>  
+<a class="jxr_linenumber" name="100" href="#100">100</a>         @Override
+<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addCommittedTransaction(<strong class="jxr_keyword">long</strong> startTimestamp, <strong class="jxr_keyword">long</strong> commitTimestamp) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="102" href="#102">102</a>             assert (startTimestamp &lt; commitTimestamp);
+<a class="jxr_linenumber" name="103" href="#103">103</a>             Put put = <strong class="jxr_keyword">new</strong> Put(startTimestampToKey(startTimestamp), startTimestamp);
+<a class="jxr_linenumber" name="104" href="#104">104</a>             byte[] value = encodeCommitTimestamp(startTimestamp, commitTimestamp);
+<a class="jxr_linenumber" name="105" href="#105">105</a>             put.add(commitTableFamily, COMMIT_TABLE_QUALIFIER, value);
+<a class="jxr_linenumber" name="106" href="#106">106</a>             writeBuffer.add(put);
+<a class="jxr_linenumber" name="107" href="#107">107</a>         }
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>         @Override
+<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateLowWatermark(<strong class="jxr_keyword">long</strong> lowWatermark) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="111" href="#111">111</a>             lowWatermarkToStore = lowWatermark;
+<a class="jxr_linenumber" name="112" href="#112">112</a>         }
+<a class="jxr_linenumber" name="113" href="#113">113</a> 
+<a class="jxr_linenumber" name="114" href="#114">114</a>         @Override
+<a class="jxr_linenumber" name="115" href="#115">115</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flush() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="116" href="#116">116</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="117" href="#117">117</a>                 addLowWatermarkToStoreToWriteBuffer();
+<a class="jxr_linenumber" name="118" href="#118">118</a>                 table.put(writeBuffer);
+<a class="jxr_linenumber" name="119" href="#119">119</a>                 writeBuffer.clear();
+<a class="jxr_linenumber" name="120" href="#120">120</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="121" href="#121">121</a>                 LOG.error(<span class="jxr_string">"Error flushing data"</span>, e);
+<a class="jxr_linenumber" name="122" href="#122">122</a>                 <strong class="jxr_keyword">throw</strong> e;
+<a class="jxr_linenumber" name="123" href="#123">123</a>             }
+<a class="jxr_linenumber" name="124" href="#124">124</a>         }
+<a class="jxr_linenumber" name="125" href="#125">125</a> 
+<a class="jxr_linenumber" name="126" href="#126">126</a>         @Override
+<a class="jxr_linenumber" name="127" href="#127">127</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> clearWriteBuffer() {
+<a class="jxr_linenumber" name="128" href="#128">128</a>             writeBuffer.clear();
+<a class="jxr_linenumber" name="129" href="#129">129</a>         }
+<a class="jxr_linenumber" name="130" href="#130">130</a> 
+<a class="jxr_linenumber" name="131" href="#131">131</a>         @Override
+<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="133" href="#133">133</a>             clearWriteBuffer();
+<a class="jxr_linenumber" name="134" href="#134">134</a>             table.close();
 <a class="jxr_linenumber" name="135" href="#135">135</a>         }
 <a class="jxr_linenumber" name="136" href="#136">136</a> 
-<a class="jxr_linenumber" name="137" href="#137">137</a>         @Override
-<a class="jxr_linenumber" name="138" href="#138">138</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="139" href="#139">139</a>             clearWriteBuffer();
-<a class="jxr_linenumber" name="140" href="#140">140</a>             table.close();
-<a class="jxr_linenumber" name="141" href="#141">141</a>         }
-<a class="jxr_linenumber" name="142" href="#142">142</a> 
-<a class="jxr_linenumber" name="143" href="#143">143</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addLowWatermarkToStoreToWriteBuffer() {
-<a class="jxr_linenumber" name="144" href="#144">144</a>             <strong class="jxr_keyword">long</strong> lowWatermark = lowWatermarkToStore;
-<a class="jxr_linenumber" name="145" href="#145">145</a>             <strong class="jxr_keyword">if</strong>(lowWatermark != INITIAL_LWM_VALUE) {
-<a class="jxr_linenumber" name="146" href="#146">146</a>                 Put put = <strong class="jxr_keyword">new</strong> Put(LOW_WATERMARK_ROW);
-<a class="jxr_linenumber" name="147" href="#147">147</a>                 put.addColumn(lowWatermarkFamily, LOW_WATERMARK_QUALIFIER, Bytes.toBytes(lowWatermark));
-<a class="jxr_linenumber" name="148" href="#148">148</a>                 writeBuffer.add(put);
-<a class="jxr_linenumber" name="149" href="#149">149</a>             }
-<a class="jxr_linenumber" name="150" href="#150">150</a>         }
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>     }
-<a class="jxr_linenumber" name="153" href="#153">153</a> 
-<a class="jxr_linenumber" name="154" href="#154">154</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseClient</a> <strong class="jxr_keyword">implements</strong> Client, Runnable {
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>         <strong class="jxr_keyword">final</strong> Table table;
-<a class="jxr_linenumber" name="157" href="#157">157</a>         <strong class="jxr_keyword">final</strong> Table deleteTable;
-<a class="jxr_linenumber" name="158" href="#158">158</a>         <strong class="jxr_keyword">final</strong> ExecutorService deleteBatchExecutor;
-<a class="jxr_linenumber" name="159" href="#159">159</a>         <strong class="jxr_keyword">final</strong> BlockingQueue&lt;DeleteRequest&gt; deleteQueue;
-<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">boolean</strong> isClosed = false; <em class="jxr_comment">// @GuardedBy("this")</em>
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> DELETE_BATCH_SIZE = 1024;
+<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addLowWatermarkToStoreToWriteBuffer() {
+<a class="jxr_linenumber" name="138" href="#138">138</a>             <strong class="jxr_keyword">long</strong> lowWatermark = lowWatermarkToStore;
+<a class="jxr_linenumber" name="139" href="#139">139</a>             <strong class="jxr_keyword">if</strong>(lowWatermark != INITIAL_LWM_VALUE) {
+<a class="jxr_linenumber" name="140" href="#140">140</a>                 Put put = <strong class="jxr_keyword">new</strong> Put(LOW_WATERMARK_ROW);
+<a class="jxr_linenumber" name="141" href="#141">141</a>                 put.add(lowWatermarkFamily, LOW_WATERMARK_QUALIFIER, Bytes.toBytes(lowWatermark));
+<a class="jxr_linenumber" name="142" href="#142">142</a>                 writeBuffer.add(put);
+<a class="jxr_linenumber" name="143" href="#143">143</a>             }
+<a class="jxr_linenumber" name="144" href="#144">144</a>         }
+<a class="jxr_linenumber" name="145" href="#145">145</a> 
+<a class="jxr_linenumber" name="146" href="#146">146</a>     }
+<a class="jxr_linenumber" name="147" href="#147">147</a> 
+<a class="jxr_linenumber" name="148" href="#148">148</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseClient</a> <strong class="jxr_keyword">implements</strong> Client, Runnable {
+<a class="jxr_linenumber" name="149" href="#149">149</a> 
+<a class="jxr_linenumber" name="150" href="#150">150</a>         <strong class="jxr_keyword">final</strong> HTable table;
+<a class="jxr_linenumber" name="151" href="#151">151</a>         <strong class="jxr_keyword">final</strong> HTable deleteTable;
+<a class="jxr_linenumber" name="152" href="#152">152</a>         <strong class="jxr_keyword">final</strong> ExecutorService deleteBatchExecutor;
+<a class="jxr_linenumber" name="153" href="#153">153</a>         <strong class="jxr_keyword">final</strong> BlockingQueue&lt;DeleteRequest&gt; deleteQueue;
+<a class="jxr_linenumber" name="154" href="#154">154</a>         <strong class="jxr_keyword">boolean</strong> isClosed = false; <em class="jxr_comment">// @GuardedBy("this")</em>
+<a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> DELETE_BATCH_SIZE = 1024;
+<a class="jxr_linenumber" name="156" href="#156">156</a> 
+<a class="jxr_linenumber" name="157" href="#157">157</a>         <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseClient</a>() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="158" href="#158">158</a>             table = <strong class="jxr_keyword">new</strong> HTable(hbaseConfig, tableName);
+<a class="jxr_linenumber" name="159" href="#159">159</a>             table.setAutoFlush(false, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="160" href="#160">160</a>             deleteTable = <strong class="jxr_keyword">new</strong> HTable(hbaseConfig, tableName);
+<a class="jxr_linenumber" name="161" href="#161">161</a>             deleteQueue = <strong class="jxr_keyword">new</strong> ArrayBlockingQueue&lt;&gt;(DELETE_BATCH_SIZE);
 <a class="jxr_linenumber" name="162" href="#162">162</a> 
-<a class="jxr_linenumber" name="163" href="#163">163</a>         <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseClient</a>() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="164" href="#164">164</a>             <em class="jxr_comment">// TODO: create TTable here instead</em>
-<a class="jxr_linenumber" name="165" href="#165">165</a>             table = hbaseConnection.getTable(TableName.valueOf(tableName));
-<a class="jxr_linenumber" name="166" href="#166">166</a>             <em class="jxr_comment">// FIXME: why is this using autoFlush of false? Why would every Delete</em>
-<a class="jxr_linenumber" name="167" href="#167">167</a>             <em class="jxr_comment">// need to be send through a separate RPC?</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a>             deleteTable = hbaseConnection.getTable(TableName.valueOf(tableName));
-<a class="jxr_linenumber" name="169" href="#169">169</a>             deleteQueue = <strong class="jxr_keyword">new</strong> ArrayBlockingQueue&lt;&gt;(DELETE_BATCH_SIZE);
-<a class="jxr_linenumber" name="170" href="#170">170</a> 
-<a class="jxr_linenumber" name="171" href="#171">171</a>             deleteBatchExecutor = Executors.newSingleThreadExecutor(
-<a class="jxr_linenumber" name="172" href="#172">172</a>                     <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"omid-completor-%d"</span>).build());
-<a class="jxr_linenumber" name="173" href="#173">173</a>             deleteBatchExecutor.submit(<strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="174" href="#174">174</a> 
-<a class="jxr_linenumber" name="175" href="#175">175</a>         }
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>         @Override
-<a class="jxr_linenumber" name="178" href="#178">178</a>         <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Optional&lt;CommitTimestamp&gt;&gt; getCommitTimestamp(<strong class="jxr_keyword">long</strong> startTimestamp) {
+<a class="jxr_linenumber" name="163" href="#163">163</a>             deleteBatchExecutor = Executors.newSingleThreadExecutor(
+<a class="jxr_linenumber" name="164" href="#164">164</a>                     <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"omid-completor-%d"</span>).build());
+<a class="jxr_linenumber" name="165" href="#165">165</a>             deleteBatchExecutor.submit(<strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>         }
+<a class="jxr_linenumber" name="168" href="#168">168</a> 
+<a class="jxr_linenumber" name="169" href="#169">169</a>         @Override
+<a class="jxr_linenumber" name="170" href="#170">170</a>         <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Optional&lt;CommitTimestamp&gt;&gt; getCommitTimestamp(<strong class="jxr_keyword">long</strong> startTimestamp) {
+<a class="jxr_linenumber" name="171" href="#171">171</a> 
+<a class="jxr_linenumber" name="172" href="#172">172</a>             SettableFuture&lt;Optional&lt;CommitTimestamp&gt;&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="173" href="#173">173</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="174" href="#174">174</a>                 Get get = <strong class="jxr_keyword">new</strong> Get(startTimestampToKey(startTimestamp));
+<a class="jxr_linenumber" name="175" href="#175">175</a>                 get.addColumn(commitTableFamily, COMMIT_TABLE_QUALIFIER);
+<a class="jxr_linenumber" name="176" href="#176">176</a>                 get.addColumn(commitTableFamily, INVALID_TX_QUALIFIER);
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>                 Result result = table.get(get);
 <a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a>             SettableFuture&lt;Optional&lt;CommitTimestamp&gt;&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="181" href="#181">181</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="182" href="#182">182</a>                 Get get = <strong class="jxr_keyword">new</strong> Get(startTimestampToKey(startTimestamp));
-<a class="jxr_linenumber" name="183" href="#183">183</a>                 get.addColumn(commitTableFamily, COMMIT_TABLE_QUALIFIER);
-<a class="jxr_linenumber" name="184" href="#184">184</a>                 get.addColumn(commitTableFamily, INVALID_TX_QUALIFIER);
-<a class="jxr_linenumber" name="185" href="#185">185</a> 
-<a class="jxr_linenumber" name="186" href="#186">186</a>                 Result result = table.get(get);
-<a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>                 <strong class="jxr_keyword">if</strong> (containsInvalidTransaction(result)) {
-<a class="jxr_linenumber" name="189" href="#189">189</a>                     <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a> invalidCT =
-<a class="jxr_linenumber" name="190" href="#190">190</a>                             <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a>(Location.COMMIT_TABLE, INVALID_TRANSACTION_MARKER, false);
-<a class="jxr_linenumber" name="191" href="#191">191</a>                     f.set(Optional.of(invalidCT));
-<a class="jxr_linenumber" name="192" href="#192">192</a>                     <strong class="jxr_keyword">return</strong> f;
-<a class="jxr_linenumber" name="193" href="#193">193</a>                 }
-<a class="jxr_linenumber" name="194" href="#194">194</a> 
-<a class="jxr_linenumber" name="195" href="#195">195</a>                 <strong class="jxr_keyword">if</strong> (containsATimestamp(result)) {
-<a class="jxr_linenumber" name="196" href="#196">196</a>                     <strong class="jxr_keyword">long</strong> commitTSValue =
-<a class="jxr_linenumber" name="197" href="#197">197</a>                             decodeCommitTimestamp(startTimestamp, result.getValue(commitTableFamily, COMMIT_TABLE_QUALIFIER));
-<a class="jxr_linenumber" name="198" href="#198">198</a>                     <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a> validCT = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a>(Location.COMMIT_TABLE, commitTSValue, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="199" href="#199">199</a>                     f.set(Optional.of(validCT));
-<a class="jxr_linenumber" name="200" href="#200">200</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="201" href="#201">201</a>                     f.set(Optional.&lt;CommitTimestamp&gt;absent());
-<a class="jxr_linenumber" name="202" href="#202">202</a>                 }
-<a class="jxr_linenumber" name="203" href="#203">203</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="204" href="#204">204</a>                 LOG.error(<span class="jxr_string">"Error getting commit timestamp for TX {}"</span>, startTimestamp, e);
-<a class="jxr_linenumber" name="205" href="#205">205</a>                 f.setException(e);
-<a class="jxr_linenumber" name="206" href="#206">206</a>             }
-<a class="jxr_linenumber" name="207" href="#207">207</a>             <strong class="jxr_keyword">return</strong> f;
-<a class="jxr_linenumber" name="208" href="#208">208</a>         }
-<a class="jxr_linenumber" name="209" href="#209">209</a> 
-<a class="jxr_linenumber" name="210" href="#210">210</a>         @Override
-<a class="jxr_linenumber" name="211" href="#211">211</a>         <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Long&gt; readLowWatermark() {
-<a class="jxr_linenumber" name="212" href="#212">212</a>             SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="213" href="#213">213</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="214" href="#214">214</a>                 Get get = <strong class="jxr_keyword">new</strong> Get(LOW_WATERMARK_ROW);
-<a class="jxr_linenumber" name="215" href="#215">215</a>                 get.addColumn(lowWatermarkFamily, LOW_WATERMARK_QUALIFIER);
-<a class="jxr_linenumber" name="216" href="#216">216</a>                 Result result = table.get(get);
-<a class="jxr_linenumber" name="217" href="#217">217</a>                 <strong class="jxr_keyword">if</strong> (containsLowWatermark(result)) {
-<a class="jxr_linenumber" name="218" href="#218">218</a>                     <strong class="jxr_keyword">long</strong> lowWatermark = Bytes.toLong(result.getValue(lowWatermarkFamily, LOW_WATERMARK_QUALIFIER));
-<a class="jxr_linenumber" name="219" href="#219">219</a>                     f.set(lowWatermark);
-<a class="jxr_linenumber" name="220" href="#220">220</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="221" href="#221">221</a>                     f.set(0L);
-<a class="jxr_linenumber" name="222" href="#222">222</a>                 }
-<a class="jxr_linenumber" name="223" href="#223">223</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="224" href="#224">224</a>                 LOG.error(<span class="jxr_string">"Error getting low watermark"</span>, e);
-<a class="jxr_linenumber" name="225" href="#225">225</a>                 f.setException(e);
-<a class="jxr_linenumber" name="226" href="#226">226</a>             }
-<a class="jxr_linenumber" name="227" href="#227">227</a>             <strong class="jxr_keyword">return</strong> f;
-<a class="jxr_linenumber" name="228" href="#228">228</a>         }
-<a class="jxr_linenumber" name="229" href="#229">229</a> 
-<a class="jxr_linenumber" name="230" href="#230">230</a>         @Override
-<a class="jxr_linenumber" name="231" href="#231">231</a>         <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; completeTransaction(<strong class="jxr_keyword">long</strong> startTimestamp) {
-<a class="jxr_linenumber" name="232" href="#232">232</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="233" href="#233">233</a>                 <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
-<a class="jxr_linenumber" name="234" href="#234">234</a> 
-<a class="jxr_linenumber" name="235" href="#235">235</a>                     <strong class="jxr_keyword">if</strong> (isClosed) {
-<a class="jxr_linenumber" name="236" href="#236">236</a>                         SettableFuture&lt;Void&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="237" href="#237">237</a>                         f.setException(<strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Not accepting requests anymore"</span>));
-<a class="jxr_linenumber" name="238" href="#238">238</a>                         <strong class="jxr_keyword">return</strong> f;
-<a class="jxr_linenumber" name="239" href="#239">239</a>                     }
-<a class="jxr_linenumber" name="240" href="#240">240</a> 
-<a class="jxr_linenumber" name="241" href="#241">241</a>                     <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a> req = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a>(
-<a class="jxr_linenumber" name="242" href="#242">242</a>                             <strong class="jxr_keyword">new</strong> Delete(startTimestampToKey(startTimestamp), startTimestamp));
-<a class="jxr_linenumber" name="243" href="#243">243</a>                     deleteQueue.put(req);
-<a class="jxr_linenumber" name="244" href="#244">244</a>                     <strong class="jxr_keyword">return</strong> req;
-<a class="jxr_linenumber" name="245" href="#245">245</a>                 }
-<a class="jxr_linenumber" name="246" href="#246">246</a>             } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
-<a class="jxr_linenumber" name="247" href="#247">247</a>                 LOG.warn(<span class="jxr_string">"Error generating timestamp for transaction completion"</span>, ioe);
-<a class="jxr_linenumber" name="248" href="#248">248</a>                 SettableFuture&lt;Void&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="249" href="#249">249</a>                 f.setException(ioe);
-<a class="jxr_linenumber" name="250" href="#250">250</a>                 <strong class="jxr_keyword">return</strong> f;
-<a class="jxr_linenumber" name="251" href="#251">251</a>             } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
-<a class="jxr_linenumber" name="252" href="#252">252</a>                 Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="253" href="#253">253</a>                 SettableFuture&lt;Void&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="254" href="#254">254</a>                 f.setException(ie);
-<a class="jxr_linenumber" name="255" href="#255">255</a>                 <strong class="jxr_keyword">return</strong> f;
-<a class="jxr_linenumber" name="256" href="#256">256</a>             }
-<a class="jxr_linenumber" name="257" href="#257">257</a>         }
+<a class="jxr_linenumber" name="180" href="#180">180</a>                 <strong class="jxr_keyword">if</strong> (containsInvalidTransaction(result)) {
+<a class="jxr_linenumber" name="181" href="#181">181</a>                     <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a> invalidCT =
+<a class="jxr_linenumber" name="182" href="#182">182</a>                             <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a>(Location.COMMIT_TABLE, INVALID_TRANSACTION_MARKER, false);
+<a class="jxr_linenumber" name="183" href="#183">183</a>                     f.set(Optional.of(invalidCT));
+<a class="jxr_linenumber" name="184" href="#184">184</a>                     <strong class="jxr_keyword">return</strong> f;
+<a class="jxr_linenumber" name="185" href="#185">185</a>                 }
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a>                 <strong class="jxr_keyword">if</strong> (containsATimestamp(result)) {
+<a class="jxr_linenumber" name="188" href="#188">188</a>                     <strong class="jxr_keyword">long</strong> commitTSValue =
+<a class="jxr_linenumber" name="189" href="#189">189</a>                             decodeCommitTimestamp(startTimestamp, result.getValue(commitTableFamily, COMMIT_TABLE_QUALIFIER));
+<a class="jxr_linenumber" name="190" href="#190">190</a>                     <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a> validCT = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a>(Location.COMMIT_TABLE, commitTSValue, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="191" href="#191">191</a>                     f.set(Optional.of(validCT));
+<a class="jxr_linenumber" name="192" href="#192">192</a>                 } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="193" href="#193">193</a>                     f.set(Optional.&lt;CommitTimestamp&gt;absent());
+<a class="jxr_linenumber" name="194" href="#194">194</a>                 }
+<a class="jxr_linenumber" name="195" href="#195">195</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="196" href="#196">196</a>                 LOG.error(<span class="jxr_string">"Error getting commit timestamp for TX {}"</span>, startTimestamp, e);
+<a class="jxr_linenumber" name="197" href="#197">197</a>                 f.setException(e);
+<a class="jxr_linenumber" name="198" href="#198">198</a>             }
+<a class="jxr_linenumber" name="199" href="#199">199</a>             <strong class="jxr_keyword">return</strong> f;
+<a class="jxr_linenumber" name="200" href="#200">200</a>         }
+<a class="jxr_linenumber" name="201" href="#201">201</a> 
+<a class="jxr_linenumber" name="202" href="#202">202</a>         @Override
+<a class="jxr_linenumber" name="203" href="#203">203</a>         <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Long&gt; readLowWatermark() {
+<a class="jxr_linenumber" name="204" href="#204">204</a>             SettableFuture&lt;Long&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="205" href="#205">205</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="206" href="#206">206</a>                 Get get = <strong class="jxr_keyword">new</strong> Get(LOW_WATERMARK_ROW);
+<a class="jxr_linenumber" name="207" href="#207">207</a>                 get.addColumn(lowWatermarkFamily, LOW_WATERMARK_QUALIFIER);
+<a class="jxr_linenumber" name="208" href="#208">208</a>                 Result result = table.get(get);
+<a class="jxr_linenumber" name="209" href="#209">209</a>                 <strong class="jxr_keyword">if</strong> (containsLowWatermark(result)) {
+<a class="jxr_linenumber" name="210" href="#210">210</a>                     <strong class="jxr_keyword">long</strong> lowWatermark = Bytes.toLong(result.getValue(lowWatermarkFamily, LOW_WATERMARK_QUALIFIER));
+<a class="jxr_linenumber" name="211" href="#211">211</a>                     f.set(lowWatermark);
+<a class="jxr_linenumber" name="212" href="#212">212</a>                 } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="213" href="#213">213</a>                     f.set(0L);
+<a class="jxr_linenumber" name="214" href="#214">214</a>                 }
+<a class="jxr_linenumber" name="215" href="#215">215</a>             } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="216" href="#216">216</a>                 LOG.error(<span class="jxr_string">"Error getting low watermark"</span>, e);
+<a class="jxr_linenumber" name="217" href="#217">217</a>                 f.setException(e);
+<a class="jxr_linenumber" name="218" href="#218">218</a>             }
+<a class="jxr_linenumber" name="219" href="#219">219</a>             <strong class="jxr_keyword">return</strong> f;
+<a class="jxr_linenumber" name="220" href="#220">220</a>         }
+<a class="jxr_linenumber" name="221" href="#221">221</a> 
+<a class="jxr_linenumber" name="222" href="#222">222</a>         @Override
+<a class="jxr_linenumber" name="223" href="#223">223</a>         <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; completeTransaction(<strong class="jxr_keyword">long</strong> startTimestamp) {
+<a class="jxr_linenumber" name="224" href="#224">224</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="225" href="#225">225</a>                 <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
+<a class="jxr_linenumber" name="226" href="#226">226</a> 
+<a class="jxr_linenumber" name="227" href="#227">227</a>                     <strong class="jxr_keyword">if</strong> (isClosed) {
+<a class="jxr_linenumber" name="228" href="#228">228</a>                         SettableFuture&lt;Void&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="229" href="#229">229</a>                         f.setException(<strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Not accepting requests anymore"</span>));
+<a class="jxr_linenumber" name="230" href="#230">230</a>                         <strong class="jxr_keyword">return</strong> f;
+<a class="jxr_linenumber" name="231" href="#231">231</a>                     }
+<a class="jxr_linenumber" name="232" href="#232">232</a> 
+<a class="jxr_linenumber" name="233" href="#233">233</a>                     <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a> req = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a>(
+<a class="jxr_linenumber" name="234" href="#234">234</a>                             <strong class="jxr_keyword">new</strong> Delete(startTimestampToKey(startTimestamp), startTimestamp));
+<a class="jxr_linenumber" name="235" href="#235">235</a>                     deleteQueue.put(req);
+<a class="jxr_linenumber" name="236" href="#236">236</a>                     <strong class="jxr_keyword">return</strong> req;
+<a class="jxr_linenumber" name="237" href="#237">237</a>                 }
+<a class="jxr_linenumber" name="238" href="#238">238</a>             } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
+<a class="jxr_linenumber" name="239" href="#239">239</a>                 LOG.warn(<span class="jxr_string">"Error generating timestamp for transaction completion"</span>, ioe);
+<a class="jxr_linenumber" name="240" href="#240">240</a>                 SettableFuture&lt;Void&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="241" href="#241">241</a>                 f.setException(ioe);
+<a class="jxr_linenumber" name="242" href="#242">242</a>                 <strong class="jxr_keyword">return</strong> f;
+<a class="jxr_linenumber" name="243" href="#243">243</a>             } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
+<a class="jxr_linenumber" name="244" href="#244">244</a>                 Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="245" href="#245">245</a>                 SettableFuture&lt;Void&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="246" href="#246">246</a>                 f.setException(ie);
+<a class="jxr_linenumber" name="247" href="#247">247</a>                 <strong class="jxr_keyword">return</strong> f;
+<a class="jxr_linenumber" name="248" href="#248">248</a>             }
+<a class="jxr_linenumber" name="249" href="#249">249</a>         }
+<a class="jxr_linenumber" name="250" href="#250">250</a> 
+<a class="jxr_linenumber" name="251" href="#251">251</a>         @Override
+<a class="jxr_linenumber" name="252" href="#252">252</a>         <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Boolean&gt; tryInvalidateTransaction(<strong class="jxr_keyword">long</strong> startTimestamp) {
+<a class="jxr_linenumber" name="253" href="#253">253</a>             SettableFuture&lt;Boolean&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="254" href="#254">254</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="255" href="#255">255</a>                 byte[] row = startTimestampToKey(startTimestamp);
+<a class="jxr_linenumber" name="256" href="#256">256</a>                 Put invalidationPut = <strong class="jxr_keyword">new</strong> Put(row, startTimestamp);
+<a class="jxr_linenumber" name="257" href="#257">257</a>                 invalidationPut.add(commitTableFamily, INVALID_TX_QUALIFIER, <strong class="jxr_keyword">null</strong>);
 <a class="jxr_linenumber" name="258" href="#258">258</a> 
-<a class="jxr_linenumber" name="259" href="#259">259</a>         @Override
-<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Boolean&gt; tryInvalidateTransaction(<strong class="jxr_keyword">long</strong> startTimestamp) {
-<a class="jxr_linenumber" name="261" href="#261">261</a>             SettableFuture&lt;Boolean&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="262" href="#262">262</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="263" href="#263">263</a>                 byte[] row = startTimestampToKey(startTimestamp);
-<a class="jxr_linenumber" name="264" href="#264">264</a>                 Put invalidationPut = <strong class="jxr_keyword">new</strong> Put(row, startTimestamp);
-<a class="jxr_linenumber" name="265" href="#265">265</a>                 invalidationPut.addColumn(commitTableFamily, INVALID_TX_QUALIFIER, <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="266" href="#266">266</a> 
-<a class="jxr_linenumber" name="267" href="#267">267</a>                 <em class="jxr_comment">// We need to write to the invalid column only if the commit timestamp</em>
-<a class="jxr_linenumber" name="268" href="#268">268</a>                 <em class="jxr_comment">// is empty. This has to be done atomically. Otherwise, if we first</em>
-<a class="jxr_linenumber" name="269" href="#269">269</a>                 <em class="jxr_comment">// check the commit timestamp and right before the invalidation a commit</em>
-<a class="jxr_linenumber" name="270" href="#270">270</a>                 <em class="jxr_comment">// timestamp is added and read by a transaction, then snapshot isolation</em>
-<a class="jxr_linenumber" name="271" href="#271">271</a>                 <em class="jxr_comment">// might not be hold (due to the invalidation)</em>
-<a class="jxr_linenumber" name="272" href="#272">272</a>                 <em class="jxr_comment">// TODO: Decide what we should we do if we can not contact the commit table. loop till succeed???</em>
-<a class="jxr_linenumber" name="273" href="#273">273</a>                 <strong class="jxr_keyword">boolean</strong> result = table.checkAndPut(row, commitTableFamily, COMMIT_TABLE_QUALIFIER, <strong class="jxr_keyword">null</strong>, invalidationPut);
-<a class="jxr_linenumber" name="274" href="#274">274</a>                 f.set(result);
-<a class="jxr_linenumber" name="275" href="#275">275</a>             } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
-<a class="jxr_linenumber" name="276" href="#276">276</a>                 f.setException(ioe);
-<a class="jxr_linenumber" name="277" href="#277">277</a>             }
-<a class="jxr_linenumber" name="278" href="#278">278</a>             <strong class="jxr_keyword">return</strong> f;
-<a class="jxr_linenumber" name="279" href="#279">279</a>         }
-<a class="jxr_linenumber" name="280" href="#280">280</a> 
-<a class="jxr_linenumber" name="281" href="#281">281</a>         @Override
-<a class="jxr_linenumber" name="282" href="#282">282</a>         @SuppressWarnings(<span class="jxr_string">"InfiniteLoopStatement"</span>)
-<a class="jxr_linenumber" name="283" href="#283">283</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
-<a class="jxr_linenumber" name="284" href="#284">284</a>             List&lt;DeleteRequest&gt; reqbatch = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="285" href="#285">285</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="286" href="#286">286</a>                 <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
-<a class="jxr_linenumber" name="287" href="#287">287</a>                     <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a> r = deleteQueue.poll();
-<a class="jxr_linenumber" name="288" href="#288">288</a>                     <strong class="jxr_keyword">if</strong> (r == <strong class="jxr_keyword">null</strong> &amp;&amp; reqbatch.size() == 0) {
-<a class="jxr_linenumber" name="289" href="#289">289</a>                         r = deleteQueue.take();
-<a class="jxr_linenumber" name="290" href="#290">290</a>                     }
-<a class="jxr_linenumber" name="291" href="#291">291</a> 
-<a class="jxr_linenumber" name="292" href="#292">292</a>                     <strong class="jxr_keyword">if</strong> (r != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="293" href="#293">293</a>                         reqbatch.add(r);
-<a class="jxr_linenumber" name="294" href="#294">294</a>                     }
-<a class="jxr_linenumber" name="295" href="#295">295</a> 
-<a class="jxr_linenumber" name="296" href="#296">296</a>                     <strong class="jxr_keyword">if</strong> (r == <strong class="jxr_keyword">null</strong> || reqbatch.size() == DELETE_BATCH_SIZE) {
-<a class="jxr_linenumber" name="297" href="#297">297</a>                         List&lt;Delete&gt; deletes = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="298" href="#298">298</a>                         <strong class="jxr_keyword">for</strong> (DeleteRequest dr : reqbatch) {
-<a class="jxr_linenumber" name="299" href="#299">299</a>                             deletes.add(dr.getDelete());
-<a class="jxr_linenumber" name="300" href="#300">300</a>                         }
-<a class="jxr_linenumber" name="301" href="#301">301</a>                         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="302" href="#302">302</a>                             deleteTable.delete(deletes);
-<a class="jxr_linenumber" name="303" href="#303">303</a>                             <strong class="jxr_keyword">for</strong> (DeleteRequest dr : reqbatch) {
-<a class="jxr_linenumber" name="304" href="#304">304</a>                                 dr.complete();
-<a class="jxr_linenumber" name="305" href="#305">305</a>                             }
-<a class="jxr_linenumber" name="306" href="#306">306</a>                         } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
-<a class="jxr_linenumber" name="307" href="#307">307</a>                             LOG.warn(<span class="jxr_string">"Error contacting hbase"</span>, ioe);
-<a class="jxr_linenumber" name="308" href="#308">308</a>                             <strong class="jxr_keyword">for</strong> (DeleteRequest dr : reqbatch) {
-<a class="jxr_linenumber" name="309" href="#309">309</a>                                 dr.error(ioe);
-<a class="jxr_linenumber" name="310" href="#310">310</a>                             }
-<a class="jxr_linenumber" name="311" href="#311">311</a>                         } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="312" href="#312">312</a>                             reqbatch.clear();
-<a class="jxr_linenumber" name="313" href="#313">313</a>                         }
-<a class="jxr_linenumber" name="314" href="#314">314</a>                     }
-<a class="jxr_linenumber" name="315" href="#315">315</a>                 }
-<a class="jxr_linenumber" name="316" href="#316">316</a>             } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
-<a class="jxr_linenumber" name="317" href="#317">317</a>                 <em class="jxr_comment">// Drain the queue and place the exception in the future</em>
-<a class="jxr_linenumber" name="318" href="#318">318</a>                 <em class="jxr_comment">// for those who placed requests</em>
-<a class="jxr_linenumber" name="319" href="#319">319</a>                 LOG.warn(<span class="jxr_string">"Draining delete queue"</span>);
-<a class="jxr_linenumber" name="320" href="#320">320</a>                 <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a> queuedRequest = deleteQueue.poll();
-<a class="jxr_linenumber" name="321" href="#321">321</a>                 <strong class="jxr_keyword">while</strong> (queuedRequest != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="322" href="#322">322</a>                     reqbatch.add(queuedRequest);
-<a class="jxr_linenumber" name="323" href="#323">323</a>                     queuedRequest = deleteQueue.poll();
-<a class="jxr_linenumber" name="324" href="#324">324</a>                 }
-<a class="jxr_linenumber" name="325" href="#325">325</a>                 <strong class="jxr_keyword">for</strong> (DeleteRequest dr : reqbatch) {
-<a class="jxr_linenumber" name="326" href="#326">326</a>                     dr.error(<strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"HBase CommitTable is going to be closed"</span>));
-<a class="jxr_linenumber" name="327" href="#327">327</a>                 }
-<a class="jxr_linenumber" name="328" href="#328">328</a>                 reqbatch.clear();
-<a class="jxr_linenumber" name="329" href="#329">329</a>                 Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="330" href="#330">330</a>             } <strong class="jxr_keyword">catch</strong> (Throwable t) {
-<a class="jxr_linenumber" name="331" href="#331">331</a>                 LOG.error(<span class="jxr_string">"Transaction completion thread threw exception"</span>, t);
-<a class="jxr_linenumber" name="332" href="#332">332</a>             }
-<a class="jxr_linenumber" name="333" href="#333">333</a>         }
-<a class="jxr_linenumber" name="334" href="#334">334</a> 
-<a class="jxr_linenumber" name="335" href="#335">335</a>         @Override
-<a class="jxr_linenumber" name="336" href="#336">336</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="337" href="#337">337</a>             isClosed = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="338" href="#338">338</a>             deleteBatchExecutor.shutdownNow(); <em class="jxr_comment">// may need to interrupt take</em>
-<a class="jxr_linenumber" name="339" href="#339">339</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="340" href="#340">340</a>                 <strong class="jxr_keyword">if</strong> (!deleteBatchExecutor.awaitTermination(10, TimeUnit.SECONDS)) {
-<a class="jxr_linenumber" name="341" href="#341">341</a>                     LOG.warn(<span class="jxr_string">"Delete executor did not shutdown"</span>);
-<a class="jxr_linenumber" name="342" href="#342">342</a>                 }
-<a class="jxr_linenumber" name="343" href="#343">343</a>             } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
-<a class="jxr_linenumber" name="344" href="#344">344</a>                 Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="345" href="#345">345</a>             }
-<a class="jxr_linenumber" name="346" href="#346">346</a> 
-<a class="jxr_linenumber" name="347" href="#347">347</a>             LOG.warn(<span class="jxr_string">"Re-Draining delete queue just in case"</span>);
-<a class="jxr_linenumber" name="348" href="#348">348</a>             <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a> queuedRequest = deleteQueue.poll();
-<a class="jxr_linenumber" name="349" href="#349">349</a>             <strong class="jxr_keyword">while</strong> (queuedRequest != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="350" href="#350">350</a>                 queuedRequest.error(<strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"HBase CommitTable is going to be closed"</span>));
-<a class="jxr_linenumber" name="351" href="#351">351</a>                 queuedRequest = deleteQueue.poll();
-<a class="jxr_linenumber" name="352" href="#352">352</a>             }
+<a class="jxr_linenumber" name="259" href="#259">259</a>                 <em class="jxr_comment">// We need to write to the invalid column only if the commit timestamp</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a>                 <em class="jxr_comment">// is empty. This has to be done atomically. Otherwise, if we first</em>
+<a class="jxr_linenumber" name="261" href="#261">261</a>                 <em class="jxr_comment">// check the commit timestamp and right before the invalidation a commit</em>
+<a class="jxr_linenumber" name="262" href="#262">262</a>                 <em class="jxr_comment">// timestamp is added and read by a transaction, then snapshot isolation</em>
+<a class="jxr_linenumber" name="263" href="#263">263</a>                 <em class="jxr_comment">// might not be hold (due to the invalidation)</em>
+<a class="jxr_linenumber" name="264" href="#264">264</a>                 <em class="jxr_comment">// TODO: Decide what we should we do if we can not contact the commit table. loop till succeed???</em>
+<a class="jxr_linenumber" name="265" href="#265">265</a>                 <strong class="jxr_keyword">boolean</strong> result = table.checkAndPut(row, commitTableFamily, COMMIT_TABLE_QUALIFIER, <strong class="jxr_keyword">null</strong>, invalidationPut);
+<a class="jxr_linenumber" name="266" href="#266">266</a>                 f.set(result);
+<a class="jxr_linenumber" name="267" href="#267">267</a>             } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
+<a class="jxr_linenumber" name="268" href="#268">268</a>                 f.setException(ioe);
+<a class="jxr_linenumber" name="269" href="#269">269</a>             }
+<a class="jxr_linenumber" name="270" href="#270">270</a>             <strong class="jxr_keyword">return</strong> f;
+<a class="jxr_linenumber" name="271" href="#271">271</a>         }
+<a class="jxr_linenumber" name="272" href="#272">272</a> 
+<a class="jxr_linenumber" name="273" href="#273">273</a>         @Override
+<a class="jxr_linenumber" name="274" href="#274">274</a>         @SuppressWarnings(<span class="jxr_string">"InfiniteLoopStatement"</span>)
+<a class="jxr_linenumber" name="275" href="#275">275</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
+<a class="jxr_linenumber" name="276" href="#276">276</a>             List&lt;DeleteRequest&gt; reqbatch = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="277" href="#277">277</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="278" href="#278">278</a>                 <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
+<a class="jxr_linenumber" name="279" href="#279">279</a>                     <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a> r = deleteQueue.poll();
+<a class="jxr_linenumber" name="280" href="#280">280</a>                     <strong class="jxr_keyword">if</strong> (r == <strong class="jxr_keyword">null</strong> &amp;&amp; reqbatch.size() == 0) {
+<a class="jxr_linenumber" name="281" href="#281">281</a>                         r = deleteQueue.take();
+<a class="jxr_linenumber" name="282" href="#282">282</a>                     }
+<a class="jxr_linenumber" name="283" href="#283">283</a> 
+<a class="jxr_linenumber" name="284" href="#284">284</a>                     <strong class="jxr_keyword">if</strong> (r != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="285" href="#285">285</a>                         reqbatch.add(r);
+<a class="jxr_linenumber" name="286" href="#286">286</a>                     }
+<a class="jxr_linenumber" name="287" href="#287">287</a> 
+<a class="jxr_linenumber" name="288" href="#288">288</a>                     <strong class="jxr_keyword">if</strong> (r == <strong class="jxr_keyword">null</strong> || reqbatch.size() == DELETE_BATCH_SIZE) {
+<a class="jxr_linenumber" name="289" href="#289">289</a>                         List&lt;Delete&gt; deletes = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="290" href="#290">290</a>                         <strong class="jxr_keyword">for</strong> (DeleteRequest dr : reqbatch) {
+<a class="jxr_linenumber" name="291" href="#291">291</a>                             deletes.add(dr.getDelete());
+<a class="jxr_linenumber" name="292" href="#292">292</a>                         }
+<a class="jxr_linenumber" name="293" href="#293">293</a>                         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="294" href="#294">294</a>                             deleteTable.delete(deletes);
+<a class="jxr_linenumber" name="295" href="#295">295</a>                             <strong class="jxr_keyword">for</strong> (DeleteRequest dr : reqbatch) {
+<a class="jxr_linenumber" name="296" href="#296">296</a>                                 dr.complete();
+<a class="jxr_linenumber" name="297" href="#297">297</a>                             }
+<a class="jxr_linenumber" name="298" href="#298">298</a>                         } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
+<a class="jxr_linenumber" name="299" href="#299">299</a>                             LOG.warn(<span class="jxr_string">"Error contacting hbase"</span>, ioe);
+<a class="jxr_linenumber" name="300" href="#300">300</a>                             <strong class="jxr_keyword">for</strong> (DeleteRequest dr : reqbatch) {
+<a class="jxr_linenumber" name="301" href="#301">301</a>                                 dr.error(ioe);
+<a class="jxr_linenumber" name="302" href="#302">302</a>                             }
+<a class="jxr_linenumber" name="303" href="#303">303</a>                         } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="304" href="#304">304</a>                             reqbatch.clear();
+<a class="jxr_linenumber" name="305" href="#305">305</a>                         }
+<a class="jxr_linenumber" name="306" href="#306">306</a>                     }
+<a class="jxr_linenumber" name="307" href="#307">307</a>                 }
+<a class="jxr_linenumber" name="308" href="#308">308</a>             } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
+<a class="jxr_linenumber" name="309" href="#309">309</a>                 <em class="jxr_comment">// Drain the queue and place the exception in the future</em>
+<a class="jxr_linenumber" name="310" href="#310">310</a>                 <em class="jxr_comment">// for those who placed requests</em>
+<a class="jxr_linenumber" name="311" href="#311">311</a>                 LOG.warn(<span class="jxr_string">"Draining delete queue"</span>);
+<a class="jxr_linenumber" name="312" href="#312">312</a>                 <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a> queuedRequest = deleteQueue.poll();
+<a class="jxr_linenumber" name="313" href="#313">313</a>                 <strong class="jxr_keyword">while</strong> (queuedRequest != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="314" href="#314">314</a>                     reqbatch.add(queuedRequest);
+<a class="jxr_linenumber" name="315" href="#315">315</a>                     queuedRequest = deleteQueue.poll();
+<a class="jxr_linenumber" name="316" href="#316">316</a>                 }
+<a class="jxr_linenumber" name="317" href="#317">317</a>                 <strong class="jxr_keyword">for</strong> (DeleteRequest dr : reqbatch) {
+<a class="jxr_linenumber" name="318" href="#318">318</a>                     dr.error(<strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"HBase CommitTable is going to be closed"</span>));
+<a class="jxr_linenumber" name="319" href="#319">319</a>                 }
+<a class="jxr_linenumber" name="320" href="#320">320</a>                 reqbatch.clear();
+<a class="jxr_linenumber" name="321" href="#321">321</a>                 Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="322" href="#322">322</a>             } <strong class="jxr_keyword">catch</strong> (Throwable t) {
+<a class="jxr_linenumber" name="323" href="#323">323</a>                 LOG.error(<span class="jxr_string">"Transaction completion thread threw exception"</span>, t);
+<a class="jxr_linenumber" name="324" href="#324">324</a>             }
+<a class="jxr_linenumber" name="325" href="#325">325</a>         }
+<a class="jxr_linenumber" name="326" href="#326">326</a> 
+<a class="jxr_linenumber" name="327" href="#327">327</a>         @Override
+<a class="jxr_linenumber" name="328" href="#328">328</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="329" href="#329">329</a>             isClosed = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="330" href="#330">330</a>             deleteBatchExecutor.shutdownNow(); <em class="jxr_comment">// may need to interrupt take</em>
+<a class="jxr_linenumber" name="331" href="#331">331</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="332" href="#332">332</a>                 <strong class="jxr_keyword">if</strong> (!deleteBatchExecutor.awaitTermination(10, TimeUnit.SECONDS)) {
+<a class="jxr_linenumber" name="333" href="#333">333</a>                     LOG.warn(<span class="jxr_string">"Delete executor did not shutdown"</span>);
+<a class="jxr_linenumber" name="334" href="#334">334</a>                 }
+<a class="jxr_linenumber" name="335" href="#335">335</a>             } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
+<a class="jxr_linenumber" name="336" href="#336">336</a>                 Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="337" href="#337">337</a>             }
+<a class="jxr_linenumber" name="338" href="#338">338</a> 
+<a class="jxr_linenumber" name="339" href="#339">339</a>             LOG.warn(<span class="jxr_string">"Re-Draining delete queue just in case"</span>);
+<a class="jxr_linenumber" name="340" href="#340">340</a>             <a href="../../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">DeleteRequest</a> queuedRequest = deleteQueue.poll();
+<a class="jxr_linenumber" name="341" href="#341">341</a>             <strong class="jxr_keyword">while</strong> (queuedRequest != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="342" href="#342">342</a>                 queuedRequest.error(<strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"HBase CommitTable is going to be closed"</span>));
+<a class="jxr_linenumber" name="343" href="#343">343</a>                 queuedRequest = deleteQueue.poll();
+<a class="jxr_linenumber" name="344" href="#344">344</a>             }
+<a class="jxr_linenumber" name="345" href="#345">345</a> 
+<a class="jxr_linenumber" name="346" href="#346">346</a>             deleteTable.close();
+<a class="jxr_linenumber" name="347" href="#347">347</a>             table.close();
+<a class="jxr_linenumber" name="348" href="#348">348</a>         }
+<a class="jxr_linenumber" name="349" href="#349">349</a> 
+<a class="jxr_linenumber" name="350" href="#350">350</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> containsATimestamp(Result result) {
+<a class="jxr_linenumber" name="351" href="#351">351</a>             <strong class="jxr_keyword">return</strong> (result != <strong class="jxr_keyword">null</strong> &amp;&amp; result.containsColumn(commitTableFamily, COMMIT_TABLE_QUALIFIER));
+<a class="jxr_linenumber" name="352" href="#352">352</a>         }
 <a class="jxr_linenumber" name="353" href="#353">353</a> 
-<a class="jxr_linenumber" name="354" href="#354">354</a>             deleteTable.close();
-<a class="jxr_linenumber" name="355" href="#355">355</a>             table.close();
+<a class="jxr_linenumber" name="354" href="#354">354</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> containsInvalidTransaction(Result result) {
+<a class="jxr_linenumber" name="355" href="#355">355</a>             <strong class="jxr_keyword">return</strong> (result != <strong class="jxr_keyword">null</strong> &amp;&amp; result.containsColumn(commitTableFamily, INVALID_TX_QUALIFIER));
 <a class="jxr_linenumber" name="356" href="#356">356</a>         }
 <a class="jxr_linenumber" name="357" href="#357">357</a> 
-<a class="jxr_linenumber" name="358" href="#358">358</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> containsATimestamp(Result result) {
-<a class="jxr_linenumber" name="359" href="#359">359</a>             <strong class="jxr_keyword">return</strong> (result != <strong class="jxr_keyword">null</strong> &amp;&amp; result.containsColumn(commitTableFamily, COMMIT_TABLE_QUALIFIER));
+<a class="jxr_linenumber" name="358" href="#358">358</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> containsLowWatermark(Result result) {
+<a class="jxr_linenumber" name="359" href="#359">359</a>             <strong class="jxr_keyword">return</strong> (result != <strong class="jxr_keyword">null</strong> &amp;&amp; result.containsColumn(lowWatermarkFamily, LOW_WATERMARK_QUALIFIER));
 <a class="jxr_linenumber" name="360" href="#360">360</a>         }
 <a class="jxr_linenumber" name="361" href="#361">361</a> 
-<a class="jxr_linenumber" name="362" href="#362">362</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> containsInvalidTransaction(Result result) {
-<a class="jxr_linenumber" name="363" href="#363">363</a>             <strong cl

<TRUNCATED>


[37/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestDeletion.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestDeletion.html b/xref-test/org/apache/omid/transaction/TestDeletion.html
index 2d9f6f1..86c3811 100644
--- a/xref-test/org/apache/omid/transaction/TestDeletion.html
+++ b/xref-test/org/apache/omid/transaction/TestDeletion.html
@@ -27,25 +27,25 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConflictDetectionLevel;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
 <a class="jxr_linenumber" name="39" href="#39">39</a>  
 <a class="jxr_linenumber" name="40" href="#40">40</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
 <a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">TestDeletion</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
@@ -57,7 +57,7 @@
 <a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> byte[] colA = Bytes.toBytes(<span class="jxr_string">"testdataA"</span>);
 <a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> byte[] colB = Bytes.toBytes(<span class="jxr_string">"testdataB"</span>);
 <a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> byte[] modrow = Bytes.toBytes(<span class="jxr_string">"test-del"</span> + 0);
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> byte[] modrow = Bytes.toBytes(<span class="jxr_string">"test-del"</span> + 3);
 <a class="jxr_linenumber" name="51" href="#51">51</a>  
 <a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> {
 <a class="jxr_linenumber" name="53" href="#53">53</a>  
@@ -72,414 +72,239 @@
 <a class="jxr_linenumber" name="62" href="#62">62</a>      }
 <a class="jxr_linenumber" name="63" href="#63">63</a>  
 <a class="jxr_linenumber" name="64" href="#64">64</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteFamilyRow(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteFamily(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="66" href="#66">66</a>  
 <a class="jxr_linenumber" name="67" href="#67">67</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="68" href="#68">68</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="68" href="#68">68</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>          ((HBaseTransactionManager) tm).setConflictDetectionLevel(ConflictDetectionLevel.ROW);
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>          Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="73" href="#73">73</a>          LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>          <strong class="jxr_keyword">int</strong> rowsWritten = 1;
-<a class="jxr_linenumber" name="76" href="#76">76</a>          <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          writeRows(tt, t1, rowsWritten, famColA);
-<a class="jxr_linenumber" name="78" href="#78">78</a>          tm.commit(t1);
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>          Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="81" href="#81">81</a>          Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="82" href="#82">82</a>          d.addFamily(famA);
-<a class="jxr_linenumber" name="83" href="#83">83</a>          tt.delete(t2, d);
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>          Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="86" href="#86">86</a>          ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>          Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA);
-<a class="jxr_linenumber" name="89" href="#89">89</a>          assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
+<a class="jxr_linenumber" name="70" href="#70">70</a>          Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="71" href="#71">71</a>          LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
+<a class="jxr_linenumber" name="72" href="#72">72</a>  
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">int</strong> rowsWritten = 10;
+<a class="jxr_linenumber" name="74" href="#74">74</a>          <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
+<a class="jxr_linenumber" name="75" href="#75">75</a>          <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColB = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famB, colB);
+<a class="jxr_linenumber" name="76" href="#76">76</a>          writeRows(tt, t1, rowsWritten, famColA, famColB);
+<a class="jxr_linenumber" name="77" href="#77">77</a>          tm.commit(t1);
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>          Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="80" href="#80">80</a>          Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
+<a class="jxr_linenumber" name="81" href="#81">81</a>          d.deleteFamily(famA);
+<a class="jxr_linenumber" name="82" href="#82">82</a>          tt.delete(t2, d);
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>          Transaction tscan = tm.begin();
+<a class="jxr_linenumber" name="85" href="#85">85</a>          ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
+<a class="jxr_linenumber" name="86" href="#86">86</a>  
+<a class="jxr_linenumber" name="87" href="#87">87</a>          Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA, famColB);
+<a class="jxr_linenumber" name="88" href="#88">88</a>          assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
+<a class="jxr_linenumber" name="89" href="#89">89</a>          assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
 <a class="jxr_linenumber" name="90" href="#90">90</a>          tm.commit(t2);
 <a class="jxr_linenumber" name="91" href="#91">91</a>  
 <a class="jxr_linenumber" name="92" href="#92">92</a>          tscan = tm.begin();
 <a class="jxr_linenumber" name="93" href="#93">93</a>          rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
 <a class="jxr_linenumber" name="94" href="#94">94</a>  
-<a class="jxr_linenumber" name="95" href="#95">95</a>          count = countColsInRows(rs, famColA);
-<a class="jxr_linenumber" name="96" href="#96">96</a>          Integer countFamColA = count.get(famColA);
-<a class="jxr_linenumber" name="97" href="#97">97</a>          assertEquals(countFamColA, <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="95" href="#95">95</a>          count = countColsInRows(rs, famColA, famColB);
+<a class="jxr_linenumber" name="96" href="#96">96</a>          assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), (rowsWritten - 1), <span class="jxr_string">"ColA count should be equal to rowsWritten - 1"</span>);
+<a class="jxr_linenumber" name="97" href="#97">97</a>          assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
 <a class="jxr_linenumber" name="98" href="#98">98</a>  
-<a class="jxr_linenumber" name="99" href="#99">99</a>          Transaction t3 = tm.begin();
-<a class="jxr_linenumber" name="100" href="#100">100</a>         d.addFamily(famA);
-<a class="jxr_linenumber" name="101" href="#101">101</a>         tt.delete(t3, d);
-<a class="jxr_linenumber" name="102" href="#102">102</a> 
-<a class="jxr_linenumber" name="103" href="#103">103</a>         tscan = tm.begin();
-<a class="jxr_linenumber" name="104" href="#104">104</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         count = countColsInRows(rs, famColA);
-<a class="jxr_linenumber" name="107" href="#107">107</a>         countFamColA = count.get(famColA);
-<a class="jxr_linenumber" name="108" href="#108">108</a>         assertEquals(countFamColA, <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="99" href="#99">99</a>      }
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="102" href="#102">102</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteColumn(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>         TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="105" href="#105">105</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>         Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="108" href="#108">108</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
 <a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>         ((HBaseTransactionManager) tm).setConflictDetectionLevel(ConflictDetectionLevel.CELL);
+<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
 <a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>     }
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="115" href="#115">115</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteFamilyCell(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="112" href="#112">112</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
+<a class="jxr_linenumber" name="113" href="#113">113</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColB = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colB);
+<a class="jxr_linenumber" name="114" href="#114">114</a>         writeRows(tt, t1, rowsWritten, famColA, famColB);
+<a class="jxr_linenumber" name="115" href="#115">115</a>         tm.commit(t1);
 <a class="jxr_linenumber" name="116" href="#116">116</a> 
-<a class="jxr_linenumber" name="117" href="#117">117</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="118" href="#118">118</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="121" href="#121">121</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="122" href="#122">122</a> 
-<a class="jxr_linenumber" name="123" href="#123">123</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 1;
-<a class="jxr_linenumber" name="124" href="#124">124</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
-<a class="jxr_linenumber" name="125" href="#125">125</a>         writeRows(tt, t1, rowsWritten, famColA);
-<a class="jxr_linenumber" name="126" href="#126">126</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="129" href="#129">129</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="130" href="#130">130</a>         d.addFamily(famA);
-<a class="jxr_linenumber" name="131" href="#131">131</a>         tt.delete(t2, d);
+<a class="jxr_linenumber" name="117" href="#117">117</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="118" href="#118">118</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
+<a class="jxr_linenumber" name="119" href="#119">119</a>         d.deleteColumn(famA, colA);
+<a class="jxr_linenumber" name="120" href="#120">120</a>         tt.delete(t2, d);
+<a class="jxr_linenumber" name="121" href="#121">121</a> 
+<a class="jxr_linenumber" name="122" href="#122">122</a>         Transaction tscan = tm.begin();
+<a class="jxr_linenumber" name="123" href="#123">123</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a>         Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA, famColB);
+<a class="jxr_linenumber" name="126" href="#126">126</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
+<a class="jxr_linenumber" name="127" href="#127">127</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
+<a class="jxr_linenumber" name="128" href="#128">128</a>         tm.commit(t2);
+<a class="jxr_linenumber" name="129" href="#129">129</a> 
+<a class="jxr_linenumber" name="130" href="#130">130</a>         tscan = tm.begin();
+<a class="jxr_linenumber" name="131" href="#131">131</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
 <a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a>         Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="134" href="#134">134</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>         Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA);
-<a class="jxr_linenumber" name="137" href="#137">137</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="138" href="#138">138</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>         tscan = tm.begin();
-<a class="jxr_linenumber" name="141" href="#141">141</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="142" href="#142">142</a> 
-<a class="jxr_linenumber" name="143" href="#143">143</a>         count = countColsInRows(rs, famColA);
-<a class="jxr_linenumber" name="144" href="#144">144</a>         Integer countFamColA = count.get(famColA);
-<a class="jxr_linenumber" name="145" href="#145">145</a>         assertEquals(countFamColA, <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="146" href="#146">146</a> 
-<a class="jxr_linenumber" name="147" href="#147">147</a>         Transaction t3 = tm.begin();
-<a class="jxr_linenumber" name="148" href="#148">148</a>         d.addFamily(famA);
-<a class="jxr_linenumber" name="149" href="#149">149</a>         tt.delete(t3, d);
+<a class="jxr_linenumber" name="133" href="#133">133</a>         count = countColsInRows(rs, famColA, famColB);
+<a class="jxr_linenumber" name="134" href="#134">134</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), (rowsWritten - 1), <span class="jxr_string">"ColA count should be equal to rowsWritten - 1"</span>);
+<a class="jxr_linenumber" name="135" href="#135">135</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
+<a class="jxr_linenumber" name="136" href="#136">136</a> 
+<a class="jxr_linenumber" name="137" href="#137">137</a>     }
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * This test is very similar to #runTestDeleteColumn() but exercises Delete#deleteColumns()</em>
+<a class="jxr_linenumber" name="141" href="#141">141</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="142" href="#142">142</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="143" href="#143">143</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteColumns(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>         TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="146" href="#146">146</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="147" href="#147">147</a> 
+<a class="jxr_linenumber" name="148" href="#148">148</a>         Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="149" href="#149">149</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
 <a class="jxr_linenumber" name="150" href="#150">150</a> 
-<a class="jxr_linenumber" name="151" href="#151">151</a>         tscan = tm.begin();
-<a class="jxr_linenumber" name="152" href="#152">152</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="153" href="#153">153</a> 
-<a class="jxr_linenumber" name="154" href="#154">154</a>         count = countColsInRows(rs, famColA);
-<a class="jxr_linenumber" name="155" href="#155">155</a>         countFamColA = count.get(famColA);
-<a class="jxr_linenumber" name="156" href="#156">156</a>         assertEquals(countFamColA, <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="151" href="#151">151</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
+<a class="jxr_linenumber" name="152" href="#152">152</a> 
+<a class="jxr_linenumber" name="153" href="#153">153</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
+<a class="jxr_linenumber" name="154" href="#154">154</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColB = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colB);
+<a class="jxr_linenumber" name="155" href="#155">155</a>         writeRows(tt, t1, rowsWritten, famColA, famColB);
+<a class="jxr_linenumber" name="156" href="#156">156</a>         tm.commit(t1);
 <a class="jxr_linenumber" name="157" href="#157">157</a> 
-<a class="jxr_linenumber" name="158" href="#158">158</a>     }
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="161" href="#161">161</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteFamily(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="158" href="#158">158</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="159" href="#159">159</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
+<a class="jxr_linenumber" name="160" href="#160">160</a>         d.deleteColumns(famA, colA);
+<a class="jxr_linenumber" name="161" href="#161">161</a>         tt.delete(t2, d);
 <a class="jxr_linenumber" name="162" href="#162">162</a> 
-<a class="jxr_linenumber" name="163" href="#163">163</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="164" href="#164">164</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="163" href="#163">163</a>         Transaction tscan = tm.begin();
+<a class="jxr_linenumber" name="164" href="#164">164</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
 <a class="jxr_linenumber" name="165" href="#165">165</a> 
-<a class="jxr_linenumber" name="166" href="#166">166</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="167" href="#167">167</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="168" href="#168">168</a> 
-<a class="jxr_linenumber" name="169" href="#169">169</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
-<a class="jxr_linenumber" name="170" href="#170">170</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
-<a class="jxr_linenumber" name="171" href="#171">171</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColB = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famB, colB);
-<a class="jxr_linenumber" name="172" href="#172">172</a>         writeRows(tt, t1, rowsWritten, famColA, famColB);
-<a class="jxr_linenumber" name="173" href="#173">173</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="174" href="#174">174</a> 
-<a class="jxr_linenumber" name="175" href="#175">175</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="176" href="#176">176</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="177" href="#177">177</a>         d.addFamily(famA);
-<a class="jxr_linenumber" name="178" href="#178">178</a>         tt.delete(t2, d);
-<a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a>         Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="181" href="#181">181</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="182" href="#182">182</a> 
-<a class="jxr_linenumber" name="183" href="#183">183</a>         Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="184" href="#184">184</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="185" href="#185">185</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="186" href="#186">186</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>         tscan = tm.begin();
-<a class="jxr_linenumber" name="189" href="#189">189</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
+<a class="jxr_linenumber" name="166" href="#166">166</a>         Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA, famColB);
+<a class="jxr_linenumber" name="167" href="#167">167</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
+<a class="jxr_linenumber" name="168" href="#168">168</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
+<a class="jxr_linenumber" name="169" href="#169">169</a>         tm.commit(t2);
+<a class="jxr_linenumber" name="170" href="#170">170</a> 
+<a class="jxr_linenumber" name="171" href="#171">171</a>         tscan = tm.begin();
+<a class="jxr_linenumber" name="172" href="#172">172</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
+<a class="jxr_linenumber" name="173" href="#173">173</a> 
+<a class="jxr_linenumber" name="174" href="#174">174</a>         count = countColsInRows(rs, famColA, famColB);
+<a class="jxr_linenumber" name="175" href="#175">175</a> 
+<a class="jxr_linenumber" name="176" href="#176">176</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), (rowsWritten - 1), <span class="jxr_string">"ColA count should be equal to rowsWritten - 1"</span>);
+<a class="jxr_linenumber" name="177" href="#177">177</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
+<a class="jxr_linenumber" name="178" href="#178">178</a> 
+<a class="jxr_linenumber" name="179" href="#179">179</a>     }
+<a class="jxr_linenumber" name="180" href="#180">180</a> 
+<a class="jxr_linenumber" name="181" href="#181">181</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteRow(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="183" href="#183">183</a>         TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="184" href="#184">184</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="185" href="#185">185</a> 
+<a class="jxr_linenumber" name="186" href="#186">186</a>         Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="187" href="#187">187</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
+<a class="jxr_linenumber" name="188" href="#188">188</a> 
+<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
 <a class="jxr_linenumber" name="190" href="#190">190</a> 
-<a class="jxr_linenumber" name="191" href="#191">191</a>         count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="192" href="#192">192</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), (rowsWritten - 1), <span class="jxr_string">"ColA count should be equal to rowsWritten - 1"</span>);
-<a class="jxr_linenumber" name="193" href="#193">193</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="194" href="#194">194</a>     }
+<a class="jxr_linenumber" name="191" href="#191">191</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
+<a class="jxr_linenumber" name="192" href="#192">192</a>         writeRows(tt, t1, rowsWritten, famColA);
+<a class="jxr_linenumber" name="193" href="#193">193</a> 
+<a class="jxr_linenumber" name="194" href="#194">194</a>         tm.commit(t1);
 <a class="jxr_linenumber" name="195" href="#195">195</a> 
-<a class="jxr_linenumber" name="196" href="#196">196</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="197" href="#197">197</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteFamilyRowLevelCA(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="198" href="#198">198</a> 
-<a class="jxr_linenumber" name="199" href="#199">199</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="200" href="#200">200</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="201" href="#201">201</a> 
-<a class="jxr_linenumber" name="202" href="#202">202</a>         ((HBaseTransactionManager) tm).setConflictDetectionLevel(ConflictDetectionLevel.ROW);
-<a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="205" href="#205">205</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="206" href="#206">206</a> 
-<a class="jxr_linenumber" name="207" href="#207">207</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
-<a class="jxr_linenumber" name="208" href="#208">208</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
-<a class="jxr_linenumber" name="209" href="#209">209</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColB = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famB, colB);
-<a class="jxr_linenumber" name="210" href="#210">210</a>         writeRows(tt, t1, rowsWritten, famColA, famColB);
-<a class="jxr_linenumber" name="211" href="#211">211</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="212" href="#212">212</a> 
-<a class="jxr_linenumber" name="213" href="#213">213</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="214" href="#214">214</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="215" href="#215">215</a>         d.addFamily(famA);
-<a class="jxr_linenumber" name="216" href="#216">216</a>         tt.delete(t2, d);
-<a class="jxr_linenumber" name="217" href="#217">217</a> 
-<a class="jxr_linenumber" name="218" href="#218">218</a>         Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="219" href="#219">219</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="220" href="#220">220</a> 
-<a class="jxr_linenumber" name="221" href="#221">221</a>         Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="222" href="#222">222</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="223" href="#223">223</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="224" href="#224">224</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="225" href="#225">225</a> 
-<a class="jxr_linenumber" name="226" href="#226">226</a>         tscan = tm.begin();
-<a class="jxr_linenumber" name="227" href="#227">227</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="228" href="#228">228</a> 
-<a class="jxr_linenumber" name="229" href="#229">229</a>         count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="230" href="#230">230</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), (rowsWritten - 1), <span class="jxr_string">"ColA count should be equal to rowsWritten - 1"</span>);
-<a class="jxr_linenumber" name="231" href="#231">231</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="232" href="#232">232</a> 
-<a class="jxr_linenumber" name="233" href="#233">233</a>         ((HBaseTransactionManager) tm).setConflictDetectionLevel(ConflictDetectionLevel.CELL);
-<a class="jxr_linenumber" name="234" href="#234">234</a>     }
-<a class="jxr_linenumber" name="235" href="#235">235</a> 
-<a class="jxr_linenumber" name="236" href="#236">236</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="237" href="#237">237</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteFamilyAborts(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="238" href="#238">238</a> 
-<a class="jxr_linenumber" name="239" href="#239">239</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="240" href="#240">240</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="196" href="#196">196</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="197" href="#197">197</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
+<a class="jxr_linenumber" name="198" href="#198">198</a>         tt.delete(t2, d);
+<a class="jxr_linenumber" name="199" href="#199">199</a> 
+<a class="jxr_linenumber" name="200" href="#200">200</a>         Transaction tscan = tm.begin();
+<a class="jxr_linenumber" name="201" href="#201">201</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
+<a class="jxr_linenumber" name="202" href="#202">202</a> 
+<a class="jxr_linenumber" name="203" href="#203">203</a>         <strong class="jxr_keyword">int</strong> rowsRead = countRows(rs);
+<a class="jxr_linenumber" name="204" href="#204">204</a>         assertTrue(rowsRead == rowsWritten, <span class="jxr_string">"Expected "</span> + rowsWritten + <span class="jxr_string">" rows but "</span> + rowsRead + <span class="jxr_string">" found"</span>);
+<a class="jxr_linenumber" name="205" href="#205">205</a> 
+<a class="jxr_linenumber" name="206" href="#206">206</a>         tm.commit(t2);
+<a class="jxr_linenumber" name="207" href="#207">207</a> 
+<a class="jxr_linenumber" name="208" href="#208">208</a>         tscan = tm.begin();
+<a class="jxr_linenumber" name="209" href="#209">209</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
+<a class="jxr_linenumber" name="210" href="#210">210</a> 
+<a class="jxr_linenumber" name="211" href="#211">211</a>         rowsRead = countRows(rs);
+<a class="jxr_linenumber" name="212" href="#212">212</a>         assertTrue(rowsRead == (rowsWritten - 1), <span class="jxr_string">"Expected "</span> + (rowsWritten - 1) + <span class="jxr_string">" rows but "</span> + rowsRead + <span class="jxr_string">" found"</span>);
+<a class="jxr_linenumber" name="213" href="#213">213</a> 
+<a class="jxr_linenumber" name="214" href="#214">214</a>     }
+<a class="jxr_linenumber" name="215" href="#215">215</a> 
+<a class="jxr_linenumber" name="216" href="#216">216</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="217" href="#217">217</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDeletionOfNonExistingColumnFamilyDoesNotWriteToHBase(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="218" href="#218">218</a> 
+<a class="jxr_linenumber" name="219" href="#219">219</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="220" href="#220">220</a>         <em class="jxr_comment">// Setup initial environment for the test</em>
+<a class="jxr_linenumber" name="221" href="#221">221</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="222" href="#222">222</a>         TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="223" href="#223">223</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="224" href="#224">224</a> 
+<a class="jxr_linenumber" name="225" href="#225">225</a>         Transaction tx1 = tm.begin();
+<a class="jxr_linenumber" name="226" href="#226">226</a>         LOG.info(<span class="jxr_string">"{} writing initial data created "</span>, tx1);
+<a class="jxr_linenumber" name="227" href="#227">227</a>         Put p = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
+<a class="jxr_linenumber" name="228" href="#228">228</a>         p.add(famA, colA, data1);
+<a class="jxr_linenumber" name="229" href="#229">229</a>         txTable.put(tx1, p);
+<a class="jxr_linenumber" name="230" href="#230">230</a>         tm.commit(tx1);
+<a class="jxr_linenumber" name="231" href="#231">231</a> 
+<a class="jxr_linenumber" name="232" href="#232">232</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="233" href="#233">233</a>         <em class="jxr_comment">// Try to delete a non existing CF</em>
+<a class="jxr_linenumber" name="234" href="#234">234</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="235" href="#235">235</a>         Transaction deleteTx = tm.begin();
+<a class="jxr_linenumber" name="236" href="#236">236</a>         LOG.info(<span class="jxr_string">"{} trying to delete a non-existing family created "</span>, deleteTx);
+<a class="jxr_linenumber" name="237" href="#237">237</a>         Delete del = <strong class="jxr_keyword">new</strong> Delete(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
+<a class="jxr_linenumber" name="238" href="#238">238</a>         del.deleteFamily(famB);
+<a class="jxr_linenumber" name="239" href="#239">239</a>         <em class="jxr_comment">// This delete should not put data on HBase</em>
+<a class="jxr_linenumber" name="240" href="#240">240</a>         txTable.delete(deleteTx, del);
 <a class="jxr_linenumber" name="241" href="#241">241</a> 
-<a class="jxr_linenumber" name="242" href="#242">242</a>         ((HBaseTransactionManager) tm).setConflictDetectionLevel(ConflictDetectionLevel.ROW);
-<a class="jxr_linenumber" name="243" href="#243">243</a> 
-<a class="jxr_linenumber" name="244" href="#244">244</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="245" href="#245">245</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="246" href="#246">246</a> 
-<a class="jxr_linenumber" name="247" href="#247">247</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
-<a class="jxr_linenumber" name="248" href="#248">248</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
-<a class="jxr_linenumber" name="249" href="#249">249</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColB = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famB, colB);
-<a class="jxr_linenumber" name="250" href="#250">250</a>         writeRows(tt, t1, rowsWritten, famColA, famColB);
-<a class="jxr_linenumber" name="251" href="#251">251</a> 
-<a class="jxr_linenumber" name="252" href="#252">252</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="253" href="#253">253</a> 
-<a class="jxr_linenumber" name="254" href="#254">254</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="255" href="#255">255</a> 
-<a class="jxr_linenumber" name="256" href="#256">256</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="257" href="#257">257</a>         d.addFamily(famA);
-<a class="jxr_linenumber" name="258" href="#258">258</a>         tt.delete(t2, d);
-<a class="jxr_linenumber" name="259" href="#259">259</a> 
-<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="261" href="#261">261</a>             tm.commit(t2);
-<a class="jxr_linenumber" name="262" href="#262">262</a>         } <strong class="jxr_keyword">catch</strong>(RollbackException e) {
-<a class="jxr_linenumber" name="263" href="#263">263</a>             System.out.println(<span class="jxr_string">"Rollback"</span>);
-<a class="jxr_linenumber" name="264" href="#264">264</a>             System.out.flush();
-<a class="jxr_linenumber" name="265" href="#265">265</a>         }
-<a class="jxr_linenumber" name="266" href="#266">266</a> 
-<a class="jxr_linenumber" name="267" href="#267">267</a>         Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="268" href="#268">268</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="269" href="#269">269</a> 
-<a class="jxr_linenumber" name="270" href="#270">270</a>         Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="271" href="#271">271</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="272" href="#272">272</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="273" href="#273">273</a> 
-<a class="jxr_linenumber" name="274" href="#274">274</a>         ((HBaseTransactionManager) tm).setConflictDetectionLevel(ConflictDetectionLevel.CELL);
+<a class="jxr_linenumber" name="242" href="#242">242</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="243" href="#243">243</a>         <em class="jxr_comment">// Check data has not been written to HBase</em>
+<a class="jxr_linenumber" name="244" href="#244">244</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="245" href="#245">245</a>         HTable table = <strong class="jxr_keyword">new</strong> HTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="246" href="#246">246</a>         Get get = <strong class="jxr_keyword">new</strong> Get(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
+<a class="jxr_linenumber" name="247" href="#247">247</a>         get.setTimeStamp(deleteTx.getTransactionId());
+<a class="jxr_linenumber" name="248" href="#248">248</a>         Result result = table.get(get);
+<a class="jxr_linenumber" name="249" href="#249">249</a>         assertTrue(result.isEmpty());
+<a class="jxr_linenumber" name="250" href="#250">250</a> 
+<a class="jxr_linenumber" name="251" href="#251">251</a>     }
+<a class="jxr_linenumber" name="252" href="#252">252</a> 
+<a class="jxr_linenumber" name="253" href="#253">253</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> countRows(ResultScanner rs) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="254" href="#254">254</a>         <strong class="jxr_keyword">int</strong> count;
+<a class="jxr_linenumber" name="255" href="#255">255</a>         Result r = rs.next();
+<a class="jxr_linenumber" name="256" href="#256">256</a>         count = 0;
+<a class="jxr_linenumber" name="257" href="#257">257</a>         <strong class="jxr_keyword">while</strong> (r != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="258" href="#258">258</a>             count++;
+<a class="jxr_linenumber" name="259" href="#259">259</a>             LOG.trace(<span class="jxr_string">"row: "</span> + Bytes.toString(r.getRow()) + <span class="jxr_string">" count: "</span> + count);
+<a class="jxr_linenumber" name="260" href="#260">260</a>             r = rs.next();
+<a class="jxr_linenumber" name="261" href="#261">261</a>         }
+<a class="jxr_linenumber" name="262" href="#262">262</a>         <strong class="jxr_keyword">return</strong> count;
+<a class="jxr_linenumber" name="263" href="#263">263</a>     }
+<a class="jxr_linenumber" name="264" href="#264">264</a> 
+<a class="jxr_linenumber" name="265" href="#265">265</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeRows(TTable tt, Transaction t1, <strong class="jxr_keyword">int</strong> rowcount, FamCol... famCols) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="266" href="#266">266</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; rowcount; i++) {
+<a class="jxr_linenumber" name="267" href="#267">267</a>             byte[] row = Bytes.toBytes(<span class="jxr_string">"test-del"</span> + i);
+<a class="jxr_linenumber" name="268" href="#268">268</a> 
+<a class="jxr_linenumber" name="269" href="#269">269</a>             Put p = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="270" href="#270">270</a>             <strong class="jxr_keyword">for</strong> (FamCol col : famCols) {
+<a class="jxr_linenumber" name="271" href="#271">271</a>                 p.add(col.fam, col.col, data1);
+<a class="jxr_linenumber" name="272" href="#272">272</a>             }
+<a class="jxr_linenumber" name="273" href="#273">273</a>             tt.put(t1, p);
+<a class="jxr_linenumber" name="274" href="#274">274</a>         }
 <a class="jxr_linenumber" name="275" href="#275">275</a>     }
 <a class="jxr_linenumber" name="276" href="#276">276</a> 
-<a class="jxr_linenumber" name="277" href="#277">277</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteColumn(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="279" href="#279">279</a> 
-<a class="jxr_linenumber" name="280" href="#280">280</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="281" href="#281">281</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="282" href="#282">282</a> 
-<a class="jxr_linenumber" name="283" href="#283">283</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="284" href="#284">284</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="285" href="#285">285</a> 
-<a class="jxr_linenumber" name="286" href="#286">286</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
-<a class="jxr_linenumber" name="287" href="#287">287</a> 
-<a class="jxr_linenumber" name="288" href="#288">288</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
-<a class="jxr_linenumber" name="289" href="#289">289</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColB = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colB);
-<a class="jxr_linenumber" name="290" href="#290">290</a>         writeRows(tt, t1, rowsWritten, famColA, famColB);
-<a class="jxr_linenumber" name="291" href="#291">291</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="292" href="#292">292</a> 
-<a class="jxr_linenumber" name="293" href="#293">293</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="294" href="#294">294</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="295" href="#295">295</a>         d.addColumn(famA, colA);
-<a class="jxr_linenumber" name="296" href="#296">296</a>         tt.delete(t2, d);
-<a class="jxr_linenumber" name="297" href="#297">297</a> 
-<a class="jxr_linenumber" name="298" href="#298">298</a>         Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="299" href="#299">299</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="300" href="#300">300</a> 
-<a class="jxr_linenumber" name="301" href="#301">301</a>         Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="302" href="#302">302</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="303" href="#303">303</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="304" href="#304">304</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="305" href="#305">305</a> 
-<a class="jxr_linenumber" name="306" href="#306">306</a>         tscan = tm.begin();
-<a class="jxr_linenumber" name="307" href="#307">307</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="308" href="#308">308</a> 
-<a class="jxr_linenumber" name="309" href="#309">309</a>         count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="310" href="#310">310</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), (rowsWritten - 1), <span class="jxr_string">"ColA count should be equal to rowsWritten - 1"</span>);
-<a class="jxr_linenumber" name="311" href="#311">311</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="312" href="#312">312</a> 
-<a class="jxr_linenumber" name="313" href="#313">313</a>     }
-<a class="jxr_linenumber" name="314" href="#314">314</a> 
-<a class="jxr_linenumber" name="315" href="#315">315</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="316" href="#316">316</a> <em class="jxr_javadoccomment">     * This test is very similar to #runTestDeleteColumn() but exercises Delete#addColumns()</em>
-<a class="jxr_linenumber" name="317" href="#317">317</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="318" href="#318">318</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="319" href="#319">319</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteColumns(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="320" href="#320">320</a> 
-<a class="jxr_linenumber" name="321" href="#321">321</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="322" href="#322">322</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="323" href="#323">323</a> 
-<a class="jxr_linenumber" name="324" href="#324">324</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="325" href="#325">325</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="326" href="#326">326</a> 
-<a class="jxr_linenumber" name="327" href="#327">327</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
-<a class="jxr_linenumber" name="328" href="#328">328</a> 
-<a class="jxr_linenumber" name="329" href="#329">329</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
-<a class="jxr_linenumber" name="330" href="#330">330</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColB = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colB);
-<a class="jxr_linenumber" name="331" href="#331">331</a>         writeRows(tt, t1, rowsWritten, famColA, famColB);
-<a class="jxr_linenumber" name="332" href="#332">332</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="333" href="#333">333</a> 
-<a class="jxr_linenumber" name="334" href="#334">334</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="335" href="#335">335</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="336" href="#336">336</a>         d.addColumns(famA, colA);
-<a class="jxr_linenumber" name="337" href="#337">337</a>         tt.delete(t2, d);
-<a class="jxr_linenumber" name="338" href="#338">338</a> 
-<a class="jxr_linenumber" name="339" href="#339">339</a>         Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="340" href="#340">340</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="341" href="#341">341</a> 
-<a class="jxr_linenumber" name="342" href="#342">342</a>         Map&lt;FamCol, Integer&gt; count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="343" href="#343">343</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), rowsWritten, <span class="jxr_string">"ColA count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="344" href="#344">344</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="345" href="#345">345</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="346" href="#346">346</a> 
-<a class="jxr_linenumber" name="347" href="#347">347</a>         tscan = tm.begin();
-<a class="jxr_linenumber" name="348" href="#348">348</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="349" href="#349">349</a> 
-<a class="jxr_linenumber" name="350" href="#350">350</a>         count = countColsInRows(rs, famColA, famColB);
-<a class="jxr_linenumber" name="351" href="#351">351</a> 
-<a class="jxr_linenumber" name="352" href="#352">352</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColA), (rowsWritten - 1), <span class="jxr_string">"ColA count should be equal to rowsWritten - 1"</span>);
-<a class="jxr_linenumber" name="353" href="#353">353</a>         assertEquals((<strong class="jxr_keyword">int</strong>) count.get(famColB), rowsWritten, <span class="jxr_string">"ColB count should be equal to rowsWritten"</span>);
-<a class="jxr_linenumber" name="354" href="#354">354</a> 
-<a class="jxr_linenumber" name="355" href="#355">355</a>     }
-<a class="jxr_linenumber" name="356" href="#356">356</a> 
-<a class="jxr_linenumber" name="357" href="#357">357</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="358" href="#358">358</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestDeleteRow(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="359" href="#359">359</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="360" href="#360">360</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="361" href="#361">361</a> 
-<a class="jxr_linenumber" name="362" href="#362">362</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="363" href="#363">363</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="364" href="#364">364</a> 
-<a class="jxr_linenumber" name="365" href="#365">365</a>         <strong class="jxr_keyword">int</strong> rowsWritten = 10;
-<a class="jxr_linenumber" name="366" href="#366">366</a> 
-<a class="jxr_linenumber" name="367" href="#367">367</a>         <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a> famColA = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestDeletion.html">FamCol</a>(famA, colA);
-<a class="jxr_linenumber" name="368" href="#368">368</a>         writeRows(tt, t1, rowsWritten, famColA);
-<a class="jxr_linenumber" name="369" href="#369">369</a> 
-<a class="jxr_linenumber" name="370" href="#370">370</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="371" href="#371">371</a> 
-<a class="jxr_linenumber" name="372" href="#372">372</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="373" href="#373">373</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="374" href="#374">374</a>         tt.delete(t2, d);
-<a class="jxr_linenumber" name="375" href="#375">375</a> 
-<a class="jxr_linenumber" name="376" href="#376">376</a>         Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="377" href="#377">377</a>         ResultScanner rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="378" href="#378">378</a> 
-<a class="jxr_linenumber" name="379" href="#379">379</a>         <strong class="jxr_keyword">int</strong> rowsRead = countRows(rs);
-<a class="jxr_linenumber" name="380" href="#380">380</a>         assertTrue(rowsRead == rowsWritten, <span class="jxr_string">"Expected "</span> + rowsWritten + <span class="jxr_string">" rows but "</span> + rowsRead + <span class="jxr_string">" found"</span>);
-<a class="jxr_linenumber" name="381" href="#381">381</a> 
-<a class="jxr_linenumber" name="382" href="#382">382</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="383" href="#383">383</a> 
-<a class="jxr_linenumber" name="384" href="#384">384</a>         tscan = tm.begin();
-<a class="jxr_linenumber" name="385" href="#385">385</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="386" href="#386">386</a> 
-<a class="jxr_linenumber" name="387" href="#387">387</a>         rowsRead = countRows(rs);
-<a class="jxr_linenumber" name="388" href="#388">388</a>         assertTrue(rowsRead == (rowsWritten - 1), <span class="jxr_string">"Expected "</span> + (rowsWritten - 1) + <span class="jxr_string">" rows but "</span> + rowsRead + <span class="jxr_string">" found"</span>);
-<a class="jxr_linenumber" name="389" href="#389">389</a> 
-<a class="jxr_linenumber" name="390" href="#390">390</a>     }
-<a class="jxr_linenumber" name="391" href="#391">391</a> 
-<a class="jxr_linenumber" name="392" href="#392">392</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="393" href="#393">393</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDeletionOfNonExistingColumnFamilyDoesNotWriteToHBase(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="394" href="#394">394</a> 
-<a class="jxr_linenumber" name="395" href="#395">395</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="396" href="#396">396</a>         <em class="jxr_comment">// Setup initial environment for the test</em>
-<a class="jxr_linenumber" name="397" href="#397">397</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="398" href="#398">398</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="399" href="#399">399</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="400" href="#400">400</a> 
-<a class="jxr_linenumber" name="401" href="#401">401</a>         Transaction tx1 = tm.begin();
-<a class="jxr_linenumber" name="402" href="#402">402</a>         LOG.info(<span class="jxr_string">"{} writing initial data created "</span>, tx1);
-<a class="jxr_linenumber" name="403" href="#403">403</a>         Put p = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
-<a class="jxr_linenumber" name="404" href="#404">404</a>         p.addColumn(famA, colA, data1);
-<a class="jxr_linenumber" name="405" href="#405">405</a>         txTable.put(tx1, p);
-<a class="jxr_linenumber" name="406" href="#406">406</a>         tm.commit(tx1);
-<a class="jxr_linenumber" name="407" href="#407">407</a> 
-<a class="jxr_linenumber" name="408" href="#408">408</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="409" href="#409">409</a>         <em class="jxr_comment">// Try to delete a non existing CF</em>
-<a class="jxr_linenumber" name="410" href="#410">410</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="411" href="#411">411</a>         Transaction deleteTx = tm.begin();
-<a class="jxr_linenumber" name="412" href="#412">412</a>         LOG.info(<span class="jxr_string">"{} trying to delete a non-existing family created "</span>, deleteTx);
-<a class="jxr_linenumber" name="413" href="#413">413</a>         Delete del = <strong class="jxr_keyword">new</strong> Delete(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
-<a class="jxr_linenumber" name="414" href="#414">414</a>         del.addFamily(famB);
-<a class="jxr_linenumber" name="415" href="#415">415</a>         <em class="jxr_comment">// This delete should not put data on HBase</em>
-<a class="jxr_linenumber" name="416" href="#416">416</a>         txTable.delete(deleteTx, del);
-<a class="jxr_linenumber" name="417" href="#417">417</a> 
-<a class="jxr_linenumber" name="418" href="#418">418</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="419" href="#419">419</a>         <em class="jxr_comment">// Check data has not been written to HBase</em>
-<a class="jxr_linenumber" name="420" href="#420">420</a>         <em class="jxr_comment">// --------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="421" href="#421">421</a>         Get get = <strong class="jxr_keyword">new</strong> Get(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
-<a class="jxr_linenumber" name="422" href="#422">422</a>         get.setTimeStamp(deleteTx.getTransactionId());
-<a class="jxr_linenumber" name="423" href="#423">423</a>         Result result = txTable.getHTable().get(get);
-<a class="jxr_linenumber" name="424" href="#424">424</a>         assertTrue(result.isEmpty());
-<a class="jxr_linenumber" name="425" href="#425">425</a> 
-<a class="jxr_linenumber" name="426" href="#426">426</a>     }
-<a class="jxr_linenumber" name="427" href="#427">427</a> 
-<a class="jxr_linenumber" name="428" href="#428">428</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> countRows(ResultScanner rs) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="429" href="#429">429</a>         <strong class="jxr_keyword">int</strong> count;
-<a class="jxr_linenumber" name="430" href="#430">430</a>         Result r = rs.next();
-<a class="jxr_linenumber" name="431" href="#431">431</a>         count = 0;
-<a class="jxr_linenumber" name="432" href="#432">432</a>         <strong class="jxr_keyword">while</strong> (r != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="433" href="#433">433</a>             count++;
-<a class="jxr_linenumber" name="434" href="#434">434</a>             LOG.trace(<span class="jxr_string">"row: "</span> + Bytes.toString(r.getRow()) + <span class="jxr_string">" count: "</span> + count);
-<a class="jxr_linenumber" name="435" href="#435">435</a>             r = rs.next();
-<a class="jxr_linenumber" name="436" href="#436">436</a>         }
-<a class="jxr_linenumber" name="437" href="#437">437</a>         <strong class="jxr_keyword">return</strong> count;
-<a class="jxr_linenumber" name="438" href="#438">438</a>     }
-<a class="jxr_linenumber" name="439" href="#439">439</a> 
-<a class="jxr_linenumber" name="440" href="#440">440</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeRows(TTable tt, Transaction t1, <strong class="jxr_keyword">int</strong> rowcount, FamCol... famCols) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="441" href="#441">441</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; rowcount; i++) {
-<a class="jxr_linenumber" name="442" href="#442">442</a>             byte[] row = Bytes.toBytes(<span class="jxr_string">"test-del"</span> + i);
-<a class="jxr_linenumber" name="443" href="#443">443</a> 
-<a class="jxr_linenumber" name="444" href="#444">444</a>             Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="445" href="#445">445</a>             <strong class="jxr_keyword">for</strong> (FamCol col : famCols) {
-<a class="jxr_linenumber" name="446" href="#446">446</a>                 p.addColumn(col.fam, col.col, data1);
-<a class="jxr_linenumber" name="447" href="#447">447</a>             }
-<a class="jxr_linenumber" name="448" href="#448">448</a>             tt.put(t1, p);
-<a class="jxr_linenumber" name="449" href="#449">449</a>         }
-<a class="jxr_linenumber" name="450" href="#450">450</a>     }
-<a class="jxr_linenumber" name="451" href="#451">451</a> 
-<a class="jxr_linenumber" name="452" href="#452">452</a>     <strong class="jxr_keyword">private</strong> Map&lt;FamCol, Integer&gt; countColsInRows(ResultScanner rs, FamCol... famCols) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="453" href="#453">453</a>         Map&lt;FamCol, Integer&gt; colCount = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
-<a class="jxr_linenumber" name="454" href="#454">454</a>         Result r = rs.next();
-<a class="jxr_linenumber" name="455" href="#455">455</a>         <strong class="jxr_keyword">while</strong> (r != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="456" href="#456">456</a>             <strong class="jxr_keyword">for</strong> (FamCol col : famCols) {
-<a class="jxr_linenumber" name="457" href="#457">457</a>                 <strong class="jxr_keyword">if</strong> (r.containsColumn(col.fam, col.col)) {
-<a class="jxr_linenumber" name="458" href="#458">458</a>                     Integer c = colCount.get(col);
-<a class="jxr_linenumber" name="459" href="#459">459</a> 
-<a class="jxr_linenumber" name="460" href="#460">460</a>                     <strong class="jxr_keyword">if</strong> (c == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="461" href="#461">461</a>                         colCount.put(col, 1);
-<a class="jxr_linenumber" name="462" href="#462">462</a>                     } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="463" href="#463">463</a>                         colCount.put(col, c + 1);
-<a class="jxr_linenumber" name="464" href="#464">464</a>                     }
-<a class="jxr_linenumber" name="465" href="#465">465</a>                 }
-<a class="jxr_linenumber" name="466" href="#466">466</a>             }
-<a class="jxr_linenumber" name="467" href="#467">467</a>             r = rs.next();
-<a class="jxr_linenumber" name="468" href="#468">468</a>         }
-<a class="jxr_linenumber" name="469" href="#469">469</a>         <strong class="jxr_keyword">return</strong> colCount;
-<a class="jxr_linenumber" name="470" href="#470">470</a>     }
-<a class="jxr_linenumber" name="471" href="#471">471</a> 
-<a class="jxr_linenumber" name="472" href="#472">472</a> }
+<a class="jxr_linenumber" name="277" href="#277">277</a>     <strong class="jxr_keyword">private</strong> Map&lt;FamCol, Integer&gt; countColsInRows(ResultScanner rs, FamCol... famCols) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="278" href="#278">278</a>         Map&lt;FamCol, Integer&gt; colCount = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
+<a class="jxr_linenumber" name="279" href="#279">279</a>         Result r = rs.next();
+<a class="jxr_linenumber" name="280" href="#280">280</a>         <strong class="jxr_keyword">while</strong> (r != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="281" href="#281">281</a>             <strong class="jxr_keyword">for</strong> (FamCol col : famCols) {
+<a class="jxr_linenumber" name="282" href="#282">282</a>                 <strong class="jxr_keyword">if</strong> (r.containsColumn(col.fam, col.col)) {
+<a class="jxr_linenumber" name="283" href="#283">283</a>                     Integer c = colCount.get(col);
+<a class="jxr_linenumber" name="284" href="#284">284</a> 
+<a class="jxr_linenumber" name="285" href="#285">285</a>                     <strong class="jxr_keyword">if</strong> (c == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="286" href="#286">286</a>                         colCount.put(col, 1);
+<a class="jxr_linenumber" name="287" href="#287">287</a>                     } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="288" href="#288">288</a>                         colCount.put(col, c + 1);
+<a class="jxr_linenumber" name="289" href="#289">289</a>                     }
+<a class="jxr_linenumber" name="290" href="#290">290</a>                 }
+<a class="jxr_linenumber" name="291" href="#291">291</a>             }
+<a class="jxr_linenumber" name="292" href="#292">292</a>             r = rs.next();
+<a class="jxr_linenumber" name="293" href="#293">293</a>         }
+<a class="jxr_linenumber" name="294" href="#294">294</a>         <strong class="jxr_keyword">return</strong> colCount;
+<a class="jxr_linenumber" name="295" href="#295">295</a>     }
+<a class="jxr_linenumber" name="296" href="#296">296</a> 
+<a class="jxr_linenumber" name="297" href="#297">297</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[44/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 3760aee..84def01 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -214,31 +214,31 @@
 <div class="source"><pre class="prettyprint">&lt;dependency&gt;
   &lt;groupId&gt;org.apache.omid&lt;/groupId&gt;
   &lt;artifactId&gt;omid&lt;/artifactId&gt;
-  &lt;version&gt;0.8.2.11-SNAPSHOT&lt;/version&gt;
+  &lt;version&gt;0.9.1.0-SNAPSHOT&lt;/version&gt;
   &lt;type&gt;pom&lt;/type&gt;
 &lt;/dependency&gt;</pre></div></div>
 <div class="section">
 <h3><a name="Apache_Buildr"></a>Apache Buildr</h3><a name="Apache_Buildr"></a>
-<div class="source"><pre class="prettyprint">'org.apache.omid:omid:pom:0.8.2.11-SNAPSHOT'</pre></div></div>
+<div class="source"><pre class="prettyprint">'org.apache.omid:omid:pom:0.9.1.0-SNAPSHOT'</pre></div></div>
 <div class="section">
 <h3><a name="Apache_Ivy"></a>Apache Ivy</h3><a name="Apache_Ivy"></a>
-<div class="source"><pre class="prettyprint">&lt;dependency org=&quot;org.apache.omid&quot; name=&quot;omid&quot; rev=&quot;0.8.2.11-SNAPSHOT&quot;&gt;
+<div class="source"><pre class="prettyprint">&lt;dependency org=&quot;org.apache.omid&quot; name=&quot;omid&quot; rev=&quot;0.9.1.0-SNAPSHOT&quot;&gt;
   &lt;artifact name=&quot;omid&quot; type=&quot;pom&quot; /&gt;
 &lt;/dependency&gt;</pre></div></div>
 <div class="section">
 <h3><a name="Groovy_Grape"></a>Groovy Grape</h3><a name="Groovy_Grape"></a>
 <div class="source"><pre class="prettyprint">@Grapes(
-@Grab(group='org.apache.omid', module='omid', version='0.8.2.11-SNAPSHOT')
+@Grab(group='org.apache.omid', module='omid', version='0.9.1.0-SNAPSHOT')
 )</pre></div></div>
 <div class="section">
 <h3><a name="GradleGrails"></a>Gradle/Grails</h3><a name="GradleGrails"></a>
-<div class="source"><pre class="prettyprint">compile 'org.apache.omid:omid:0.8.2.11-SNAPSHOT'</pre></div></div>
+<div class="source"><pre class="prettyprint">compile 'org.apache.omid:omid:0.9.1.0-SNAPSHOT'</pre></div></div>
 <div class="section">
 <h3><a name="Scala_SBT"></a>Scala SBT</h3><a name="Scala_SBT"></a>
-<div class="source"><pre class="prettyprint">libraryDependencies += &quot;org.apache.omid&quot; % &quot;omid&quot; % &quot;0.8.2.11-SNAPSHOT&quot;</pre></div></div>
+<div class="source"><pre class="prettyprint">libraryDependencies += &quot;org.apache.omid&quot; % &quot;omid&quot; % &quot;0.9.1.0-SNAPSHOT&quot;</pre></div></div>
 <div class="section">
 <h3><a name="Leiningen"></a>Leiningen</h3><a name="Leiningen"></a>
-<div class="source"><pre class="prettyprint">[org.apache.omid/omid &quot;0.8.2.11-SNAPSHOT&quot;]</pre></div></div></div>
+<div class="source"><pre class="prettyprint">[org.apache.omid/omid &quot;0.9.1.0-SNAPSHOT&quot;]</pre></div></div></div>
                   </div>
           </div>
 

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index ed71f63..c5a2dc8 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -222,25 +222,25 @@
 <tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
-<td>1.2.5</td>
+<td>1.3.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
-<td>1.2.5</td>
+<td>1.3.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-server">hbase-server</a></td>
-<td>1.2.5</td>
+<td>1.3.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-testing-util">hbase-testing-util</a></td>
-<td>1.2.5</td>
+<td>1.3.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr></table></div></div>
                   </div>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/distribution-management.html
----------------------------------------------------------------------
diff --git a/distribution-management.html b/distribution-management.html
index 711bd6a..96380da 100644
--- a/distribution-management.html
+++ b/distribution-management.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/images/close.gif
----------------------------------------------------------------------
diff --git a/images/close.gif b/images/close.gif
new file mode 100644
index 0000000..1c26bbc
Binary files /dev/null and b/images/close.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 1a8c8b4..5b75029 100644
--- a/index.html
+++ b/index.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>What is Omid?</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>What is Omid?</h1>
 <p><b>Apache Omid (Optimistically transaction Management In Datastores)</b> is a flexible, reliable, high performant and scalable transactional framework that allows Big Data applications to execute ACID transactions on top of MVCC key/value NoSQL datastores.</p>
 <p>The current implementation provides multi-row transactions on top of Apache HBase, but Omid&#x2019;s design is flexible enough to support other datastore implementations as long as they provide MVCC features in their API.</p>
 <p>The following sections introduce the motivation behind Omid and its high-level architecture and basic concepts. If you want to jump to a more hands-on approach to Omid, please jump to the <a href="quickstart.html">Quickstart</a> section. On the other hand, if you want more information about Omid&#x2019;s design and its internals, please refer to the sections in the Technical Documentation menuf.</p>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
new file mode 100644
index 0000000..0f30ab6
--- /dev/null
+++ b/integration.html
@@ -0,0 +1,244 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.7 at 2018-09-20 
+ | Rendered using Apache Maven Fluido Skin 1.5
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20180920" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Apache Omid &#x2013; Continuous Integration</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
+
+                      </head>
+        <body class="topBarEnabled">
+          
+                        
+                    
+                
+
+    <div id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+                                  <div class="container" style="width: 100%;"><div class="nav-collapse">
+            
+                
+                                <ul class="nav">
+                          <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Home <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="index.html"  title="Overview">Overview</a>
+</li>
+                  
+                      <li>      <a href="license.html"  title="License">License</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Download <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="https://github.com/apache/incubator-omid"  title="Omid Sources">Omid Sources</a>
+</li>
+                  
+                      <li>      <a href="https://dist.apache.org/repos/dist/release/incubator/omid/"  title="Apache Version Repository">Apache Version Repository</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">User Guide & API <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="quickstart.html"  title="Quickstart">Quickstart</a>
+</li>
+                  
+                      <li>      <a href="basic-examples.html"  title="API and Code Examples">API and Code Examples</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Technical Docs <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="basic-concepts.html"  title="Basic Concepts">Basic Concepts</a>
+</li>
+                  
+                      <li>      <a href="omid-components.html"  title="Omid Components">Omid Components</a>
+</li>
+                  
+                      <li>      <a href="basic-algorithm.html"  title="Basic Algorithm">Basic Algorithm</a>
+</li>
+                  
+                      <li>      <a href="client-failure-management.html"  title="Management of Client Failures">Management of Client Failures</a>
+</li>
+                  
+                      <li>      <a href="http://yahoohadoop.tumblr.com/tagged/HBase"  title="Blog Entries">Blog Entries</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contribute <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="https://git-wip-us.apache.org/repos/asf/incubator-omid.git"  title="Source Code">Source Code</a>
+</li>
+                  
+                      <li>      <a href="https://issues.apache.org/jira/browse/Omid"  title="JIRA">JIRA</a>
+</li>
+                  
+                      <li>      <a href="mailing-lists.html"  title="Mailing Lists">Mailing Lists</a>
+</li>
+                  
+                      <li>      <a href="coding-guide-and-style.html"  title="Coding Guide and Style">Coding Guide and Style</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Reports <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li class="dropdown-submenu">
+                                      <a href="project-info.html"  title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                                  <li>      <a href="index.html"  title="About">About</a>
+</li>
+                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
+</li>
+                                  <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
+</li>
+                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
+</li>
+                                  <li>      <a href="dependency-convergence.html"  title="Dependency Convergence">Dependency Convergence</a>
+</li>
+                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
+</li>
+                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
+</li>
+                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
+</li>
+                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
+</li>
+                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
+</li>
+                                  <li>      <a href="license.html"  title="Project License">Project License</a>
+</li>
+                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
+</li>
+                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
+</li>
+                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
+</li>
+                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
+</li>
+                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
+</li>
+                              </ul>
+            </li>
+                  
+                      <li class="dropdown-submenu">
+                                      <a href="project-reports.html"  title="Project Reports">Project Reports</a>
+              <ul class="dropdown-menu">
+                                  <li>      <a href="xref/index.html"  title="Source Xref">Source Xref</a>
+</li>
+                                  <li>      <a href="xref-test/index.html"  title="Test Source Xref">Test Source Xref</a>
+</li>
+                                  <li>      <a href="checkstyle-aggregate.html"  title="Checkstyle">Checkstyle</a>
+</li>
+                                  <li>      <a href="cpd.html"  title="CPD">CPD</a>
+</li>
+                                  <li>      <a href="pmd.html"  title="PMD">PMD</a>
+</li>
+                              </ul>
+            </li>
+                          </ul>
+      </li>
+                  </ul>
+          
+                      <form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+    
+  <input value="omid.incubator.apache.org" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="https://cse.google.com/brand?form=search-form"></script>
+          
+                                                    
+        
+        
+        <ul class="nav pull-right"><li>
+    
+    <a href="https://twitter.com/apacheomid" class="twitter-follow-button" data-show-count="true" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow apacheomid</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </li></ul>
+                              
+                   
+                      </div>
+          
+        </div>
+      </div>
+    </div>
+    
+        <div class="container">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="./" id="bannerLeft">
+                                                                                                <img src="images/omid-logo.png"  alt="Omid" width="200"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://incubator.apache.org/" id="bannerRight">
+                                                                                        <img src="http://incubator.apache.org/images/egg-logo2.png"  alt="Apache Incubator" width="200"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+              
+                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                    </li>
+              
+              
+                  <li id="publishDate" class="pull-right">Last Published: 2018-09-20</li>
+            
+                            </ul>
+      </div>
+
+      
+                
+        <div id="bodyColumn" >
+                                  
+            <div class="section">
+<h2><a name="Continuous_Integration"></a>Continuous Integration</h2><a name="Continuous_Integration"></a>
+<p>No continuous integration management system is defined. Please check back at a later date.</p></div>
+                  </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container">
+                      <div class="row">
+                                      <p >Copyright &copy;                    2011&#x2013;2018
+                        <a href="http://www.apache.org">Apache Software Foundation</a>.
+            All rights reserved.    
+      </p>
+                </div>
+
+                <p id="poweredBy" class="pull-right">
+                                                                                                                <a href="http://maven.apache.org/" title="Maven" class="builtBy">
+        <img class="builtBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
+      </a>
+                  </p>
+        
+                </div>
+    </footer>
+        </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
new file mode 100644
index 0000000..cade037
--- /dev/null
+++ b/issue-tracking.html
@@ -0,0 +1,244 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.7 at 2018-09-20 
+ | Rendered using Apache Maven Fluido Skin 1.5
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20180920" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Apache Omid &#x2013; Issue Tracking</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
+
+                      </head>
+        <body class="topBarEnabled">
+          
+                        
+                    
+                
+
+    <div id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+                                  <div class="container" style="width: 100%;"><div class="nav-collapse">
+            
+                
+                                <ul class="nav">
+                          <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Home <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="index.html"  title="Overview">Overview</a>
+</li>
+                  
+                      <li>      <a href="license.html"  title="License">License</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Download <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="https://github.com/apache/incubator-omid"  title="Omid Sources">Omid Sources</a>
+</li>
+                  
+                      <li>      <a href="https://dist.apache.org/repos/dist/release/incubator/omid/"  title="Apache Version Repository">Apache Version Repository</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">User Guide & API <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="quickstart.html"  title="Quickstart">Quickstart</a>
+</li>
+                  
+                      <li>      <a href="basic-examples.html"  title="API and Code Examples">API and Code Examples</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Technical Docs <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="basic-concepts.html"  title="Basic Concepts">Basic Concepts</a>
+</li>
+                  
+                      <li>      <a href="omid-components.html"  title="Omid Components">Omid Components</a>
+</li>
+                  
+                      <li>      <a href="basic-algorithm.html"  title="Basic Algorithm">Basic Algorithm</a>
+</li>
+                  
+                      <li>      <a href="client-failure-management.html"  title="Management of Client Failures">Management of Client Failures</a>
+</li>
+                  
+                      <li>      <a href="http://yahoohadoop.tumblr.com/tagged/HBase"  title="Blog Entries">Blog Entries</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contribute <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="https://git-wip-us.apache.org/repos/asf/incubator-omid.git"  title="Source Code">Source Code</a>
+</li>
+                  
+                      <li>      <a href="https://issues.apache.org/jira/browse/Omid"  title="JIRA">JIRA</a>
+</li>
+                  
+                      <li>      <a href="mailing-lists.html"  title="Mailing Lists">Mailing Lists</a>
+</li>
+                  
+                      <li>      <a href="coding-guide-and-style.html"  title="Coding Guide and Style">Coding Guide and Style</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Reports <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li class="dropdown-submenu">
+                                      <a href="project-info.html"  title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                                  <li>      <a href="index.html"  title="About">About</a>
+</li>
+                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
+</li>
+                                  <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
+</li>
+                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
+</li>
+                                  <li>      <a href="dependency-convergence.html"  title="Dependency Convergence">Dependency Convergence</a>
+</li>
+                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
+</li>
+                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
+</li>
+                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
+</li>
+                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
+</li>
+                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
+</li>
+                                  <li>      <a href="license.html"  title="Project License">Project License</a>
+</li>
+                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
+</li>
+                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
+</li>
+                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
+</li>
+                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
+</li>
+                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
+</li>
+                              </ul>
+            </li>
+                  
+                      <li class="dropdown-submenu">
+                                      <a href="project-reports.html"  title="Project Reports">Project Reports</a>
+              <ul class="dropdown-menu">
+                                  <li>      <a href="xref/index.html"  title="Source Xref">Source Xref</a>
+</li>
+                                  <li>      <a href="xref-test/index.html"  title="Test Source Xref">Test Source Xref</a>
+</li>
+                                  <li>      <a href="checkstyle-aggregate.html"  title="Checkstyle">Checkstyle</a>
+</li>
+                                  <li>      <a href="cpd.html"  title="CPD">CPD</a>
+</li>
+                                  <li>      <a href="pmd.html"  title="PMD">PMD</a>
+</li>
+                              </ul>
+            </li>
+                          </ul>
+      </li>
+                  </ul>
+          
+                      <form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+    
+  <input value="omid.incubator.apache.org" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="https://cse.google.com/brand?form=search-form"></script>
+          
+                                                    
+        
+        
+        <ul class="nav pull-right"><li>
+    
+    <a href="https://twitter.com/apacheomid" class="twitter-follow-button" data-show-count="true" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow apacheomid</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </li></ul>
+                              
+                   
+                      </div>
+          
+        </div>
+      </div>
+    </div>
+    
+        <div class="container">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="./" id="bannerLeft">
+                                                                                                <img src="images/omid-logo.png"  alt="Omid" width="200"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://incubator.apache.org/" id="bannerRight">
+                                                                                        <img src="http://incubator.apache.org/images/egg-logo2.png"  alt="Apache Incubator" width="200"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+              
+                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                    </li>
+              
+              
+                  <li id="publishDate" class="pull-right">Last Published: 2018-09-20</li>
+            
+                            </ul>
+      </div>
+
+      
+                
+        <div id="bodyColumn" >
+                                  
+            <div class="section">
+<h2><a name="Issue_Tracking"></a>Issue Tracking</h2><a name="Issue_Tracking"></a>
+<p>No issue management system is defined. Please check back at a later date.</p></div>
+                  </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container">
+                      <div class="row">
+                                      <p >Copyright &copy;                    2011&#x2013;2018
+                        <a href="http://www.apache.org">Apache Software Foundation</a>.
+            All rights reserved.    
+      </p>
+                </div>
+
+                <p id="poweredBy" class="pull-right">
+                                                                                                                <a href="http://maven.apache.org/" title="Maven" class="builtBy">
+        <img class="builtBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
+      </a>
+                  </p>
+        
+                </div>
+    </footer>
+        </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index a10d07f..5911a47 100644
--- a/license.html
+++ b/license.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 479ca96..fac2b51 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.7 at 2016-08-15 
+ | Generated by Apache Maven Doxia Site Renderer 1.7 at 2018-09-20 
  | Rendered using Apache Maven Fluido Skin 1.5
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20160815" />
+    <meta name="Date-Revision-yyyymmdd" content="20180920" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache Omid &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
@@ -107,31 +107,37 @@
                       <li class="dropdown-submenu">
                                       <a href="project-info.html"  title="Project Information">Project Information</a>
               <ul class="dropdown-menu">
-                                  <li>      <a href="dependency-convergence.html"  title="Dependency Convergence">Dependency Convergence</a>
-</li>
-                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
+                                  <li>      <a href="index.html"  title="About">About</a>
 </li>
-                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
+                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
 </li>
                                   <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
 </li>
-                                  <li>      <a href="index.html"  title="About">About</a>
+                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
 </li>
-                                  <li>      <a href="license.html"  title="Licenses">Licenses</a>
+                                  <li>      <a href="dependency-convergence.html"  title="Dependency Convergence">Dependency Convergence</a>
+</li>
+                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
 </li>
                                   <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
 </li>
-                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
+                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
 </li>
-                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
+                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
+</li>
+                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
 </li>
-                                  <li>      <a href="plugins.html"  title="Plugins">Plugins</a>
+                                  <li>      <a href="license.html"  title="Project License">Project License</a>
+</li>
+                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
+</li>
+                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
 </li>
-                                  <li>      <a href="team-list.html"  title="Team">Team</a>
+                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
 </li>
-                                  <li>      <a href="source-repository.html"  title="Source Code Management">Source Code Management</a>
+                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
 </li>
-                                  <li>      <a href="project-summary.html"  title="Summary">Summary</a>
+                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
 </li>
                               </ul>
             </li>
@@ -196,11 +202,11 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.0
+                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
                     </li>
               
               
-                  <li id="publishDate" class="pull-right">Last Published: 2016-08-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-09-20</li>
             
                             </ul>
       </div>
@@ -211,20 +217,7 @@
                                   
             <div class="section">
 <h2><a name="Project_Mailing_Lists"></a>Project Mailing Lists</h2><a name="Project_Mailing_Lists"></a>
-<p>These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.</p>
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>Name</th>
-<th>Subscribe</th>
-<th>Unsubscribe</th>
-<th>Post</th>
-<th>Archive</th></tr>
-<tr class="b">
-<td>Apache Announce List</td>
-<td><a class="externalLink" href="mailto:announce-subscribe@apache.org">Subscribe</a></td>
-<td><a class="externalLink" href="mailto:announce-unsubscribe@apache.org">Unsubscribe</a></td>
-<td><a class="externalLink" href="mailto:announce@apache.org">Post</a></td>
-<td><a class="externalLink" href="https://mail-archives.apache.org/mod_mbox/www-announce/">mail-archives.apache.org</a></td></tr></table></div>
+<p>There are no mailing lists currently associated with this project.</p></div>
                   </div>
           </div>
 
@@ -233,7 +226,7 @@
     <footer>
             <div class="container">
                       <div class="row">
-                                      <p >Copyright &copy;                    2011&#x2013;2016
+                                      <p >Copyright &copy;                    2011&#x2013;2018
                         <a href="http://www.apache.org">Apache Software Foundation</a>.
             All rights reserved.    
       </p>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/mailing-lists.html
----------------------------------------------------------------------
diff --git a/mailing-lists.html b/mailing-lists.html
index f8a58ce..ff71897 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>Mailing Lists @ Apache Incubator</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>Mailing Lists @ Apache Incubator</h1>
 
 <table border="0" class="table table-striped">
   <thead>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/modules.html
----------------------------------------------------------------------
diff --git a/modules.html b/modules.html
index f67b3d0..c4387f9 100644
--- a/modules.html
+++ b/modules.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/omid-components.html
----------------------------------------------------------------------
diff --git a/omid-components.html b/omid-components.html
index 0b508af..439c4f1 100644
--- a/omid-components.html
+++ b/omid-components.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>Omid Architecture and Component Description</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>Omid Architecture and Component Description</h1>
 <p>The following figure depicts the current Omid architecture presented in the section presenting Omid:</p>
 <p><img src="images/architecture.png" alt="Omid&rsquo;s architecture" /></p>
 <p>The following sections describe more in deep the most important components and elements in the Omid architecture.</p>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index a3bdd10..58ddc06 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 93a83ec..2dc2952 100644
--- a/plugins.html
+++ b/plugins.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -247,10 +247,14 @@
 <td><a class="externalLink" href="http://maven.apache.org/surefire/maven-surefire-report-plugin/">maven-surefire-report-plugin</a></td>
 <td>2.19</td></tr>
 <tr class="b">
+<td>org.apache.rat</td>
+<td><a class="externalLink" href="http://creadur.apache.org/rat/apache-rat-plugin/">apache-rat-plugin</a></td>
+<td>0.12</td></tr>
+<tr class="a">
 <td>org.codehaus.mojo</td>
 <td><a class="externalLink" href="http://mojo.codehaus.org/cobertura-maven-plugin/">cobertura-maven-plugin</a></td>
 <td>2.7</td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eluder.coveralls</td>
 <td><a class="externalLink" href="https://github.com/trautonen/coveralls-maven-plugin">coveralls-maven-plugin</a></td>
 <td>4.1.0</td></tr></table></div>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/pmd.html
----------------------------------------------------------------------
diff --git a/pmd.html b/pmd.html
index 1645002..4b3f7a2 100644
--- a/pmd.html
+++ b/pmd.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -234,6 +234,15 @@
 <td>Useless parentheses.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/ZipfianGenerator.html#L234">234</a></td></tr></table></div>
 <div class="section">
+<h3><a name="Common_-_orgapacheomidNetworkUtils.java"></a>Common - org/apache/omid/NetworkUtils.java</h3>
+<table border="0" class="table table-striped">
+<tr class="b">
+<th>Violation</th>
+<th>Line</th></tr>
+<tr class="a">
+<td>Useless parentheses.</td>
+<td><a href="./xref/org/apache/omid/NetworkUtils.html#L44">44</a></td></tr></table></div>
+<div class="section">
 <h3><a name="HBase_Client_-_orgapacheomidtransactionHBaseAsyncPostCommitter.java"></a>HBase Client - org/apache/omid/transaction/HBaseAsyncPostCommitter.java</h3>
 <table border="0" class="table table-striped">
 <tr class="b">
@@ -250,7 +259,7 @@
 <th>Line</th></tr>
 <tr class="a">
 <td>Avoid unused private fields such as 'metrics'.</td>
-<td><a href="./xref/org/apache/omid/transaction/HBaseSyncPostCommitter.html#L41">41</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/transaction/HBaseSyncPostCommitter.html#L40">40</a></td></tr></table></div>
 <div class="section">
 <h3><a name="HBase_Client_-_orgapacheomidtransactionHBaseTransactionManager.java"></a>HBase Client - org/apache/omid/transaction/HBaseTransactionManager.java</h3>
 <table border="0" class="table table-striped">
@@ -259,193 +268,82 @@
 <th>Line</th></tr>
 <tr class="a">
 <td>Avoid unused private fields such as 'LOG'.</td>
-<td><a href="./xref/org/apache/omid/transaction/HBaseTransactionManager.html#L46">46</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/transaction/HBaseTransactionManager.html#L48">48</a></td></tr></table></div>
 <div class="section">
-<h3><a name="HBase_Client_-_orgapacheomidtransactionSnapshotFilter.java"></a>HBase Client - org/apache/omid/transaction/SnapshotFilter.java</h3>
+<h3><a name="HBase_Client_-_orgapacheomidtransactionTTable.java"></a>HBase Client - org/apache/omid/transaction/TTable.java</h3>
 <table border="0" class="table table-striped">
 <tr class="b">
 <th>Violation</th>
 <th>Line</th></tr>
 <tr class="a">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L35">35</a></td></tr>
-<tr class="b">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L37">37</a></td></tr>
-<tr class="a">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L39">39</a>&#x2013;<a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L40">40</a></td></tr>
-<tr class="b">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L42">42</a></td></tr>
-<tr class="a">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L44">44</a>&#x2013;<a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L45">45</a></td></tr>
-<tr class="b">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L47">47</a>&#x2013;<a href="./xref/org/apache/omid/transaction/SnapshotFilter.html#L48">48</a></td></tr></table></div>
-<div class="section">
-<h3><a name="HBase_Client_-_orgapacheomidtransactionSnapshotFilterImpl.java"></a>HBase Client - org/apache/omid/transaction/SnapshotFilterImpl.java</h3>
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>Violation</th>
-<th>Line</th></tr>
-<tr class="b">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilterImpl.html#L98">98</a></td></tr>
-<tr class="a">
-<td>Avoid unused method parameters such as 'transaction'.</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilterImpl.html#L110">110</a></td></tr>
-<tr class="b">
-<td>Avoid unused method parameters such as 'commitCache'.</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilterImpl.html#L110">110</a></td></tr>
-<tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilterImpl.html#L265">265</a></td></tr>
+<td><a href="./xref/org/apache/omid/transaction/TTable.html#L338">338</a></td></tr>
 <tr class="b">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilterImpl.html#L281">281</a></td></tr>
-<tr class="a">
-<td>Avoid unused method parameters such as 'attributeMap'.</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilterImpl.html#L303">303</a></td></tr>
-<tr class="b">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilterImpl.html#L406">406</a></td></tr>
-<tr class="a">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/SnapshotFilterImpl.html#L455">455</a></td></tr></table></div>
-<div class="section">
-<h3><a name="HBase_Client_-_orgapacheomidtransactionTTable.java"></a>HBase Client - org/apache/omid/transaction/TTable.java</h3>
-<table border="0" class="table table-striped">
-<tr class="b">
-<th>Violation</th>
-<th>Line</th></tr>
+<td><a href="./xref/org/apache/omid/transaction/TTable.html#L364">364</a></td></tr>
 <tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/TTable.html#L105">105</a></td></tr>
+<td><a href="./xref/org/apache/omid/transaction/TTable.html#L382">382</a></td></tr>
 <tr class="b">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/TTable.html#L119">119</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/transaction/TTable.html#L466">466</a></td></tr></table></div>
 <div class="section">
-<h3><a name="HBase_Client_-_orgapacheomidtransactionTableAccessWrapper.java"></a>HBase Client - org/apache/omid/transaction/TableAccessWrapper.java</h3>
+<h3><a name="HBase_Commit_Table_-_orgapacheomidcommittablehbaseHBaseCommitTable.java"></a>HBase Commit Table - org/apache/omid/committable/hbase/HBaseCommitTable.java</h3>
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Violation</th>
 <th>Line</th></tr>
 <tr class="b">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/TableAccessWrapper.html#L34">34</a></td></tr>
-<tr class="a">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/TableAccessWrapper.html#L35">35</a></td></tr>
-<tr class="b">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/TableAccessWrapper.html#L36">36</a></td></tr>
-<tr class="a">
-<td>Avoid modifiers which are implied by the context</td>
-<td><a href="./xref/org/apache/omid/transaction/TableAccessWrapper.html#L37">37</a></td></tr></table></div>
-<div class="section">
-<h3><a name="HBase_Commit_Table_-_orgapacheomidcommittablehbaseHBaseCommitTable.java"></a>HBase Commit Table - org/apache/omid/committable/hbase/HBaseCommitTable.java</h3>
-<table border="0" class="table table-striped">
-<tr class="b">
-<th>Violation</th>
-<th>Line</th></tr>
+<td>Useless parentheses.</td>
+<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L102">102</a></td></tr>
 <tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L108">108</a></td></tr>
+<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L351">351</a></td></tr>
 <tr class="b">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L359">359</a></td></tr>
+<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L355">355</a></td></tr>
 <tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L363">363</a></td></tr>
+<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L359">359</a></td></tr>
 <tr class="b">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L367">367</a></td></tr>
-<tr class="a">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L414">414</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/committable/hbase/HBaseCommitTable.html#L406">406</a></td></tr></table></div>
 <div class="section">
 <h3><a name="HBase_Common_-_orgapacheomidcommittablehbaseKeyGeneratorImplementations.java"></a>HBase Common - org/apache/omid/committable/hbase/KeyGeneratorImplementations.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Violation</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td>Useless parentheses.</td>
 <td><a href="./xref/org/apache/omid/committable/hbase/KeyGeneratorImplementations.html#L56">56</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>Useless parentheses.</td>
 <td><a href="./xref/org/apache/omid/committable/hbase/KeyGeneratorImplementations.html#L91">91</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>Useless parentheses.</td>
 <td><a href="./xref/org/apache/omid/committable/hbase/KeyGeneratorImplementations.html#L146">146</a></td></tr></table></div>
 <div class="section">
 <h3><a name="HBase_Common_-_orgapacheomidtransactionCellInfo.java"></a>HBase Common - org/apache/omid/transaction/CellInfo.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
-<th>Violation</th>
-<th>Line</th></tr>
-<tr class="a">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/CellInfo.html#L31">31</a></td></tr>
-<tr class="b">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/CellInfo.html#L32">32</a></td></tr></table></div>
-<div class="section">
-<h3><a name="HBase_Coprocessors_-_orgapachehadoophbaseregionserverCompactorScanner.java"></a>HBase Coprocessors - org/apache/hadoop/hbase/regionserver/CompactorScanner.java</h3>
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>Violation</th>
-<th>Line</th></tr>
-<tr class="b">
-<td>These nested if statements could be combined</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L135">135</a>&#x2013;<a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L146">146</a></td></tr></table></div>
-<div class="section">
-<h3><a name="HBase_Coprocessors_-_orgapacheomidtransactionOmidSnapshotFilter.java"></a>HBase Coprocessors - org/apache/omid/transaction/OmidSnapshotFilter.java</h3>
-<table border="0" class="table table-striped">
 <tr class="a">
 <th>Violation</th>
 <th>Line</th></tr>
 <tr class="b">
-<td>Avoid unnecessary return statements</td>
-<td><a href="./xref/org/apache/omid/transaction/OmidSnapshotFilter.html#L171">171</a></td></tr>
-<tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/OmidSnapshotFilter.html#L186">186</a></td></tr></table></div>
-<div class="section">
-<h3><a name="HBase_Coprocessors_-_orgapacheomidtransactionTransactionVisibilityFilterBase.java"></a>HBase Coprocessors - org/apache/omid/transaction/TransactionVisibilityFilterBase.java</h3>
-<table border="0" class="table table-striped">
-<tr class="b">
-<th>Violation</th>
-<th>Line</th></tr>
+<td><a href="./xref/org/apache/omid/transaction/CellInfo.html#L31">31</a></td></tr>
 <tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/TransactionVisibilityFilterBase.html#L117">117</a></td></tr>
-<tr class="b">
-<td>Overriding method merely calls super</td>
-<td><a href="./xref/org/apache/omid/transaction/TransactionVisibilityFilterBase.html#L232">232</a>&#x2013;<a href="./xref/org/apache/omid/transaction/TransactionVisibilityFilterBase.html#L234">234</a></td></tr></table></div>
-<div class="section">
-<h3><a name="Shims_layer_for_HBase_1.x_-_orgapacheomidHBaseShims.java"></a>Shims layer for HBase 1.x - org/apache/omid/HBaseShims.java</h3>
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>Violation</th>
-<th>Line</th></tr>
-<tr class="b">
-<td>Avoid unused imports such as 'org.apache.hadoop.hbase.HBaseTestingUtility'</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L21">21</a></td></tr>
-<tr class="a">
-<td>Avoid unused imports such as 'org.apache.hadoop.hbase.filter.Filter'</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L30">30</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/transaction/CellInfo.html#L32">32</a></td></tr></table></div>
 <div class="section">
-<h3><a name="Shims_layer_for_HBase_2.x_-_orgapacheomidHBaseShims.java"></a>Shims layer for HBase 2.x - org/apache/omid/HBaseShims.java</h3>
+<h3><a name="HBase_Coprocessors_-_orgapacheomidtransactionCompactorScanner.java"></a>HBase Coprocessors - org/apache/omid/transaction/CompactorScanner.java</h3>
 <table border="0" class="table table-striped">
 <tr class="b">
 <th>Violation</th>
 <th>Line</th></tr>
 <tr class="a">
-<td>Avoid unused imports such as 'org.apache.hadoop.hbase.filter.Filter'</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L32">32</a></td></tr></table></div>
+<td>These nested if statements could be combined</td>
+<td><a href="./xref/org/apache/omid/transaction/CompactorScanner.html#L137">137</a>&#x2013;<a href="./xref/org/apache/omid/transaction/CompactorScanner.html#L148">148</a></td></tr></table></div>
 <div class="section">
 <h3><a name="State_Machine_-_orgapachestatemachineStateMachine.java"></a>State Machine - org/apache/statemachine/StateMachine.java</h3>
 <table border="0" class="table table-striped">
@@ -456,104 +354,74 @@
 <td>Useless parentheses.</td>
 <td><a href="./xref/org/apache/statemachine/StateMachine.html#L154">154</a></td></tr></table></div>
 <div class="section">
-<h3><a name="Transaction_Client_-_orgapacheomidtransactionAbstractTransaction.java"></a>Transaction Client - org/apache/omid/transaction/AbstractTransaction.java</h3>
-<table border="0" class="table table-striped">
-<tr class="b">
-<th>Violation</th>
-<th>Line</th></tr>
-<tr class="a">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/transaction/AbstractTransaction.html#L65">65</a></td></tr></table></div>
-<div class="section">
-<h3><a name="Transaction_Client_-_orgapacheomidtsoclientTSOClient.java"></a>Transaction Client - org/apache/omid/tso/client/TSOClient.java</h3>
+<h3><a name="Transaction_Client_-_orgapacheomidtransactionAbstractTransactionManager.java"></a>Transaction Client - org/apache/omid/transaction/AbstractTransactionManager.java</h3>
 <table border="0" class="table table-striped">
 <tr class="b">
 <th>Violation</th>
 <th>Line</th></tr>
 <tr class="a">
-<td>Avoid unused imports such as 'org.apache.omid.transaction.TransactionException'</td>
-<td><a href="./xref/org/apache/omid/tso/client/TSOClient.html#L26">26</a></td></tr>
-<tr class="b">
-<td>Avoid unused imports such as 'java.util.List'</td>
-<td><a href="./xref/org/apache/omid/tso/client/TSOClient.html#L62">62</a></td></tr>
-<tr class="a">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/tso/client/TSOClient.html#L234">234</a></td></tr></table></div>
+<td>Too many static imports may lead to messy code</td>
+<td><a href="./xref/org/apache/omid/transaction/AbstractTransactionManager.html#L18">18</a>&#x2013;<a href="./xref/org/apache/omid/transaction/AbstractTransactionManager.html#L516">516</a></td></tr></table></div>
 <div class="section">
-<h3><a name="Transaction_Client_-_orgapacheomidtsoclientTSOProtocol.java"></a>Transaction Client - org/apache/omid/tso/client/TSOProtocol.java</h3>
+<h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoBatchPoolModule.java"></a>TSO and TO Servers - org/apache/omid/tso/BatchPoolModule.java</h3>
 <table border="0" class="table table-striped">
 <tr class="b">
 <th>Violation</th>
 <th>Line</th></tr>
 <tr class="a">
-<td>Avoid unused imports such as 'java.util.List'</td>
-<td><a href="./xref/org/apache/omid/tso/client/TSOProtocol.html#L20">20</a></td></tr>
-<tr class="b">
-<td>Avoid unused imports such as 'org.apache.omid.tso.client.OmidClientConfiguration.ConflictDetectionLevel'</td>
-<td><a href="./xref/org/apache/omid/tso/client/TSOProtocol.html#L23">23</a></td></tr></table></div>
-<div class="section">
-<h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoBatchPoolModule.java"></a>TSO and TO Servers - org/apache/omid/tso/BatchPoolModule.java</h3>
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>Violation</th>
-<th>Line</th></tr>
-<tr class="b">
 <td>Avoid unused private fields such as 'config'.</td>
 <td><a href="./xref/org/apache/omid/tso/BatchPoolModule.html#L36">36</a></td></tr></table></div>
 <div class="section">
 <h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoCacheEvaluation.java"></a>TSO and TO Servers - org/apache/omid/tso/CacheEvaluation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Violation</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td>Useless parentheses.</td>
 <td><a href="./xref/org/apache/omid/tso/CacheEvaluation.html#L93">93</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>Useless parentheses.</td>
 <td><a href="./xref/org/apache/omid/tso/CacheEvaluation.html#L102">102</a></td></tr></table></div>
 <div class="section">
 <h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoMonitoringContext.java"></a>TSO and TO Servers - org/apache/omid/tso/MonitoringContext.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Violation</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td>Avoid unused imports such as 'java.util.HashMap'</td>
 <td><a href="./xref/org/apache/omid/tso/MonitoringContext.html#L27">27</a></td></tr></table></div>
 <div class="section">
 <h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoPersistenceProcessorHandler.java"></a>TSO and TO Servers - org/apache/omid/tso/PersistenceProcessorHandler.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Violation</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td>Avoid unused private fields such as 'LOG'.</td>
-<td><a href="./xref/org/apache/omid/tso/PersistenceProcessorHandler.html#L38">38</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/tso/PersistenceProcessorHandler.html#L40">40</a></td></tr></table></div>
 <div class="section">
 <h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoPersistenceProcessorImpl.java"></a>TSO and TO Servers - org/apache/omid/tso/PersistenceProcessorImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Violation</th>
 <th>Line</th></tr>
-<tr class="a">
-<td>Too many static imports may lead to messy code</td>
-<td><a href="./xref/org/apache/omid/tso/PersistenceProcessorImpl.html#L18">18</a>&#x2013;<a href="./xref/org/apache/omid/tso/PersistenceProcessorImpl.html#L251">251</a></td></tr>
 <tr class="b">
+<td>Too many static imports may lead to messy code</td>
+<td><a href="./xref/org/apache/omid/tso/PersistenceProcessorImpl.html#L18">18</a>&#x2013;<a href="./xref/org/apache/omid/tso/PersistenceProcessorImpl.html#L241">241</a></td></tr>
+<tr class="a">
 <td>Avoid unused private fields such as 'metrics'.</td>
 <td><a href="./xref/org/apache/omid/tso/PersistenceProcessorImpl.html#L70">70</a></td></tr></table></div>
 <div class="section">
 <h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoRequestProcessorImpl.java"></a>TSO and TO Servers - org/apache/omid/tso/RequestProcessorImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Violation</th>
 <th>Line</th></tr>
-<tr class="b">
-<td>Avoid unused imports such as 'java.util.Set'</td>
-<td><a href="./xref/org/apache/omid/tso/RequestProcessorImpl.html#L42">42</a></td></tr>
 <tr class="a">
 <td>Avoid unused private fields such as 'metrics'.</td>
-<td><a href="./xref/org/apache/omid/tso/RequestProcessorImpl.html#L64">64</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/tso/RequestProcessorImpl.html#L58">58</a></td></tr></table></div>
 <div class="section">
 <h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoRetryProcessorImpl.java"></a>TSO and TO Servers - org/apache/omid/tso/RetryProcessorImpl.java</h3>
 <table border="0" class="table table-striped">
@@ -580,28 +448,19 @@
 <th>Line</th></tr>
 <tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L150">150</a></td></tr>
+<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L144">144</a></td></tr>
 <tr class="b">
 <td>Avoid empty while statements</td>
-<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L151">151</a>&#x2013;<a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L153">153</a></td></tr>
+<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L145">145</a>&#x2013;<a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L147">147</a></td></tr>
 <tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L154">154</a></td></tr>
+<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L148">148</a></td></tr>
 <tr class="b">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L157">157</a></td></tr>
-<tr class="a">
-<td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L158">158</a></td></tr></table></div>
-<div class="section">
-<h3><a name="TSO_and_TO_Servers_-_orgapacheomidtsoWorldClockOracleImpl.java"></a>TSO and TO Servers - org/apache/omid/tso/WorldClockOracleImpl.java</h3>
-<table border="0" class="table table-striped">
-<tr class="b">
-<th>Violation</th>
-<th>Line</th></tr>
+<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L151">151</a></td></tr>
 <tr class="a">
 <td>Useless parentheses.</td>
-<td><a href="./xref/org/apache/omid/tso/WorldClockOracleImpl.html#L149">149</a></td></tr></table></div></div>
+<td><a href="./xref/org/apache/omid/tso/TimestampOracleImpl.html#L152">152</a></td></tr></table></div></div>
                   </div>
           </div>
 

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 6d1655b..659676f 100644
--- a/project-info.html
+++ b/project-info.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 188bf03..8124c98 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 4285458..6edf257 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -250,7 +250,7 @@
 <td>omid</td></tr>
 <tr class="b">
 <td>Version</td>
-<td>0.8.2.11-SNAPSHOT</td></tr>
+<td>0.9.1.0-SNAPSHOT</td></tr>
 <tr class="a">
 <td>Type</td>
 <td>pom</td></tr></table></div></div>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/quickstart.html
----------------------------------------------------------------------
diff --git a/quickstart.html b/quickstart.html
index 50a5840..58c2c31 100644
--- a/quickstart.html
+++ b/quickstart.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>Quickstart</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>Quickstart</h1>
 <p>Below are instructions to quickly set up an environment to test Omid in your local machine.</p>
 <div class="section">
 <h2><a name="Requirements"></a>Requirements</h2>
@@ -231,11 +243,11 @@
 <h3><a name="a2._Clone_the_Omid_repository_and_Build_the_TSO_Package:"></a>2. Clone the <a class="externalLink" href="https://github.com/apache/incubator-omid">Omid repository</a> and Build the TSO Package:</h3>
 
 <div class="source">
-<div class="source"><pre class="prettyprint">$ git clone git@github.com:apache/incubator-omid.git
+<div class="source"><pre class="prettyprint">$ git clone git@github.com:yahoo/omid.git
 $ cd omid
-$ mvn clean install -Phbase-1 (for HBase 1.x versions)
+$ mvn clean install -Phbase-0 (for HBase 0.x versions)
 or
-$ mvn clean install -Phbase-2 (for HBase 2.x versions)
+$ mvn clean install -Phbase-1 (for HBase 1.x versions)
 </pre></div></div>
 <p>This will generate a binary package containing all dependencies for the TSO in tso-server/target/tso-server-&lt;VERSION&gt;-bin.tar.gz. </p>
 <p><b>Be aware</b> Unit tests use HBase mini cluster, it typically fails to start if you are on VPN, thus unit test fail. Unit tests coverage is also quite extensive and take a while to run on each build (~15min at the moment of writing). So, consider using <tt>mvn clean install -DskipTests</tt> to speed temporal builds. Note that <tt>-Dmaven.test.skip=true</tt> <a class="externalLink" href="http://ericlefevre.net/wordpress/2008/02/21/skipping-tests-with-maven/">is NOT an equivalent</a>.</p>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 9da58d7..8b5410d 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 099ee12..af6b799 100644
--- a/team-list.html
+++ b/team-list.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/allclasses-frame.html b/xref-test/allclasses-frame.html
index 608b7da..03736aa 100644
--- a/xref-test/allclasses-frame.html
+++ b/xref-test/allclasses-frame.html
@@ -69,9 +69,6 @@
 				<a href="org/apache/omid/transaction/TSOForHBaseCompactorTestModule.html" target="classFrame">TSOForHBaseCompactorTestModule</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/TSOForSnapshotFilterTestModule.html" target="classFrame">TSOForSnapshotFilterTestModule</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tso/TSOMockModule.html" target="classFrame">TSOMockModule</a>
 			</li>
 						<li>
@@ -93,10 +90,13 @@
 				<a href="org/apache/omid/tso/TestBatch.html" target="classFrame">TestBatch</a>
 			</li>
 						<li>
+				<a href="org/apache/omid/tso/TestBatchPool.html" target="classFrame">TestBatchPool</a>
+			</li>
+						<li>
 				<a href="org/apache/omid/transaction/TestCellUtils.html" target="classFrame">TestCellUtils</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/TestCheckpoint.html" target="classFrame">TestCheckpoint</a>
+				<a href="org/apache/omid/TestReflectionHelper.html" target="classFrame">TestClass</a>
 			</li>
 						<li>
 				<a href="org/apache/omid/transaction/TestColumnIterator.html" target="classFrame">TestColumnIterator</a>
@@ -150,9 +150,6 @@
 				<a href="org/apache/omid/tso/TestLongCache.html" target="classFrame">TestLongCache</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/TestMarkPutAsCommitted.html" target="classFrame">TestMarkPutAsCommitted</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tso/client/TestMockTSOClient.html" target="classFrame">TestMockTSOClient</a>
 			</li>
 						<li>
@@ -177,6 +174,9 @@
 				<a href="org/apache/omid/transaction/TestReadPath.html" target="classFrame">TestReadPath</a>
 			</li>
 						<li>
+				<a href="org/apache/omid/TestReflectionHelper.html" target="classFrame">TestReflectionHelper</a>
+			</li>
+						<li>
 				<a href="org/apache/omid/tso/TestReplyProcessor.html" target="classFrame">TestReplyProcessor</a>
 			</li>
 						<li>
@@ -192,9 +192,6 @@
 				<a href="org/apache/omid/transaction/TestSingleColumnFamily.html" target="classFrame">TestSingleColumnFamily</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/TestSnapshotFilter.html" target="classFrame">TestSnapshotFilter</a>
-			</li>
-						<li>
 				<a href="org/apache/statemachine/TestStateMachine.html" target="classFrame">TestStateMachine</a>
 			</li>
 						<li>
@@ -210,9 +207,6 @@
 				<a href="org/apache/omid/tso/client/TestTSOClientResponseHandling.html" target="classFrame">TestTSOClientResponseHandling</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/tso/client/TestTSOClientRowAndCellLevelConflict.html" target="classFrame">TestTSOClientRowAndCellLevelConflict</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/transaction/TestTSOModule.html" target="classFrame">TestTSOModule</a>
 			</li>
 						<li>
@@ -243,9 +237,6 @@
 				<a href="org/apache/omid/TestUtils.html" target="classFrame">TestUtils</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/tso/TestWorldTimeOracle.html" target="classFrame">TestWorldTimeOracle</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/timestamp/storage/TestZKTimestampStorage.html" target="classFrame">TestZKTimestampStorage</a>
 			</li>
 						<li>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/index.html
----------------------------------------------------------------------
diff --git a/xref-test/index.html b/xref-test/index.html
index 2834caf..1061df8 100644
--- a/xref-test/index.html
+++ b/xref-test/index.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference</title>
 	</head>
     <frameset cols="20%,80%">
 		<frameset rows="30%,70%">


[43/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/committable/hbase/TestHBaseCommitTable.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/committable/hbase/TestHBaseCommitTable.html b/xref-test/org/apache/omid/committable/hbase/TestHBaseCommitTable.html
index 8b2c6e2..b17d32c 100644
--- a/xref-test/org/apache/omid/committable/hbase/TestHBaseCommitTable.html
+++ b/xref-test/org/apache/omid/committable/hbase/TestHBaseCommitTable.html
@@ -27,296 +27,285 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.committable.hbase;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Future;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MiniHBaseCluster;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.Client;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.Writer;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTable.HBaseClient;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.testng.Assert;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterClass;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MiniHBaseCluster;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.coprocessor.AggregationClient;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.coprocessor.LongColumnInterpreter;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.Client;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.Writer;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTable.HBaseClient;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.testng.Assert;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterClass;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Future;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
 <a class="jxr_linenumber" name="53" href="#53">53</a>  
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/committable/hbase/TestHBaseCommitTable.html">TestHBaseCommitTable</a> {
-<a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestHBaseCommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="60" href="#60">60</a>  
-<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_TABLE = <span class="jxr_string">"TEST"</span>;
-<a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> TableName TABLE_NAME = TableName.valueOf(TEST_TABLE);
-<a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> HBaseTestingUtility testutil;
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> MiniHBaseCluster hbasecluster;
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Configuration hbaseConf;
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Connection connection;
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> byte[] commitTableFamily;
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> byte[] lowWatermarkFamily;
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>  
-<a class="jxr_linenumber" name="73" href="#73">73</a>      @BeforeClass
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUpClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="75" href="#75">75</a>          <em class="jxr_comment">// HBase setup</em>
-<a class="jxr_linenumber" name="76" href="#76">76</a>          hbaseConf = HBaseConfiguration.create();
-<a class="jxr_linenumber" name="77" href="#77">77</a>          hbaseConf.setBoolean(<span class="jxr_string">"hbase.localcluster.assign.random.ports"</span>,<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="78" href="#78">78</a>          DefaultHBaseCommitTableStorageModule module = <strong class="jxr_keyword">new</strong> DefaultHBaseCommitTableStorageModule();
-<a class="jxr_linenumber" name="79" href="#79">79</a>          commitTableFamily = module.getFamilyName().getBytes();
-<a class="jxr_linenumber" name="80" href="#80">80</a>          lowWatermarkFamily = module.getLowWatermarkFamily().getBytes();
-<a class="jxr_linenumber" name="81" href="#81">81</a>          LOG.info(<span class="jxr_string">"Create hbase"</span>);
-<a class="jxr_linenumber" name="82" href="#82">82</a>          testutil = <strong class="jxr_keyword">new</strong> HBaseTestingUtility(hbaseConf);
-<a class="jxr_linenumber" name="83" href="#83">83</a>          hbasecluster = testutil.startMiniCluster(1);
-<a class="jxr_linenumber" name="84" href="#84">84</a>          connection = ConnectionFactory.createConnection(hbaseConf);
-<a class="jxr_linenumber" name="85" href="#85">85</a>      }
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>      @AfterClass
-<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDownClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="89" href="#89">89</a>          <strong class="jxr_keyword">if</strong> (hbasecluster != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="90" href="#90">90</a>              testutil.shutdownMiniCluster();
-<a class="jxr_linenumber" name="91" href="#91">91</a>          }
-<a class="jxr_linenumber" name="92" href="#92">92</a>      }
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>      @BeforeMethod
-<a class="jxr_linenumber" name="95" href="#95">95</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="96" href="#96">96</a>          Admin admin = testutil.getHBaseAdmin();
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/committable/hbase/TestHBaseCommitTable.html">TestHBaseCommitTable</a> {
+<a class="jxr_linenumber" name="55" href="#55">55</a>  
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestHBaseCommitTable.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="57" href="#57">57</a>  
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_TABLE = <span class="jxr_string">"TEST"</span>;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> TableName TABLE_NAME = TableName.valueOf(TEST_TABLE);
+<a class="jxr_linenumber" name="61" href="#61">61</a>  
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> HBaseTestingUtility testutil;
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> MiniHBaseCluster hbasecluster;
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Configuration hbaseConf;
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> AggregationClient aggregationClient;
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> byte[] commitTableFamily;
+<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> byte[] lowWatermarkFamily;
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>      @BeforeClass
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUpClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <em class="jxr_comment">// HBase setup</em>
+<a class="jxr_linenumber" name="73" href="#73">73</a>          hbaseConf = HBaseConfiguration.create();
+<a class="jxr_linenumber" name="74" href="#74">74</a>          DefaultHBaseCommitTableStorageModule module = <strong class="jxr_keyword">new</strong> DefaultHBaseCommitTableStorageModule();
+<a class="jxr_linenumber" name="75" href="#75">75</a>          commitTableFamily = module.getFamilyName().getBytes();
+<a class="jxr_linenumber" name="76" href="#76">76</a>          lowWatermarkFamily = module.getLowWatermarkFamily().getBytes();
+<a class="jxr_linenumber" name="77" href="#77">77</a>          LOG.info(<span class="jxr_string">"Create hbase"</span>);
+<a class="jxr_linenumber" name="78" href="#78">78</a>          testutil = <strong class="jxr_keyword">new</strong> HBaseTestingUtility(hbaseConf);
+<a class="jxr_linenumber" name="79" href="#79">79</a>          hbasecluster = testutil.startMiniCluster(1);
+<a class="jxr_linenumber" name="80" href="#80">80</a>          aggregationClient = <strong class="jxr_keyword">new</strong> AggregationClient(hbaseConf);
+<a class="jxr_linenumber" name="81" href="#81">81</a>  
+<a class="jxr_linenumber" name="82" href="#82">82</a>      }
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>      @AfterClass
+<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDownClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">if</strong> (hbasecluster != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="87" href="#87">87</a>              testutil.shutdownMiniCluster();
+<a class="jxr_linenumber" name="88" href="#88">88</a>          }
+<a class="jxr_linenumber" name="89" href="#89">89</a>      }
+<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="91" href="#91">91</a>      @BeforeMethod
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="93" href="#93">93</a>          HBaseAdmin admin = testutil.getHBaseAdmin();
+<a class="jxr_linenumber" name="94" href="#94">94</a>  
+<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">if</strong> (!admin.tableExists(TEST_TABLE)) {
+<a class="jxr_linenumber" name="96" href="#96">96</a>              HTableDescriptor desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(TABLE_NAME);
 <a class="jxr_linenumber" name="97" href="#97">97</a>  
-<a class="jxr_linenumber" name="98" href="#98">98</a>          <strong class="jxr_keyword">if</strong> (!admin.tableExists(TableName.valueOf(TEST_TABLE))) {
-<a class="jxr_linenumber" name="99" href="#99">99</a>              HTableDescriptor desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(TABLE_NAME);
-<a class="jxr_linenumber" name="100" href="#100">100</a> 
-<a class="jxr_linenumber" name="101" href="#101">101</a>             HColumnDescriptor datafam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(commitTableFamily);
-<a class="jxr_linenumber" name="102" href="#102">102</a>             datafam.setMaxVersions(Integer.MAX_VALUE);
-<a class="jxr_linenumber" name="103" href="#103">103</a>             desc.addFamily(datafam);
-<a class="jxr_linenumber" name="104" href="#104">104</a> 
-<a class="jxr_linenumber" name="105" href="#105">105</a>             HColumnDescriptor lowWatermarkFam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(lowWatermarkFamily);
-<a class="jxr_linenumber" name="106" href="#106">106</a>             lowWatermarkFam.setMaxVersions(Integer.MAX_VALUE);
-<a class="jxr_linenumber" name="107" href="#107">107</a>             desc.addFamily(lowWatermarkFam);
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>             <em class="jxr_comment">// Move to HBaseSims for 2.0 support</em>
-<a class="jxr_linenumber" name="110" href="#110">110</a>             <em class="jxr_comment">// For 2.0, use TableDescriptorBuilder to build TableDescriptor</em>
-<a class="jxr_linenumber" name="111" href="#111">111</a>             admin.createTable(desc);
+<a class="jxr_linenumber" name="98" href="#98">98</a>              HColumnDescriptor datafam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(commitTableFamily);
+<a class="jxr_linenumber" name="99" href="#99">99</a>              datafam.setMaxVersions(Integer.MAX_VALUE);
+<a class="jxr_linenumber" name="100" href="#100">100</a>             desc.addFamily(datafam);
+<a class="jxr_linenumber" name="101" href="#101">101</a> 
+<a class="jxr_linenumber" name="102" href="#102">102</a>             HColumnDescriptor lowWatermarkFam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(lowWatermarkFamily);
+<a class="jxr_linenumber" name="103" href="#103">103</a>             lowWatermarkFam.setMaxVersions(Integer.MAX_VALUE);
+<a class="jxr_linenumber" name="104" href="#104">104</a>             desc.addFamily(lowWatermarkFam);
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>             desc.addCoprocessor(<span class="jxr_string">"org.apache.hadoop.hbase.coprocessor.AggregateImplementation"</span>);
+<a class="jxr_linenumber" name="107" href="#107">107</a>             admin.createTable(desc);
+<a class="jxr_linenumber" name="108" href="#108">108</a>         }
+<a class="jxr_linenumber" name="109" href="#109">109</a> 
+<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">if</strong> (admin.isTableDisabled(TEST_TABLE)) {
+<a class="jxr_linenumber" name="111" href="#111">111</a>             admin.enableTable(TEST_TABLE);
 <a class="jxr_linenumber" name="112" href="#112">112</a>         }
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">if</strong> (admin.isTableDisabled(TableName.valueOf(TEST_TABLE))) {
-<a class="jxr_linenumber" name="115" href="#115">115</a>             admin.enableTable(TableName.valueOf(TEST_TABLE));
+<a class="jxr_linenumber" name="113" href="#113">113</a>         HTableDescriptor[] tables = admin.listTables();
+<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">for</strong> (HTableDescriptor t : tables) {
+<a class="jxr_linenumber" name="115" href="#115">115</a>             LOG.info(t.getNameAsString());
 <a class="jxr_linenumber" name="116" href="#116">116</a>         }
-<a class="jxr_linenumber" name="117" href="#117">117</a>         HTableDescriptor[] tables = admin.listTables();
-<a class="jxr_linenumber" name="118" href="#118">118</a>         <strong class="jxr_keyword">for</strong> (HTableDescriptor t : tables) {
-<a class="jxr_linenumber" name="119" href="#119">119</a>             LOG.info(t.getNameAsString());
-<a class="jxr_linenumber" name="120" href="#120">120</a>         }
-<a class="jxr_linenumber" name="121" href="#121">121</a>     }
-<a class="jxr_linenumber" name="122" href="#122">122</a> 
-<a class="jxr_linenumber" name="123" href="#123">123</a>     @AfterMethod
-<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() {
-<a class="jxr_linenumber" name="125" href="#125">125</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="126" href="#126">126</a>             LOG.info(<span class="jxr_string">"tearing Down"</span>);
-<a class="jxr_linenumber" name="127" href="#127">127</a>             Admin admin = testutil.getHBaseAdmin();
-<a class="jxr_linenumber" name="128" href="#128">128</a>             admin.disableTable(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="129" href="#129">129</a>             admin.deleteTable(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="130" href="#130">130</a> 
-<a class="jxr_linenumber" name="131" href="#131">131</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="132" href="#132">132</a>             LOG.error(<span class="jxr_string">"Error tearing down"</span>, e);
-<a class="jxr_linenumber" name="133" href="#133">133</a>         }
-<a class="jxr_linenumber" name="134" href="#134">134</a>     }
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBasicBehaviour() <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="138" href="#138">138</a>         HBaseCommitTableConfig config = <strong class="jxr_keyword">new</strong> HBaseCommitTableConfig();
-<a class="jxr_linenumber" name="139" href="#139">139</a>         config.setTableName(TEST_TABLE);
-<a class="jxr_linenumber" name="140" href="#140">140</a>         HBaseCommitTable commitTable = <strong class="jxr_keyword">new</strong> HBaseCommitTable(hbaseConf, config);
-<a class="jxr_linenumber" name="141" href="#141">141</a> 
-<a class="jxr_linenumber" name="142" href="#142">142</a>         Writer writer = commitTable.getWriter();
-<a class="jxr_linenumber" name="143" href="#143">143</a>         Client client = commitTable.getClient();
-<a class="jxr_linenumber" name="144" href="#144">144</a> 
-<a class="jxr_linenumber" name="145" href="#145">145</a>         <em class="jxr_comment">// Test that the first time the table is empty</em>
-<a class="jxr_linenumber" name="146" href="#146">146</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 0, <span class="jxr_string">"Rows should be 0!"</span>);
-<a class="jxr_linenumber" name="147" href="#147">147</a> 
-<a class="jxr_linenumber" name="148" href="#148">148</a>         <em class="jxr_comment">// Test the successful creation of 1000 txs in the table</em>
-<a class="jxr_linenumber" name="149" href="#149">149</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
-<a class="jxr_linenumber" name="150" href="#150">150</a>             writer.addCommittedTransaction(i, i + 1);
-<a class="jxr_linenumber" name="151" href="#151">151</a>         }
-<a class="jxr_linenumber" name="152" href="#152">152</a>         writer.flush();
-<a class="jxr_linenumber" name="153" href="#153">153</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 1000, <span class="jxr_string">"Rows should be 1000!"</span>);
-<a class="jxr_linenumber" name="154" href="#154">154</a> 
-<a class="jxr_linenumber" name="155" href="#155">155</a>         <em class="jxr_comment">// Test the we get the right commit timestamps for each previously inserted tx</em>
-<a class="jxr_linenumber" name="156" href="#156">156</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> i = 0; i &lt; 1000; i++) {
-<a class="jxr_linenumber" name="157" href="#157">157</a>             Optional&lt;CommitTimestamp&gt; commitTimestamp = client.getCommitTimestamp(i).get();
-<a class="jxr_linenumber" name="158" href="#158">158</a>             assertTrue(commitTimestamp.isPresent());
-<a class="jxr_linenumber" name="159" href="#159">159</a>             assertTrue(commitTimestamp.get().isValid());
-<a class="jxr_linenumber" name="160" href="#160">160</a>             <strong class="jxr_keyword">long</strong> ct = commitTimestamp.get().getValue();
-<a class="jxr_linenumber" name="161" href="#161">161</a>             assertEquals(ct, (i + 1), <span class="jxr_string">"Commit timestamp should be "</span> + (i + 1));
-<a class="jxr_linenumber" name="162" href="#162">162</a>         }
-<a class="jxr_linenumber" name="163" href="#163">163</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 1000, <span class="jxr_string">"Rows should be 1000!"</span>);
-<a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a>         <em class="jxr_comment">// Test the successful deletion of the 1000 txs</em>
-<a class="jxr_linenumber" name="166" href="#166">166</a>         Future&lt;Void&gt; f;
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> i = 0; i &lt; 1000; i++) {
-<a class="jxr_linenumber" name="168" href="#168">168</a>             f = client.completeTransaction(i);
-<a class="jxr_linenumber" name="169" href="#169">169</a>             f.get();
-<a class="jxr_linenumber" name="170" href="#170">170</a>         }
-<a class="jxr_linenumber" name="171" href="#171">171</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 0, <span class="jxr_string">"Rows should be 0!"</span>);
+<a class="jxr_linenumber" name="117" href="#117">117</a>     }
+<a class="jxr_linenumber" name="118" href="#118">118</a> 
+<a class="jxr_linenumber" name="119" href="#119">119</a>     @AfterMethod
+<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() {
+<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="122" href="#122">122</a>             LOG.info(<span class="jxr_string">"tearing Down"</span>);
+<a class="jxr_linenumber" name="123" href="#123">123</a>             HBaseAdmin admin = testutil.getHBaseAdmin();
+<a class="jxr_linenumber" name="124" href="#124">124</a>             admin.disableTable(TEST_TABLE);
+<a class="jxr_linenumber" name="125" href="#125">125</a>             admin.deleteTable(TEST_TABLE);
+<a class="jxr_linenumber" name="126" href="#126">126</a> 
+<a class="jxr_linenumber" name="127" href="#127">127</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="128" href="#128">128</a>             LOG.error(<span class="jxr_string">"Error tearing down"</span>, e);
+<a class="jxr_linenumber" name="129" href="#129">129</a>         }
+<a class="jxr_linenumber" name="130" href="#130">130</a>     }
+<a class="jxr_linenumber" name="131" href="#131">131</a> 
+<a class="jxr_linenumber" name="132" href="#132">132</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBasicBehaviour() <strong class="jxr_keyword">throws</strong> Throwable {
+<a class="jxr_linenumber" name="134" href="#134">134</a>         HBaseCommitTableConfig config = <strong class="jxr_keyword">new</strong> HBaseCommitTableConfig();
+<a class="jxr_linenumber" name="135" href="#135">135</a>         config.setTableName(TEST_TABLE);
+<a class="jxr_linenumber" name="136" href="#136">136</a>         HBaseCommitTable commitTable = <strong class="jxr_keyword">new</strong> HBaseCommitTable(hbaseConf, config);
+<a class="jxr_linenumber" name="137" href="#137">137</a> 
+<a class="jxr_linenumber" name="138" href="#138">138</a>         Writer writer = commitTable.getWriter();
+<a class="jxr_linenumber" name="139" href="#139">139</a>         Client client = commitTable.getClient();
+<a class="jxr_linenumber" name="140" href="#140">140</a> 
+<a class="jxr_linenumber" name="141" href="#141">141</a>         <em class="jxr_comment">// Test that the first time the table is empty</em>
+<a class="jxr_linenumber" name="142" href="#142">142</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 0, <span class="jxr_string">"Rows should be 0!"</span>);
+<a class="jxr_linenumber" name="143" href="#143">143</a> 
+<a class="jxr_linenumber" name="144" href="#144">144</a>         <em class="jxr_comment">// Test the successful creation of 1000 txs in the table</em>
+<a class="jxr_linenumber" name="145" href="#145">145</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
+<a class="jxr_linenumber" name="146" href="#146">146</a>             writer.addCommittedTransaction(i, i + 1);
+<a class="jxr_linenumber" name="147" href="#147">147</a>         }
+<a class="jxr_linenumber" name="148" href="#148">148</a>         writer.flush();
+<a class="jxr_linenumber" name="149" href="#149">149</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 1000, <span class="jxr_string">"Rows should be 1000!"</span>);
+<a class="jxr_linenumber" name="150" href="#150">150</a> 
+<a class="jxr_linenumber" name="151" href="#151">151</a>         <em class="jxr_comment">// Test the we get the right commit timestamps for each previously inserted tx</em>
+<a class="jxr_linenumber" name="152" href="#152">152</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> i = 0; i &lt; 1000; i++) {
+<a class="jxr_linenumber" name="153" href="#153">153</a>             Optional&lt;CommitTimestamp&gt; commitTimestamp = client.getCommitTimestamp(i).get();
+<a class="jxr_linenumber" name="154" href="#154">154</a>             assertTrue(commitTimestamp.isPresent());
+<a class="jxr_linenumber" name="155" href="#155">155</a>             assertTrue(commitTimestamp.get().isValid());
+<a class="jxr_linenumber" name="156" href="#156">156</a>             <strong class="jxr_keyword">long</strong> ct = commitTimestamp.get().getValue();
+<a class="jxr_linenumber" name="157" href="#157">157</a>             assertEquals(ct, (i + 1), <span class="jxr_string">"Commit timestamp should be "</span> + (i + 1));
+<a class="jxr_linenumber" name="158" href="#158">158</a>         }
+<a class="jxr_linenumber" name="159" href="#159">159</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 1000, <span class="jxr_string">"Rows should be 1000!"</span>);
+<a class="jxr_linenumber" name="160" href="#160">160</a> 
+<a class="jxr_linenumber" name="161" href="#161">161</a>         <em class="jxr_comment">// Test the successful deletion of the 1000 txs</em>
+<a class="jxr_linenumber" name="162" href="#162">162</a>         Future&lt;Void&gt; f;
+<a class="jxr_linenumber" name="163" href="#163">163</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> i = 0; i &lt; 1000; i++) {
+<a class="jxr_linenumber" name="164" href="#164">164</a>             f = client.completeTransaction(i);
+<a class="jxr_linenumber" name="165" href="#165">165</a>             f.get();
+<a class="jxr_linenumber" name="166" href="#166">166</a>         }
+<a class="jxr_linenumber" name="167" href="#167">167</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 0, <span class="jxr_string">"Rows should be 0!"</span>);
+<a class="jxr_linenumber" name="168" href="#168">168</a> 
+<a class="jxr_linenumber" name="169" href="#169">169</a>         <em class="jxr_comment">// Test we don't get a commit timestamp for a non-existent transaction id in the table</em>
+<a class="jxr_linenumber" name="170" href="#170">170</a>         Optional&lt;CommitTimestamp&gt; commitTimestamp = client.getCommitTimestamp(0).get();
+<a class="jxr_linenumber" name="171" href="#171">171</a>         assertFalse(commitTimestamp.isPresent(), <span class="jxr_string">"Commit timestamp should not be present"</span>);
 <a class="jxr_linenumber" name="172" href="#172">172</a> 
-<a class="jxr_linenumber" name="173" href="#173">173</a>         <em class="jxr_comment">// Test we don't get a commit timestamp for a non-existent transaction id in the table</em>
-<a class="jxr_linenumber" name="174" href="#174">174</a>         Optional&lt;CommitTimestamp&gt; commitTimestamp = client.getCommitTimestamp(0).get();
-<a class="jxr_linenumber" name="175" href="#175">175</a>         assertFalse(commitTimestamp.isPresent(), <span class="jxr_string">"Commit timestamp should not be present"</span>);
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <em class="jxr_comment">// Test that the first time, the low watermark family in table is empty</em>
-<a class="jxr_linenumber" name="178" href="#178">178</a>         assertEquals(rowCount(TABLE_NAME, lowWatermarkFamily), 0, <span class="jxr_string">"Rows should be 0!"</span>);
+<a class="jxr_linenumber" name="173" href="#173">173</a>         <em class="jxr_comment">// Test that the first time, the low watermark family in table is empty</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a>         assertEquals(rowCount(TABLE_NAME, lowWatermarkFamily), 0, <span class="jxr_string">"Rows should be 0!"</span>);
+<a class="jxr_linenumber" name="175" href="#175">175</a> 
+<a class="jxr_linenumber" name="176" href="#176">176</a>         <em class="jxr_comment">// Test the unsuccessful read of the low watermark the first time</em>
+<a class="jxr_linenumber" name="177" href="#177">177</a>         ListenableFuture&lt;Long&gt; lowWatermarkFuture = client.readLowWatermark();
+<a class="jxr_linenumber" name="178" href="#178">178</a>         assertEquals(lowWatermarkFuture.get(), Long.valueOf(0), <span class="jxr_string">"Low watermark should be 0"</span>);
 <a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a>         <em class="jxr_comment">// Test the unsuccessful read of the low watermark the first time</em>
-<a class="jxr_linenumber" name="181" href="#181">181</a>         ListenableFuture&lt;Long&gt; lowWatermarkFuture = client.readLowWatermark();
-<a class="jxr_linenumber" name="182" href="#182">182</a>         assertEquals(lowWatermarkFuture.get(), Long.valueOf(0), <span class="jxr_string">"Low watermark should be 0"</span>);
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <em class="jxr_comment">// Test the successful update of the low watermark</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> lowWatermark = 0; lowWatermark &lt; 1000; lowWatermark++) {
-<a class="jxr_linenumber" name="186" href="#186">186</a>             writer.updateLowWatermark(lowWatermark);
-<a class="jxr_linenumber" name="187" href="#187">187</a>         }
-<a class="jxr_linenumber" name="188" href="#188">188</a>         writer.flush();
-<a class="jxr_linenumber" name="189" href="#189">189</a>         assertEquals(rowCount(TABLE_NAME, lowWatermarkFamily), 1, <span class="jxr_string">"Should there be only one row!"</span>);
-<a class="jxr_linenumber" name="190" href="#190">190</a> 
-<a class="jxr_linenumber" name="191" href="#191">191</a>         <em class="jxr_comment">// Test the successful read of the low watermark</em>
-<a class="jxr_linenumber" name="192" href="#192">192</a>         lowWatermarkFuture = client.readLowWatermark();
-<a class="jxr_linenumber" name="193" href="#193">193</a>         <strong class="jxr_keyword">long</strong> lowWatermark = lowWatermarkFuture.get();
-<a class="jxr_linenumber" name="194" href="#194">194</a>         assertEquals(lowWatermark, 999, <span class="jxr_string">"Low watermark should be 999"</span>);
-<a class="jxr_linenumber" name="195" href="#195">195</a>         assertEquals(rowCount(TABLE_NAME, lowWatermarkFamily), 1, <span class="jxr_string">"Should there be only one row!"</span>);
-<a class="jxr_linenumber" name="196" href="#196">196</a> 
-<a class="jxr_linenumber" name="197" href="#197">197</a>     }
-<a class="jxr_linenumber" name="198" href="#198">198</a> 
-<a class="jxr_linenumber" name="199" href="#199">199</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionInvalidation() <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="201" href="#201">201</a> 
-<a class="jxr_linenumber" name="202" href="#202">202</a>         <em class="jxr_comment">// Prepare test</em>
-<a class="jxr_linenumber" name="203" href="#203">203</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TX1_ST = 1;
-<a class="jxr_linenumber" name="204" href="#204">204</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TX1_CT = 2;
-<a class="jxr_linenumber" name="205" href="#205">205</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TX2_ST = 11;
-<a class="jxr_linenumber" name="206" href="#206">206</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TX2_CT = 12;
+<a class="jxr_linenumber" name="180" href="#180">180</a>         <em class="jxr_comment">// Test the successful update of the low watermark</em>
+<a class="jxr_linenumber" name="181" href="#181">181</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> lowWatermark = 0; lowWatermark &lt; 1000; lowWatermark++) {
+<a class="jxr_linenumber" name="182" href="#182">182</a>             writer.updateLowWatermark(lowWatermark);
+<a class="jxr_linenumber" name="183" href="#183">183</a>         }
+<a class="jxr_linenumber" name="184" href="#184">184</a>         writer.flush();
+<a class="jxr_linenumber" name="185" href="#185">185</a>         assertEquals(rowCount(TABLE_NAME, lowWatermarkFamily), 1, <span class="jxr_string">"Should there be only one row!"</span>);
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a>         <em class="jxr_comment">// Test the successful read of the low watermark</em>
+<a class="jxr_linenumber" name="188" href="#188">188</a>         lowWatermarkFuture = client.readLowWatermark();
+<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">long</strong> lowWatermark = lowWatermarkFuture.get();
+<a class="jxr_linenumber" name="190" href="#190">190</a>         assertEquals(lowWatermark, 999, <span class="jxr_string">"Low watermark should be 999"</span>);
+<a class="jxr_linenumber" name="191" href="#191">191</a>         assertEquals(rowCount(TABLE_NAME, lowWatermarkFamily), 1, <span class="jxr_string">"Should there be only one row!"</span>);
+<a class="jxr_linenumber" name="192" href="#192">192</a> 
+<a class="jxr_linenumber" name="193" href="#193">193</a>     }
+<a class="jxr_linenumber" name="194" href="#194">194</a> 
+<a class="jxr_linenumber" name="195" href="#195">195</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="196" href="#196">196</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionInvalidation() <strong class="jxr_keyword">throws</strong> Throwable {
+<a class="jxr_linenumber" name="197" href="#197">197</a> 
+<a class="jxr_linenumber" name="198" href="#198">198</a>         <em class="jxr_comment">// Prepare test</em>
+<a class="jxr_linenumber" name="199" href="#199">199</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TX1_ST = 1;
+<a class="jxr_linenumber" name="200" href="#200">200</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TX1_CT = 2;
+<a class="jxr_linenumber" name="201" href="#201">201</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TX2_ST = 11;
+<a class="jxr_linenumber" name="202" href="#202">202</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TX2_CT = 12;
+<a class="jxr_linenumber" name="203" href="#203">203</a> 
+<a class="jxr_linenumber" name="204" href="#204">204</a>         HBaseCommitTableConfig config = <strong class="jxr_keyword">new</strong> HBaseCommitTableConfig();
+<a class="jxr_linenumber" name="205" href="#205">205</a>         config.setTableName(TEST_TABLE);
+<a class="jxr_linenumber" name="206" href="#206">206</a>         HBaseCommitTable commitTable = <strong class="jxr_keyword">new</strong> HBaseCommitTable(hbaseConf, config);
 <a class="jxr_linenumber" name="207" href="#207">207</a> 
-<a class="jxr_linenumber" name="208" href="#208">208</a>         HBaseCommitTableConfig config = <strong class="jxr_keyword">new</strong> HBaseCommitTableConfig();
-<a class="jxr_linenumber" name="209" href="#209">209</a>         config.setTableName(TEST_TABLE);
-<a class="jxr_linenumber" name="210" href="#210">210</a>         HBaseCommitTable commitTable = <strong class="jxr_keyword">new</strong> HBaseCommitTable(hbaseConf, config);
+<a class="jxr_linenumber" name="208" href="#208">208</a>         <em class="jxr_comment">// Components under test</em>
+<a class="jxr_linenumber" name="209" href="#209">209</a>         Writer writer = commitTable.getWriter();
+<a class="jxr_linenumber" name="210" href="#210">210</a>         Client client = commitTable.getClient();
 <a class="jxr_linenumber" name="211" href="#211">211</a> 
-<a class="jxr_linenumber" name="212" href="#212">212</a>         <em class="jxr_comment">// Components under test</em>
-<a class="jxr_linenumber" name="213" href="#213">213</a>         Writer writer = commitTable.getWriter();
-<a class="jxr_linenumber" name="214" href="#214">214</a>         Client client = commitTable.getClient();
-<a class="jxr_linenumber" name="215" href="#215">215</a> 
-<a class="jxr_linenumber" name="216" href="#216">216</a>         <em class="jxr_comment">// Test that initially the table is empty</em>
-<a class="jxr_linenumber" name="217" href="#217">217</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 0, <span class="jxr_string">"Rows should be 0!"</span>);
-<a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>         <em class="jxr_comment">// Test that a transaction can be added properly to the commit table</em>
-<a class="jxr_linenumber" name="220" href="#220">220</a>         writer.addCommittedTransaction(TX1_ST, TX1_CT);
-<a class="jxr_linenumber" name="221" href="#221">221</a>         writer.flush();
-<a class="jxr_linenumber" name="222" href="#222">222</a>         Optional&lt;CommitTimestamp&gt; commitTimestamp = client.getCommitTimestamp(TX1_ST).get();
-<a class="jxr_linenumber" name="223" href="#223">223</a>         assertTrue(commitTimestamp.isPresent());
-<a class="jxr_linenumber" name="224" href="#224">224</a>         assertTrue(commitTimestamp.get().isValid());
-<a class="jxr_linenumber" name="225" href="#225">225</a>         <strong class="jxr_keyword">long</strong> ct = commitTimestamp.get().getValue();
-<a class="jxr_linenumber" name="226" href="#226">226</a>         assertEquals(ct, TX1_CT, <span class="jxr_string">"Commit timestamp should be "</span> + TX1_CT);
-<a class="jxr_linenumber" name="227" href="#227">227</a> 
-<a class="jxr_linenumber" name="228" href="#228">228</a>         <em class="jxr_comment">// Test that a committed transaction cannot be invalidated and</em>
-<a class="jxr_linenumber" name="229" href="#229">229</a>         <em class="jxr_comment">// preserves its commit timestamp after that</em>
-<a class="jxr_linenumber" name="230" href="#230">230</a>         <strong class="jxr_keyword">boolean</strong> wasInvalidated = client.tryInvalidateTransaction(TX1_ST).get();
-<a class="jxr_linenumber" name="231" href="#231">231</a>         assertFalse(wasInvalidated, <span class="jxr_string">"Transaction should not be invalidated"</span>);
-<a class="jxr_linenumber" name="232" href="#232">232</a> 
-<a class="jxr_linenumber" name="233" href="#233">233</a>         commitTimestamp = client.getCommitTimestamp(TX1_ST).get();
-<a class="jxr_linenumber" name="234" href="#234">234</a>         assertTrue(commitTimestamp.isPresent());
-<a class="jxr_linenumber" name="235" href="#235">235</a>         assertTrue(commitTimestamp.get().isValid());
-<a class="jxr_linenumber" name="236" href="#236">236</a>         ct = commitTimestamp.get().getValue();
-<a class="jxr_linenumber" name="237" href="#237">237</a>         assertEquals(ct, TX1_CT, <span class="jxr_string">"Commit timestamp should be "</span> + TX1_CT);
-<a class="jxr_linenumber" name="238" href="#238">238</a> 
-<a class="jxr_linenumber" name="239" href="#239">239</a>         <em class="jxr_comment">// Test that a non-committed transaction can be invalidated...</em>
-<a class="jxr_linenumber" name="240" href="#240">240</a>         wasInvalidated = client.tryInvalidateTransaction(TX2_ST).get();
-<a class="jxr_linenumber" name="241" href="#241">241</a>         assertTrue(wasInvalidated, <span class="jxr_string">"Transaction should be invalidated"</span>);
-<a class="jxr_linenumber" name="242" href="#242">242</a>         commitTimestamp = client.getCommitTimestamp(TX2_ST).get();
-<a class="jxr_linenumber" name="243" href="#243">243</a>         assertTrue(commitTimestamp.isPresent());
-<a class="jxr_linenumber" name="244" href="#244">244</a>         assertFalse(commitTimestamp.get().isValid());
-<a class="jxr_linenumber" name="245" href="#245">245</a>         ct = commitTimestamp.get().getValue();
-<a class="jxr_linenumber" name="246" href="#246">246</a>         assertEquals(ct, CommitTable.INVALID_TRANSACTION_MARKER,
-<a class="jxr_linenumber" name="247" href="#247">247</a>                      <span class="jxr_string">"Commit timestamp should be "</span> + CommitTable.INVALID_TRANSACTION_MARKER);
-<a class="jxr_linenumber" name="248" href="#248">248</a>         <em class="jxr_comment">// ...and that if it has been already invalidated, it remains</em>
-<a class="jxr_linenumber" name="249" href="#249">249</a>         <em class="jxr_comment">// invalidated when someone tries to commit it</em>
-<a class="jxr_linenumber" name="250" href="#250">250</a>         writer.addCommittedTransaction(TX2_ST, TX2_CT);
-<a class="jxr_linenumber" name="251" href="#251">251</a>         writer.flush();
-<a class="jxr_linenumber" name="252" href="#252">252</a>         commitTimestamp = client.getCommitTimestamp(TX2_ST).get();
-<a class="jxr_linenumber" name="253" href="#253">253</a>         assertTrue(commitTimestamp.isPresent());
-<a class="jxr_linenumber" name="254" href="#254">254</a>         assertFalse(commitTimestamp.get().isValid());
-<a class="jxr_linenumber" name="255" href="#255">255</a>         ct = commitTimestamp.get().getValue();
-<a class="jxr_linenumber" name="256" href="#256">256</a>         assertEquals(ct, CommitTable.INVALID_TRANSACTION_MARKER,
-<a class="jxr_linenumber" name="257" href="#257">257</a>                      <span class="jxr_string">"Commit timestamp should be "</span> + CommitTable.INVALID_TRANSACTION_MARKER);
+<a class="jxr_linenumber" name="212" href="#212">212</a>         <em class="jxr_comment">// Test that initially the table is empty</em>
+<a class="jxr_linenumber" name="213" href="#213">213</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 0, <span class="jxr_string">"Rows should be 0!"</span>);
+<a class="jxr_linenumber" name="214" href="#214">214</a> 
+<a class="jxr_linenumber" name="215" href="#215">215</a>         <em class="jxr_comment">// Test that a transaction can be added properly to the commit table</em>
+<a class="jxr_linenumber" name="216" href="#216">216</a>         writer.addCommittedTransaction(TX1_ST, TX1_CT);
+<a class="jxr_linenumber" name="217" href="#217">217</a>         writer.flush();
+<a class="jxr_linenumber" name="218" href="#218">218</a>         Optional&lt;CommitTimestamp&gt; commitTimestamp = client.getCommitTimestamp(TX1_ST).get();
+<a class="jxr_linenumber" name="219" href="#219">219</a>         assertTrue(commitTimestamp.isPresent());
+<a class="jxr_linenumber" name="220" href="#220">220</a>         assertTrue(commitTimestamp.get().isValid());
+<a class="jxr_linenumber" name="221" href="#221">221</a>         <strong class="jxr_keyword">long</strong> ct = commitTimestamp.get().getValue();
+<a class="jxr_linenumber" name="222" href="#222">222</a>         assertEquals(ct, TX1_CT, <span class="jxr_string">"Commit timestamp should be "</span> + TX1_CT);
+<a class="jxr_linenumber" name="223" href="#223">223</a> 
+<a class="jxr_linenumber" name="224" href="#224">224</a>         <em class="jxr_comment">// Test that a committed transaction cannot be invalidated and</em>
+<a class="jxr_linenumber" name="225" href="#225">225</a>         <em class="jxr_comment">// preserves its commit timestamp after that</em>
+<a class="jxr_linenumber" name="226" href="#226">226</a>         <strong class="jxr_keyword">boolean</strong> wasInvalidated = client.tryInvalidateTransaction(TX1_ST).get();
+<a class="jxr_linenumber" name="227" href="#227">227</a>         assertFalse(wasInvalidated, <span class="jxr_string">"Transaction should not be invalidated"</span>);
+<a class="jxr_linenumber" name="228" href="#228">228</a> 
+<a class="jxr_linenumber" name="229" href="#229">229</a>         commitTimestamp = client.getCommitTimestamp(TX1_ST).get();
+<a class="jxr_linenumber" name="230" href="#230">230</a>         assertTrue(commitTimestamp.isPresent());
+<a class="jxr_linenumber" name="231" href="#231">231</a>         assertTrue(commitTimestamp.get().isValid());
+<a class="jxr_linenumber" name="232" href="#232">232</a>         ct = commitTimestamp.get().getValue();
+<a class="jxr_linenumber" name="233" href="#233">233</a>         assertEquals(ct, TX1_CT, <span class="jxr_string">"Commit timestamp should be "</span> + TX1_CT);
+<a class="jxr_linenumber" name="234" href="#234">234</a> 
+<a class="jxr_linenumber" name="235" href="#235">235</a>         <em class="jxr_comment">// Test that a non-committed transaction can be invalidated...</em>
+<a class="jxr_linenumber" name="236" href="#236">236</a>         wasInvalidated = client.tryInvalidateTransaction(TX2_ST).get();
+<a class="jxr_linenumber" name="237" href="#237">237</a>         assertTrue(wasInvalidated, <span class="jxr_string">"Transaction should be invalidated"</span>);
+<a class="jxr_linenumber" name="238" href="#238">238</a>         commitTimestamp = client.getCommitTimestamp(TX2_ST).get();
+<a class="jxr_linenumber" name="239" href="#239">239</a>         assertTrue(commitTimestamp.isPresent());
+<a class="jxr_linenumber" name="240" href="#240">240</a>         assertFalse(commitTimestamp.get().isValid());
+<a class="jxr_linenumber" name="241" href="#241">241</a>         ct = commitTimestamp.get().getValue();
+<a class="jxr_linenumber" name="242" href="#242">242</a>         assertEquals(ct, CommitTable.INVALID_TRANSACTION_MARKER,
+<a class="jxr_linenumber" name="243" href="#243">243</a>                      <span class="jxr_string">"Commit timestamp should be "</span> + CommitTable.INVALID_TRANSACTION_MARKER);
+<a class="jxr_linenumber" name="244" href="#244">244</a>         <em class="jxr_comment">// ...and that if it has been already invalidated, it remains</em>
+<a class="jxr_linenumber" name="245" href="#245">245</a>         <em class="jxr_comment">// invalidated when someone tries to commit it</em>
+<a class="jxr_linenumber" name="246" href="#246">246</a>         writer.addCommittedTransaction(TX2_ST, TX2_CT);
+<a class="jxr_linenumber" name="247" href="#247">247</a>         writer.flush();
+<a class="jxr_linenumber" name="248" href="#248">248</a>         commitTimestamp = client.getCommitTimestamp(TX2_ST).get();
+<a class="jxr_linenumber" name="249" href="#249">249</a>         assertTrue(commitTimestamp.isPresent());
+<a class="jxr_linenumber" name="250" href="#250">250</a>         assertFalse(commitTimestamp.get().isValid());
+<a class="jxr_linenumber" name="251" href="#251">251</a>         ct = commitTimestamp.get().getValue();
+<a class="jxr_linenumber" name="252" href="#252">252</a>         assertEquals(ct, CommitTable.INVALID_TRANSACTION_MARKER,
+<a class="jxr_linenumber" name="253" href="#253">253</a>                      <span class="jxr_string">"Commit timestamp should be "</span> + CommitTable.INVALID_TRANSACTION_MARKER);
+<a class="jxr_linenumber" name="254" href="#254">254</a> 
+<a class="jxr_linenumber" name="255" href="#255">255</a>         <em class="jxr_comment">// Test that at the end of the test, the commit table contains 2</em>
+<a class="jxr_linenumber" name="256" href="#256">256</a>         <em class="jxr_comment">// elements, which correspond to the two rows added in the test</em>
+<a class="jxr_linenumber" name="257" href="#257">257</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 2, <span class="jxr_string">"Rows should be 2!"</span>);
 <a class="jxr_linenumber" name="258" href="#258">258</a> 
-<a class="jxr_linenumber" name="259" href="#259">259</a>         <em class="jxr_comment">// Test that at the end of the test, the commit table contains 2</em>
-<a class="jxr_linenumber" name="260" href="#260">260</a>         <em class="jxr_comment">// elements, which correspond to the two rows added in the test</em>
-<a class="jxr_linenumber" name="261" href="#261">261</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 2, <span class="jxr_string">"Rows should be 2!"</span>);
-<a class="jxr_linenumber" name="262" href="#262">262</a> 
-<a class="jxr_linenumber" name="263" href="#263">263</a>     }
-<a class="jxr_linenumber" name="264" href="#264">264</a> 
-<a class="jxr_linenumber" name="265" href="#265">265</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="266" href="#266">266</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testClosingClientEmptyQueuesProperly() <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="267" href="#267">267</a>         HBaseCommitTableConfig config = <strong class="jxr_keyword">new</strong> HBaseCommitTableConfig();
-<a class="jxr_linenumber" name="268" href="#268">268</a>         config.setTableName(TEST_TABLE);
-<a class="jxr_linenumber" name="269" href="#269">269</a>         HBaseCommitTable commitTable = <strong class="jxr_keyword">new</strong> HBaseCommitTable(hbaseConf, config);
-<a class="jxr_linenumber" name="270" href="#270">270</a> 
-<a class="jxr_linenumber" name="271" href="#271">271</a>         Writer writer = commitTable.getWriter();
-<a class="jxr_linenumber" name="272" href="#272">272</a>         HBaseCommitTable.HBaseClient client = (HBaseClient) commitTable.getClient();
-<a class="jxr_linenumber" name="273" href="#273">273</a> 
-<a class="jxr_linenumber" name="274" href="#274">274</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
-<a class="jxr_linenumber" name="275" href="#275">275</a>             writer.addCommittedTransaction(i, i + 1);
-<a class="jxr_linenumber" name="276" href="#276">276</a>         }
-<a class="jxr_linenumber" name="277" href="#277">277</a>         writer.flush();
+<a class="jxr_linenumber" name="259" href="#259">259</a>     }
+<a class="jxr_linenumber" name="260" href="#260">260</a> 
+<a class="jxr_linenumber" name="261" href="#261">261</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="262" href="#262">262</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testClosingClientEmptyQueuesProperly() <strong class="jxr_keyword">throws</strong> Throwable {
+<a class="jxr_linenumber" name="263" href="#263">263</a>         HBaseCommitTableConfig config = <strong class="jxr_keyword">new</strong> HBaseCommitTableConfig();
+<a class="jxr_linenumber" name="264" href="#264">264</a>         config.setTableName(TEST_TABLE);
+<a class="jxr_linenumber" name="265" href="#265">265</a>         HBaseCommitTable commitTable = <strong class="jxr_keyword">new</strong> HBaseCommitTable(hbaseConf, config);
+<a class="jxr_linenumber" name="266" href="#266">266</a> 
+<a class="jxr_linenumber" name="267" href="#267">267</a>         Writer writer = commitTable.getWriter();
+<a class="jxr_linenumber" name="268" href="#268">268</a>         HBaseCommitTable.HBaseClient client = (HBaseClient) commitTable.getClient();
+<a class="jxr_linenumber" name="269" href="#269">269</a> 
+<a class="jxr_linenumber" name="270" href="#270">270</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
+<a class="jxr_linenumber" name="271" href="#271">271</a>             writer.addCommittedTransaction(i, i + 1);
+<a class="jxr_linenumber" name="272" href="#272">272</a>         }
+<a class="jxr_linenumber" name="273" href="#273">273</a>         writer.flush();
+<a class="jxr_linenumber" name="274" href="#274">274</a> 
+<a class="jxr_linenumber" name="275" href="#275">275</a>         <em class="jxr_comment">// Completing first transaction should be fine</em>
+<a class="jxr_linenumber" name="276" href="#276">276</a>         client.completeTransaction(0).get();
+<a class="jxr_linenumber" name="277" href="#277">277</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 999, <span class="jxr_string">"Rows should be 999!"</span>);
 <a class="jxr_linenumber" name="278" href="#278">278</a> 
-<a class="jxr_linenumber" name="279" href="#279">279</a>         <em class="jxr_comment">// Completing first transaction should be fine</em>
-<a class="jxr_linenumber" name="280" href="#280">280</a>         client.completeTransaction(0).get();
-<a class="jxr_linenumber" name="281" href="#281">281</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 999, <span class="jxr_string">"Rows should be 999!"</span>);
-<a class="jxr_linenumber" name="282" href="#282">282</a> 
-<a class="jxr_linenumber" name="283" href="#283">283</a>         <em class="jxr_comment">// When closing, removing a transaction should throw an EE with an IOException</em>
-<a class="jxr_linenumber" name="284" href="#284">284</a>         client.close();
-<a class="jxr_linenumber" name="285" href="#285">285</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="286" href="#286">286</a>             client.completeTransaction(1).get();
-<a class="jxr_linenumber" name="287" href="#287">287</a>             Assert.fail();
-<a class="jxr_linenumber" name="288" href="#288">288</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
-<a class="jxr_linenumber" name="289" href="#289">289</a>             <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="290" href="#290">290</a>         }
-<a class="jxr_linenumber" name="291" href="#291">291</a>         assertEquals(client.deleteQueue.size(), 0, <span class="jxr_string">"Delete queue size should be 0!"</span>);
-<a class="jxr_linenumber" name="292" href="#292">292</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 999, <span class="jxr_string">"Rows should be 999!"</span>);
-<a class="jxr_linenumber" name="293" href="#293">293</a> 
-<a class="jxr_linenumber" name="294" href="#294">294</a>     }
-<a class="jxr_linenumber" name="295" href="#295">295</a> 
-<a class="jxr_linenumber" name="296" href="#296">296</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> rowCount(TableName tableName, byte[] family) <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="297" href="#297">297</a>         Scan scan = <strong class="jxr_keyword">new</strong> Scan();
-<a class="jxr_linenumber" name="298" href="#298">298</a>         scan.addFamily(family);
-<a class="jxr_linenumber" name="299" href="#299">299</a>         Table table = connection.getTable(tableName);
-<a class="jxr_linenumber" name="300" href="#300">300</a>         <strong class="jxr_keyword">try</strong> (ResultScanner scanner = table.getScanner(scan)) {
-<a class="jxr_linenumber" name="301" href="#301">301</a>             <strong class="jxr_keyword">int</strong> count = 0;
-<a class="jxr_linenumber" name="302" href="#302">302</a>             <strong class="jxr_keyword">while</strong> (scanner.next() != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="303" href="#303">303</a>                 count++;
-<a class="jxr_linenumber" name="304" href="#304">304</a>             }
-<a class="jxr_linenumber" name="305" href="#305">305</a>             <strong class="jxr_keyword">return</strong> count;
-<a class="jxr_linenumber" name="306" href="#306">306</a>         }
-<a class="jxr_linenumber" name="307" href="#307">307</a>     }
-<a class="jxr_linenumber" name="308" href="#308">308</a> 
-<a class="jxr_linenumber" name="309" href="#309">309</a> }
+<a class="jxr_linenumber" name="279" href="#279">279</a>         <em class="jxr_comment">// When closing, removing a transaction should throw an EE with an IOException</em>
+<a class="jxr_linenumber" name="280" href="#280">280</a>         client.close();
+<a class="jxr_linenumber" name="281" href="#281">281</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="282" href="#282">282</a>             client.completeTransaction(1).get();
+<a class="jxr_linenumber" name="283" href="#283">283</a>             Assert.fail();
+<a class="jxr_linenumber" name="284" href="#284">284</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
+<a class="jxr_linenumber" name="285" href="#285">285</a>             <em class="jxr_comment">// Expected</em>
+<a class="jxr_linenumber" name="286" href="#286">286</a>         }
+<a class="jxr_linenumber" name="287" href="#287">287</a>         assertEquals(client.deleteQueue.size(), 0, <span class="jxr_string">"Delete queue size should be 0!"</span>);
+<a class="jxr_linenumber" name="288" href="#288">288</a>         assertEquals(rowCount(TABLE_NAME, commitTableFamily), 999, <span class="jxr_string">"Rows should be 999!"</span>);
+<a class="jxr_linenumber" name="289" href="#289">289</a> 
+<a class="jxr_linenumber" name="290" href="#290">290</a>     }
+<a class="jxr_linenumber" name="291" href="#291">291</a> 
+<a class="jxr_linenumber" name="292" href="#292">292</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> rowCount(TableName table, byte[] family) <strong class="jxr_keyword">throws</strong> Throwable {
+<a class="jxr_linenumber" name="293" href="#293">293</a>         Scan scan = <strong class="jxr_keyword">new</strong> Scan();
+<a class="jxr_linenumber" name="294" href="#294">294</a>         scan.addFamily(family);
+<a class="jxr_linenumber" name="295" href="#295">295</a>         <strong class="jxr_keyword">return</strong> aggregationClient.rowCount(table, <strong class="jxr_keyword">new</strong> LongColumnInterpreter(), scan);
+<a class="jxr_linenumber" name="296" href="#296">296</a>     }
+<a class="jxr_linenumber" name="297" href="#297">297</a> 
+<a class="jxr_linenumber" name="298" href="#298">298</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/committable/hbase/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/committable/hbase/package-frame.html b/xref-test/org/apache/omid/committable/hbase/package-frame.html
index 71b5192..a196720 100644
--- a/xref-test/org/apache/omid/committable/hbase/package-frame.html
+++ b/xref-test/org/apache/omid/committable/hbase/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.committable.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.committable.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/committable/hbase/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/committable/hbase/package-summary.html b/xref-test/org/apache/omid/committable/hbase/package-summary.html
index 4de2703..8cd8792 100644
--- a/xref-test/org/apache/omid/committable/hbase/package-summary.html
+++ b/xref-test/org/apache/omid/committable/hbase/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.committable.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.committable.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/committable/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/committable/package-frame.html b/xref-test/org/apache/omid/committable/package-frame.html
index 17b6024..ffeeb8b 100644
--- a/xref-test/org/apache/omid/committable/package-frame.html
+++ b/xref-test/org/apache/omid/committable/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.committable</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.committable</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/committable/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/committable/package-summary.html b/xref-test/org/apache/omid/committable/package-summary.html
index acadc77..b7c3226 100644
--- a/xref-test/org/apache/omid/committable/package-summary.html
+++ b/xref-test/org/apache/omid/committable/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.committable</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.committable</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/package-frame.html b/xref-test/org/apache/omid/package-frame.html
index ba7410e..ba1f186 100644
--- a/xref-test/org/apache/omid/package-frame.html
+++ b/xref-test/org/apache/omid/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid</title>
 		<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -16,6 +16,12 @@
 
       	<ul>
       		          	<li>
+            	<a href="TestReflectionHelper.html" target="classFrame">TestClass</a>
+          	</li>
+          	          	<li>
+            	<a href="TestReflectionHelper.html" target="classFrame">TestReflectionHelper</a>
+          	</li>
+          	          	<li>
             	<a href="TestUtils.html" target="classFrame">TestUtils</a>
           	</li>
           	          	<li>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/package-summary.html b/xref-test/org/apache/omid/package-summary.html
index b5691c7..68f35bc 100644
--- a/xref-test/org/apache/omid/package-summary.html
+++ b/xref-test/org/apache/omid/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid</title>
 		<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -37,6 +37,16 @@
         	<tbody>
         		            	<tr>
               		<td>
+                		<a href="TestReflectionHelper.html" target="classFrame">TestClass</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="TestReflectionHelper.html" target="classFrame">TestReflectionHelper</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
                 		<a href="TestUtils.html" target="classFrame">TestUtils</a>
               		</td>
             	</tr>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.html b/xref-test/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.html
index 7555555..3e1240c 100644
--- a/xref-test/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.html
+++ b/xref-test/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.html
@@ -65,7 +65,7 @@
 <a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setUpClass() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="56" href="#56">56</a>          <em class="jxr_comment">// HBase setup</em>
 <a class="jxr_linenumber" name="57" href="#57">57</a>          hbaseConf = HBaseConfiguration.create();
-<a class="jxr_linenumber" name="58" href="#58">58</a>          hbaseConf.setBoolean(<span class="jxr_string">"hbase.localcluster.assign.random.ports"</span>,<strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
 <a class="jxr_linenumber" name="59" href="#59">59</a>          LOG.info(<span class="jxr_string">"Create hbase"</span>);
 <a class="jxr_linenumber" name="60" href="#60">60</a>          testutil = <strong class="jxr_keyword">new</strong> HBaseTestingUtility(hbaseConf);
 <a class="jxr_linenumber" name="61" href="#61">61</a>          hbasecluster = testutil.startMiniCluster(1);
@@ -83,7 +83,7 @@
 <a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="74" href="#74">74</a>          HBaseAdmin admin = testutil.getHBaseAdmin();
 <a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">if</strong> (!admin.tableExists(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME))) {
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">if</strong> (!admin.tableExists(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME)) {
 <a class="jxr_linenumber" name="77" href="#77">77</a>              HTableDescriptor desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(TABLE_NAME);
 <a class="jxr_linenumber" name="78" href="#78">78</a>              HColumnDescriptor datafam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(DEFAULT_TIMESTAMP_STORAGE_CF_NAME);
 <a class="jxr_linenumber" name="79" href="#79">79</a>              datafam.setMaxVersions(Integer.MAX_VALUE);
@@ -92,8 +92,8 @@
 <a class="jxr_linenumber" name="82" href="#82">82</a>              admin.createTable(desc);
 <a class="jxr_linenumber" name="83" href="#83">83</a>          }
 <a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">if</strong> (admin.isTableDisabled(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME))) {
-<a class="jxr_linenumber" name="86" href="#86">86</a>              admin.enableTable(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
+<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">if</strong> (admin.isTableDisabled(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME)) {
+<a class="jxr_linenumber" name="86" href="#86">86</a>              admin.enableTable(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME);
 <a class="jxr_linenumber" name="87" href="#87">87</a>          }
 <a class="jxr_linenumber" name="88" href="#88">88</a>          HTableDescriptor[] tables = admin.listTables();
 <a class="jxr_linenumber" name="89" href="#89">89</a>          <strong class="jxr_keyword">for</strong> (HTableDescriptor t : tables) {
@@ -106,10 +106,10 @@
 <a class="jxr_linenumber" name="96" href="#96">96</a>          <strong class="jxr_keyword">try</strong> {
 <a class="jxr_linenumber" name="97" href="#97">97</a>              LOG.info(<span class="jxr_string">"tearing Down"</span>);
 <a class="jxr_linenumber" name="98" href="#98">98</a>              HBaseAdmin admin = testutil.getHBaseAdmin();
-<a class="jxr_linenumber" name="99" href="#99">99</a>              admin.disableTable(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
-<a class="jxr_linenumber" name="100" href="#100">100</a>             admin.deleteTable(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
+<a class="jxr_linenumber" name="99" href="#99">99</a>              admin.disableTable(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME);
+<a class="jxr_linenumber" name="100" href="#100">100</a>             admin.deleteTable(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME);
 <a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="102" href="#102">102</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
 <a class="jxr_linenumber" name="103" href="#103">103</a>             LOG.error(<span class="jxr_string">"Error tearing down"</span>, e);
 <a class="jxr_linenumber" name="104" href="#104">104</a>         }
 <a class="jxr_linenumber" name="105" href="#105">105</a>     }

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/timestamp/storage/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/timestamp/storage/package-frame.html b/xref-test/org/apache/omid/timestamp/storage/package-frame.html
index 6330bb2..2f4c30e 100644
--- a/xref-test/org/apache/omid/timestamp/storage/package-frame.html
+++ b/xref-test/org/apache/omid/timestamp/storage/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.timestamp.storage</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.timestamp.storage</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/timestamp/storage/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/timestamp/storage/package-summary.html b/xref-test/org/apache/omid/timestamp/storage/package-summary.html
index 23ae416..ee43603 100644
--- a/xref-test/org/apache/omid/timestamp/storage/package-summary.html
+++ b/xref-test/org/apache/omid/timestamp/storage/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.timestamp.storage</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.timestamp.storage</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tools/hbase/TestOmidTableManager.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tools/hbase/TestOmidTableManager.html b/xref-test/org/apache/omid/tools/hbase/TestOmidTableManager.html
index 5421b5c..c1d2536 100644
--- a/xref-test/org/apache/omid/tools/hbase/TestOmidTableManager.html
+++ b/xref-test/org/apache/omid/tools/hbase/TestOmidTableManager.html
@@ -53,7 +53,7 @@
 <a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUpClass() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="44" href="#44">44</a>          <em class="jxr_comment">// HBase setup</em>
 <a class="jxr_linenumber" name="45" href="#45">45</a>          hbaseConf = HBaseConfiguration.create();
-<a class="jxr_linenumber" name="46" href="#46">46</a>          hbaseConf.setBoolean(<span class="jxr_string">"hbase.localcluster.assign.random.ports"</span>,<strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
 <a class="jxr_linenumber" name="47" href="#47">47</a>          hBaseTestUtil = <strong class="jxr_keyword">new</strong> HBaseTestingUtility(hbaseConf);
 <a class="jxr_linenumber" name="48" href="#48">48</a>          hBaseTestUtil.startMiniCluster(1);
 <a class="jxr_linenumber" name="49" href="#49">49</a>  

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tools/hbase/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tools/hbase/package-frame.html b/xref-test/org/apache/omid/tools/hbase/package-frame.html
index 87743e5..96fdb17 100644
--- a/xref-test/org/apache/omid/tools/hbase/package-frame.html
+++ b/xref-test/org/apache/omid/tools/hbase/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tools.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tools.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tools/hbase/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tools/hbase/package-summary.html b/xref-test/org/apache/omid/tools/hbase/package-summary.html
index 35e8d48..270adb0 100644
--- a/xref-test/org/apache/omid/tools/hbase/package-summary.html
+++ b/xref-test/org/apache/omid/tools/hbase/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tools.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tools.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>


[02/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/client/TSOClient.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/client/TSOClient.html b/xref/org/apache/omid/tso/client/TSOClient.html
index f2efc53..d261c2e 100644
--- a/xref/org/apache/omid/tso/client/TSOClient.html
+++ b/xref/org/apache/omid/tso/client/TSOClient.html
@@ -31,1055 +31,908 @@
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.net.HostAndPort;
 <a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.AbstractFuture;
 <a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ThreadFactoryBuilder;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.proto.TSOProto;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TransactionException;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConflictDetectionLevel;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.zk.ZKUtils;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.statemachine.StateMachine;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFramework;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.ChildData;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.NodeCache;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.NodeCacheListener;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.bootstrap.ClientBootstrap;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.Channel;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelFactory;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelFuture;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelFutureListener;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelHandlerContext;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelPipeline;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelStateEvent;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ExceptionEvent;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.MessageEvent;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.SimpleChannelHandler;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.handler.codec.frame.LengthFieldPrepender;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.handler.codec.protobuf.ProtobufDecoder;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.handler.codec.protobuf.ProtobufEncoder;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.util.HashedWheelTimer;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.util.Timeout;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.util.TimerTask;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayDeque;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ScheduledExecutorService;
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.proto.TSOProto;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.zk.ZKUtils;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.statemachine.StateMachine;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFramework;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.ChildData;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.NodeCache;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.NodeCacheListener;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.bootstrap.ClientBootstrap;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.Channel;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelFactory;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelFuture;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelFutureListener;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelHandlerContext;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelPipeline;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ChannelStateEvent;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.ExceptionEvent;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.MessageEvent;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.SimpleChannelHandler;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.handler.codec.frame.LengthFieldPrepender;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.handler.codec.protobuf.ProtobufDecoder;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.handler.codec.protobuf.ProtobufEncoder;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.util.HashedWheelTimer;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.util.Timeout;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.util.TimerTask;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayDeque;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ScheduledExecutorService;
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
+<a class="jxr_linenumber" name="65" href="#65">65</a>  
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * Describes the abstract methods to communicate to the TSO server</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> <strong class="jxr_keyword">implements</strong> TSOProtocol, NodeCacheListener {
 <a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> * Describes the abstract methods to communicate to the TSO server</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> <strong class="jxr_keyword">implements</strong> TSOProtocol, NodeCacheListener {
-<a class="jxr_linenumber" name="76" href="#76">76</a>  
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TSOClient.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TSOClient.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="72" href="#72">72</a>  
+<a class="jxr_linenumber" name="73" href="#73">73</a>      <em class="jxr_comment">// Basic configuration constants &amp; defaults TODO: Move DEFAULT_ZK_CLUSTER to a conf class???</em>
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_ZK_CLUSTER = <span class="jxr_string">"localhost:2181"</span>;
+<a class="jxr_linenumber" name="75" href="#75">75</a>  
+<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DEFAULT_EPOCH = -1L;
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">long</strong> epoch = DEFAULT_EPOCH;
 <a class="jxr_linenumber" name="78" href="#78">78</a>  
-<a class="jxr_linenumber" name="79" href="#79">79</a>      <em class="jxr_comment">// Basic configuration constants &amp; defaults TODO: Move DEFAULT_ZK_CLUSTER to a conf class???</em>
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_ZK_CLUSTER = <span class="jxr_string">"localhost:2181"</span>;
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DEFAULT_EPOCH = -1L;
-<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">long</strong> epoch = DEFAULT_EPOCH;
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>      <em class="jxr_comment">// Attributes</em>
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> CuratorFramework zkClient;
-<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">private</strong> NodeCache currentTSOZNode;
+<a class="jxr_linenumber" name="79" href="#79">79</a>      <em class="jxr_comment">// Attributes</em>
+<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> CuratorFramework zkClient;
+<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> NodeCache currentTSOZNode;
+<a class="jxr_linenumber" name="82" href="#82">82</a>  
+<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> ChannelFactory factory;
+<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> ClientBootstrap bootstrap;
+<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> Channel currentChannel;
+<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ScheduledExecutorService fsmExecutor;
+<a class="jxr_linenumber" name="87" href="#87">87</a>      StateMachine.Fsm fsm;
 <a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> ChannelFactory factory;
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> ClientBootstrap bootstrap;
-<a class="jxr_linenumber" name="91" href="#91">91</a>      <strong class="jxr_keyword">private</strong> Channel currentChannel;
-<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ScheduledExecutorService fsmExecutor;
-<a class="jxr_linenumber" name="93" href="#93">93</a>      StateMachine.Fsm fsm;
+<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> requestTimeoutInMs;
+<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> requestMaxRetries;
+<a class="jxr_linenumber" name="91" href="#91">91</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> tsoReconnectionDelayInSecs;
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> InetSocketAddress tsoAddr;
+<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">private</strong> String zkCurrentTsoPath;
 <a class="jxr_linenumber" name="94" href="#94">94</a>  
-<a class="jxr_linenumber" name="95" href="#95">95</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> requestTimeoutInMs;
-<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> requestMaxRetries;
-<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> tsoReconnectionDelayInSecs;
-<a class="jxr_linenumber" name="98" href="#98">98</a>      <strong class="jxr_keyword">private</strong> InetSocketAddress tsoAddr;
-<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> String zkCurrentTsoPath;
-<a class="jxr_linenumber" name="100" href="#100">100</a> 
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>     <em class="jxr_comment">// Use to extract unique table identifiers from the modified cells list.</em>
-<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Set&lt;Long&gt; tableIDs;
-<a class="jxr_linenumber" name="104" href="#104">104</a>     <em class="jxr_comment">// Conflict detection level of the entire system. Can either be Row or Cell level.</em>
-<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> conflictDetectionLevel;
-<a class="jxr_linenumber" name="106" href="#106">106</a>     <strong class="jxr_keyword">private</strong> Set&lt;Long&gt; rowLevelWriteSet;
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="109" href="#109">109</a>     <em class="jxr_comment">// Construction</em>
-<a class="jxr_linenumber" name="110" href="#110">110</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> newInstance(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> tsoClientConf) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="113" href="#113">113</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a>(tsoClientConf);
-<a class="jxr_linenumber" name="114" href="#114">114</a>     }
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>     <em class="jxr_comment">// Avoid instantiation</em>
-<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a>(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> omidConf) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>         <em class="jxr_comment">// Start client with Nb of active threads = 3 as maximum.</em>
-<a class="jxr_linenumber" name="120" href="#120">120</a>         <strong class="jxr_keyword">int</strong> tsoExecutorThreads = omidConf.getExecutorThreads();
-<a class="jxr_linenumber" name="121" href="#121">121</a> 
-<a class="jxr_linenumber" name="122" href="#122">122</a>         factory = <strong class="jxr_keyword">new</strong> NioClientSocketChannelFactory(
-<a class="jxr_linenumber" name="123" href="#123">123</a>                 Executors.newCachedThreadPool(
-<a class="jxr_linenumber" name="124" href="#124">124</a>                         <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"tsoclient-boss-%d"</span>).build()),
-<a class="jxr_linenumber" name="125" href="#125">125</a>                 Executors.newCachedThreadPool(
-<a class="jxr_linenumber" name="126" href="#126">126</a>                         <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"tsoclient-worker-%d"</span>).build()), tsoExecutorThreads);
-<a class="jxr_linenumber" name="127" href="#127">127</a>         <em class="jxr_comment">// Create the bootstrap</em>
-<a class="jxr_linenumber" name="128" href="#128">128</a>         bootstrap = <strong class="jxr_keyword">new</strong> ClientBootstrap(factory);
-<a class="jxr_linenumber" name="129" href="#129">129</a> 
-<a class="jxr_linenumber" name="130" href="#130">130</a>         requestTimeoutInMs = omidConf.getRequestTimeoutInMs();
-<a class="jxr_linenumber" name="131" href="#131">131</a>         requestMaxRetries = omidConf.getRequestMaxRetries();
-<a class="jxr_linenumber" name="132" href="#132">132</a>         tsoReconnectionDelayInSecs = omidConf.getReconnectionDelayInSecs();
-<a class="jxr_linenumber" name="133" href="#133">133</a> 
-<a class="jxr_linenumber" name="134" href="#134">134</a>         LOG.info(<span class="jxr_string">"Connecting to TSO..."</span>);
-<a class="jxr_linenumber" name="135" href="#135">135</a>         HostAndPort hp;
-<a class="jxr_linenumber" name="136" href="#136">136</a>         <strong class="jxr_keyword">switch</strong> (omidConf.getConnectionType()) {
-<a class="jxr_linenumber" name="137" href="#137">137</a>             <strong class="jxr_keyword">case</strong> HA:
-<a class="jxr_linenumber" name="138" href="#138">138</a>                 zkClient = ZKUtils.initZKClient(omidConf.getConnectionString(),
-<a class="jxr_linenumber" name="139" href="#139">139</a>                                                 omidConf.getZkNamespace(),
-<a class="jxr_linenumber" name="140" href="#140">140</a>                                                 omidConf.getZkConnectionTimeoutInSecs());
-<a class="jxr_linenumber" name="141" href="#141">141</a>                 zkCurrentTsoPath = omidConf.getZkCurrentTsoPath();
-<a class="jxr_linenumber" name="142" href="#142">142</a>                 configureCurrentTSOServerZNodeCache(zkCurrentTsoPath);
-<a class="jxr_linenumber" name="143" href="#143">143</a>                 String tsoInfo = getCurrentTSOInfoFoundInZK(zkCurrentTsoPath);
-<a class="jxr_linenumber" name="144" href="#144">144</a>                 <em class="jxr_comment">// TSO info includes the new TSO host:port address and epoch</em>
-<a class="jxr_linenumber" name="145" href="#145">145</a>                 String[] currentTSOAndEpochArray = tsoInfo.split(<span class="jxr_string">"#"</span>);
-<a class="jxr_linenumber" name="146" href="#146">146</a>                 hp = HostAndPort.fromString(currentTSOAndEpochArray[0]);
-<a class="jxr_linenumber" name="147" href="#147">147</a>                 setTSOAddress(hp.getHostText(), hp.getPort());
-<a class="jxr_linenumber" name="148" href="#148">148</a>                 epoch = Long.parseLong(currentTSOAndEpochArray[1]);
-<a class="jxr_linenumber" name="149" href="#149">149</a>                 LOG.info(<span class="jxr_string">"\t* Current TSO host:port found in ZK: {} Epoch {}"</span>, hp, getEpoch());
-<a class="jxr_linenumber" name="150" href="#150">150</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="151" href="#151">151</a>             <strong class="jxr_keyword">case</strong> DIRECT:
-<a class="jxr_linenumber" name="152" href="#152">152</a>             <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="153" href="#153">153</a>                 hp = HostAndPort.fromString(omidConf.getConnectionString());
-<a class="jxr_linenumber" name="154" href="#154">154</a>                 setTSOAddress(hp.getHostText(), hp.getPort());
-<a class="jxr_linenumber" name="155" href="#155">155</a>                 LOG.info(<span class="jxr_string">"\t* TSO host:port {} will be connected directly"</span>, hp);
-<a class="jxr_linenumber" name="156" href="#156">156</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="157" href="#157">157</a>         }
-<a class="jxr_linenumber" name="158" href="#158">158</a> 
-<a class="jxr_linenumber" name="159" href="#159">159</a>         fsmExecutor = Executors.newSingleThreadScheduledExecutor(
-<a class="jxr_linenumber" name="160" href="#160">160</a>                 <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"tsofsm-%d"</span>).build());
-<a class="jxr_linenumber" name="161" href="#161">161</a>         fsm = <strong class="jxr_keyword">new</strong> StateMachine.FsmImpl(fsmExecutor);
-<a class="jxr_linenumber" name="162" href="#162">162</a>         fsm.setInitState(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">DisconnectedState</a>(fsm));
+<a class="jxr_linenumber" name="95" href="#95">95</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="96" href="#96">96</a>      <em class="jxr_comment">// Construction</em>
+<a class="jxr_linenumber" name="97" href="#97">97</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="98" href="#98">98</a>  
+<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> newInstance(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> tsoClientConf) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a>(tsoClientConf);
+<a class="jxr_linenumber" name="101" href="#101">101</a>     }
+<a class="jxr_linenumber" name="102" href="#102">102</a> 
+<a class="jxr_linenumber" name="103" href="#103">103</a>     <em class="jxr_comment">// Avoid instantiation</em>
+<a class="jxr_linenumber" name="104" href="#104">104</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a>(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> omidConf) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <em class="jxr_comment">// Start client with Nb of active threads = 3 as maximum.</em>
+<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">int</strong> tsoExecutorThreads = omidConf.getExecutorThreads();
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>         factory = <strong class="jxr_keyword">new</strong> NioClientSocketChannelFactory(
+<a class="jxr_linenumber" name="110" href="#110">110</a>                 Executors.newCachedThreadPool(
+<a class="jxr_linenumber" name="111" href="#111">111</a>                         <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"tsoclient-boss-%d"</span>).build()),
+<a class="jxr_linenumber" name="112" href="#112">112</a>                 Executors.newCachedThreadPool(
+<a class="jxr_linenumber" name="113" href="#113">113</a>                         <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"tsoclient-worker-%d"</span>).build()), tsoExecutorThreads);
+<a class="jxr_linenumber" name="114" href="#114">114</a>         <em class="jxr_comment">// Create the bootstrap</em>
+<a class="jxr_linenumber" name="115" href="#115">115</a>         bootstrap = <strong class="jxr_keyword">new</strong> ClientBootstrap(factory);
+<a class="jxr_linenumber" name="116" href="#116">116</a> 
+<a class="jxr_linenumber" name="117" href="#117">117</a>         requestTimeoutInMs = omidConf.getRequestTimeoutInMs();
+<a class="jxr_linenumber" name="118" href="#118">118</a>         requestMaxRetries = omidConf.getRequestMaxRetries();
+<a class="jxr_linenumber" name="119" href="#119">119</a>         tsoReconnectionDelayInSecs = omidConf.getReconnectionDelayInSecs();
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>         LOG.info(<span class="jxr_string">"Connecting to TSO..."</span>);
+<a class="jxr_linenumber" name="122" href="#122">122</a>         HostAndPort hp;
+<a class="jxr_linenumber" name="123" href="#123">123</a>         <strong class="jxr_keyword">switch</strong> (omidConf.getConnectionType()) {
+<a class="jxr_linenumber" name="124" href="#124">124</a>             <strong class="jxr_keyword">case</strong> HA:
+<a class="jxr_linenumber" name="125" href="#125">125</a>                 zkClient = ZKUtils.initZKClient(omidConf.getConnectionString(),
+<a class="jxr_linenumber" name="126" href="#126">126</a>                                                 omidConf.getZkNamespace(),
+<a class="jxr_linenumber" name="127" href="#127">127</a>                                                 omidConf.getZkConnectionTimeoutInSecs());
+<a class="jxr_linenumber" name="128" href="#128">128</a>                 zkCurrentTsoPath = omidConf.getZkCurrentTsoPath();
+<a class="jxr_linenumber" name="129" href="#129">129</a>                 configureCurrentTSOServerZNodeCache(zkCurrentTsoPath);
+<a class="jxr_linenumber" name="130" href="#130">130</a>                 String tsoInfo = getCurrentTSOInfoFoundInZK(zkCurrentTsoPath);
+<a class="jxr_linenumber" name="131" href="#131">131</a>                 <em class="jxr_comment">// TSO info includes the new TSO host:port address and epoch</em>
+<a class="jxr_linenumber" name="132" href="#132">132</a>                 String[] currentTSOAndEpochArray = tsoInfo.split(<span class="jxr_string">"#"</span>);
+<a class="jxr_linenumber" name="133" href="#133">133</a>                 hp = HostAndPort.fromString(currentTSOAndEpochArray[0]);
+<a class="jxr_linenumber" name="134" href="#134">134</a>                 setTSOAddress(hp.getHostText(), hp.getPort());
+<a class="jxr_linenumber" name="135" href="#135">135</a>                 epoch = Long.parseLong(currentTSOAndEpochArray[1]);
+<a class="jxr_linenumber" name="136" href="#136">136</a>                 LOG.info(<span class="jxr_string">"\t* Current TSO host:port found in ZK: {} Epoch {}"</span>, hp, getEpoch());
+<a class="jxr_linenumber" name="137" href="#137">137</a>                 <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="138" href="#138">138</a>             <strong class="jxr_keyword">case</strong> DIRECT:
+<a class="jxr_linenumber" name="139" href="#139">139</a>             <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="140" href="#140">140</a>                 hp = HostAndPort.fromString(omidConf.getConnectionString());
+<a class="jxr_linenumber" name="141" href="#141">141</a>                 setTSOAddress(hp.getHostText(), hp.getPort());
+<a class="jxr_linenumber" name="142" href="#142">142</a>                 LOG.info(<span class="jxr_string">"\t* TSO host:port {} will be connected directly"</span>, hp);
+<a class="jxr_linenumber" name="143" href="#143">143</a>                 <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="144" href="#144">144</a>         }
+<a class="jxr_linenumber" name="145" href="#145">145</a> 
+<a class="jxr_linenumber" name="146" href="#146">146</a>         fsmExecutor = Executors.newSingleThreadScheduledExecutor(
+<a class="jxr_linenumber" name="147" href="#147">147</a>                 <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"tsofsm-%d"</span>).build());
+<a class="jxr_linenumber" name="148" href="#148">148</a>         fsm = <strong class="jxr_keyword">new</strong> StateMachine.FsmImpl(fsmExecutor);
+<a class="jxr_linenumber" name="149" href="#149">149</a>         fsm.setInitState(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">DisconnectedState</a>(fsm));
+<a class="jxr_linenumber" name="150" href="#150">150</a> 
+<a class="jxr_linenumber" name="151" href="#151">151</a>         ChannelPipeline pipeline = bootstrap.getPipeline();
+<a class="jxr_linenumber" name="152" href="#152">152</a>         pipeline.addLast(<span class="jxr_string">"lengthbaseddecoder"</span>, <strong class="jxr_keyword">new</strong> LengthFieldBasedFrameDecoder(8 * 1024, 0, 4, 0, 4));
+<a class="jxr_linenumber" name="153" href="#153">153</a>         pipeline.addLast(<span class="jxr_string">"lengthprepender"</span>, <strong class="jxr_keyword">new</strong> LengthFieldPrepender(4));
+<a class="jxr_linenumber" name="154" href="#154">154</a>         pipeline.addLast(<span class="jxr_string">"protobufdecoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufDecoder(TSOProto.Response.getDefaultInstance()));
+<a class="jxr_linenumber" name="155" href="#155">155</a>         pipeline.addLast(<span class="jxr_string">"protobufencoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufEncoder());
+<a class="jxr_linenumber" name="156" href="#156">156</a>         pipeline.addLast(<span class="jxr_string">"handler"</span>, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">Handler</a>(fsm));
+<a class="jxr_linenumber" name="157" href="#157">157</a> 
+<a class="jxr_linenumber" name="158" href="#158">158</a>         bootstrap.setOption(<span class="jxr_string">"tcpNoDelay"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="159" href="#159">159</a>         bootstrap.setOption(<span class="jxr_string">"keepAlive"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="160" href="#160">160</a>         bootstrap.setOption(<span class="jxr_string">"reuseAddress"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="161" href="#161">161</a>         bootstrap.setOption(<span class="jxr_string">"connectTimeoutMillis"</span>, 100);
+<a class="jxr_linenumber" name="162" href="#162">162</a>     }
 <a class="jxr_linenumber" name="163" href="#163">163</a> 
-<a class="jxr_linenumber" name="164" href="#164">164</a>         ChannelPipeline pipeline = bootstrap.getPipeline();
-<a class="jxr_linenumber" name="165" href="#165">165</a>         pipeline.addLast(<span class="jxr_string">"lengthbaseddecoder"</span>, <strong class="jxr_keyword">new</strong> LengthFieldBasedFrameDecoder(8 * 1024, 0, 4, 0, 4));
-<a class="jxr_linenumber" name="166" href="#166">166</a>         pipeline.addLast(<span class="jxr_string">"lengthprepender"</span>, <strong class="jxr_keyword">new</strong> LengthFieldPrepender(4));
-<a class="jxr_linenumber" name="167" href="#167">167</a>         pipeline.addLast(<span class="jxr_string">"protobufdecoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufDecoder(TSOProto.Response.getDefaultInstance()));
-<a class="jxr_linenumber" name="168" href="#168">168</a>         pipeline.addLast(<span class="jxr_string">"protobufencoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufEncoder());
-<a class="jxr_linenumber" name="169" href="#169">169</a>         pipeline.addLast(<span class="jxr_string">"handler"</span>, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">Handler</a>(fsm));
-<a class="jxr_linenumber" name="170" href="#170">170</a> 
-<a class="jxr_linenumber" name="171" href="#171">171</a>         bootstrap.setOption(<span class="jxr_string">"tcpNoDelay"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="172" href="#172">172</a>         bootstrap.setOption(<span class="jxr_string">"keepAlive"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="173" href="#173">173</a>         bootstrap.setOption(<span class="jxr_string">"reuseAddress"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="174" href="#174">174</a>         bootstrap.setOption(<span class="jxr_string">"connectTimeoutMillis"</span>, 100);
-<a class="jxr_linenumber" name="175" href="#175">175</a> 
-<a class="jxr_linenumber" name="176" href="#176">176</a>         <strong class="jxr_keyword">this</strong>.tableIDs = <strong class="jxr_keyword">new</strong> HashSet&lt;Long&gt;();
-<a class="jxr_linenumber" name="177" href="#177">177</a> 
-<a class="jxr_linenumber" name="178" href="#178">178</a>         conflictDetectionLevel = omidConf.getConflictAnalysisLevel();
-<a class="jxr_linenumber" name="179" href="#179">179</a>         rowLevelWriteSet = <strong class="jxr_keyword">new</strong> HashSet&lt;Long&gt;();
-<a class="jxr_linenumber" name="180" href="#180">180</a>     }
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="183" href="#183">183</a>     <em class="jxr_comment">// TSOProtocol interface</em>
-<a class="jxr_linenumber" name="184" href="#184">184</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a> 
-<a class="jxr_linenumber" name="186" href="#186">186</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="187" href="#187">187</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#getNewStartTimestamp()</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a>     @Override
-<a class="jxr_linenumber" name="190" href="#190">190</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; getNewStartTimestamp() {
-<a class="jxr_linenumber" name="191" href="#191">191</a>         TSOProto.Request.Builder builder = TSOProto.Request.newBuilder();
-<a class="jxr_linenumber" name="192" href="#192">192</a>         TSOProto.TimestampRequest.Builder tsreqBuilder = TSOProto.TimestampRequest.newBuilder();
-<a class="jxr_linenumber" name="193" href="#193">193</a>         builder.setTimestampRequest(tsreqBuilder.build());
-<a class="jxr_linenumber" name="194" href="#194">194</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a> request = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a>(builder.build(), requestMaxRetries);
-<a class="jxr_linenumber" name="195" href="#195">195</a>         fsm.sendEvent(request);
-<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(request);
-<a class="jxr_linenumber" name="197" href="#197">197</a>     }
-<a class="jxr_linenumber" name="198" href="#198">198</a> 
-<a class="jxr_linenumber" name="199" href="#199">199</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#commit(long, Set)</em>
-<a class="jxr_linenumber" name="201" href="#201">201</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="202" href="#202">202</a>     @Override
-<a class="jxr_linenumber" name="203" href="#203">203</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; cells) {
-<a class="jxr_linenumber" name="204" href="#204">204</a>         <strong class="jxr_keyword">return</strong> commit(transactionId, cells, <strong class="jxr_keyword">new</strong> HashSet&lt;CellId&gt;());
-<a class="jxr_linenumber" name="205" href="#205">205</a>     }
-<a class="jxr_linenumber" name="206" href="#206">206</a> 
-<a class="jxr_linenumber" name="207" href="#207">207</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#commit(long, Set, Set)</em>
-<a class="jxr_linenumber" name="209" href="#209">209</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="210" href="#210">210</a>     @Override
-<a class="jxr_linenumber" name="211" href="#211">211</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; cells, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; conflictFreeWriteSet) {
-<a class="jxr_linenumber" name="212" href="#212">212</a>         TSOProto.Request.Builder builder = TSOProto.Request.newBuilder();
-<a class="jxr_linenumber" name="213" href="#213">213</a>         TSOProto.CommitRequest.Builder commitbuilder = TSOProto.CommitRequest.newBuilder();
-<a class="jxr_linenumber" name="214" href="#214">214</a>         commitbuilder.setStartTimestamp(transactionId);
-<a class="jxr_linenumber" name="215" href="#215">215</a> 
-<a class="jxr_linenumber" name="216" href="#216">216</a>         rowLevelWriteSet.clear();
-<a class="jxr_linenumber" name="217" href="#217">217</a>         <strong class="jxr_keyword">for</strong> (CellId cell : cells) {
-<a class="jxr_linenumber" name="218" href="#218">218</a>             <strong class="jxr_keyword">long</strong> id;
-<a class="jxr_linenumber" name="219" href="#219">219</a> 
-<a class="jxr_linenumber" name="220" href="#220">220</a>             <strong class="jxr_keyword">switch</strong> (conflictDetectionLevel) {
-<a class="jxr_linenumber" name="221" href="#221">221</a>             <strong class="jxr_keyword">case</strong> ROW:
-<a class="jxr_linenumber" name="222" href="#222">222</a>                 id = cell.getRowId();
-<a class="jxr_linenumber" name="223" href="#223">223</a>                 <strong class="jxr_keyword">if</strong> (rowLevelWriteSet.contains(id)) {
-<a class="jxr_linenumber" name="224" href="#224">224</a>                     <strong class="jxr_keyword">continue</strong>;
-<a class="jxr_linenumber" name="225" href="#225">225</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="226" href="#226">226</a>                     rowLevelWriteSet.add(id);
+<a class="jxr_linenumber" name="164" href="#164">164</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="165" href="#165">165</a>     <em class="jxr_comment">// TSOProtocol interface</em>
+<a class="jxr_linenumber" name="166" href="#166">166</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="167" href="#167">167</a> 
+<a class="jxr_linenumber" name="168" href="#168">168</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#getNewStartTimestamp()</em>
+<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="171" href="#171">171</a>     @Override
+<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; getNewStartTimestamp() {
+<a class="jxr_linenumber" name="173" href="#173">173</a>         TSOProto.Request.Builder builder = TSOProto.Request.newBuilder();
+<a class="jxr_linenumber" name="174" href="#174">174</a>         TSOProto.TimestampRequest.Builder tsreqBuilder = TSOProto.TimestampRequest.newBuilder();
+<a class="jxr_linenumber" name="175" href="#175">175</a>         builder.setTimestampRequest(tsreqBuilder.build());
+<a class="jxr_linenumber" name="176" href="#176">176</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a> request = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a>(builder.build(), requestMaxRetries);
+<a class="jxr_linenumber" name="177" href="#177">177</a>         fsm.sendEvent(request);
+<a class="jxr_linenumber" name="178" href="#178">178</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(request);
+<a class="jxr_linenumber" name="179" href="#179">179</a>     }
+<a class="jxr_linenumber" name="180" href="#180">180</a> 
+<a class="jxr_linenumber" name="181" href="#181">181</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#commit(long, Set)</em>
+<a class="jxr_linenumber" name="183" href="#183">183</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a>     @Override
+<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; cells) {
+<a class="jxr_linenumber" name="186" href="#186">186</a>         TSOProto.Request.Builder builder = TSOProto.Request.newBuilder();
+<a class="jxr_linenumber" name="187" href="#187">187</a>         TSOProto.CommitRequest.Builder commitbuilder = TSOProto.CommitRequest.newBuilder();
+<a class="jxr_linenumber" name="188" href="#188">188</a>         commitbuilder.setStartTimestamp(transactionId);
+<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">for</strong> (CellId cell : cells) {
+<a class="jxr_linenumber" name="190" href="#190">190</a>             commitbuilder.addCellId(cell.getCellId());
+<a class="jxr_linenumber" name="191" href="#191">191</a>         }
+<a class="jxr_linenumber" name="192" href="#192">192</a>         builder.setCommitRequest(commitbuilder.build());
+<a class="jxr_linenumber" name="193" href="#193">193</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a> request = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a>(builder.build(), requestMaxRetries);
+<a class="jxr_linenumber" name="194" href="#194">194</a>         fsm.sendEvent(request);
+<a class="jxr_linenumber" name="195" href="#195">195</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(request);
+<a class="jxr_linenumber" name="196" href="#196">196</a>     }
+<a class="jxr_linenumber" name="197" href="#197">197</a> 
+<a class="jxr_linenumber" name="198" href="#198">198</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="199" href="#199">199</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#close()</em>
+<a class="jxr_linenumber" name="200" href="#200">200</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="201" href="#201">201</a>     @Override
+<a class="jxr_linenumber" name="202" href="#202">202</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Void&gt; close() {
+<a class="jxr_linenumber" name="203" href="#203">203</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">CloseEvent</a> closeEvent = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">CloseEvent</a>();
+<a class="jxr_linenumber" name="204" href="#204">204</a>         fsm.sendEvent(closeEvent);
+<a class="jxr_linenumber" name="205" href="#205">205</a>         closeEvent.addListener(<strong class="jxr_keyword">new</strong> Runnable() {
+<a class="jxr_linenumber" name="206" href="#206">206</a>             @Override
+<a class="jxr_linenumber" name="207" href="#207">207</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
+<a class="jxr_linenumber" name="208" href="#208">208</a>                 <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="209" href="#209">209</a>                     closeEvent.get();
+<a class="jxr_linenumber" name="210" href="#210">210</a>                 } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
+<a class="jxr_linenumber" name="211" href="#211">211</a>                     Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="212" href="#212">212</a>                     e.printStackTrace();
+<a class="jxr_linenumber" name="213" href="#213">213</a>                 } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
+<a class="jxr_linenumber" name="214" href="#214">214</a>                     e.printStackTrace();
+<a class="jxr_linenumber" name="215" href="#215">215</a>                 } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="216" href="#216">216</a>                     fsmExecutor.shutdown();
+<a class="jxr_linenumber" name="217" href="#217">217</a>                     <strong class="jxr_keyword">if</strong> (currentTSOZNode != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="218" href="#218">218</a>                         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="219" href="#219">219</a>                             currentTSOZNode.close();
+<a class="jxr_linenumber" name="220" href="#220">220</a>                         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="221" href="#221">221</a>                             e.printStackTrace();
+<a class="jxr_linenumber" name="222" href="#222">222</a>                         }
+<a class="jxr_linenumber" name="223" href="#223">223</a>                     }
+<a class="jxr_linenumber" name="224" href="#224">224</a>                     <strong class="jxr_keyword">if</strong> (zkClient != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="225" href="#225">225</a>                         zkClient.close();
+<a class="jxr_linenumber" name="226" href="#226">226</a>                     }
 <a class="jxr_linenumber" name="227" href="#227">227</a>                 }
-<a class="jxr_linenumber" name="228" href="#228">228</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="229" href="#229">229</a>             <strong class="jxr_keyword">case</strong> CELL:
-<a class="jxr_linenumber" name="230" href="#230">230</a>                 id = cell.getCellId();
-<a class="jxr_linenumber" name="231" href="#231">231</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="232" href="#232">232</a>             <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="233" href="#233">233</a>                 id = 0;
-<a class="jxr_linenumber" name="234" href="#234">234</a>                 assert (false);
-<a class="jxr_linenumber" name="235" href="#235">235</a>             }
-<a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>             commitbuilder.addCellId(id);
-<a class="jxr_linenumber" name="238" href="#238">238</a>             tableIDs.add(cell.getTableId());
-<a class="jxr_linenumber" name="239" href="#239">239</a>         }
-<a class="jxr_linenumber" name="240" href="#240">240</a> 
-<a class="jxr_linenumber" name="241" href="#241">241</a>         <strong class="jxr_keyword">for</strong> (CellId cell : conflictFreeWriteSet) {
-<a class="jxr_linenumber" name="242" href="#242">242</a>             tableIDs.add(cell.getTableId());
-<a class="jxr_linenumber" name="243" href="#243">243</a>         }
-<a class="jxr_linenumber" name="244" href="#244">244</a> 
-<a class="jxr_linenumber" name="245" href="#245">245</a>         commitbuilder.addAllTableId(tableIDs);
-<a class="jxr_linenumber" name="246" href="#246">246</a>         tableIDs.clear();
-<a class="jxr_linenumber" name="247" href="#247">247</a>         builder.setCommitRequest(commitbuilder.build());
-<a class="jxr_linenumber" name="248" href="#248">248</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a> request = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a>(builder.build(), requestMaxRetries);
-<a class="jxr_linenumber" name="249" href="#249">249</a>         fsm.sendEvent(request);
-<a class="jxr_linenumber" name="250" href="#250">250</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(request);
-<a class="jxr_linenumber" name="251" href="#251">251</a>     }
+<a class="jxr_linenumber" name="228" href="#228">228</a> 
+<a class="jxr_linenumber" name="229" href="#229">229</a>             }
+<a class="jxr_linenumber" name="230" href="#230">230</a>         }, fsmExecutor);
+<a class="jxr_linenumber" name="231" href="#231">231</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(closeEvent);
+<a class="jxr_linenumber" name="232" href="#232">232</a>     }
+<a class="jxr_linenumber" name="233" href="#233">233</a> 
+<a class="jxr_linenumber" name="234" href="#234">234</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="235" href="#235">235</a>     <em class="jxr_comment">// High availability related interface</em>
+<a class="jxr_linenumber" name="236" href="#236">236</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="237" href="#237">237</a> 
+<a class="jxr_linenumber" name="238" href="#238">238</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="239" href="#239">239</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#getEpoch()</em>
+<a class="jxr_linenumber" name="240" href="#240">240</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="241" href="#241">241</a>     @Override
+<a class="jxr_linenumber" name="242" href="#242">242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getEpoch() {
+<a class="jxr_linenumber" name="243" href="#243">243</a>         <strong class="jxr_keyword">return</strong> epoch;
+<a class="jxr_linenumber" name="244" href="#244">244</a>     }
+<a class="jxr_linenumber" name="245" href="#245">245</a> 
+<a class="jxr_linenumber" name="246" href="#246">246</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="247" href="#247">247</a>     <em class="jxr_comment">// NodeCacheListener interface</em>
+<a class="jxr_linenumber" name="248" href="#248">248</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="249" href="#249">249</a> 
+<a class="jxr_linenumber" name="250" href="#250">250</a>     @Override
+<a class="jxr_linenumber" name="251" href="#251">251</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> nodeChanged() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="252" href="#252">252</a> 
-<a class="jxr_linenumber" name="253" href="#253">253</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="254" href="#254">254</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#getFence()</em>
-<a class="jxr_linenumber" name="255" href="#255">255</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="256" href="#256">256</a>     @Override
-<a class="jxr_linenumber" name="257" href="#257">257</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; getFence(<strong class="jxr_keyword">long</strong> tableId) {
-<a class="jxr_linenumber" name="258" href="#258">258</a>         TSOProto.Request.Builder builder = TSOProto.Request.newBuilder();
-<a class="jxr_linenumber" name="259" href="#259">259</a>         TSOProto.FenceRequest.Builder fenceReqBuilder = TSOProto.FenceRequest.newBuilder();
-<a class="jxr_linenumber" name="260" href="#260">260</a>         fenceReqBuilder.setTableId(tableId);
-<a class="jxr_linenumber" name="261" href="#261">261</a>         builder.setFenceRequest(fenceReqBuilder.build());
-<a class="jxr_linenumber" name="262" href="#262">262</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a> request = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a>(builder.build(), requestMaxRetries);
-<a class="jxr_linenumber" name="263" href="#263">263</a>         fsm.sendEvent(request);
-<a class="jxr_linenumber" name="264" href="#264">264</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(request);
+<a class="jxr_linenumber" name="253" href="#253">253</a>         String tsoInfo = getCurrentTSOInfoFoundInZK(zkCurrentTsoPath);
+<a class="jxr_linenumber" name="254" href="#254">254</a>         <em class="jxr_comment">// TSO info includes the new TSO host:port address and epoch</em>
+<a class="jxr_linenumber" name="255" href="#255">255</a>         String[] currentTSOAndEpochArray = tsoInfo.split(<span class="jxr_string">"#"</span>);
+<a class="jxr_linenumber" name="256" href="#256">256</a>         HostAndPort hp = HostAndPort.fromString(currentTSOAndEpochArray[0]);
+<a class="jxr_linenumber" name="257" href="#257">257</a>         setTSOAddress(hp.getHostText(), hp.getPort());
+<a class="jxr_linenumber" name="258" href="#258">258</a>         epoch = Long.parseLong(currentTSOAndEpochArray[1]);
+<a class="jxr_linenumber" name="259" href="#259">259</a>         LOG.info(<span class="jxr_string">"CurrentTSO ZNode changed. New TSO Host &amp; Port {}/Epoch {}"</span>, hp, getEpoch());
+<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">if</strong> (currentChannel != <strong class="jxr_keyword">null</strong> &amp;&amp; currentChannel.isConnected()) {
+<a class="jxr_linenumber" name="261" href="#261">261</a>             LOG.info(<span class="jxr_string">"\tClosing channel with previous TSO {}"</span>, currentChannel);
+<a class="jxr_linenumber" name="262" href="#262">262</a>             currentChannel.close();
+<a class="jxr_linenumber" name="263" href="#263">263</a>         }
+<a class="jxr_linenumber" name="264" href="#264">264</a> 
 <a class="jxr_linenumber" name="265" href="#265">265</a>     }
 <a class="jxr_linenumber" name="266" href="#266">266</a> 
-<a class="jxr_linenumber" name="267" href="#267">267</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="268" href="#268">268</a> <em class="jxr_javadoccomment">     * @see TSOProtocol#close()</em>
-<a class="jxr_linenumber" name="269" href="#269">269</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="270" href="#270">270</a>     @Override
-<a class="jxr_linenumber" name="271" href="#271">271</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Void&gt; close() {
-<a class="jxr_linenumber" name="272" href="#272">272</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">CloseEvent</a> closeEvent = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">CloseEvent</a>();
-<a class="jxr_linenumber" name="273" href="#273">273</a>         fsm.sendEvent(closeEvent);
-<a class="jxr_linenumber" name="274" href="#274">274</a>         closeEvent.addListener(<strong class="jxr_keyword">new</strong> Runnable() {
-<a class="jxr_linenumber" name="275" href="#275">275</a>             @Override
-<a class="jxr_linenumber" name="276" href="#276">276</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
-<a class="jxr_linenumber" name="277" href="#277">277</a>                 <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="278" href="#278">278</a>                     closeEvent.get();
-<a class="jxr_linenumber" name="279" href="#279">279</a>                 } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
-<a class="jxr_linenumber" name="280" href="#280">280</a>                     Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="281" href="#281">281</a>                     e.printStackTrace();
-<a class="jxr_linenumber" name="282" href="#282">282</a>                 } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
-<a class="jxr_linenumber" name="283" href="#283">283</a>                     e.printStackTrace();
-<a class="jxr_linenumber" name="284" href="#284">284</a>                 } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="285" href="#285">285</a>                     fsmExecutor.shutdown();
-<a class="jxr_linenumber" name="286" href="#286">286</a>                     <strong class="jxr_keyword">if</strong> (currentTSOZNode != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="287" href="#287">287</a>                         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="288" href="#288">288</a>                             currentTSOZNode.close();
-<a class="jxr_linenumber" name="289" href="#289">289</a>                         } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="290" href="#290">290</a>                             e.printStackTrace();
-<a class="jxr_linenumber" name="291" href="#291">291</a>                         }
-<a class="jxr_linenumber" name="292" href="#292">292</a>                     }
-<a class="jxr_linenumber" name="293" href="#293">293</a>                     <strong class="jxr_keyword">if</strong> (zkClient != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="294" href="#294">294</a>                         zkClient.close();
-<a class="jxr_linenumber" name="295" href="#295">295</a>                     }
-<a class="jxr_linenumber" name="296" href="#296">296</a>                 }
-<a class="jxr_linenumber" name="297" href="#297">297</a> 
-<a class="jxr_linenumber" name="298" href="#298">298</a>             }
-<a class="jxr_linenumber" name="299" href="#299">299</a>         }, fsmExecutor);
-<a class="jxr_linenumber" name="300" href="#300">300</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(closeEvent);
-<a class="jxr_linenumber" name="301" href="#301">301</a>     }
+<a class="jxr_linenumber" name="267" href="#267">267</a>     <em class="jxr_comment">// ****************************************** Finite State Machine ************************************************</em>
+<a class="jxr_linenumber" name="268" href="#268">268</a> 
+<a class="jxr_linenumber" name="269" href="#269">269</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="270" href="#270">270</a>     <em class="jxr_comment">// FSM: Events</em>
+<a class="jxr_linenumber" name="271" href="#271">271</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="272" href="#272">272</a> 
+<a class="jxr_linenumber" name="273" href="#273">273</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> ParamEvent&lt;T&gt; <strong class="jxr_keyword">implements</strong> StateMachine.Event {
+<a class="jxr_linenumber" name="274" href="#274">274</a> 
+<a class="jxr_linenumber" name="275" href="#275">275</a>         <strong class="jxr_keyword">final</strong> T param;
+<a class="jxr_linenumber" name="276" href="#276">276</a> 
+<a class="jxr_linenumber" name="277" href="#277">277</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ParamEvent</a>(T param) {
+<a class="jxr_linenumber" name="278" href="#278">278</a>             <strong class="jxr_keyword">this</strong>.param = param;
+<a class="jxr_linenumber" name="279" href="#279">279</a>         }
+<a class="jxr_linenumber" name="280" href="#280">280</a> 
+<a class="jxr_linenumber" name="281" href="#281">281</a>         T getParam() {
+<a class="jxr_linenumber" name="282" href="#282">282</a>             <strong class="jxr_keyword">return</strong> param;
+<a class="jxr_linenumber" name="283" href="#283">283</a>         }
+<a class="jxr_linenumber" name="284" href="#284">284</a>     }
+<a class="jxr_linenumber" name="285" href="#285">285</a> 
+<a class="jxr_linenumber" name="286" href="#286">286</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ErrorEvent</a> <strong class="jxr_keyword">extends</strong> ParamEvent&lt;Throwable&gt; {
+<a class="jxr_linenumber" name="287" href="#287">287</a> 
+<a class="jxr_linenumber" name="288" href="#288">288</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ErrorEvent</a>(Throwable t) {
+<a class="jxr_linenumber" name="289" href="#289">289</a>             <strong class="jxr_keyword">super</strong>(t);
+<a class="jxr_linenumber" name="290" href="#290">290</a>         }
+<a class="jxr_linenumber" name="291" href="#291">291</a>     }
+<a class="jxr_linenumber" name="292" href="#292">292</a> 
+<a class="jxr_linenumber" name="293" href="#293">293</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ConnectedEvent</a> <strong class="jxr_keyword">extends</strong> ParamEvent&lt;Channel&gt; {
+<a class="jxr_linenumber" name="294" href="#294">294</a> 
+<a class="jxr_linenumber" name="295" href="#295">295</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ConnectedEvent</a>(Channel c) {
+<a class="jxr_linenumber" name="296" href="#296">296</a>             <strong class="jxr_keyword">super</strong>(c);
+<a class="jxr_linenumber" name="297" href="#297">297</a>         }
+<a class="jxr_linenumber" name="298" href="#298">298</a>     }
+<a class="jxr_linenumber" name="299" href="#299">299</a> 
+<a class="jxr_linenumber" name="300" href="#300">300</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> UserEvent&lt;T&gt; <strong class="jxr_keyword">extends</strong> AbstractFuture&lt;T&gt;
+<a class="jxr_linenumber" name="301" href="#301">301</a>             <strong class="jxr_keyword">implements</strong> StateMachine.DeferrableEvent {
 <a class="jxr_linenumber" name="302" href="#302">302</a> 
-<a class="jxr_linenumber" name="303" href="#303">303</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="304" href="#304">304</a>     <em class="jxr_comment">// High availability related interface</em>
-<a class="jxr_linenumber" name="305" href="#305">305</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="303" href="#303">303</a>         <strong class="jxr_keyword">void</strong> success(T value) {
+<a class="jxr_linenumber" name="304" href="#304">304</a>             set(value);
+<a class="jxr_linenumber" name="305" href="#305">305</a>         }
 <a class="jxr_linenumber" name="306" href="#306">306</a> 
-<a class="jxr_linenumber" name="307" href="#307">307</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="308" href="#308">308</a> <em class="jxr_javadoccomment">     * Used for high availability support.</em>
-<a class="jxr_linenumber" name="309" href="#309">309</a> <em class="jxr_javadoccomment">     * @return the epoch of the TSO server that initialized this transaction.</em>
-<a class="jxr_linenumber" name="310" href="#310">310</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="311" href="#311">311</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getEpoch() {
-<a class="jxr_linenumber" name="312" href="#312">312</a>         <strong class="jxr_keyword">return</strong> epoch;
-<a class="jxr_linenumber" name="313" href="#313">313</a>     }
+<a class="jxr_linenumber" name="307" href="#307">307</a>         @Override
+<a class="jxr_linenumber" name="308" href="#308">308</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Throwable t) {
+<a class="jxr_linenumber" name="309" href="#309">309</a>             setException(t);
+<a class="jxr_linenumber" name="310" href="#310">310</a>         }
+<a class="jxr_linenumber" name="311" href="#311">311</a>     }
+<a class="jxr_linenumber" name="312" href="#312">312</a> 
+<a class="jxr_linenumber" name="313" href="#313">313</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">CloseEvent</a> <strong class="jxr_keyword">extends</strong> UserEvent&lt;Void&gt; {
 <a class="jxr_linenumber" name="314" href="#314">314</a> 
-<a class="jxr_linenumber" name="315" href="#315">315</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="316" href="#316">316</a> <em class="jxr_javadoccomment">     * Used for family deletion</em>
-<a class="jxr_linenumber" name="317" href="#317">317</a> <em class="jxr_javadoccomment">     * @return the conflict detection level.</em>
-<a class="jxr_linenumber" name="318" href="#318">318</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="319" href="#319">319</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> getConflictDetectionLevel() {
-<a class="jxr_linenumber" name="320" href="#320">320</a>         <strong class="jxr_keyword">return</strong> conflictDetectionLevel;
-<a class="jxr_linenumber" name="321" href="#321">321</a>     }
-<a class="jxr_linenumber" name="322" href="#322">322</a> 
-<a class="jxr_linenumber" name="323" href="#323">323</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="324" href="#324">324</a> <em class="jxr_javadoccomment">     * Used for family deletion testing</em>
-<a class="jxr_linenumber" name="325" href="#325">325</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="326" href="#326">326</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConflictDetectionLevel(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> conflictDetectionLevel) {
-<a class="jxr_linenumber" name="327" href="#327">327</a>         <strong class="jxr_keyword">this</strong>.conflictDetectionLevel = conflictDetectionLevel;
-<a class="jxr_linenumber" name="328" href="#328">328</a>     }
+<a class="jxr_linenumber" name="315" href="#315">315</a>     }
+<a class="jxr_linenumber" name="316" href="#316">316</a> 
+<a class="jxr_linenumber" name="317" href="#317">317</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ChannelClosedEvent</a> <strong class="jxr_keyword">extends</strong> ParamEvent&lt;Throwable&gt; {
+<a class="jxr_linenumber" name="318" href="#318">318</a> 
+<a class="jxr_linenumber" name="319" href="#319">319</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ChannelClosedEvent</a>(Throwable t) {
+<a class="jxr_linenumber" name="320" href="#320">320</a>             <strong class="jxr_keyword">super</strong>(t);
+<a class="jxr_linenumber" name="321" href="#321">321</a>         }
+<a class="jxr_linenumber" name="322" href="#322">322</a>     }
+<a class="jxr_linenumber" name="323" href="#323">323</a> 
+<a class="jxr_linenumber" name="324" href="#324">324</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ReconnectEvent</a> <strong class="jxr_keyword">implements</strong> StateMachine.Event {
+<a class="jxr_linenumber" name="325" href="#325">325</a> 
+<a class="jxr_linenumber" name="326" href="#326">326</a>     }
+<a class="jxr_linenumber" name="327" href="#327">327</a> 
+<a class="jxr_linenumber" name="328" href="#328">328</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">HandshakeTimeoutEvent</a> <strong class="jxr_keyword">implements</strong> StateMachine.Event {
 <a class="jxr_linenumber" name="329" href="#329">329</a> 
-<a class="jxr_linenumber" name="330" href="#330">330</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="331" href="#331">331</a>     <em class="jxr_comment">// NodeCacheListener interface</em>
-<a class="jxr_linenumber" name="332" href="#332">332</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="330" href="#330">330</a>     }
+<a class="jxr_linenumber" name="331" href="#331">331</a> 
+<a class="jxr_linenumber" name="332" href="#332">332</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">TimestampRequestTimeoutEvent</a> <strong class="jxr_keyword">implements</strong> StateMachine.Event {
 <a class="jxr_linenumber" name="333" href="#333">333</a> 
-<a class="jxr_linenumber" name="334" href="#334">334</a>     @Override
-<a class="jxr_linenumber" name="335" href="#335">335</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> nodeChanged() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="336" href="#336">336</a> 
-<a class="jxr_linenumber" name="337" href="#337">337</a>         String tsoInfo = getCurrentTSOInfoFoundInZK(zkCurrentTsoPath);
-<a class="jxr_linenumber" name="338" href="#338">338</a>         <em class="jxr_comment">// TSO info includes the new TSO host:port address and epoch</em>
-<a class="jxr_linenumber" name="339" href="#339">339</a>         String[] currentTSOAndEpochArray = tsoInfo.split(<span class="jxr_string">"#"</span>);
-<a class="jxr_linenumber" name="340" href="#340">340</a>         HostAndPort hp = HostAndPort.fromString(currentTSOAndEpochArray[0]);
-<a class="jxr_linenumber" name="341" href="#341">341</a>         setTSOAddress(hp.getHostText(), hp.getPort());
-<a class="jxr_linenumber" name="342" href="#342">342</a>         epoch = Long.parseLong(currentTSOAndEpochArray[1]);
-<a class="jxr_linenumber" name="343" href="#343">343</a>         LOG.info(<span class="jxr_string">"CurrentTSO ZNode changed. New TSO Host &amp; Port {}/Epoch {}"</span>, hp, getEpoch());
-<a class="jxr_linenumber" name="344" href="#344">344</a>         <strong class="jxr_keyword">if</strong> (currentChannel != <strong class="jxr_keyword">null</strong> &amp;&amp; currentChannel.isConnected()) {
-<a class="jxr_linenumber" name="345" href="#345">345</a>             LOG.info(<span class="jxr_string">"\tClosing channel with previous TSO {}"</span>, currentChannel);
-<a class="jxr_linenumber" name="346" href="#346">346</a>             currentChannel.close();
-<a class="jxr_linenumber" name="347" href="#347">347</a>         }
+<a class="jxr_linenumber" name="334" href="#334">334</a>     }
+<a class="jxr_linenumber" name="335" href="#335">335</a> 
+<a class="jxr_linenumber" name="336" href="#336">336</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">CommitRequestTimeoutEvent</a> <strong class="jxr_keyword">implements</strong> StateMachine.Event {
+<a class="jxr_linenumber" name="337" href="#337">337</a> 
+<a class="jxr_linenumber" name="338" href="#338">338</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> startTimestamp;
+<a class="jxr_linenumber" name="339" href="#339">339</a> 
+<a class="jxr_linenumber" name="340" href="#340">340</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">CommitRequestTimeoutEvent</a>(<strong class="jxr_keyword">long</strong> startTimestamp) {
+<a class="jxr_linenumber" name="341" href="#341">341</a>             <strong class="jxr_keyword">this</strong>.startTimestamp = startTimestamp;
+<a class="jxr_linenumber" name="342" href="#342">342</a>         }
+<a class="jxr_linenumber" name="343" href="#343">343</a> 
+<a class="jxr_linenumber" name="344" href="#344">344</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getStartTimestamp() {
+<a class="jxr_linenumber" name="345" href="#345">345</a>             <strong class="jxr_keyword">return</strong> startTimestamp;
+<a class="jxr_linenumber" name="346" href="#346">346</a>         }
+<a class="jxr_linenumber" name="347" href="#347">347</a>     }
 <a class="jxr_linenumber" name="348" href="#348">348</a> 
-<a class="jxr_linenumber" name="349" href="#349">349</a>     }
+<a class="jxr_linenumber" name="349" href="#349">349</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a> <strong class="jxr_keyword">extends</strong> UserEvent&lt;Long&gt; {
 <a class="jxr_linenumber" name="350" href="#350">350</a> 
-<a class="jxr_linenumber" name="351" href="#351">351</a>     <em class="jxr_comment">// ****************************************** Finite State Machine ************************************************</em>
-<a class="jxr_linenumber" name="352" href="#352">352</a> 
-<a class="jxr_linenumber" name="353" href="#353">353</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="354" href="#354">354</a>     <em class="jxr_comment">// FSM: Events</em>
-<a class="jxr_linenumber" name="355" href="#355">355</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="356" href="#356">356</a> 
-<a class="jxr_linenumber" name="357" href="#357">357</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> ParamEvent&lt;T&gt; <strong class="jxr_keyword">implements</strong> StateMachine.Event {
+<a class="jxr_linenumber" name="351" href="#351">351</a>         TSOProto.Request req;
+<a class="jxr_linenumber" name="352" href="#352">352</a>         <strong class="jxr_keyword">int</strong> retriesLeft;
+<a class="jxr_linenumber" name="353" href="#353">353</a> 
+<a class="jxr_linenumber" name="354" href="#354">354</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">RequestEvent</a>(TSOProto.Request req, <strong class="jxr_keyword">int</strong> retriesLeft) {
+<a class="jxr_linenumber" name="355" href="#355">355</a>             <strong class="jxr_keyword">this</strong>.req = req;
+<a class="jxr_linenumber" name="356" href="#356">356</a>             <strong class="jxr_keyword">this</strong>.retriesLeft = retriesLeft;
+<a class="jxr_linenumber" name="357" href="#357">357</a>         }
 <a class="jxr_linenumber" name="358" href="#358">358</a> 
-<a class="jxr_linenumber" name="359" href="#359">359</a>         <strong class="jxr_keyword">final</strong> T param;
-<a class="jxr_linenumber" name="360" href="#360">360</a> 
-<a class="jxr_linenumber" name="361" href="#361">361</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ParamEvent</a>(T param) {
-<a class="jxr_linenumber" name="362" href="#362">362</a>             <strong class="jxr_keyword">this</strong>.param = param;
-<a class="jxr_linenumber" name="363" href="#363">363</a>         }
-<a class="jxr_linenumber" name="364" href="#364">364</a> 
-<a class="jxr_linenumber" name="365" href="#365">365</a>         T getParam() {
-<a class="jxr_linenumber" name="366" href="#366">366</a>             <strong class="jxr_keyword">return</strong> param;
-<a class="jxr_linenumber" name="367" href="#367">367</a>         }
-<a class="jxr_linenumber" name="368" href="#368">368</a>     }
-<a class="jxr_linenumber" name="369" href="#369">369</a> 
-<a class="jxr_linenumber" name="370" href="#370">370</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ErrorEvent</a> <strong class="jxr_keyword">extends</strong> ParamEvent&lt;Throwable&gt; {
-<a class="jxr_linenumber" name="371" href="#371">371</a> 
-<a class="jxr_linenumber" name="372" href="#372">372</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClient.html">ErrorEvent</a>(Throwable t) {
-<a class="jxr_linenumber" name="373" href="#373">373</a>             <strong class="jxr_keyword">super</strong>(t);
-<a class="jxr_linenumber" name="374" href="#374">374</a>         }
+<a class="jxr_linenumber" name="359" href="#359">359</a>         TSOProto.Request getRequest() {
+<a class="jxr_linenumber" name="360" href="#360">360</a>             <strong class="jxr_keyword">return</strong> req;
+<a class="jxr_linenumber" name="361" href="#361">361</a>         }
+<a class="jxr_linenumber" name="362" href="#362">362</a> 
+<a class="jxr_linenumber" name="363" href="#363">

<TRUNCATED>


[09/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/Transaction.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/Transaction.html b/xref/org/apache/omid/transaction/Transaction.html
index af52584..2d93a3e 100644
--- a/xref/org/apache/omid/transaction/Transaction.html
+++ b/xref/org/apache/omid/transaction/Transaction.html
@@ -57,49 +57,36 @@
 <a class="jxr_linenumber" name="47" href="#47">47</a>      <a href="../../../../org/apache/omid/transaction/Transaction.html">Status</a> getStatus();
 <a class="jxr_linenumber" name="48" href="#48">48</a>  
 <a class="jxr_linenumber" name="49" href="#49">49</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * Returns the read timestamp for this transaction.</em>
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * @return read timestamp</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * Forces the transaction to rollback, even when there's an intention</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * to commit it.</em>
 <a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">long</strong> getReadTimestamp();
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">void</strong> setRollbackOnly();
 <a class="jxr_linenumber" name="54" href="#54">54</a>  
 <a class="jxr_linenumber" name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * Returns the write timestamp for this transaction.</em>
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @return write timestamp</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * Returns whether the transaction was marked for rollback or not</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @return whether the transaction is marked for rollback or not</em>
 <a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>  
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">long</strong> getWriteTimestamp();
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">boolean</strong> isRollbackOnly();
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
 <a class="jxr_linenumber" name="61" href="#61">61</a>  
 <a class="jxr_linenumber" name="62" href="#62">62</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * Forces the transaction to rollback, even when there's an intention</em>
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * to commit it.</em>
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">void</strong> setRollbackOnly();
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * Returns whether the transaction was marked for rollback or not</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * @return whether the transaction is marked for rollback or not</em>
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * Set of methods to attach some metadata to a transaction object. One example</em>
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * of such metadata are notifications</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * Expects they metadata stored under key "key" to be of the "Set" type,</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * append "value" to the existing set or creates a new one</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * @param key a key, like in hashtable</em>
+<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * @param value a value to associate with the given key</em>
 <a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">boolean</strong> isRollbackOnly();
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">void</strong> appendMetadata(String key, Object value);
 <a class="jxr_linenumber" name="73" href="#73">73</a>  
 <a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * Set of methods to attach some metadata to a transaction object. One example</em>
-<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * of such metadata are notifications</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * Expects they metadata stored under key "key" to be of the "Set" type,</em>
-<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * append "value" to the existing set or creates a new one</em>
-<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * @param key a key, like in hashtable</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     * @param value a value to associate with the given key</em>
-<a class="jxr_linenumber" name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">void</strong> appendMetadata(String key, Object value);
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">void</strong> setMetadata(String key, Object value);
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>      Optional&lt;Object&gt; getMetadata(String key);
-<a class="jxr_linenumber" name="91" href="#91">91</a>  }
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">void</strong> setMetadata(String key, Object value);
+<a class="jxr_linenumber" name="76" href="#76">76</a>  
+<a class="jxr_linenumber" name="77" href="#77">77</a>      Optional&lt;Object&gt; getMetadata(String key);
+<a class="jxr_linenumber" name="78" href="#78">78</a>  }
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/TransactionManager.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/TransactionManager.html b/xref/org/apache/omid/transaction/TransactionManager.html
index 9e65336..c49fa7a 100644
--- a/xref/org/apache/omid/transaction/TransactionManager.html
+++ b/xref/org/apache/omid/transaction/TransactionManager.html
@@ -68,18 +68,7 @@
 <a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
 <a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">void</strong> rollback(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx) <strong class="jxr_keyword">throws</strong> TransactionException;
 <a class="jxr_linenumber" name="60" href="#60">60</a>  
-<a class="jxr_linenumber" name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment">    * Creates a fence</em>
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment">    *</em>
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment">    * Creates a fence and returns a {@link Transaction} interface implementation that contains the fence information.</em>
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment">    *</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment">    * @param tableName name of the table that requires a fence</em>
-<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment">    * @return transaction representation contains the fence timestamp as the TransactionId.</em>
-<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment">    * @throws TransactionException in case of any issues</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment">    */</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> fence(byte[] tableName) <strong class="jxr_keyword">throws</strong> TransactionException;
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>  }
+<a class="jxr_linenumber" name="61" href="#61">61</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/package-frame.html b/xref/org/apache/omid/transaction/package-frame.html
index e8e4308..58c7110 100644
--- a/xref/org/apache/omid/transaction/package-frame.html
+++ b/xref/org/apache/omid/transaction/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.transaction</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.transaction</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -22,9 +22,6 @@
             	<a href="AbstractTransactionManager.html" target="classFrame">AbstractTransactionManager</a>
           	</li>
           	          	<li>
-            	<a href="AttributeSetSnapshotFilter.html" target="classFrame">AttributeSetSnapshotFilter</a>
-          	</li>
-          	          	<li>
             	<a href="HBaseTransactionManager.html" target="classFrame">Builder</a>
           	</li>
           	          	<li>
@@ -37,9 +34,6 @@
             	<a href="CellInfo.html" target="classFrame">CellInfo</a>
           	</li>
           	          	<li>
-            	<a href="CellSkipFilterBase.html" target="classFrame">CellSkipFilterBase</a>
-          	</li>
-          	          	<li>
             	<a href="CellUtils.html" target="classFrame">CellUtils</a>
           	</li>
           	          	<li>
@@ -52,6 +46,9 @@
             	<a href="HBaseTransactionManager.html" target="classFrame">CommitTimestampLocatorImpl</a>
           	</li>
           	          	<li>
+            	<a href="CompactorScanner.html" target="classFrame">CompactorScanner</a>
+          	</li>
+          	          	<li>
             	<a href="CompactorUtil.html" target="classFrame">CompactorUtil</a>
           	</li>
           	          	<li>
@@ -85,30 +82,18 @@
             	<a href="HRegionCellGetterAdapter.html" target="classFrame">HRegionCellGetterAdapter</a>
           	</li>
           	          	<li>
-            	<a href="HTableAccessWrapper.html" target="classFrame">HTableAccessWrapper</a>
-          	</li>
-          	          	<li>
             	<a href="OmidCompactor.html" target="classFrame">OmidCompactor</a>
           	</li>
           	          	<li>
-            	<a href="OmidSnapshotFilter.html" target="classFrame">OmidSnapshotFilter</a>
-          	</li>
-          	          	<li>
             	<a href="PostCommitActions.html" target="classFrame">PostCommitActions</a>
           	</li>
           	          	<li>
-            	<a href="SnapshotFilterImpl.html" target="classFrame">ResultIterator</a>
+            	<a href="TTable.html" target="classFrame">ResultIterator</a>
           	</li>
           	          	<li>
             	<a href="RollbackException.html" target="classFrame">RollbackException</a>
           	</li>
           	          	<li>
-            	<a href="SnapshotFilter.html" target="classFrame">SnapshotFilter</a>
-          	</li>
-          	          	<li>
-            	<a href="SnapshotFilterImpl.html" target="classFrame">SnapshotFilterImpl</a>
-          	</li>
-          	          	<li>
             	<a href="Transaction.html" target="classFrame">Status</a>
           	</li>
           	          	<li>
@@ -118,9 +103,6 @@
             	<a href="TTableCellGetterAdapter.html" target="classFrame">TTableCellGetterAdapter</a>
           	</li>
           	          	<li>
-            	<a href="TableAccessWrapper.html" target="classFrame">TableAccessWrapper</a>
-          	</li>
-          	          	<li>
             	<a href="Transaction.html" target="classFrame">Transaction</a>
           	</li>
           	          	<li>
@@ -130,22 +112,13 @@
             	<a href="AbstractTransactionManager.html" target="classFrame">TransactionFactory</a>
           	</li>
           	          	<li>
-            	<a href="TransactionFilters.html" target="classFrame">TransactionFilters</a>
-          	</li>
-          	          	<li>
             	<a href="TransactionManager.html" target="classFrame">TransactionManager</a>
           	</li>
           	          	<li>
             	<a href="TransactionManagerException.html" target="classFrame">TransactionManagerException</a>
           	</li>
           	          	<li>
-            	<a href="TransactionVisibilityFilterBase.html" target="classFrame">TransactionVisibilityFilterBase</a>
-          	</li>
-          	          	<li>
-            	<a href="SnapshotFilterImpl.html" target="classFrame">TransactionalClientScanner</a>
-          	</li>
-          	          	<li>
-            	<a href="AbstractTransaction.html" target="classFrame">VisibilityLevel</a>
+            	<a href="TTable.html" target="classFrame">TransactionalClientScanner</a>
           	</li>
           	      	</ul>
 

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/package-summary.html b/xref/org/apache/omid/transaction/package-summary.html
index 930893f..ffb6513 100644
--- a/xref/org/apache/omid/transaction/package-summary.html
+++ b/xref/org/apache/omid/transaction/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.transaction</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.transaction</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -47,11 +47,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="AttributeSetSnapshotFilter.html" target="classFrame">AttributeSetSnapshotFilter</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="HBaseTransactionManager.html" target="classFrame">Builder</a>
               		</td>
             	</tr>
@@ -72,11 +67,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="CellSkipFilterBase.html" target="classFrame">CellSkipFilterBase</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="CellUtils.html" target="classFrame">CellUtils</a>
               		</td>
             	</tr>
@@ -97,6 +87,11 @@
             	</tr>
 				            	<tr>
               		<td>
+                		<a href="CompactorScanner.html" target="classFrame">CompactorScanner</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
                 		<a href="CompactorUtil.html" target="classFrame">CompactorUtil</a>
               		</td>
             	</tr>
@@ -152,27 +147,17 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="HTableAccessWrapper.html" target="classFrame">HTableAccessWrapper</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="OmidCompactor.html" target="classFrame">OmidCompactor</a>
               		</td>
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="OmidSnapshotFilter.html" target="classFrame">OmidSnapshotFilter</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="PostCommitActions.html" target="classFrame">PostCommitActions</a>
               		</td>
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="SnapshotFilterImpl.html" target="classFrame">ResultIterator</a>
+                		<a href="TTable.html" target="classFrame">ResultIterator</a>
               		</td>
             	</tr>
 				            	<tr>
@@ -182,16 +167,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="SnapshotFilter.html" target="classFrame">SnapshotFilter</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
-                		<a href="SnapshotFilterImpl.html" target="classFrame">SnapshotFilterImpl</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="Transaction.html" target="classFrame">Status</a>
               		</td>
             	</tr>
@@ -207,11 +182,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TableAccessWrapper.html" target="classFrame">TableAccessWrapper</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="Transaction.html" target="classFrame">Transaction</a>
               		</td>
             	</tr>
@@ -227,11 +197,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TransactionFilters.html" target="classFrame">TransactionFilters</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="TransactionManager.html" target="classFrame">TransactionManager</a>
               		</td>
             	</tr>
@@ -242,17 +207,7 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TransactionVisibilityFilterBase.html" target="classFrame">TransactionVisibilityFilterBase</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
-                		<a href="SnapshotFilterImpl.html" target="classFrame">TransactionalClientScanner</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
-                		<a href="AbstractTransaction.html" target="classFrame">VisibilityLevel</a>
+                		<a href="TTable.html" target="classFrame">TransactionalClientScanner</a>
               		</td>
             	</tr>
 				        	</tbody>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/Batch.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/Batch.html b/xref/org/apache/omid/tso/Batch.html
index c684e25..ce71ba6 100644
--- a/xref/org/apache/omid/tso/Batch.html
+++ b/xref/org/apache/omid/tso/Batch.html
@@ -113,84 +113,74 @@
 <a class="jxr_linenumber" name="103" href="#103">103</a> 
 <a class="jxr_linenumber" name="104" href="#104">104</a>     }
 <a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>     <strong class="jxr_keyword">void</strong> addFence(<strong class="jxr_keyword">long</strong> tableID, <strong class="jxr_keyword">long</strong> fenceTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context) {
+<a class="jxr_linenumber" name="106" href="#106">106</a>     <strong class="jxr_keyword">void</strong> addCommit(<strong class="jxr_keyword">long</strong> startTimestamp, <strong class="jxr_keyword">long</strong> commitTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context) {
 <a class="jxr_linenumber" name="107" href="#107">107</a> 
 <a class="jxr_linenumber" name="108" href="#108">108</a>         Preconditions.checkState(!isFull(), <span class="jxr_string">"batch is full"</span>);
 <a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">int</strong> index = numEvents++;
 <a class="jxr_linenumber" name="110" href="#110">110</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> e = events[index];
-<a class="jxr_linenumber" name="111" href="#111">111</a>         context.timerStart(<span class="jxr_string">"persistence.processor.fence.latency"</span>);
-<a class="jxr_linenumber" name="112" href="#112">112</a>         e.makePersistFence(tableID, fenceTimestamp, c, context);
+<a class="jxr_linenumber" name="111" href="#111">111</a>         context.timerStart(<span class="jxr_string">"persistence.processor.commit.latency"</span>);
+<a class="jxr_linenumber" name="112" href="#112">112</a>         e.makePersistCommit(startTimestamp, commitTimestamp, c, context);
 <a class="jxr_linenumber" name="113" href="#113">113</a> 
 <a class="jxr_linenumber" name="114" href="#114">114</a>     }
 <a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">void</strong> addCommit(<strong class="jxr_keyword">long</strong> startTimestamp, <strong class="jxr_keyword">long</strong> commitTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context) {
+<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">void</strong> addCommitRetry(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context) {
 <a class="jxr_linenumber" name="117" href="#117">117</a> 
 <a class="jxr_linenumber" name="118" href="#118">118</a>         Preconditions.checkState(!isFull(), <span class="jxr_string">"batch is full"</span>);
 <a class="jxr_linenumber" name="119" href="#119">119</a>         <strong class="jxr_keyword">int</strong> index = numEvents++;
 <a class="jxr_linenumber" name="120" href="#120">120</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> e = events[index];
-<a class="jxr_linenumber" name="121" href="#121">121</a>         context.timerStart(<span class="jxr_string">"persistence.processor.commit.latency"</span>);
-<a class="jxr_linenumber" name="122" href="#122">122</a>         e.makePersistCommit(startTimestamp, commitTimestamp, c, context);
+<a class="jxr_linenumber" name="121" href="#121">121</a>         context.timerStart(<span class="jxr_string">"persistence.processor.commit-retry.latency"</span>);
+<a class="jxr_linenumber" name="122" href="#122">122</a>         e.makeCommitRetry(startTimestamp, c, context);
 <a class="jxr_linenumber" name="123" href="#123">123</a> 
 <a class="jxr_linenumber" name="124" href="#124">124</a>     }
 <a class="jxr_linenumber" name="125" href="#125">125</a> 
-<a class="jxr_linenumber" name="126" href="#126">126</a>     <strong class="jxr_keyword">void</strong> addCommitRetry(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context) {
+<a class="jxr_linenumber" name="126" href="#126">126</a>     <strong class="jxr_keyword">void</strong> addAbort(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context) {
 <a class="jxr_linenumber" name="127" href="#127">127</a> 
 <a class="jxr_linenumber" name="128" href="#128">128</a>         Preconditions.checkState(!isFull(), <span class="jxr_string">"batch is full"</span>);
 <a class="jxr_linenumber" name="129" href="#129">129</a>         <strong class="jxr_keyword">int</strong> index = numEvents++;
 <a class="jxr_linenumber" name="130" href="#130">130</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> e = events[index];
-<a class="jxr_linenumber" name="131" href="#131">131</a>         context.timerStart(<span class="jxr_string">"persistence.processor.commit-retry.latency"</span>);
-<a class="jxr_linenumber" name="132" href="#132">132</a>         e.makeCommitRetry(startTimestamp, c, context);
+<a class="jxr_linenumber" name="131" href="#131">131</a>         context.timerStart(<span class="jxr_string">"persistence.processor.abort.latency"</span>);
+<a class="jxr_linenumber" name="132" href="#132">132</a>         e.makePersistAbort(startTimestamp, c, context);
 <a class="jxr_linenumber" name="133" href="#133">133</a> 
 <a class="jxr_linenumber" name="134" href="#134">134</a>     }
 <a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">void</strong> addAbort(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context) {
-<a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>         Preconditions.checkState(!isFull(), <span class="jxr_string">"batch is full"</span>);
-<a class="jxr_linenumber" name="139" href="#139">139</a>         <strong class="jxr_keyword">int</strong> index = numEvents++;
-<a class="jxr_linenumber" name="140" href="#140">140</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> e = events[index];
-<a class="jxr_linenumber" name="141" href="#141">141</a>         context.timerStart(<span class="jxr_string">"persistence.processor.abort.latency"</span>);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         e.makePersistAbort(startTimestamp, c, context);
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
+<a class="jxr_linenumber" name="136" href="#136">136</a>     @Override
+<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">public</strong> String toString() {
+<a class="jxr_linenumber" name="138" href="#138">138</a>         <strong class="jxr_keyword">return</strong> Objects.toStringHelper(<strong class="jxr_keyword">this</strong>)
+<a class="jxr_linenumber" name="139" href="#139">139</a>                 .add(<span class="jxr_string">"id"</span>, id)
+<a class="jxr_linenumber" name="140" href="#140">140</a>                 .add(<span class="jxr_string">"size"</span>, size)
+<a class="jxr_linenumber" name="141" href="#141">141</a>                 .add(<span class="jxr_string">"num events"</span>, numEvents)
+<a class="jxr_linenumber" name="142" href="#142">142</a>                 .add(<span class="jxr_string">"events"</span>, Arrays.toString(events))
+<a class="jxr_linenumber" name="143" href="#143">143</a>                 .toString();
 <a class="jxr_linenumber" name="144" href="#144">144</a>     }
 <a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>     @Override
-<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">return</strong> Objects.toStringHelper(<strong class="jxr_keyword">this</strong>)
-<a class="jxr_linenumber" name="149" href="#149">149</a>                 .add(<span class="jxr_string">"id"</span>, id)
-<a class="jxr_linenumber" name="150" href="#150">150</a>                 .add(<span class="jxr_string">"size"</span>, size)
-<a class="jxr_linenumber" name="151" href="#151">151</a>                 .add(<span class="jxr_string">"num events"</span>, numEvents)
-<a class="jxr_linenumber" name="152" href="#152">152</a>                 .add(<span class="jxr_string">"events"</span>, Arrays.toString(events))
-<a class="jxr_linenumber" name="153" href="#153">153</a>                 .toString();
-<a class="jxr_linenumber" name="154" href="#154">154</a>     }
+<a class="jxr_linenumber" name="146" href="#146">146</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/Batch.html">BatchFactory</a> <strong class="jxr_keyword">extends</strong> BasePooledObjectFactory&lt;Batch&gt; {
+<a class="jxr_linenumber" name="147" href="#147">147</a> 
+<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> batchId = 0;
+<a class="jxr_linenumber" name="149" href="#149">149</a> 
+<a class="jxr_linenumber" name="150" href="#150">150</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> batchSize;
+<a class="jxr_linenumber" name="151" href="#151">151</a> 
+<a class="jxr_linenumber" name="152" href="#152">152</a>         <a href="../../../../org/apache/omid/tso/Batch.html">BatchFactory</a>(<strong class="jxr_keyword">int</strong> batchSize) {
+<a class="jxr_linenumber" name="153" href="#153">153</a>             <strong class="jxr_keyword">this</strong>.batchSize = batchSize;
+<a class="jxr_linenumber" name="154" href="#154">154</a>         }
 <a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/Batch.html">BatchFactory</a> <strong class="jxr_keyword">extends</strong> BasePooledObjectFactory&lt;Batch&gt; {
-<a class="jxr_linenumber" name="157" href="#157">157</a> 
-<a class="jxr_linenumber" name="158" href="#158">158</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> batchId = 0;
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> batchSize;
-<a class="jxr_linenumber" name="161" href="#161">161</a> 
-<a class="jxr_linenumber" name="162" href="#162">162</a>         <a href="../../../../org/apache/omid/tso/Batch.html">BatchFactory</a>(<strong class="jxr_keyword">int</strong> batchSize) {
-<a class="jxr_linenumber" name="163" href="#163">163</a>             <strong class="jxr_keyword">this</strong>.batchSize = batchSize;
+<a class="jxr_linenumber" name="156" href="#156">156</a>         @Override
+<a class="jxr_linenumber" name="157" href="#157">157</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> create() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="158" href="#158">158</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a>(batchId++, batchSize);
+<a class="jxr_linenumber" name="159" href="#159">159</a>         }
+<a class="jxr_linenumber" name="160" href="#160">160</a> 
+<a class="jxr_linenumber" name="161" href="#161">161</a>         @Override
+<a class="jxr_linenumber" name="162" href="#162">162</a>         <strong class="jxr_keyword">public</strong> PooledObject&lt;Batch&gt; wrap(<a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch) {
+<a class="jxr_linenumber" name="163" href="#163">163</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> DefaultPooledObject&lt;&gt;(batch);
 <a class="jxr_linenumber" name="164" href="#164">164</a>         }
 <a class="jxr_linenumber" name="165" href="#165">165</a> 
 <a class="jxr_linenumber" name="166" href="#166">166</a>         @Override
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> create() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="168" href="#168">168</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a>(batchId++, batchSize);
+<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> passivateObject(PooledObject&lt;Batch&gt; pooledObject) {
+<a class="jxr_linenumber" name="168" href="#168">168</a>             pooledObject.getObject().clear(); <em class="jxr_comment">// Reset num events when returning the batch to the pool</em>
 <a class="jxr_linenumber" name="169" href="#169">169</a>         }
 <a class="jxr_linenumber" name="170" href="#170">170</a> 
-<a class="jxr_linenumber" name="171" href="#171">171</a>         @Override
-<a class="jxr_linenumber" name="172" href="#172">172</a>         <strong class="jxr_keyword">public</strong> PooledObject&lt;Batch&gt; wrap(<a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch) {
-<a class="jxr_linenumber" name="173" href="#173">173</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> DefaultPooledObject&lt;&gt;(batch);
-<a class="jxr_linenumber" name="174" href="#174">174</a>         }
-<a class="jxr_linenumber" name="175" href="#175">175</a> 
-<a class="jxr_linenumber" name="176" href="#176">176</a>         @Override
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> passivateObject(PooledObject&lt;Batch&gt; pooledObject) {
-<a class="jxr_linenumber" name="178" href="#178">178</a>             pooledObject.getObject().clear(); <em class="jxr_comment">// Reset num events when returning the batch to the pool</em>
-<a class="jxr_linenumber" name="179" href="#179">179</a>         }
-<a class="jxr_linenumber" name="180" href="#180">180</a> 
-<a class="jxr_linenumber" name="181" href="#181">181</a>     }
-<a class="jxr_linenumber" name="182" href="#182">182</a> 
-<a class="jxr_linenumber" name="183" href="#183">183</a> }
+<a class="jxr_linenumber" name="171" href="#171">171</a>     }
+<a class="jxr_linenumber" name="172" href="#172">172</a> 
+<a class="jxr_linenumber" name="173" href="#173">173</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/BatchPoolModule.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/BatchPoolModule.html b/xref/org/apache/omid/tso/BatchPoolModule.html
index ff2dbd8..771da63 100644
--- a/xref/org/apache/omid/tso/BatchPoolModule.html
+++ b/xref/org/apache/omid/tso/BatchPoolModule.html
@@ -62,23 +62,27 @@
 <a class="jxr_linenumber" name="52" href="#52">52</a>  
 <a class="jxr_linenumber" name="53" href="#53">53</a>          LOG.info(<span class="jxr_string">"Pool Size (# of Batches) {}; Batch Size {}"</span>, poolSize, batchSize);
 <a class="jxr_linenumber" name="54" href="#54">54</a>          LOG.info(<span class="jxr_string">"Total Batch Size (Pool size * Batch Size): {}"</span>, poolSize * batchSize);
-<a class="jxr_linenumber" name="55" href="#55">55</a>          GenericObjectPoolConfig config = <strong class="jxr_keyword">new</strong> GenericObjectPoolConfig();
-<a class="jxr_linenumber" name="56" href="#56">56</a>          config.setMaxTotal(poolSize);
-<a class="jxr_linenumber" name="57" href="#57">57</a>          config.setBlockWhenExhausted(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="58" href="#58">58</a>          GenericObjectPool&lt;Batch&gt; batchPool = <strong class="jxr_keyword">new</strong> GenericObjectPool&lt;&gt;(<strong class="jxr_keyword">new</strong> Batch.BatchFactory(batchSize), config);
-<a class="jxr_linenumber" name="59" href="#59">59</a>          LOG.info(<span class="jxr_string">"Pre-creating objects in the pool..."</span>); <em class="jxr_comment">// TODO There should be a better way to do this</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>          List&lt;Batch&gt; batches = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(poolSize);
-<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; poolSize; i++) {
-<a class="jxr_linenumber" name="62" href="#62">62</a>              batches.add(batchPool.borrowObject());
-<a class="jxr_linenumber" name="63" href="#63">63</a>          }
-<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">for</strong> (Batch batch : batches) {
-<a class="jxr_linenumber" name="65" href="#65">65</a>              batchPool.returnObject(batch);
-<a class="jxr_linenumber" name="66" href="#66">66</a>          }
-<a class="jxr_linenumber" name="67" href="#67">67</a>          <strong class="jxr_keyword">return</strong> batchPool;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      }
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>  }
+<a class="jxr_linenumber" name="55" href="#55">55</a>          <em class="jxr_comment">// Setup ObjectPool behaviour</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>          GenericObjectPoolConfig config = <strong class="jxr_keyword">new</strong> GenericObjectPoolConfig();
+<a class="jxr_linenumber" name="57" href="#57">57</a>          config.setMaxTotal(poolSize);
+<a class="jxr_linenumber" name="58" href="#58">58</a>          config.setMaxIdle(poolSize + 1); <em class="jxr_comment">// This avoids GenericObjectPool to destroy the batches when returned to</em>
+<a class="jxr_linenumber" name="59" href="#59">59</a>                                           <em class="jxr_comment">// the pool during the pre-creation below</em>
+<a class="jxr_linenumber" name="60" href="#60">60</a>          config.setBlockWhenExhausted(<strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="61" href="#61">61</a>          GenericObjectPool&lt;Batch&gt; batchPool = <strong class="jxr_keyword">new</strong> GenericObjectPool&lt;&gt;(<strong class="jxr_keyword">new</strong> Batch.BatchFactory(batchSize), config);
+<a class="jxr_linenumber" name="62" href="#62">62</a>          LOG.info(<span class="jxr_string">"Pre-creating objects in the pool..."</span>);
+<a class="jxr_linenumber" name="63" href="#63">63</a>          <em class="jxr_comment">// TODO There should be a better way to do the pre-creation below avoiding the two loops</em>
+<a class="jxr_linenumber" name="64" href="#64">64</a>          List&lt;Batch&gt; batches = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(poolSize);
+<a class="jxr_linenumber" name="65" href="#65">65</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; poolSize; i++) {
+<a class="jxr_linenumber" name="66" href="#66">66</a>              batches.add(batchPool.borrowObject());
+<a class="jxr_linenumber" name="67" href="#67">67</a>          }
+<a class="jxr_linenumber" name="68" href="#68">68</a>          <strong class="jxr_keyword">for</strong> (Batch batch : batches) {
+<a class="jxr_linenumber" name="69" href="#69">69</a>              batchPool.returnObject(batch);
+<a class="jxr_linenumber" name="70" href="#70">70</a>          }
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">return</strong> batchPool;
+<a class="jxr_linenumber" name="72" href="#72">72</a>  
+<a class="jxr_linenumber" name="73" href="#73">73</a>      }
+<a class="jxr_linenumber" name="74" href="#74">74</a>  
+<a class="jxr_linenumber" name="75" href="#75">75</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/CacheEvaluation.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/CacheEvaluation.html b/xref/org/apache/omid/tso/CacheEvaluation.html
index b7ca1cb..5dc0213 100644
--- a/xref/org/apache/omid/tso/CacheEvaluation.html
+++ b/xref/org/apache/omid/tso/CacheEvaluation.html
@@ -106,7 +106,7 @@
 <a class="jxr_linenumber" name="96" href="#96">96</a>          Runtime.getRuntime().gc();
 <a class="jxr_linenumber" name="97" href="#97">97</a>          writer.println(<span class="jxr_string">"# Free mem (MB) :"</span> + (Runtime.getRuntime().freeMemory() / (<strong class="jxr_keyword">double</strong>) (1024 * 1024)));
 <a class="jxr_linenumber" name="98" href="#98">98</a>          writer.println(<span class="jxr_string">"# Elapsed (s): "</span> + elapsedSeconds);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          writer.println(<span class="jxr_string">"# Elapsed per 100 ops (ms): "</span> + (elapsed / (<strong class="jxr_keyword">double</strong>) totalOps / 100 / 1000000));
+<a class="jxr_linenumber" name="99" href="#99">99</a>          writer.println(<span class="jxr_string">"# Elapsed per 100 ops (ms): "</span> + (elapsed / (<strong class="jxr_keyword">double</strong>) totalOps / 100 / (<strong class="jxr_keyword">double</strong>) 1000000));
 <a class="jxr_linenumber" name="100" href="#100">100</a>         writer.println(<span class="jxr_string">"# Ops per s : "</span> + (totalOps / elapsedSeconds));
 <a class="jxr_linenumber" name="101" href="#101">101</a>         writer.println(<span class="jxr_string">"# Avg gap: "</span> + (tempAvg));
 <a class="jxr_linenumber" name="102" href="#102">102</a>         writer.println(<span class="jxr_string">"# Std dev gap: "</span> + Math.sqrt((tempStdDev / ENTRIES)));

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/PersistEvent.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/PersistEvent.html b/xref/org/apache/omid/tso/PersistEvent.html
index b575b31..da901d0 100644
--- a/xref/org/apache/omid/tso/PersistEvent.html
+++ b/xref/org/apache/omid/tso/PersistEvent.html
@@ -35,7 +35,7 @@
 <a class="jxr_linenumber" name="25" href="#25">25</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx;
 <a class="jxr_linenumber" name="26" href="#26">26</a>  
 <a class="jxr_linenumber" name="27" href="#27">27</a>      enum <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> {
-<a class="jxr_linenumber" name="28" href="#28">28</a>          TIMESTAMP, COMMIT, ABORT, COMMIT_RETRY, FENCE
+<a class="jxr_linenumber" name="28" href="#28">28</a>          TIMESTAMP, COMMIT, ABORT, COMMIT_RETRY
 <a class="jxr_linenumber" name="29" href="#29">29</a>      }
 <a class="jxr_linenumber" name="30" href="#30">30</a>  
 <a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> type = <strong class="jxr_keyword">null</strong>;
@@ -81,56 +81,46 @@
 <a class="jxr_linenumber" name="71" href="#71">71</a>  
 <a class="jxr_linenumber" name="72" href="#72">72</a>      }
 <a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">void</strong> makePersistFence(<strong class="jxr_keyword">long</strong> tableID, <strong class="jxr_keyword">long</strong> fenceTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> getMonCtx() {
 <a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">this</strong>.type = Type.FENCE;
-<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">this</strong>.startTimestamp = tableID;
-<a class="jxr_linenumber" name="78" href="#78">78</a>          <strong class="jxr_keyword">this</strong>.commitTimestamp = fenceTimestamp;
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">this</strong>.channel = c;
-<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">this</strong>.monCtx = monCtx;
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">return</strong> monCtx;
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>      }
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>      <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> getType() {
 <a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>      }
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">return</strong> type;
 <a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>      <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> getMonCtx() {
+<a class="jxr_linenumber" name="84" href="#84">84</a>      }
 <a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">return</strong> monCtx;
+<a class="jxr_linenumber" name="86" href="#86">86</a>      Channel getChannel() {
 <a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>      }
+<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">return</strong> channel;
 <a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> getType() {
+<a class="jxr_linenumber" name="90" href="#90">90</a>      }
 <a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>          <strong class="jxr_keyword">return</strong> type;
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">long</strong> getStartTimestamp() {
 <a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>      }
+<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">return</strong> startTimestamp;
 <a class="jxr_linenumber" name="95" href="#95">95</a>  
-<a class="jxr_linenumber" name="96" href="#96">96</a>      Channel getChannel() {
+<a class="jxr_linenumber" name="96" href="#96">96</a>      }
 <a class="jxr_linenumber" name="97" href="#97">97</a>  
-<a class="jxr_linenumber" name="98" href="#98">98</a>          <strong class="jxr_keyword">return</strong> channel;
+<a class="jxr_linenumber" name="98" href="#98">98</a>      <strong class="jxr_keyword">long</strong> getCommitTimestamp() {
 <a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>     }
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">return</strong> commitTimestamp;
 <a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>     <strong class="jxr_keyword">long</strong> getStartTimestamp() {
+<a class="jxr_linenumber" name="102" href="#102">102</a>     }
 <a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">return</strong> startTimestamp;
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>     }
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     <strong class="jxr_keyword">long</strong> getCommitTimestamp() {
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">return</strong> commitTimestamp;
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>     }
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>     @Override
-<a class="jxr_linenumber" name="115" href="#115">115</a>     <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="116" href="#116">116</a>         <strong class="jxr_keyword">return</strong> Objects.toStringHelper(<strong class="jxr_keyword">this</strong>)
-<a class="jxr_linenumber" name="117" href="#117">117</a>                 .add(<span class="jxr_string">"type"</span>, type)
-<a class="jxr_linenumber" name="118" href="#118">118</a>                 .add(<span class="jxr_string">"ST"</span>, startTimestamp)
-<a class="jxr_linenumber" name="119" href="#119">119</a>                 .add(<span class="jxr_string">"CT"</span>, commitTimestamp)
-<a class="jxr_linenumber" name="120" href="#120">120</a>                 .toString();
-<a class="jxr_linenumber" name="121" href="#121">121</a>     }
-<a class="jxr_linenumber" name="122" href="#122">122</a> 
-<a class="jxr_linenumber" name="123" href="#123">123</a> }
+<a class="jxr_linenumber" name="104" href="#104">104</a>     @Override
+<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">public</strong> String toString() {
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">return</strong> Objects.toStringHelper(<strong class="jxr_keyword">this</strong>)
+<a class="jxr_linenumber" name="107" href="#107">107</a>                 .add(<span class="jxr_string">"type"</span>, type)
+<a class="jxr_linenumber" name="108" href="#108">108</a>                 .add(<span class="jxr_string">"ST"</span>, startTimestamp)
+<a class="jxr_linenumber" name="109" href="#109">109</a>                 .add(<span class="jxr_string">"CT"</span>, commitTimestamp)
+<a class="jxr_linenumber" name="110" href="#110">110</a>                 .toString();
+<a class="jxr_linenumber" name="111" href="#111">111</a>     }
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/PersistenceProcessor.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/PersistenceProcessor.html b/xref/org/apache/omid/tso/PersistenceProcessor.html
index 804db95..2d84bb3 100644
--- a/xref/org/apache/omid/tso/PersistenceProcessor.html
+++ b/xref/org/apache/omid/tso/PersistenceProcessor.html
@@ -43,12 +43,10 @@
 <a class="jxr_linenumber" name="33" href="#33">33</a>  
 <a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">void</strong> addTimestampToBatch(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) <strong class="jxr_keyword">throws</strong> Exception;
 <a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">void</strong> addFenceToBatch(<strong class="jxr_keyword">long</strong> tableID, <strong class="jxr_keyword">long</strong> fenceTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) <strong class="jxr_keyword">throws</strong> Exception;
+<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">void</strong> triggerCurrentBatchFlush() <strong class="jxr_keyword">throws</strong> Exception;
 <a class="jxr_linenumber" name="37" href="#37">37</a>  
-<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">void</strong> triggerCurrentBatchFlush() <strong class="jxr_keyword">throws</strong> Exception;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  
-<a class="jxr_linenumber" name="40" href="#40">40</a>      Future&lt;Void&gt; persistLowWatermark(<strong class="jxr_keyword">long</strong> lowWatermark);
-<a class="jxr_linenumber" name="41" href="#41">41</a>  }
+<a class="jxr_linenumber" name="38" href="#38">38</a>      Future&lt;Void&gt; persistLowWatermark(<strong class="jxr_keyword">long</strong> lowWatermark);
+<a class="jxr_linenumber" name="39" href="#39">39</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[32/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestShadowCells.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestShadowCells.html b/xref-test/org/apache/omid/transaction/TestShadowCells.html
index 41464eb..7a88640 100644
--- a/xref-test/org/apache/omid/transaction/TestShadowCells.html
+++ b/xref-test/org/apache/omid/transaction/TestShadowCells.html
@@ -27,500 +27,495 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.transaction.CellUtils.hasCell;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.transaction.CellUtils.hasShadowCell;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyInt;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyLong;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doThrow;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.never;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.times;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicBoolean;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.mockito.Matchers;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestShadowCells.html">TestShadowCells</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestShadowCells.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="72" href="#72">72</a>  
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_SERVER_HOST = <span class="jxr_string">"localhost"</span>;
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO_SERVER_PORT = 1234;
-<a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_TABLE = <span class="jxr_string">"test"</span>;
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FAMILY = <span class="jxr_string">"data"</span>;
-<a class="jxr_linenumber" name="78" href="#78">78</a>  
-<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row = Bytes.toBytes(<span class="jxr_string">"test-sc"</span>);
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"test-sc1"</span>);
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row2 = Bytes.toBytes(<span class="jxr_string">"test-sc2"</span>);
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row3 = Bytes.toBytes(<span class="jxr_string">"test-sc3"</span>);
-<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTableInterface;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.mockito.Matchers;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicBoolean;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.transaction.CellUtils.hasCell;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.transaction.CellUtils.hasShadowCell;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyInt;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyLong;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doThrow;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.never;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.times;
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
+<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestShadowCells.html">TestShadowCells</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestShadowCells.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>  
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_SERVER_HOST = <span class="jxr_string">"localhost"</span>;
+<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO_SERVER_PORT = 1234;
+<a class="jxr_linenumber" name="74" href="#74">74</a>  
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_TABLE = <span class="jxr_string">"test"</span>;
+<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FAMILY = <span class="jxr_string">"data"</span>;
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row = Bytes.toBytes(<span class="jxr_string">"test-sc"</span>);
+<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"test-sc1"</span>);
+<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row2 = Bytes.toBytes(<span class="jxr_string">"test-sc2"</span>);
+<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row3 = Bytes.toBytes(<span class="jxr_string">"test-sc3"</span>);
+<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
+<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
 <a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>      @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellsBasics(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="90" href="#90">90</a>  
-<a class="jxr_linenumber" name="91" href="#91">91</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="94" href="#94">94</a>  
-<a class="jxr_linenumber" name="95" href="#95">95</a>          HBaseTransaction t1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <em class="jxr_comment">// Test shadow cells are created properly</em>
-<a class="jxr_linenumber" name="98" href="#98">98</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="100" href="#100">100</a>         table.put(t1, put);
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>         <em class="jxr_comment">// Before commit test that only the cell is there</em>
-<a class="jxr_linenumber" name="103" href="#103">103</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="104" href="#104">104</a>                 <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="105" href="#105">105</a>         assertFalse(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="106" href="#106">106</a>                 <span class="jxr_string">"Shadow cell shouldn't be there"</span>);
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>         <em class="jxr_comment">// After commit test that both cell and shadow cell are there</em>
-<a class="jxr_linenumber" name="111" href="#111">111</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="112" href="#112">112</a>                 <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="113" href="#113">113</a>         assertTrue(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="114" href="#114">114</a>                 <span class="jxr_string">"Shadow cell should be there"</span>);
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>         <em class="jxr_comment">// Test that we can make a valid read after adding a shadow cell without hitting the commit table</em>
-<a class="jxr_linenumber" name="117" href="#117">117</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="120" href="#120">120</a>         hbaseOmidClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="121" href="#121">121</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="122" href="#122">122</a>         TransactionManager tm2 = HBaseTransactionManager.builder(hbaseOmidClientConf)
-<a class="jxr_linenumber" name="123" href="#123">123</a>                                                         .commitTableClient(commitTableClient)
-<a class="jxr_linenumber" name="124" href="#124">124</a>                                                         .build();
-<a class="jxr_linenumber" name="125" href="#125">125</a> 
-<a class="jxr_linenumber" name="126" href="#126">126</a>         Transaction t2 = tm2.begin();
-<a class="jxr_linenumber" name="127" href="#127">127</a>         Get get = <strong class="jxr_keyword">new</strong> Get(row);
-<a class="jxr_linenumber" name="128" href="#128">128</a>         get.addColumn(family, qualifier);
-<a class="jxr_linenumber" name="129" href="#129">129</a> 
-<a class="jxr_linenumber" name="130" href="#130">130</a>         Result getResult = table.get(t2, get);
-<a class="jxr_linenumber" name="131" href="#131">131</a>         assertTrue(Arrays.equals(data1, getResult.getValue(family, qualifier)), <span class="jxr_string">"Values should be the same"</span>);
-<a class="jxr_linenumber" name="132" href="#132">132</a>         verify(commitTableClient, never()).getCommitTimestamp(anyLong());
-<a class="jxr_linenumber" name="133" href="#133">133</a>     }
-<a class="jxr_linenumber" name="134" href="#134">134</a> 
-<a class="jxr_linenumber" name="135" href="#135">135</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCrashingAfterCommitDoesNotWriteShadowCells(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="141" href="#141">141</a>         hbaseOmidClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="143" href="#143">143</a>         PostCommitActions syncPostCommitter = spy(
-<a class="jxr_linenumber" name="144" href="#144">144</a>                 <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
-<a class="jxr_linenumber" name="145" href="#145">145</a>         AbstractTransactionManager tm = spy((AbstractTransactionManager) HBaseTransactionManager.builder(hbaseOmidClientConf)
-<a class="jxr_linenumber" name="146" href="#146">146</a>                 .postCommitter(syncPostCommitter)
-<a class="jxr_linenumber" name="147" href="#147">147</a>                 .commitTableClient(commitTableClient)
-<a class="jxr_linenumber" name="148" href="#148">148</a>                 .build());
-<a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
-<a class="jxr_linenumber" name="151" href="#151">151</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="152" href="#152">152</a> 
-<a class="jxr_linenumber" name="153" href="#153">153</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="154" href="#154">154</a> 
-<a class="jxr_linenumber" name="155" href="#155">155</a>         HBaseTransaction t1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="156" href="#156">156</a> 
-<a class="jxr_linenumber" name="157" href="#157">157</a>         <em class="jxr_comment">// Test shadow cell are created properly</em>
-<a class="jxr_linenumber" name="158" href="#158">158</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="159" href="#159">159</a>         put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="160" href="#160">160</a>         table.put(t1, put);
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="162" href="#162">162</a>             tm.commit(t1);
-<a class="jxr_linenumber" name="163" href="#163">163</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
-<a class="jxr_linenumber" name="164" href="#164">164</a>             <em class="jxr_comment">// Do nothing</em>
-<a class="jxr_linenumber" name="165" href="#165">165</a>         }
-<a class="jxr_linenumber" name="166" href="#166">166</a> 
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <em class="jxr_comment">// After commit with the emulated crash, test that only the cell is there</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="169" href="#169">169</a>                 <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="170" href="#170">170</a>         assertFalse(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="171" href="#171">171</a>                 <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="172" href="#172">172</a> 
-<a class="jxr_linenumber" name="173" href="#173">173</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="174" href="#174">174</a>         Get get = <strong class="jxr_keyword">new</strong> Get(row);
-<a class="jxr_linenumber" name="175" href="#175">175</a>         get.addColumn(family, qualifier);
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>         Result getResult = table.get(t2, get);
-<a class="jxr_linenumber" name="178" href="#178">178</a>         assertTrue(Arrays.equals(data1, getResult.getValue(family, qualifier)), <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="179" href="#179">179</a>         verify(commitTableClient, times(1)).getCommitTimestamp(anyLong());
-<a class="jxr_linenumber" name="180" href="#180">180</a>     }
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="183" href="#183">183</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellIsHealedAfterCommitCrash(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="184" href="#184">184</a> 
-<a class="jxr_linenumber" name="185" href="#185">185</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
-<a class="jxr_linenumber" name="186" href="#186">186</a> 
-<a class="jxr_linenumber" name="187" href="#187">187</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="188" href="#188">188</a>         hbaseOmidClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="189" href="#189">189</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="190" href="#190">190</a>         PostCommitActions syncPostCommitter = spy(
-<a class="jxr_linenumber" name="191" href="#191">191</a>                 <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
-<a class="jxr_linenumber" name="192" href="#192">192</a>         AbstractTransactionManager tm = spy((AbstractTransactionManager) HBaseTransactionManager.builder(hbaseOmidClientConf)
-<a class="jxr_linenumber" name="193" href="#193">193</a>                 .postCommitter(syncPostCommitter)
-<a class="jxr_linenumber" name="194" href="#194">194</a>                 .commitTableClient(commitTableClient)
-<a class="jxr_linenumber" name="195" href="#195">195</a>                 .build());
-<a class="jxr_linenumber" name="196" href="#196">196</a> 
-<a class="jxr_linenumber" name="197" href="#197">197</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
-<a class="jxr_linenumber" name="198" href="#198">198</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="199" href="#199">199</a> 
-<a class="jxr_linenumber" name="200" href="#200">200</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="201" href="#201">201</a> 
-<a class="jxr_linenumber" name="202" href="#202">202</a>         HBaseTransaction t1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a>         <em class="jxr_comment">// Test shadow cell are created properly</em>
-<a class="jxr_linenumber" name="205" href="#205">205</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="206" href="#206">206</a>         put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="207" href="#207">207</a>         table.put(t1, put);
-<a class="jxr_linenumber" name="208" href="#208">208</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="209" href="#209">209</a>             tm.commit(t1);
-<a class="jxr_linenumber" name="210" href="#210">210</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) Crash</em>
-<a class="jxr_linenumber" name="211" href="#211">211</a>             <em class="jxr_comment">// Do nothing</em>
-<a class="jxr_linenumber" name="212" href="#212">212</a>         }
-<a class="jxr_linenumber" name="213" href="#213">213</a> 
-<a class="jxr_linenumber" name="214" href="#214">214</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="215" href="#215">215</a>                 <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="216" href="#216">216</a>         assertFalse(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="217" href="#217">217</a>                 <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="220" href="#220">220</a>         Get get = <strong class="jxr_keyword">new</strong> Get(row);
-<a class="jxr_linenumber" name="221" href="#221">221</a>         get.addColumn(family, qualifier);
-<a class="jxr_linenumber" name="222" href="#222">222</a> 
-<a class="jxr_linenumber" name="223" href="#223">223</a>         <em class="jxr_comment">// This get should heal the shadow cell</em>
-<a class="jxr_linenumber" name="224" href="#224">224</a>         Result getResult = table.get(t2, get);
-<a class="jxr_linenumber" name="225" href="#225">225</a>         assertTrue(Arrays.equals(data1, getResult.getValue(family, qualifier)), <span class="jxr_string">"Values should be the same"</span>);
-<a class="jxr_linenumber" name="226" href="#226">226</a>         verify(commitTableClient, times(1)).getCommitTimestamp(anyLong());
-<a class="jxr_linenumber" name="227" href="#227">227</a> 
-<a class="jxr_linenumber" name="228" href="#228">228</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="229" href="#229">229</a>                 <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="230" href="#230">230</a>         assertTrue(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="231" href="#231">231</a>                 <span class="jxr_string">"Shadow cell should be there after being healed"</span>);
-<a class="jxr_linenumber" name="232" href="#232">232</a> 
-<a class="jxr_linenumber" name="233" href="#233">233</a>         <em class="jxr_comment">// As the shadow cell is healed, this get shouldn't have to hit the storage,</em>
-<a class="jxr_linenumber" name="234" href="#234">234</a>         <em class="jxr_comment">// so the number of invocations to commitTableClient.getCommitTimestamp()</em>
-<a class="jxr_linenumber" name="235" href="#235">235</a>         <em class="jxr_comment">// should remain the same</em>
-<a class="jxr_linenumber" name="236" href="#236">236</a>         getResult = table.get(t2, get);
-<a class="jxr_linenumber" name="237" href="#237">237</a>         assertTrue(Arrays.equals(data1, getResult.getValue(family, qualifier)), <span class="jxr_string">"Values should be the same"</span>);
-<a class="jxr_linenumber" name="238" href="#238">238</a>         verify(commitTableClient, times(1)).getCommitTimestamp(anyLong());
-<a class="jxr_linenumber" name="239" href="#239">239</a>     }
-<a class="jxr_linenumber" name="240" href="#240">240</a> 
-<a class="jxr_linenumber" name="241" href="#241">241</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="242" href="#242">242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionNeverCompletesWhenAnExceptionIsThrownUpdatingShadowCells(ITestContext context)
-<a class="jxr_linenumber" name="243" href="#243">243</a>             <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="244" href="#244">244</a> 
-<a class="jxr_linenumber" name="245" href="#245">245</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
-<a class="jxr_linenumber" name="246" href="#246">246</a> 
-<a class="jxr_linenumber" name="247" href="#247">247</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="248" href="#248">248</a>         hbaseOmidClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="249" href="#249">249</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="250" href="#250">250</a>         PostCommitActions syncPostCommitter = spy(
-<a class="jxr_linenumber" name="251" href="#251">251</a>                 <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
-<a class="jxr_linenumber" name="252" href="#252">252</a>         AbstractTransactionManager tm = spy((AbstractTransactionManager) HBaseTransactionManager.builder(hbaseOmidClientConf)
-<a class="jxr_linenumber" name="253" href="#253">253</a>                 .postCommitter(syncPostCommitter)
-<a class="jxr_linenumber" name="254" href="#254">254</a>                 .commitTableClient(commitTableClient)
-<a class="jxr_linenumber" name="255" href="#255">255</a>                 .build());
-<a class="jxr_linenumber" name="256" href="#256">256</a> 
-<a class="jxr_linenumber" name="257" href="#257">257</a>         <strong class="jxr_keyword">final</strong> TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="258" href="#258">258</a> 
-<a class="jxr_linenumber" name="259" href="#259">259</a>         HBaseTransaction tx = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="260" href="#260">260</a> 
-<a class="jxr_linenumber" name="261" href="#261">261</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="262" href="#262">262</a>         put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="263" href="#263">263</a>         table.put(tx, put);
-<a class="jxr_linenumber" name="264" href="#264">264</a> 
-<a class="jxr_linenumber" name="265" href="#265">265</a>         <em class="jxr_comment">// This line emulates an error accessing the target table by disabling it</em>
-<a class="jxr_linenumber" name="266" href="#266">266</a>         doAnswer(<strong class="jxr_keyword">new</strong> Answer&lt;ListenableFuture&lt;Void&gt;&gt;() {
-<a class="jxr_linenumber" name="267" href="#267">267</a>             @Override
-<a class="jxr_linenumber" name="268" href="#268">268</a>             <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; answer(InvocationOnMock invocation) <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="269" href="#269">269</a>                 table.flushCommits();
-<a class="jxr_linenumber" name="270" href="#270">270</a>                 HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
-<a class="jxr_linenumber" name="271" href="#271">271</a>                 admin.disableTable(TableName.valueOf(table.getTableName()));
-<a class="jxr_linenumber" name="272" href="#272">272</a>                 <strong class="jxr_keyword">return</strong> (ListenableFuture&lt;Void&gt;) invocation.callRealMethod();
-<a class="jxr_linenumber" name="273" href="#273">273</a>             }
-<a class="jxr_linenumber" name="274" href="#274">274</a>         }).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="275" href="#275">275</a> 
-<a class="jxr_linenumber" name="276" href="#276">276</a>         <em class="jxr_comment">// When committing, an IOException should be thrown in syncPostCommitter.updateShadowCells() and placed in the</em>
-<a class="jxr_linenumber" name="277" href="#277">277</a>         <em class="jxr_comment">// future as a TransactionManagerException. However, the exception is never retrieved in the</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a>         <em class="jxr_comment">// AbstractTransactionManager as the future is never checked.</em>
-<a class="jxr_linenumber" name="279" href="#279">279</a>         <em class="jxr_comment">// This requires to set the HConstants.HBASE_CLIENT_RETRIES_NUMBER in the HBase config to a finite number:</em>
-<a class="jxr_linenumber" name="280" href="#280">280</a>         <em class="jxr_comment">// e.g -&gt; hbaseConf.setInt(HBASE_CLIENT_RETRIES_NUMBER, 3); Otherwise it will get stuck in tm.commit();</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a> 
-<a class="jxr_linenumber" name="282" href="#282">282</a>         tm.commit(tx); <em class="jxr_comment">// Tx effectively commits but the post Commit Actions failed when updating the shadow cells</em>
-<a class="jxr_linenumber" name="283" href="#283">283</a> 
-<a class="jxr_linenumber" name="284" href="#284">284</a>         <em class="jxr_comment">// Re-enable table to allow the required checks below</em>
-<a class="jxr_linenumber" name="285" href="#285">285</a>         HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
-<a class="jxr_linenumber" name="286" href="#286">286</a>         admin.enableTable(TableName.valueOf(table.getTableName()));
-<a class="jxr_linenumber" name="287" href="#287">287</a> 
-<a class="jxr_linenumber" name="288" href="#288">288</a>         <em class="jxr_comment">// 1) check that shadow cell is not created...</em>
-<a class="jxr_linenumber" name="289" href="#289">289</a>         assertTrue(hasCell(row, family, qualifier, tx.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="290" href="#290">290</a>                 <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="291" href="#291">291</a>         assertFalse(hasShadowCell(row, family, qualifier, tx.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="292" href="#292">292</a>                 <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="293" href="#293">293</a>         <em class="jxr_comment">// 2) and thus, completeTransaction() was never called on the commit table...</em>
-<a class="jxr_linenumber" name="294" href="#294">294</a>         verify(commitTableClient, times(0)).completeTransaction(anyLong());
-<a class="jxr_linenumber" name="295" href="#295">295</a>         <em class="jxr_comment">// 3) ...and commit value still in commit table</em>
-<a class="jxr_linenumber" name="296" href="#296">296</a>         assertTrue(commitTableClient.getCommitTimestamp(tx.getStartTimestamp()).get().isPresent());
-<a class="jxr_linenumber" name="297" href="#297">297</a> 
-<a class="jxr_linenumber" name="298" href="#298">298</a>     }
-<a class="jxr_linenumber" name="299" href="#299">299</a> 
-<a class="jxr_linenumber" name="300" href="#300">300</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="301" href="#301">301</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRaceConditionBetweenReaderAndWriterThreads(<strong class="jxr_keyword">final</strong> ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="302" href="#302">302</a>         <strong class="jxr_keyword">final</strong> CountDownLatch readAfterCommit = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
-<a class="jxr_linenumber" name="303" href="#303">303</a>         <strong class="jxr_keyword">final</strong> CountDownLatch postCommitBegin = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
-<a class="jxr_linenumber" name="304" href="#304">304</a>         <strong class="jxr_keyword">final</strong> CountDownLatch postCommitEnd = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
-<a class="jxr_linenumber" name="305" href="#305">305</a> 
-<a class="jxr_linenumber" name="306" href="#306">306</a>         <strong class="jxr_keyword">final</strong> AtomicBoolean readFailed = <strong class="jxr_keyword">new</strong> AtomicBoolean(false);
-<a class="jxr_linenumber" name="307" href="#307">307</a>         PostCommitActions syncPostCommitter =
-<a class="jxr_linenumber" name="308" href="#308">308</a>                 spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), getCommitTable(context).getClient()));
-<a class="jxr_linenumber" name="309" href="#309">309</a>         AbstractTransactionManager tm = (AbstractTransactionManager) newTransactionManager(context, syncPostCommitter);
-<a class="jxr_linenumber" name="310" href="#310">310</a> 
-<a class="jxr_linenumber" name="311" href="#311">311</a>         doAnswer(<strong class="jxr_keyword">new</strong> Answer&lt;ListenableFuture&lt;Void&gt;&gt;() {
-<a class="jxr_linenumber" name="312" href="#312">312</a>             @Override
-<a class="jxr_linenumber" name="313" href="#313">313</a>             <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; answer(InvocationOnMock invocation) <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="314" href="#314">314</a>                 LOG.info(<span class="jxr_string">"Releasing readAfterCommit barrier"</span>);
-<a class="jxr_linenumber" name="315" href="#315">315</a>                 readAfterCommit.countDown();
-<a class="jxr_linenumber" name="316" href="#316">316</a>                 LOG.info(<span class="jxr_string">"Waiting postCommitBegin barrier"</span>);
-<a class="jxr_linenumber" name="317" href="#317">317</a>                 postCommitBegin.await();
-<a class="jxr_linenumber" name="318" href="#318">318</a>                 ListenableFuture&lt;Void&gt; result = (ListenableFuture&lt;Void&gt;) invocation.callRealMethod();
-<a class="jxr_linenumber" name="319" href="#319">319</a>                 LOG.info(<span class="jxr_string">"Releasing postCommitEnd barrier"</span>);
-<a class="jxr_linenumber" name="320" href="#320">320</a>                 postCommitEnd.countDown();
-<a class="jxr_linenumber" name="321" href="#321">321</a>                 <strong class="jxr_keyword">return</strong> result;
-<a class="jxr_linenumber" name="322" href="#322">322</a>             }
-<a class="jxr_linenumber" name="323" href="#323">323</a>         }).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="324" href="#324">324</a> 
-<a class="jxr_linenumber" name="325" href="#325">325</a>         <em class="jxr_comment">// Start transaction on write thread</em>
-<a class="jxr_linenumber" name="326" href="#326">326</a>         <strong class="jxr_keyword">final</strong> TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="327" href="#327">327</a> 
-<a class="jxr_linenumber" name="328" href="#328">328</a>         <strong class="jxr_keyword">final</strong> HBaseTransaction t1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="329" href="#329">329</a> 
-<a class="jxr_linenumber" name="330" href="#330">330</a>         <em class="jxr_comment">// Start read thread</em>
-<a class="jxr_linenumber" name="331" href="#331">331</a>         Thread readThread = <strong class="jxr_keyword">new</strong> Thread(<span class="jxr_string">"Read Thread"</span>) {
-<a class="jxr_linenumber" name="332" href="#332">332</a>             @Override
-<a class="jxr_linenumber" name="333" href="#333">333</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
-<a class="jxr_linenumber" name="334" href="#334">334</a>                 LOG.info(<span class="jxr_string">"Waiting readAfterCommit barrier"</span>);
-<a class="jxr_linenumber" name="335" href="#335">335</a>                 <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="336" href="#336">336</a>                     readAfterCommit.await();
-<a class="jxr_linenumber" name="337" href="#337">337</a>                     Table htable = table.getHTable();
-<a class="jxr_linenumber" name="338" href="#338">338</a>                     Table healer = table.getHTable();
-<a class="jxr_linenumber" name="339" href="#339">339</a> 
-<a class="jxr_linenumber" name="340" href="#340">340</a>                     <strong class="jxr_keyword">final</strong> SnapshotFilter snapshotFilter = spy(<strong class="jxr_keyword">new</strong> SnapshotFilterImpl(<strong class="jxr_keyword">new</strong> HTableAccessWrapper(htable, healer)));
-<a class="jxr_linenumber" name="341" href="#341">341</a>                     <strong class="jxr_keyword">final</strong> TTable table = <strong class="jxr_keyword">new</strong> TTable(htable ,snapshotFilter);
-<a class="jxr_linenumber" name="342" href="#342">342</a>                     doAnswer(<strong class="jxr_keyword">new</strong> Answer&lt;List&lt;KeyValue&gt;&gt;() {
-<a class="jxr_linenumber" name="343" href="#343">343</a>                         @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="344" href="#344">344</a>                         @Override
-<a class="jxr_linenumber" name="345" href="#345">345</a>                         <strong class="jxr_keyword">public</strong> List&lt;KeyValue&gt; answer(InvocationOnMock invocation) <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="346" href="#346">346</a>                             LOG.info(<span class="jxr_string">"Release postCommitBegin barrier"</span>);
-<a class="jxr_linenumber" name="347" href="#347">347</a>                             postCommitBegin.countDown();
-<a class="jxr_linenumber" name="348" href="#348">348</a>                             LOG.info(<span class="jxr_string">"Waiting postCommitEnd barrier"</span>);
-<a class="jxr_linenumber" name="349" href="#349">349</a>                             postCommitEnd.await();
-<a class="jxr_linenumber" name="350" href="#350">350</a>                             <strong class="jxr_keyword">return</strong> (List&lt;KeyValue&gt;) invocation.callRealMethod();
-<a class="jxr_linenumber" name="351" href="#351">351</a>                         }
-<a class="jxr_linenumber" name="352" href="#352">352</a>                     }).when(snapshotFilter).filterCellsForSnapshot(Matchers.&lt;List&lt;Cell&gt;&gt;any(),
-<a class="jxr_linenumber" name="353" href="#353">353</a>                             any(HBaseTransaction.<strong class="jxr_keyword">class</strong>), anyInt(), Matchers.&lt;Map&lt;String, Long&gt;&gt;any(), Matchers.&lt;Map&lt;String,byte[]&gt;&gt;any());
-<a class="jxr_linenumber" name="354" href="#354">354</a> 
-<a class="jxr_linenumber" name="355" href="#355">355</a>                     TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="356" href="#356">356</a>                     <strong class="jxr_keyword">if</strong> (hasShadowCell(row,
-<a class="jxr_linenumber" name="357" href="#357">357</a>                             family,
-<a class="jxr_linenumber" name="358" href="#358">358</a>                             qualifier,
-<a class="jxr_linenumber" name="359" href="#359">359</a>                             t1.getStartTimestamp(),
-<a class="jxr_linenumber" name="360" href="#360">360</a>                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table))) {
-<a class="jxr_linenumber" name="361" href="#361">361</a>                         readFailed.set(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="362" href="#362">362</a>                     }
-<a class="jxr_linenumber" name="363" href="#363">363</a> 
-<a class="jxr_linenumber" name="364" href="#364">364</a>                     Transaction t = tm.begin();
-<a class="jxr_linenumber" name="365" href="#365">365</a>                     Get get = <strong class="jxr_keyword">new</strong> Get(row);
-<a class="jxr_linenumber" name="366" href="#366">366</a>                     get.addColumn(family, qualifier);
-<a class="jxr_linenumber" name="367" href="#367">367</a> 
-<a class="jxr_linenumber" name="368" href="#368">368</a>                     Result getResult = table.get(t, get);
-<a class="jxr_linenumber" name="369" href="#369">369</a>                     Cell cell = getResult.getColumnLatestCell(family, qualifier);
-<a class="jxr_linenumber" name="370" href="#370">370</a>                     <strong class="jxr_keyword">if</strong> (!Arrays.equals(data1, CellUtil.cloneValue(cell))
-<a class="jxr_linenumber" name="371" href="#371">371</a>                             || !hasShadowCell(row,
-<a class="jxr_linenumber" name="372" href="#372">372</a>                             family,
-<a class="jxr_linenumber" name="373" href="#373">373</a>                             qualifier,
-<a class="jxr_linenumber" name="374" href="#374">374</a>                             cell.getTimestamp(),
-<a class="jxr_linenumber" name="375" href="#375">375</a>                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table))) {
-<a class="jxr_linenumber" name="376" href="#376">376</a>                         readFailed.set(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="377" href="#377">377</a>                     } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="378" href="#378">378</a>                         LOG.info(<span class="jxr_string">"Read succeeded"</span>);
-<a class="jxr_linenumber" name="379" href="#379">379</a>                     }
-<a class="jxr_linenumber" name="380" href="#380">380</a>                 } <strong class="jxr_keyword">catch</strong> (Throwable e) {
-<a class="jxr_linenumber" name="381" href="#381">381</a>                     readFailed.set(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="382" href="#382">382</a>                     LOG.error(<span class="jxr_string">"Error whilst reading"</span>, e);
-<a class="jxr_linenumber" name="383" href="#383">383</a>                 }
-<a class="jxr_linenumber" name="384" href="#384">384</a>             }
-<a class="jxr_linenumber" name="385" href="#385">385</a>         };
-<a class="jxr_linenumber" name="386" href="#386">386</a>         readThread.start();
-<a class="jxr_linenumber" name="387" href="#387">387</a> 
-<a class="jxr_linenumber" name="388" href="#388">388</a>         <em class="jxr_comment">// Write data</em>
-<a class="jxr_linenumber" name="389" href="#389">389</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="390" href="#390">390</a>         put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="391" href="#391">391</a>         table.put(t1, put);
-<a class="jxr_linenumber" name="392" href="#392">392</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="393" href="#393">393</a> 
-<a class="jxr_linenumber" name="394" href="#394">394</a>         readThread.join();
-<a class="jxr_linenumber" name="395" href="#395">395</a> 
-<a class="jxr_linenumber" name="396" href="#396">396</a>         assertFalse(readFailed.get(), <span class="jxr_string">"Read should have succeeded"</span>);
+<a class="jxr_linenumber" name="87" href="#87">87</a>      @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellsBasics(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="89" href="#89">89</a>  
+<a class="jxr_linenumber" name="90" href="#90">90</a>          TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="91" href="#91">91</a>  
+<a class="jxr_linenumber" name="92" href="#92">92</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="93" href="#93">93</a>  
+<a class="jxr_linenumber" name="94" href="#94">94</a>          HBaseTransaction t1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>          <em class="jxr_comment">// Test shadow cells are created properly</em>
+<a class="jxr_linenumber" name="97" href="#97">97</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="98" href="#98">98</a>          put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="99" href="#99">99</a>          table.put(t1, put);
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>         <em class="jxr_comment">// Before commit test that only the cell is there</em>
+<a class="jxr_linenumber" name="102" href="#102">102</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="103" href="#103">103</a>                 <span class="jxr_string">"Cell should be there"</span>);
+<a class="jxr_linenumber" name="104" href="#104">104</a>         assertFalse(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="105" href="#105">105</a>                 <span class="jxr_string">"Shadow cell shouldn't be there"</span>);
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>         tm.commit(t1);
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>         <em class="jxr_comment">// After commit test that both cell and shadow cell are there</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="111" href="#111">111</a>                 <span class="jxr_string">"Cell should be there"</span>);
+<a class="jxr_linenumber" name="112" href="#112">112</a>         assertTrue(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="113" href="#113">113</a>                 <span class="jxr_string">"Shadow cell should be there"</span>);
+<a class="jxr_linenumber" name="114" href="#114">114</a> 
+<a class="jxr_linenumber" name="115" href="#115">115</a>         <em class="jxr_comment">// Test that we can make a valid read after adding a shadow cell without hitting the commit table</em>
+<a class="jxr_linenumber" name="116" href="#116">116</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
+<a class="jxr_linenumber" name="117" href="#117">117</a> 
+<a class="jxr_linenumber" name="118" href="#118">118</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="119" href="#119">119</a>         hbaseOmidClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="120" href="#120">120</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="121" href="#121">121</a>         TransactionManager tm2 = HBaseTransactionManager.builder(hbaseOmidClientConf)
+<a class="jxr_linenumber" name="122" href="#122">122</a>                                                         .commitTableClient(commitTableClient)
+<a class="jxr_linenumber" name="123" href="#123">123</a>                                                         .build();
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a>         Transaction t2 = tm2.begin();
+<a class="jxr_linenumber" name="126" href="#126">126</a>         Get get = <strong class="jxr_keyword">new</strong> Get(row);
+<a class="jxr_linenumber" name="127" href="#127">127</a>         get.addColumn(family, qualifier);
+<a class="jxr_linenumber" name="128" href="#128">128</a> 
+<a class="jxr_linenumber" name="129" href="#129">129</a>         Result getResult = table.get(t2, get);
+<a class="jxr_linenumber" name="130" href="#130">130</a>         assertTrue(Arrays.equals(data1, getResult.getValue(family, qualifier)), <span class="jxr_string">"Values should be the same"</span>);
+<a class="jxr_linenumber" name="131" href="#131">131</a>         verify(commitTableClient, never()).getCommitTimestamp(anyLong());
+<a class="jxr_linenumber" name="132" href="#132">132</a>     }
+<a class="jxr_linenumber" name="133" href="#133">133</a> 
+<a class="jxr_linenumber" name="134" href="#134">134</a>     @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCrashingAfterCommitDoesNotWriteShadowCells(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="136" href="#136">136</a> 
+<a class="jxr_linenumber" name="137" href="#137">137</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="140" href="#140">140</a>         hbaseOmidClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="141" href="#141">141</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="142" href="#142">142</a>         PostCommitActions syncPostCommitter = spy(
+<a class="jxr_linenumber" name="143" href="#143">143</a>                 <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
+<a class="jxr_linenumber" name="144" href="#144">144</a>         AbstractTransactionManager tm = spy((AbstractTransactionManager) HBaseTransactionManager.builder(hbaseOmidClientConf)
+<a class="jxr_linenumber" name="145" href="#145">145</a>                 .postCommitter(syncPostCommitter)
+<a class="jxr_linenumber" name="146" href="#146">146</a>                 .commitTableClient(commitTableClient)
+<a class="jxr_linenumber" name="147" href="#147">147</a>                 .build());
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
+<a class="jxr_linenumber" name="150" href="#150">150</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="151" href="#151">151</a> 
+<a class="jxr_linenumber" name="152" href="#152">152</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="153" href="#153">153</a> 
+<a class="jxr_linenumber" name="154" href="#154">154</a>         HBaseTransaction t1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="155" href="#155">155</a> 
+<a class="jxr_linenumber" name="156" href="#156">156</a>         <em class="jxr_comment">// Test shadow cell are created properly</em>
+<a class="jxr_linenumber" name="157" href="#157">157</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="158" href="#158">158</a>         put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="159" href="#159">159</a>         table.put(t1, put);
+<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="161" href="#161">161</a>             tm.commit(t1);
+<a class="jxr_linenumber" name="162" href="#162">162</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
+<a class="jxr_linenumber" name="163" href="#163">163</a>             <em class="jxr_comment">// Do nothing</em>
+<a class="jxr_linenumber" name="164" href="#164">164</a>         }
+<a class="jxr_linenumber" name="165" href="#165">165</a> 
+<a class="jxr_linenumber" name="166" href="#166">166</a>         <em class="jxr_comment">// After commit with the emulated crash, test that only the cell is there</em>
+<a class="jxr_linenumber" name="167" href="#167">167</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="168" href="#168">168</a>                 <span class="jxr_string">"Cell should be there"</span>);
+<a class="jxr_linenumber" name="169" href="#169">169</a>         assertFalse(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="170" href="#170">170</a>                 <span class="jxr_string">"Shadow cell should not be there"</span>);
+<a class="jxr_linenumber" name="171" href="#171">171</a> 
+<a class="jxr_linenumber" name="172" href="#172">172</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="173" href="#173">173</a>         Get get = <strong class="jxr_keyword">new</strong> Get(row);
+<a class="jxr_linenumber" name="174" href="#174">174</a>         get.addColumn(family, qualifier);
+<a class="jxr_linenumber" name="175" href="#175">175</a> 
+<a class="jxr_linenumber" name="176" href="#176">176</a>         Result getResult = table.get(t2, get);
+<a class="jxr_linenumber" name="177" href="#177">177</a>         assertTrue(Arrays.equals(data1, getResult.getValue(family, qualifier)), <span class="jxr_string">"Shadow cell should not be there"</span>);
+<a class="jxr_linenumber" name="178" href="#178">178</a>         verify(commitTableClient, times(1)).getCommitTimestamp(anyLong());
+<a class="jxr_linenumber" name="179" href="#179">179</a>     }
+<a class="jxr_linenumber" name="180" href="#180">180</a> 
+<a class="jxr_linenumber" name="181" href="#181">181</a>     @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellIsHealedAfterCommitCrash(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="183" href="#183">183</a> 
+<a class="jxr_linenumber" name="184" href="#184">184</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
+<a class="jxr_linenumber" name="185" href="#185">185</a> 
+<a class="jxr_linenumber" name="186" href="#186">186</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="187" href="#187">187</a>         hbaseOmidClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="188" href="#188">188</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="189" href="#189">189</a>         PostCommitActions syncPostCommitter = spy(
+<a class="jxr_linenumber" name="190" href="#190">190</a>                 <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
+<a class="jxr_linenumber" name="191" href="#191">191</a>         AbstractTransactionManager tm = spy((AbstractTransactionManager) HBaseTransactionManager.builder(hbaseOmidClientConf)
+<a class="jxr_linenumber" name="192" href="#192">192</a>                 .postCommitter(syncPostCommitter)
+<a class="jxr_linenumber" name="193" href="#193">193</a>                 .commitTableClient(commitTableClient)
+<a class="jxr_linenumber" name="194" href="#194">194</a>                 .build());
+<a class="jxr_linenumber" name="195" href="#195">195</a> 
+<a class="jxr_linenumber" name="196" href="#196">196</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
+<a class="jxr_linenumber" name="197" href="#197">197</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="198" href="#198">198</a> 
+<a class="jxr_linenumber" name="199" href="#199">199</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="200" href="#200">200</a> 
+<a class="jxr_linenumber" name="201" href="#201">201</a>         HBaseTransaction t1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="202" href="#202">202</a> 
+<a class="jxr_linenumber" name="203" href="#203">203</a>         <em class="jxr_comment">// Test shadow cell are created properly</em>
+<a class="jxr_linenumber" name="204" href="#204">204</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="205" href="#205">205</a>         put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="206" href="#206">206</a>         table.put(t1, put);
+<a class="jxr_linenumber" name="207" href="#207">207</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="208" href="#208">208</a>             tm.commit(t1);
+<a class="jxr_linenumber" name="209" href="#209">209</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) Crash</em>
+<a class="jxr_linenumber" name="210" href="#210">210</a>             <em class="jxr_comment">// Do nothing</em>
+<a class="jxr_linenumber" name="211" href="#211">211</a>         }
+<a class="jxr_linenumber" name="212" href="#212">212</a> 
+<a class="jxr_linenumber" name="213" href="#213">213</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="214" href="#214">214</a>                 <span class="jxr_string">"Cell should be there"</span>);
+<a class="jxr_linenumber" name="215" href="#215">215</a>         assertFalse(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="216" href="#216">216</a>                 <span class="jxr_string">"Shadow cell should not be there"</span>);
+<a class="jxr_linenumber" name="217" href="#217">217</a> 
+<a class="jxr_linenumber" name="218" href="#218">218</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="219" href="#219">219</a>         Get get = <strong class="jxr_keyword">new</strong> Get(row);
+<a class="jxr_linenumber" name="220" href="#220">220</a>         get.addColumn(family, qualifier);
+<a class="jxr_linenumber" name="221" href="#221">221</a> 
+<a class="jxr_linenumber" name="222" href="#222">222</a>         <em class="jxr_comment">// This get should heal the shadow cell</em>
+<a class="jxr_linenumber" name="223" href="#223">223</a>         Result getResult = table.get(t2, get);
+<a class="jxr_linenumber" name="224" href="#224">224</a>         assertTrue(Arrays.equals(data1, getResult.getValue(family, qualifier)), <span class="jxr_string">"Values should be the same"</span>);
+<a class="jxr_linenumber" name="225" href="#225">225</a>         verify(commitTableClient, times(1)).getCommitTimestamp(anyLong());
+<a class="jxr_linenumber" name="226" href="#226">226</a> 
+<a class="jxr_linenumber" name="227" href="#227">227</a>         assertTrue(hasCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="228" href="#228">228</a>                 <span class="jxr_string">"Cell should be there"</span>);
+<a class="jxr_linenumber" name="229" href="#229">229</a>         assertTrue(hasShadowCell(row, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="230" href="#230">230</a>                 <span class="jxr_string">"Shadow cell should be there after being healed"</span>);
+<a class="jxr_linenumber" name="231" href="#231">231</a> 
+<a class="jxr_linenumber" name="232" href="#232">232</a>         <em class="jxr_comment">// As the shadow cell is healed, this get shouldn't have to hit the storage,</em>
+<a class="jxr_linenumber" name="233" href="#233">233</a>         <em class="jxr_comment">// so the number of invocations to commitTableClient.getCommitTimestamp()</em>
+<a class="jxr_linenumber" name="234" href="#234">234</a>         <em class="jxr_comment">// should remain the same</em>
+<a class="jxr_linenumber" name="235" href="#235">235</a>         getResult = table.get(t2, get);
+<a class="jxr_linenumber" name="236" href="#236">236</a>         assertTrue(Arrays.equals(data1, getResult.getValue(family, qualifier)), <span class="jxr_string">"Values should be the same"</span>);
+<a class="jxr_linenumber" name="237" href="#237">237</a>         verify(commitTableClient, times(1)).getCommitTimestamp(anyLong());
+<a class="jxr_linenumber" name="238" href="#238">238</a>     }
+<a class="jxr_linenumber" name="239" href="#239">239</a> 
+<a class="jxr_linenumber" name="240" href="#240">240</a>     @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="241" href="#241">241</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionNeverCompletesWhenAnExceptionIsThrownUpdatingShadowCells(ITestContext context)
+<a class="jxr_linenumber" name="242" href="#242">242</a>             <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="243" href="#243">243</a> 
+<a class="jxr_linenumber" name="244" href="#244">244</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
+<a class="jxr_linenumber" name="245" href="#245">245</a> 
+<a class="jxr_linenumber" name="246" href="#246">246</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="247" href="#247">247</a>         hbaseOmidClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="248" href="#248">248</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="249" href="#249">249</a>         PostCommitActions syncPostCommitter = spy(
+<a class="jxr_linenumber" name="250" href="#250">250</a>                 <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
+<a class="jxr_linenumber" name="251" href="#251">251</a>         AbstractTransactionManager tm = spy((AbstractTransactionManager) HBaseTransactionManager.builder(hbaseOmidClientConf)
+<a class="jxr_linenumber" name="252" href="#252">252</a>                 .postCommitter(syncPostCommitter)
+<a class="jxr_linenumber" name="253" href="#253">253</a>                 .commitTableClient(commitTableClient)
+<a class="jxr_linenumber" name="254" href="#254">254</a>                 .build());
+<a class="jxr_linenumber" name="255" href="#255">255</a> 
+<a class="jxr_linenumber" name="256" href="#256">256</a>         <strong class="jxr_keyword">final</strong> TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="257" href="#257">257</a> 
+<a class="jxr_linenumber" name="258" href="#258">258</a>         HBaseTransaction tx = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="259" href="#259">259</a> 
+<a class="jxr_linenumber" name="260" href="#260">260</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="261" href="#261">261</a>         put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="262" href="#262">262</a>         table.put(tx, put);
+<a class="jxr_linenumber" name="263" href="#263">263</a> 
+<a class="jxr_linenumber" name="264" href="#264">264</a>         <em class="jxr_comment">// This line emulates an error accessing the target table by disabling it</em>
+<a class="jxr_linenumber" name="265" href="#265">265</a>         doAnswer(<strong class="jxr_keyword">new</strong> Answer&lt;ListenableFuture&lt;Void&gt;&gt;() {
+<a class="jxr_linenumber" name="266" href="#266">266</a>             @Override
+<a class="jxr_linenumber" name="267" href="#267">267</a>             <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; answer(InvocationOnMock invocation) <strong class="jxr_keyword">throws</strong> Throwable {
+<a class="jxr_linenumber" name="268" href="#268">268</a>                 table.flushCommits();
+<a class="jxr_linenumber" name="269" href="#269">269</a>                 HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
+<a class="jxr_linenumber" name="270" href="#270">270</a>                 admin.disableTable(table.getTableName());
+<a class="jxr_linenumber" name="271" href="#271">271</a>                 <strong class="jxr_keyword">return</strong> (ListenableFuture&lt;Void&gt;) invocation.callRealMethod();
+<a class="jxr_linenumber" name="272" href="#272">272</a>             }
+<a class="jxr_linenumber" name="273" href="#273">273</a>         }).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="274" href="#274">274</a> 
+<a class="jxr_linenumber" name="275" href="#275">275</a>         <em class="jxr_comment">// When committing, an IOException should be thrown in syncPostCommitter.updateShadowCells() and placed in the</em>
+<a class="jxr_linenumber" name="276" href="#276">276</a>         <em class="jxr_comment">// future as a TransactionManagerException. However, the exception is never retrieved in the</em>
+<a class="jxr_linenumber" name="277" href="#277">277</a>         <em class="jxr_comment">// AbstractTransactionManager as the future is never checked.</em>
+<a class="jxr_linenumber" name="278" href="#278">278</a>         <em class="jxr_comment">// This requires to set the HConstants.HBASE_CLIENT_RETRIES_NUMBER in the HBase config to a finite number:</em>
+<a class="jxr_linenumber" name="279" href="#279">279</a>         <em class="jxr_comment">// e.g -&gt; hbaseConf.setInt(HBASE_CLIENT_RETRIES_NUMBER, 3); Otherwise it will get stuck in tm.commit();</em>
+<a class="jxr_linenumber" name="280" href="#280">280</a> 
+<a class="jxr_linenumber" name="281" href="#281">281</a>         tm.commit(tx); <em class="jxr_comment">// Tx effectively commits but the post Commit Actions failed when updating the shadow cells</em>
+<a class="jxr_linenumber" name="282" href="#282">282</a> 
+<a class="jxr_linenumber" name="283" href="#283">283</a>         <em class="jxr_comment">// Re-enable table to allow the required checks below</em>
+<a class="jxr_linenumber" name="284" href="#284">284</a>         HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
+<a class="jxr_linenumber" name="285" href="#285">285</a>         admin.enableTable(table.getTableName());
+<a class="jxr_linenumber" name="286" href="#286">286</a> 
+<a class="jxr_linenumber" name="287" href="#287">287</a>         <em class="jxr_comment">// 1) check that shadow cell is not created...</em>
+<a class="jxr_linenumber" name="288" href="#288">288</a>         assertTrue(hasCell(row, family, qualifier, tx.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="289" href="#289">289</a>                 <span class="jxr_string">"Cell should be there"</span>);
+<a class="jxr_linenumber" name="290" href="#290">290</a>         assertFalse(hasShadowCell(row, family, qualifier, tx.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="291" href="#291">291</a>                 <span class="jxr_string">"Shadow cell should not be there"</span>);
+<a class="jxr_linenumber" name="292" href="#292">292</a>         <em class="jxr_comment">// 2) and thus, completeTransaction() was never called on the commit table...</em>
+<a class="jxr_linenumber" name="293" href="#293">293</a>         verify(commitTableClient, times(0)).completeTransaction(anyLong());
+<a class="jxr_linenumber" name="294" href="#294">294</a>         <em class="jxr_comment">// 3) ...and commit value still in commit table</em>
+<a class="jxr_linenumber" name="295" href="#295">295</a>         assertTrue(commitTableClient.getCommitTimestamp(tx.getStartTimestamp()).get().isPresent());
+<a class="jxr_linenumber" name="296" href="#296">296</a> 
+<a class="jxr_linenumber" name="297" href="#297">297</a>     }
+<a class="jxr_linenumber" name="298" href="#298">298</a> 
+<a class="jxr_linenumber" name="299" href="#299">299</a>     @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="300" href="#300">300</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRaceConditionBetweenReaderAndWriterThreads(<strong class="jxr_keyword">final</strong> ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="301" href="#301">301</a>         <strong class="jxr_keyword">final</strong> CountDownLatch readAfterCommit = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
+<a class="jxr_linenumber" name="302" href="#302">302</a>         <strong class="jxr_keyword">final</strong> CountDownLatch postCommitBegin = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
+<a class="jxr_linenumber" name="303" href="#303">303</a>         <strong class="jxr_keyword">final</strong> CountDownLatch postCommitEnd = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
+<a class="jxr_linenumber" name="304" href="#304">304</a> 
+<a class="jxr_linenumber" name="305" href="#305">305</a>         <strong class="jxr_keyword">final</strong> AtomicBoolean readFailed = <strong class="jxr_keyword">new</strong> AtomicBoolean(false);
+<a class="jxr_linenumber" name="306" href="#306">306</a>         PostCommitActions syncPostCommitter =
+<a class="jxr_linenumber" name="307" href="#307">307</a>                 spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), getCommitTable(context).getClient()));
+<a class="jxr_linenumber" name="308" href="#308">308</a>         AbstractTransactionManager tm = (AbstractTransactionManager) newTransactionManager(context, syncPostCommitter);
+<a class="jxr_linenumber" name="309" href="#309">309</a> 
+<a class="jxr_linenumber" name="310" href="#310">310</a>         doAnswer(<strong clas

<TRUNCATED>


[42/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/OmidTestBase.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/OmidTestBase.html b/xref-test/org/apache/omid/transaction/OmidTestBase.html
index 0597f09..4567a05 100644
--- a/xref-test/org/apache/omid/transaction/OmidTestBase.html
+++ b/xref-test/org/apache/omid/transaction/OmidTestBase.html
@@ -27,252 +27,244 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.hadoop.hbase.HConstants.HBASE_CLIENT_RETRIES_NUMBER;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MiniHBaseCluster;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.HBaseShims;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.InMemoryCommitTable;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.OmidTableManager;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOMockModule;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterGroups;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeGroups;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Guice;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Injector;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.InMemoryCommitTable;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.OmidTableManager;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOMockModule;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MiniHBaseCluster;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterGroups;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeGroups;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.hadoop.hbase.HConstants.HBASE_CLIENT_RETRIES_NUMBER;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
 <a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Guice;
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Injector;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(OmidTestBase.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">static</strong> HBaseTestingUtility hBaseUtils;
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> MiniHBaseCluster hbaseCluster;
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">static</strong> Configuration hbaseConf;
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">static</strong> Connection connection;
-<a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_TABLE = <span class="jxr_string">"test"</span>;
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FAMILY = <span class="jxr_string">"data"</span>;
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FAMILY2 = <span class="jxr_string">"data2"</span>;
-<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> HBaseCommitTableConfig hBaseCommitTableConfig;
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(OmidTestBase.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">static</strong> HBaseTestingUtility hBaseUtils;
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> MiniHBaseCluster hbaseCluster;
+<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">static</strong> Configuration hbaseConf;
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_TABLE = <span class="jxr_string">"test"</span>;
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FAMILY = <span class="jxr_string">"data"</span>;
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FAMILY2 = <span class="jxr_string">"data2"</span>;
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> HBaseCommitTableConfig hBaseCommitTableConfig;
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>      @BeforeMethod(alwaysRun = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeClass(Method method) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="76" href="#76">76</a>          Thread.currentThread().setName(<span class="jxr_string">"UnitTest-"</span> + method.getName());
+<a class="jxr_linenumber" name="77" href="#77">77</a>      }
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
 <a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      @BeforeMethod(alwaysRun = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeClass(Method method) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="82" href="#82">82</a>          Thread.currentThread().setName(<span class="jxr_string">"UnitTest-"</span> + method.getName());
-<a class="jxr_linenumber" name="83" href="#83">83</a>      }
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>      @BeforeGroups(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeGroups(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="88" href="#88">88</a>          <em class="jxr_comment">// TSO Setup</em>
-<a class="jxr_linenumber" name="89" href="#89">89</a>          TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="90" href="#90">90</a>          tsoConfig.setPort(1234);
-<a class="jxr_linenumber" name="91" href="#91">91</a>          tsoConfig.setConflictMapSize(1000);
-<a class="jxr_linenumber" name="92" href="#92">92</a>          Injector injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(tsoConfig));
-<a class="jxr_linenumber" name="93" href="#93">93</a>          LOG.info(<span class="jxr_string">"Starting TSO"</span>);
-<a class="jxr_linenumber" name="94" href="#94">94</a>          TSOServer tso = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="95" href="#95">95</a>          hBaseCommitTableConfig = injector.getInstance(HBaseCommitTableConfig.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="96" href="#96">96</a>          HBaseTimestampStorageConfig hBaseTimestampStorageConfig = injector.getInstance(HBaseTimestampStorageConfig.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="97" href="#97">97</a>          tso.startAndWait();
-<a class="jxr_linenumber" name="98" href="#98">98</a>          TestUtils.waitForSocketListening(<span class="jxr_string">"localhost"</span>, 1234, 100);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          LOG.info(<span class="jxr_string">"Finished loading TSO"</span>);
-<a class="jxr_linenumber" name="100" href="#100">100</a>         context.setAttribute(<span class="jxr_string">"tso"</span>, tso);
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>         OmidClientConfiguration clientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="103" href="#103">103</a>         clientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
-<a class="jxr_linenumber" name="104" href="#104">104</a>         context.setAttribute(<span class="jxr_string">"clientConf"</span>, clientConf);
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         InMemoryCommitTable commitTable = (InMemoryCommitTable) injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="107" href="#107">107</a>         context.setAttribute(<span class="jxr_string">"commitTable"</span>, commitTable);
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <em class="jxr_comment">// Create the associated Handler</em>
-<a class="jxr_linenumber" name="110" href="#110">110</a>         TSOClient client = TSOClient.newInstance(clientConf);
-<a class="jxr_linenumber" name="111" href="#111">111</a>         context.setAttribute(<span class="jxr_string">"client"</span>, client);
-<a class="jxr_linenumber" name="112" href="#112">112</a> 
-<a class="jxr_linenumber" name="113" href="#113">113</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="114" href="#114">114</a>         <em class="jxr_comment">// HBase setup</em>
-<a class="jxr_linenumber" name="115" href="#115">115</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="116" href="#116">116</a>         LOG.info(<span class="jxr_string">"Creating HBase minicluster"</span>);
-<a class="jxr_linenumber" name="117" href="#117">117</a>         hbaseConf = HBaseConfiguration.create();
-<a class="jxr_linenumber" name="118" href="#118">118</a>         hbaseConf.setInt(<span class="jxr_string">"hbase.hregion.memstore.flush.size"</span>, 10_000 * 1024);
-<a class="jxr_linenumber" name="119" href="#119">119</a>         hbaseConf.setInt(<span class="jxr_string">"hbase.regionserver.nbreservationblocks"</span>, 1);
-<a class="jxr_linenumber" name="120" href="#120">120</a>         hbaseConf.setInt(HBASE_CLIENT_RETRIES_NUMBER, 3);
-<a class="jxr_linenumber" name="121" href="#121">121</a> 
-<a class="jxr_linenumber" name="122" href="#122">122</a>         File tempFile = File.createTempFile(<span class="jxr_string">"OmidTest"</span>, <span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="123" href="#123">123</a>         tempFile.deleteOnExit();
-<a class="jxr_linenumber" name="124" href="#124">124</a>         hbaseConf.set(<span class="jxr_string">"hbase.rootdir"</span>, tempFile.getAbsolutePath());
-<a class="jxr_linenumber" name="125" href="#125">125</a>         hbaseConf.setBoolean(<span class="jxr_string">"hbase.localcluster.assign.random.ports"</span>,<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="126" href="#126">126</a>         hBaseUtils = <strong class="jxr_keyword">new</strong> HBaseTestingUtility(hbaseConf);
-<a class="jxr_linenumber" name="127" href="#127">127</a>         hbaseCluster = hBaseUtils.startMiniCluster(1);
-<a class="jxr_linenumber" name="128" href="#128">128</a>         connection = ConnectionFactory.createConnection(hbaseConf);
-<a class="jxr_linenumber" name="129" href="#129">129</a>         hBaseUtils.createTable(TableName.valueOf(hBaseTimestampStorageConfig.getTableName()),
-<a class="jxr_linenumber" name="130" href="#130">130</a>                 <strong class="jxr_keyword">new</strong> byte[][]{hBaseTimestampStorageConfig.getFamilyName().getBytes()},
-<a class="jxr_linenumber" name="131" href="#131">131</a>                 Integer.MAX_VALUE);
-<a class="jxr_linenumber" name="132" href="#132">132</a>         createTestTable();
-<a class="jxr_linenumber" name="133" href="#133">133</a>         createCommitTable();
-<a class="jxr_linenumber" name="134" href="#134">134</a> 
-<a class="jxr_linenumber" name="135" href="#135">135</a>         LOG.info(<span class="jxr_string">"HBase minicluster is up"</span>);
-<a class="jxr_linenumber" name="136" href="#136">136</a>     }
-<a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createTestTable() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="139" href="#139">139</a>         HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
-<a class="jxr_linenumber" name="140" href="#140">140</a>         HTableDescriptor test_table_desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="141" href="#141">141</a>         HColumnDescriptor datafam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(TEST_FAMILY);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         HColumnDescriptor datafam2 = <strong class="jxr_keyword">new</strong> HColumnDescriptor(TEST_FAMILY2);
-<a class="jxr_linenumber" name="143" href="#143">143</a>         datafam.setMaxVersions(Integer.MAX_VALUE);
-<a class="jxr_linenumber" name="144" href="#144">144</a>         datafam2.setMaxVersions(Integer.MAX_VALUE);
-<a class="jxr_linenumber" name="145" href="#145">145</a>         test_table_desc.addFamily(datafam);
-<a class="jxr_linenumber" name="146" href="#146">146</a>         test_table_desc.addFamily(datafam2);
-<a class="jxr_linenumber" name="147" href="#147">147</a>         admin.createTable(test_table_desc);
+<a class="jxr_linenumber" name="80" href="#80">80</a>      @BeforeGroups(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeGroups(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <em class="jxr_comment">// TSO Setup</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>          TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="84" href="#84">84</a>          tsoConfig.setPort(1234);
+<a class="jxr_linenumber" name="85" href="#85">85</a>          tsoConfig.setConflictMapSize(1000);
+<a class="jxr_linenumber" name="86" href="#86">86</a>          Injector injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(tsoConfig));
+<a class="jxr_linenumber" name="87" href="#87">87</a>          LOG.info(<span class="jxr_string">"Starting TSO"</span>);
+<a class="jxr_linenumber" name="88" href="#88">88</a>          TSOServer tso = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="89" href="#89">89</a>          hBaseCommitTableConfig = injector.getInstance(HBaseCommitTableConfig.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="90" href="#90">90</a>          HBaseTimestampStorageConfig hBaseTimestampStorageConfig = injector.getInstance(HBaseTimestampStorageConfig.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="91" href="#91">91</a>          tso.startAndWait();
+<a class="jxr_linenumber" name="92" href="#92">92</a>          TestUtils.waitForSocketListening(<span class="jxr_string">"localhost"</span>, 1234, 100);
+<a class="jxr_linenumber" name="93" href="#93">93</a>          LOG.info(<span class="jxr_string">"Finished loading TSO"</span>);
+<a class="jxr_linenumber" name="94" href="#94">94</a>          context.setAttribute(<span class="jxr_string">"tso"</span>, tso);
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>          OmidClientConfiguration clientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="97" href="#97">97</a>          clientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
+<a class="jxr_linenumber" name="98" href="#98">98</a>          context.setAttribute(<span class="jxr_string">"clientConf"</span>, clientConf);
+<a class="jxr_linenumber" name="99" href="#99">99</a>  
+<a class="jxr_linenumber" name="100" href="#100">100</a>         InMemoryCommitTable commitTable = (InMemoryCommitTable) injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="101" href="#101">101</a>         context.setAttribute(<span class="jxr_string">"commitTable"</span>, commitTable);
+<a class="jxr_linenumber" name="102" href="#102">102</a> 
+<a class="jxr_linenumber" name="103" href="#103">103</a>         <em class="jxr_comment">// Create the associated Handler</em>
+<a class="jxr_linenumber" name="104" href="#104">104</a>         TSOClient client = TSOClient.newInstance(clientConf);
+<a class="jxr_linenumber" name="105" href="#105">105</a>         context.setAttribute(<span class="jxr_string">"client"</span>, client);
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="108" href="#108">108</a>         <em class="jxr_comment">// HBase setup</em>
+<a class="jxr_linenumber" name="109" href="#109">109</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a>         LOG.info(<span class="jxr_string">"Creating HBase minicluster"</span>);
+<a class="jxr_linenumber" name="111" href="#111">111</a>         hbaseConf = HBaseConfiguration.create();
+<a class="jxr_linenumber" name="112" href="#112">112</a>         hbaseConf.setInt(<span class="jxr_string">"hbase.hregion.memstore.flush.size"</span>, 10_000 * 1024);
+<a class="jxr_linenumber" name="113" href="#113">113</a>         hbaseConf.setInt(<span class="jxr_string">"hbase.regionserver.nbreservationblocks"</span>, 1);
+<a class="jxr_linenumber" name="114" href="#114">114</a>         hbaseConf.setInt(HBASE_CLIENT_RETRIES_NUMBER, 3);
+<a class="jxr_linenumber" name="115" href="#115">115</a> 
+<a class="jxr_linenumber" name="116" href="#116">116</a>         File tempFile = File.createTempFile(<span class="jxr_string">"OmidTest"</span>, <span class="jxr_string">""</span>);
+<a class="jxr_linenumber" name="117" href="#117">117</a>         tempFile.deleteOnExit();
+<a class="jxr_linenumber" name="118" href="#118">118</a>         hbaseConf.set(<span class="jxr_string">"hbase.rootdir"</span>, tempFile.getAbsolutePath());
+<a class="jxr_linenumber" name="119" href="#119">119</a> 
+<a class="jxr_linenumber" name="120" href="#120">120</a>         hBaseUtils = <strong class="jxr_keyword">new</strong> HBaseTestingUtility(hbaseConf);
+<a class="jxr_linenumber" name="121" href="#121">121</a>         hbaseCluster = hBaseUtils.startMiniCluster(1);
+<a class="jxr_linenumber" name="122" href="#122">122</a>         hBaseUtils.createTable(Bytes.toBytes(hBaseTimestampStorageConfig.getTableName()),
+<a class="jxr_linenumber" name="123" href="#123">123</a>                                <strong class="jxr_keyword">new</strong> byte[][]{hBaseTimestampStorageConfig.getFamilyName().getBytes()},
+<a class="jxr_linenumber" name="124" href="#124">124</a>                                Integer.MAX_VALUE);
+<a class="jxr_linenumber" name="125" href="#125">125</a> 
+<a class="jxr_linenumber" name="126" href="#126">126</a>         createTestTable();
+<a class="jxr_linenumber" name="127" href="#127">127</a>         createCommitTable();
+<a class="jxr_linenumber" name="128" href="#128">128</a> 
+<a class="jxr_linenumber" name="129" href="#129">129</a>         LOG.info(<span class="jxr_string">"HBase minicluster is up"</span>);
+<a class="jxr_linenumber" name="130" href="#130">130</a>     }
+<a class="jxr_linenumber" name="131" href="#131">131</a> 
+<a class="jxr_linenumber" name="132" href="#132">132</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createTestTable() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="133" href="#133">133</a>         HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
+<a class="jxr_linenumber" name="134" href="#134">134</a>         HTableDescriptor test_table_desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(TableName.valueOf(TEST_TABLE));
+<a class="jxr_linenumber" name="135" href="#135">135</a>         HColumnDescriptor datafam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(TEST_FAMILY);
+<a class="jxr_linenumber" name="136" href="#136">136</a>         HColumnDescriptor datafam2 = <strong class="jxr_keyword">new</strong> HColumnDescriptor(TEST_FAMILY2);
+<a class="jxr_linenumber" name="137" href="#137">137</a>         datafam.setMaxVersions(Integer.MAX_VALUE);
+<a class="jxr_linenumber" name="138" href="#138">138</a>         datafam2.setMaxVersions(Integer.MAX_VALUE);
+<a class="jxr_linenumber" name="139" href="#139">139</a>         test_table_desc.addFamily(datafam);
+<a class="jxr_linenumber" name="140" href="#140">140</a>         test_table_desc.addFamily(datafam2);
+<a class="jxr_linenumber" name="141" href="#141">141</a>         admin.createTable(test_table_desc);
+<a class="jxr_linenumber" name="142" href="#142">142</a>     }
+<a class="jxr_linenumber" name="143" href="#143">143</a> 
+<a class="jxr_linenumber" name="144" href="#144">144</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createCommitTable() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="145" href="#145">145</a>         String[] args = <strong class="jxr_keyword">new</strong> String[]{OmidTableManager.COMMIT_TABLE_COMMAND_NAME, <span class="jxr_string">"-numRegions"</span>, <span class="jxr_string">"1"</span>};
+<a class="jxr_linenumber" name="146" href="#146">146</a>         OmidTableManager omidTableManager = <strong class="jxr_keyword">new</strong> OmidTableManager(args);
+<a class="jxr_linenumber" name="147" href="#147">147</a>         omidTableManager.executeActionsOnHBase(hbaseConf);
 <a class="jxr_linenumber" name="148" href="#148">148</a>     }
 <a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createCommitTable() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="151" href="#151">151</a>         String[] args = <strong class="jxr_keyword">new</strong> String[]{OmidTableManager.COMMIT_TABLE_COMMAND_NAME, <span class="jxr_string">"-numRegions"</span>, <span class="jxr_string">"1"</span>};
-<a class="jxr_linenumber" name="152" href="#152">152</a>         OmidTableManager omidTableManager = <strong class="jxr_keyword">new</strong> OmidTableManager(args);
-<a class="jxr_linenumber" name="153" href="#153">153</a>         omidTableManager.executeActionsOnHBase(hbaseConf);
-<a class="jxr_linenumber" name="154" href="#154">154</a>     }
+<a class="jxr_linenumber" name="150" href="#150">150</a> 
+<a class="jxr_linenumber" name="151" href="#151">151</a>     <strong class="jxr_keyword">private</strong> TSOServer getTSO(ITestContext context) {
+<a class="jxr_linenumber" name="152" href="#152">152</a>         <strong class="jxr_keyword">return</strong> (TSOServer) context.getAttribute(<span class="jxr_string">"tso"</span>);
+<a class="jxr_linenumber" name="153" href="#153">153</a>     }
+<a class="jxr_linenumber" name="154" href="#154">154</a> 
 <a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a> 
-<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">private</strong> TSOServer getTSO(ITestContext context) {
-<a class="jxr_linenumber" name="158" href="#158">158</a>         <strong class="jxr_keyword">return</strong> (TSOServer) context.getAttribute(<span class="jxr_string">"tso"</span>);
-<a class="jxr_linenumber" name="159" href="#159">159</a>     }
-<a class="jxr_linenumber" name="160" href="#160">160</a> 
-<a class="jxr_linenumber" name="161" href="#161">161</a> 
-<a class="jxr_linenumber" name="162" href="#162">162</a>     TSOClient getClient(ITestContext context) {
-<a class="jxr_linenumber" name="163" href="#163">163</a>         <strong class="jxr_keyword">return</strong> (TSOClient) context.getAttribute(<span class="jxr_string">"client"</span>);
-<a class="jxr_linenumber" name="164" href="#164">164</a>     }
-<a class="jxr_linenumber" name="165" href="#165">165</a> 
-<a class="jxr_linenumber" name="166" href="#166">166</a>     InMemoryCommitTable getCommitTable(ITestContext context) {
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">return</strong> (InMemoryCommitTable) context.getAttribute(<span class="jxr_string">"commitTable"</span>);
-<a class="jxr_linenumber" name="168" href="#168">168</a>     }
-<a class="jxr_linenumber" name="169" href="#169">169</a> 
-<a class="jxr_linenumber" name="170" href="#170">170</a>     <strong class="jxr_keyword">protected</strong> TransactionManager newTransactionManager(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="171" href="#171">171</a>         <strong class="jxr_keyword">return</strong> newTransactionManager(context, getClient(context));
-<a class="jxr_linenumber" name="172" href="#172">172</a>     }
-<a class="jxr_linenumber" name="173" href="#173">173</a> 
-<a class="jxr_linenumber" name="174" href="#174">174</a>     <strong class="jxr_keyword">protected</strong> TransactionManager newTransactionManager(ITestContext context, PostCommitActions postCommitActions) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="175" href="#175">175</a>         HBaseOmidClientConfiguration clientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="176" href="#176">176</a>         clientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
-<a class="jxr_linenumber" name="177" href="#177">177</a>         clientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="178" href="#178">178</a>         <strong class="jxr_keyword">return</strong> HBaseTransactionManager.builder(clientConf)
-<a class="jxr_linenumber" name="179" href="#179">179</a>                 .postCommitter(postCommitActions)
-<a class="jxr_linenumber" name="180" href="#180">180</a>                 .commitTableClient(getCommitTable(context).getClient())
-<a class="jxr_linenumber" name="181" href="#181">181</a>                 .tsoClient(getClient(context)).build();
-<a class="jxr_linenumber" name="182" href="#182">182</a>     }
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>     <strong class="jxr_keyword">protected</strong> TransactionManager newTransactionManager(ITestContext context, TSOClient tsoClient) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="185" href="#185">185</a>         HBaseOmidClientConfiguration clientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="186" href="#186">186</a>         clientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
-<a class="jxr_linenumber" name="187" href="#187">187</a>         clientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="188" href="#188">188</a>         <strong class="jxr_keyword">return</strong> HBaseTransactionManager.builder(clientConf)
-<a class="jxr_linenumber" name="189" href="#189">189</a>                 .commitTableClient(getCommitTable(context).getClient())
-<a class="jxr_linenumber" name="190" href="#190">190</a>                 .tsoClient(tsoClient).build();
-<a class="jxr_linenumber" name="191" href="#191">191</a>     }
-<a class="jxr_linenumber" name="192" href="#192">192</a> 
-<a class="jxr_linenumber" name="193" href="#193">193</a>     <strong class="jxr_keyword">protected</strong> TransactionManager newTransactionManager(ITestContext context, CommitTable.Client commitTableClient)
-<a class="jxr_linenumber" name="194" href="#194">194</a>             <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="195" href="#195">195</a>         HBaseOmidClientConfiguration clientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="196" href="#196">196</a>         clientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
-<a class="jxr_linenumber" name="197" href="#197">197</a>         clientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="198" href="#198">198</a>         <strong class="jxr_keyword">return</strong> HBaseTransactionManager.builder(clientConf)
-<a class="jxr_linenumber" name="199" href="#199">199</a>                 .commitTableClient(commitTableClient)
-<a class="jxr_linenumber" name="200" href="#200">200</a>                 .tsoClient(getClient(context)).build();
-<a class="jxr_linenumber" name="201" href="#201">201</a>     }
-<a class="jxr_linenumber" name="202" href="#202">202</a> 
-<a class="jxr_linenumber" name="203" href="#203">203</a>     @AfterGroups(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="204" href="#204">204</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterGroups(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="205" href="#205">205</a>         LOG.info(<span class="jxr_string">"Tearing down OmidTestBase..."</span>);
-<a class="jxr_linenumber" name="206" href="#206">206</a>         <strong class="jxr_keyword">if</strong> (hbaseCluster != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="207" href="#207">207</a>             hBaseUtils.shutdownMiniCluster();
-<a class="jxr_linenumber" name="208" href="#208">208</a>         }
-<a class="jxr_linenumber" name="209" href="#209">209</a> 
-<a class="jxr_linenumber" name="210" href="#210">210</a>         getClient(context).close().get();
-<a class="jxr_linenumber" name="211" href="#211">211</a>         getTSO(context).stopAndWait();
-<a class="jxr_linenumber" name="212" href="#212">212</a>         TestUtils.waitForSocketNotListening(<span class="jxr_string">"localhost"</span>, 1234, 1000);
-<a class="jxr_linenumber" name="213" href="#213">213</a>     }
-<a class="jxr_linenumber" name="214" href="#214">214</a> 
-<a class="jxr_linenumber" name="215" href="#215">215</a>     @AfterMethod(groups = <span class="jxr_string">"sharedHBase"</span>, timeOut = 60_000)
-<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterMethod() {
-<a class="jxr_linenumber" name="217" href="#217">217</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="218" href="#218">218</a>             LOG.info(<span class="jxr_string">"tearing Down"</span>);
-<a class="jxr_linenumber" name="219" href="#219">219</a>             Admin admin = hBaseUtils.getHBaseAdmin();
-<a class="jxr_linenumber" name="220" href="#220">220</a>             deleteTable(admin, TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="221" href="#221">221</a>             createTestTable();
-<a class="jxr_linenumber" name="222" href="#222">222</a>             <strong class="jxr_keyword">if</strong> (hBaseCommitTableConfig != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="223" href="#223">223</a>                 deleteTable(admin, TableName.valueOf(hBaseCommitTableConfig.getTableName()));
-<a class="jxr_linenumber" name="224" href="#224">224</a>             }
-<a class="jxr_linenumber" name="225" href="#225">225</a>             createCommitTable();
-<a class="jxr_linenumber" name="226" href="#226">226</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="227" href="#227">227</a>             LOG.error(<span class="jxr_string">"Error tearing down"</span>, e);
-<a class="jxr_linenumber" name="228" href="#228">228</a>         }
-<a class="jxr_linenumber" name="229" href="#229">229</a>     }
-<a class="jxr_linenumber" name="230" href="#230">230</a> 
-<a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">void</strong> deleteTable(Admin admin, TableName tableName) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="232" href="#232">232</a>         <strong class="jxr_keyword">if</strong> (admin.tableExists(tableName)) {
-<a class="jxr_linenumber" name="233" href="#233">233</a>             <strong class="jxr_keyword">if</strong> (admin.isTableDisabled(tableName)) {
-<a class="jxr_linenumber" name="234" href="#234">234</a>                 admin.deleteTable(tableName);
-<a class="jxr_linenumber" name="235" href="#235">235</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="236" href="#236">236</a>                 admin.disableTable(tableName);
-<a class="jxr_linenumber" name="237" href="#237">237</a>                 admin.deleteTable(tableName);
-<a class="jxr_linenumber" name="238" href="#238">238</a>             }
-<a class="jxr_linenumber" name="239" href="#239">239</a>         }
-<a class="jxr_linenumber" name="240" href="#240">240</a>     }
+<a class="jxr_linenumber" name="156" href="#156">156</a>     TSOClient getClient(ITestContext context) {
+<a class="jxr_linenumber" name="157" href="#157">157</a>         <strong class="jxr_keyword">return</strong> (TSOClient) context.getAttribute(<span class="jxr_string">"client"</span>);
+<a class="jxr_linenumber" name="158" href="#158">158</a>     }
+<a class="jxr_linenumber" name="159" href="#159">159</a> 
+<a class="jxr_linenumber" name="160" href="#160">160</a>     InMemoryCommitTable getCommitTable(ITestContext context) {
+<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">return</strong> (InMemoryCommitTable) context.getAttribute(<span class="jxr_string">"commitTable"</span>);
+<a class="jxr_linenumber" name="162" href="#162">162</a>     }
+<a class="jxr_linenumber" name="163" href="#163">163</a> 
+<a class="jxr_linenumber" name="164" href="#164">164</a>     <strong class="jxr_keyword">protected</strong> TransactionManager newTransactionManager(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">return</strong> newTransactionManager(context, getClient(context));
+<a class="jxr_linenumber" name="166" href="#166">166</a>     }
+<a class="jxr_linenumber" name="167" href="#167">167</a> 
+<a class="jxr_linenumber" name="168" href="#168">168</a>     <strong class="jxr_keyword">protected</strong> TransactionManager newTransactionManager(ITestContext context, PostCommitActions postCommitActions) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="169" href="#169">169</a>         HBaseOmidClientConfiguration clientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="170" href="#170">170</a>         clientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
+<a class="jxr_linenumber" name="171" href="#171">171</a>         clientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="172" href="#172">172</a>         <strong class="jxr_keyword">return</strong> HBaseTransactionManager.builder(clientConf)
+<a class="jxr_linenumber" name="173" href="#173">173</a>                 .postCommitter(postCommitActions)
+<a class="jxr_linenumber" name="174" href="#174">174</a>                 .commitTableClient(getCommitTable(context).getClient())
+<a class="jxr_linenumber" name="175" href="#175">175</a>                 .tsoClient(getClient(context)).build();
+<a class="jxr_linenumber" name="176" href="#176">176</a>     }
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>     <strong class="jxr_keyword">protected</strong> TransactionManager newTransactionManager(ITestContext context, TSOClient tsoClient) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="179" href="#179">179</a>         HBaseOmidClientConfiguration clientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="180" href="#180">180</a>         clientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
+<a class="jxr_linenumber" name="181" href="#181">181</a>         clientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="182" href="#182">182</a>         <strong class="jxr_keyword">return</strong> HBaseTransactionManager.builder(clientConf)
+<a class="jxr_linenumber" name="183" href="#183">183</a>                 .commitTableClient(getCommitTable(context).getClient())
+<a class="jxr_linenumber" name="184" href="#184">184</a>                 .tsoClient(tsoClient).build();
+<a class="jxr_linenumber" name="185" href="#185">185</a>     }
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a>     <strong class="jxr_keyword">protected</strong> TransactionManager newTransactionManager(ITestContext context, CommitTable.Client commitTableClient)
+<a class="jxr_linenumber" name="188" href="#188">188</a>             <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="189" href="#189">189</a>         HBaseOmidClientConfiguration clientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="190" href="#190">190</a>         clientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
+<a class="jxr_linenumber" name="191" href="#191">191</a>         clientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">return</strong> HBaseTransactionManager.builder(clientConf)
+<a class="jxr_linenumber" name="193" href="#193">193</a>                 .commitTableClient(commitTableClient)
+<a class="jxr_linenumber" name="194" href="#194">194</a>                 .tsoClient(getClient(context)).build();
+<a class="jxr_linenumber" name="195" href="#195">195</a>     }
+<a class="jxr_linenumber" name="196" href="#196">196</a> 
+<a class="jxr_linenumber" name="197" href="#197">197</a>     @AfterGroups(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="198" href="#198">198</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterGroups(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="199" href="#199">199</a>         LOG.info(<span class="jxr_string">"Tearing down OmidTestBase..."</span>);
+<a class="jxr_linenumber" name="200" href="#200">200</a>         <strong class="jxr_keyword">if</strong> (hbaseCluster != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="201" href="#201">201</a>             hBaseUtils.shutdownMiniCluster();
+<a class="jxr_linenumber" name="202" href="#202">202</a>         }
+<a class="jxr_linenumber" name="203" href="#203">203</a> 
+<a class="jxr_linenumber" name="204" href="#204">204</a>         getClient(context).close().get();
+<a class="jxr_linenumber" name="205" href="#205">205</a>         getTSO(context).stopAndWait();
+<a class="jxr_linenumber" name="206" href="#206">206</a>         TestUtils.waitForSocketNotListening(<span class="jxr_string">"localhost"</span>, 1234, 1000);
+<a class="jxr_linenumber" name="207" href="#207">207</a>     }
+<a class="jxr_linenumber" name="208" href="#208">208</a> 
+<a class="jxr_linenumber" name="209" href="#209">209</a>     @AfterMethod(groups = <span class="jxr_string">"sharedHBase"</span>, timeOut = 60_000)
+<a class="jxr_linenumber" name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterMethod() {
+<a class="jxr_linenumber" name="211" href="#211">211</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="212" href="#212">212</a>             LOG.info(<span class="jxr_string">"tearing Down"</span>);
+<a class="jxr_linenumber" name="213" href="#213">213</a>             HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
+<a class="jxr_linenumber" name="214" href="#214">214</a>             deleteTable(admin, TableName.valueOf(TEST_TABLE));
+<a class="jxr_linenumber" name="215" href="#215">215</a>             createTestTable();
+<a class="jxr_linenumber" name="216" href="#216">216</a>             deleteTable(admin, TableName.valueOf(hBaseCommitTableConfig.getTableName()));
+<a class="jxr_linenumber" name="217" href="#217">217</a>             createCommitTable();
+<a class="jxr_linenumber" name="218" href="#218">218</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="219" href="#219">219</a>             LOG.error(<span class="jxr_string">"Error tearing down"</span>, e);
+<a class="jxr_linenumber" name="220" href="#220">220</a>         }
+<a class="jxr_linenumber" name="221" href="#221">221</a>     }
+<a class="jxr_linenumber" name="222" href="#222">222</a> 
+<a class="jxr_linenumber" name="223" href="#223">223</a>     <strong class="jxr_keyword">void</strong> deleteTable(HBaseAdmin admin, TableName tableName) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">if</strong> (admin.tableExists(tableName)) {
+<a class="jxr_linenumber" name="225" href="#225">225</a>             <strong class="jxr_keyword">if</strong> (admin.isTableDisabled(tableName)) {
+<a class="jxr_linenumber" name="226" href="#226">226</a>                 admin.deleteTable(tableName);
+<a class="jxr_linenumber" name="227" href="#227">227</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="228" href="#228">228</a>                 admin.disableTable(tableName);
+<a class="jxr_linenumber" name="229" href="#229">229</a>                 admin.deleteTable(tableName);
+<a class="jxr_linenumber" name="230" href="#230">230</a>             }
+<a class="jxr_linenumber" name="231" href="#231">231</a>         }
+<a class="jxr_linenumber" name="232" href="#232">232</a>     }
+<a class="jxr_linenumber" name="233" href="#233">233</a> 
+<a class="jxr_linenumber" name="234" href="#234">234</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> verifyValue(byte[] tableName, byte[] row,
+<a class="jxr_linenumber" name="235" href="#235">235</a>                                byte[] fam, byte[] col, byte[] value) {
+<a class="jxr_linenumber" name="236" href="#236">236</a> 
+<a class="jxr_linenumber" name="237" href="#237">237</a>         <strong class="jxr_keyword">try</strong> (HTable table = <strong class="jxr_keyword">new</strong> HTable(hbaseConf, tableName)) {
+<a class="jxr_linenumber" name="238" href="#238">238</a>             Get g = <strong class="jxr_keyword">new</strong> Get(row).setMaxVersions(1);
+<a class="jxr_linenumber" name="239" href="#239">239</a>             Result r = table.get(g);
+<a class="jxr_linenumber" name="240" href="#240">240</a>             Cell cell = r.getColumnLatestCell(fam, col);
 <a class="jxr_linenumber" name="241" href="#241">241</a> 
-<a class="jxr_linenumber" name="242" href="#242">242</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> verifyValue(Table table, byte[] row,
-<a class="jxr_linenumber" name="243" href="#243">243</a>                                byte[] fam, byte[] col, byte[] value) {
-<a class="jxr_linenumber" name="244" href="#244">244</a> 
-<a class="jxr_linenumber" name="245" href="#245">245</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="246" href="#246">246</a>             Get g = <strong class="jxr_keyword">new</strong> Get(row).setMaxVersions(1);
-<a class="jxr_linenumber" name="247" href="#247">247</a>             Result r = table.get(g);
-<a class="jxr_linenumber" name="248" href="#248">248</a>             Cell cell = r.getColumnLatestCell(fam, col);
-<a class="jxr_linenumber" name="249" href="#249">249</a> 
-<a class="jxr_linenumber" name="250" href="#250">250</a>             <strong class="jxr_keyword">if</strong> (LOG.isTraceEnabled()) {
-<a class="jxr_linenumber" name="251" href="#251">251</a>                 LOG.trace(<span class="jxr_string">"Value for "</span> + table.getName().getNameAsString() + <span class="jxr_string">":"</span>
-<a class="jxr_linenumber" name="252" href="#252">252</a>                                   + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam)
-<a class="jxr_linenumber" name="253" href="#253">253</a>                                   + Bytes.toString(col) + <span class="jxr_string">"=&gt;"</span> + Bytes.toString(CellUtil.cloneValue(cell))
-<a class="jxr_linenumber" name="254" href="#254">254</a>                                   + <span class="jxr_string">" ("</span> + Bytes.toString(value) + <span class="jxr_string">" expected)"</span>);
-<a class="jxr_linenumber" name="255" href="#255">255</a>             }
-<a class="jxr_linenumber" name="256" href="#256">256</a> 
-<a class="jxr_linenumber" name="257" href="#257">257</a>             <strong class="jxr_keyword">return</strong> Bytes.equals(CellUtil.cloneValue(cell), value);
-<a class="jxr_linenumber" name="258" href="#258">258</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="259" href="#259">259</a>             LOG.error(<span class="jxr_string">"Error reading row "</span> + table.getName().getNameAsString() + <span class="jxr_string">":"</span>
-<a class="jxr_linenumber" name="260" href="#260">260</a>                               + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam)
-<a class="jxr_linenumber" name="261" href="#261">261</a>                               + Bytes.toString(col), e);
-<a class="jxr_linenumber" name="262" href="#262">262</a>             <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="263" href="#263">263</a>         }
-<a class="jxr_linenumber" name="264" href="#264">264</a>     }
-<a class="jxr_linenumber" name="265" href="#265">265</a> }
+<a class="jxr_linenumber" name="242" href="#242">242</a>             <strong class="jxr_keyword">if</strong> (LOG.isTraceEnabled()) {
+<a class="jxr_linenumber" name="243" href="#243">243</a>                 LOG.trace(<span class="jxr_string">"Value for "</span> + Bytes.toString(tableName) + <span class="jxr_string">":"</span>
+<a class="jxr_linenumber" name="244" href="#244">244</a>                                   + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam)
+<a class="jxr_linenumber" name="245" href="#245">245</a>                                   + Bytes.toString(col) + <span class="jxr_string">"=&gt;"</span> + Bytes.toString(CellUtil.cloneValue(cell))
+<a class="jxr_linenumber" name="246" href="#246">246</a>                                   + <span class="jxr_string">" ("</span> + Bytes.toString(value) + <span class="jxr_string">" expected)"</span>);
+<a class="jxr_linenumber" name="247" href="#247">247</a>             }
+<a class="jxr_linenumber" name="248" href="#248">248</a> 
+<a class="jxr_linenumber" name="249" href="#249">249</a>             <strong class="jxr_keyword">return</strong> Bytes.equals(CellUtil.cloneValue(cell), value);
+<a class="jxr_linenumber" name="250" href="#250">250</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="251" href="#251">251</a>             LOG.error(<span class="jxr_string">"Error reading row "</span> + Bytes.toString(tableName) + <span class="jxr_string">":"</span>
+<a class="jxr_linenumber" name="252" href="#252">252</a>                               + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam)
+<a class="jxr_linenumber" name="253" href="#253">253</a>                               + Bytes.toString(col), e);
+<a class="jxr_linenumber" name="254" href="#254">254</a>             <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="255" href="#255">255</a>         }
+<a class="jxr_linenumber" name="256" href="#256">256</a>     }
+<a class="jxr_linenumber" name="257" href="#257">257</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TSOForHBaseCompactorTestModule.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TSOForHBaseCompactorTestModule.html b/xref-test/org/apache/omid/transaction/TSOForHBaseCompactorTestModule.html
index afcc60f..0412c34 100644
--- a/xref-test/org/apache/omid/transaction/TSOForHBaseCompactorTestModule.html
+++ b/xref-test/org/apache/omid/transaction/TSOForHBaseCompactorTestModule.html
@@ -97,52 +97,51 @@
 <a class="jxr_linenumber" name="87" href="#87">87</a>      @Singleton
 <a class="jxr_linenumber" name="88" href="#88">88</a>      Configuration provideHBaseConfig() <strong class="jxr_keyword">throws</strong> IOException {
 <a class="jxr_linenumber" name="89" href="#89">89</a>          Configuration hbaseConf = HBaseConfiguration.create();
-<a class="jxr_linenumber" name="90" href="#90">90</a>          hbaseConf.setBoolean(<span class="jxr_string">"hbase.localcluster.assign.random.ports"</span>,<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="91" href="#91">91</a>          hbaseConf.setInt(<span class="jxr_string">"hbase.hregion.memstore.flush.size"</span>, 10_000 * 1024);
-<a class="jxr_linenumber" name="92" href="#92">92</a>          hbaseConf.setInt(<span class="jxr_string">"hbase.regionserver.nbreservationblocks"</span>, 1);
-<a class="jxr_linenumber" name="93" href="#93">93</a>          hbaseConf.set(<span class="jxr_string">"tso.host"</span>, <span class="jxr_string">"localhost"</span>);
-<a class="jxr_linenumber" name="94" href="#94">94</a>          hbaseConf.setInt(<span class="jxr_string">"tso.port"</span>, 1234);
-<a class="jxr_linenumber" name="95" href="#95">95</a>          hbaseConf.set(<span class="jxr_string">"hbase.coprocessor.region.classes"</span>, <span class="jxr_string">"org.apache.omid.transaction.OmidCompactor"</span>);
-<a class="jxr_linenumber" name="96" href="#96">96</a>          <strong class="jxr_keyword">final</strong> String rootdir = <span class="jxr_string">"/tmp/hbase.test.dir/"</span>;
-<a class="jxr_linenumber" name="97" href="#97">97</a>          File rootdirFile = <strong class="jxr_keyword">new</strong> File(rootdir);
-<a class="jxr_linenumber" name="98" href="#98">98</a>          FileUtils.deleteDirectory(rootdirFile);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          hbaseConf.set(<span class="jxr_string">"hbase.rootdir"</span>, rootdir);
-<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">return</strong> hbaseConf;
-<a class="jxr_linenumber" name="101" href="#101">101</a>     }
-<a class="jxr_linenumber" name="102" href="#102">102</a> 
-<a class="jxr_linenumber" name="103" href="#103">103</a>     @Provides
-<a class="jxr_linenumber" name="104" href="#104">104</a>     TSOServerConfig provideTSOServerConfig() {
-<a class="jxr_linenumber" name="105" href="#105">105</a>         <strong class="jxr_keyword">return</strong> config;
-<a class="jxr_linenumber" name="106" href="#106">106</a>     }
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     @Provides
-<a class="jxr_linenumber" name="109" href="#109">109</a>     @Singleton
-<a class="jxr_linenumber" name="110" href="#110">110</a>     MetricsRegistry provideMetricsRegistry() {
-<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> NullMetricsProvider();
-<a class="jxr_linenumber" name="112" href="#112">112</a>     }
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>     @Provides
-<a class="jxr_linenumber" name="115" href="#115">115</a>     @Singleton
-<a class="jxr_linenumber" name="116" href="#116">116</a>     LeaseManagement provideLeaseManager(TSOChannelHandler tsoChannelHandler,
-<a class="jxr_linenumber" name="117" href="#117">117</a>                                         TSOStateManager stateManager) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="118" href="#118">118</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> VoidLeaseManager(tsoChannelHandler, stateManager);
-<a class="jxr_linenumber" name="119" href="#119">119</a>     }
-<a class="jxr_linenumber" name="120" href="#120">120</a> 
-<a class="jxr_linenumber" name="121" href="#121">121</a>     @Provides
-<a class="jxr_linenumber" name="122" href="#122">122</a>     @Named(TSO_HOST_AND_PORT_KEY)
-<a class="jxr_linenumber" name="123" href="#123">123</a>     String provideTSOHostAndPort() <strong class="jxr_keyword">throws</strong> SocketException, UnknownHostException {
-<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">return</strong> NetworkInterfaceUtils.getTSOHostAndPort(config);
-<a class="jxr_linenumber" name="125" href="#125">125</a>     }
-<a class="jxr_linenumber" name="126" href="#126">126</a> 
-<a class="jxr_linenumber" name="127" href="#127">127</a>     @Provides
-<a class="jxr_linenumber" name="128" href="#128">128</a>     PersistenceProcessorHandler[] getPersistenceProcessorHandler(Provider&lt;PersistenceProcessorHandler&gt; provider) {
-<a class="jxr_linenumber" name="129" href="#129">129</a>         PersistenceProcessorHandler[] persistenceProcessorHandlers = <strong class="jxr_keyword">new</strong> PersistenceProcessorHandler[config.getNumConcurrentCTWriters()];
-<a class="jxr_linenumber" name="130" href="#130">130</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; persistenceProcessorHandlers.length; i++) {
-<a class="jxr_linenumber" name="131" href="#131">131</a>             persistenceProcessorHandlers[i] = provider.get();
-<a class="jxr_linenumber" name="132" href="#132">132</a>         }
-<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">return</strong> persistenceProcessorHandlers;
-<a class="jxr_linenumber" name="134" href="#134">134</a>     }
-<a class="jxr_linenumber" name="135" href="#135">135</a> }
+<a class="jxr_linenumber" name="90" href="#90">90</a>          hbaseConf.setInt(<span class="jxr_string">"hbase.hregion.memstore.flush.size"</span>, 10_000 * 1024);
+<a class="jxr_linenumber" name="91" href="#91">91</a>          hbaseConf.setInt(<span class="jxr_string">"hbase.regionserver.nbreservationblocks"</span>, 1);
+<a class="jxr_linenumber" name="92" href="#92">92</a>          hbaseConf.set(<span class="jxr_string">"tso.host"</span>, <span class="jxr_string">"localhost"</span>);
+<a class="jxr_linenumber" name="93" href="#93">93</a>          hbaseConf.setInt(<span class="jxr_string">"tso.port"</span>, 1234);
+<a class="jxr_linenumber" name="94" href="#94">94</a>          hbaseConf.set(<span class="jxr_string">"hbase.coprocessor.region.classes"</span>, <span class="jxr_string">"org.apache.omid.transaction.OmidCompactor"</span>);
+<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">final</strong> String rootdir = <span class="jxr_string">"/tmp/hbase.test.dir/"</span>;
+<a class="jxr_linenumber" name="96" href="#96">96</a>          File rootdirFile = <strong class="jxr_keyword">new</strong> File(rootdir);
+<a class="jxr_linenumber" name="97" href="#97">97</a>          FileUtils.deleteDirectory(rootdirFile);
+<a class="jxr_linenumber" name="98" href="#98">98</a>          hbaseConf.set(<span class="jxr_string">"hbase.rootdir"</span>, rootdir);
+<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">return</strong> hbaseConf;
+<a class="jxr_linenumber" name="100" href="#100">100</a>     }
+<a class="jxr_linenumber" name="101" href="#101">101</a> 
+<a class="jxr_linenumber" name="102" href="#102">102</a>     @Provides
+<a class="jxr_linenumber" name="103" href="#103">103</a>     TSOServerConfig provideTSOServerConfig() {
+<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">return</strong> config;
+<a class="jxr_linenumber" name="105" href="#105">105</a>     }
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>     @Provides
+<a class="jxr_linenumber" name="108" href="#108">108</a>     @Singleton
+<a class="jxr_linenumber" name="109" href="#109">109</a>     MetricsRegistry provideMetricsRegistry() {
+<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> NullMetricsProvider();
+<a class="jxr_linenumber" name="111" href="#111">111</a>     }
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a>     @Provides
+<a class="jxr_linenumber" name="114" href="#114">114</a>     @Singleton
+<a class="jxr_linenumber" name="115" href="#115">115</a>     LeaseManagement provideLeaseManager(TSOChannelHandler tsoChannelHandler,
+<a class="jxr_linenumber" name="116" href="#116">116</a>                                         TSOStateManager stateManager) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="117" href="#117">117</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> VoidLeaseManager(tsoChannelHandler, stateManager);
+<a class="jxr_linenumber" name="118" href="#118">118</a>     }
+<a class="jxr_linenumber" name="119" href="#119">119</a> 
+<a class="jxr_linenumber" name="120" href="#120">120</a>     @Provides
+<a class="jxr_linenumber" name="121" href="#121">121</a>     @Named(TSO_HOST_AND_PORT_KEY)
+<a class="jxr_linenumber" name="122" href="#122">122</a>     String provideTSOHostAndPort() <strong class="jxr_keyword">throws</strong> SocketException, UnknownHostException {
+<a class="jxr_linenumber" name="123" href="#123">123</a>         <strong class="jxr_keyword">return</strong> NetworkInterfaceUtils.getTSOHostAndPort(config);
+<a class="jxr_linenumber" name="124" href="#124">124</a>     }
+<a class="jxr_linenumber" name="125" href="#125">125</a> 
+<a class="jxr_linenumber" name="126" href="#126">126</a>     @Provides
+<a class="jxr_linenumber" name="127" href="#127">127</a>     PersistenceProcessorHandler[] getPersistenceProcessorHandler(Provider&lt;PersistenceProcessorHandler&gt; provider) {
+<a class="jxr_linenumber" name="128" href="#128">128</a>         PersistenceProcessorHandler[] persistenceProcessorHandlers = <strong class="jxr_keyword">new</strong> PersistenceProcessorHandler[config.getNumConcurrentCTWriters()];
+<a class="jxr_linenumber" name="129" href="#129">129</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; persistenceProcessorHandlers.length; i++) {
+<a class="jxr_linenumber" name="130" href="#130">130</a>             persistenceProcessorHandlers[i] = provider.get();
+<a class="jxr_linenumber" name="131" href="#131">131</a>         }
+<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">return</strong> persistenceProcessorHandlers;
+<a class="jxr_linenumber" name="133" href="#133">133</a>     }
+<a class="jxr_linenumber" name="134" href="#134">134</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[48/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
[wagon-git] commit to branch asf-site 9/20/18 10:51 AM


Project: http://git-wip-us.apache.org/repos/asf/incubator-omid-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-omid-site/commit/581871ee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-omid-site/tree/581871ee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-omid-site/diff/581871ee

Branch: refs/heads/asf-site
Commit: 581871ee74817493f1135d75dd3b87879c60ca41
Parents: 28704dc
Author: Ohad Shacham <oh...@yahoo-inc.com>
Authored: Thu Sep 20 10:51:46 2018 +0300
Committer: Ohad Shacham <oh...@yahoo-inc.com>
Committed: Thu Sep 20 10:51:46 2018 +0300

----------------------------------------------------------------------
 basic-algorithm.html                            |   16 +-
 basic-concepts.html                             |   16 +-
 basic-examples.html                             |   16 +-
 checkstyle-aggregate.html                       | 5550 ++++++------------
 checkstyle.rss                                  |  266 +-
 client-failure-management.html                  |   16 +-
 coding-guide-and-style.html                     |   16 +-
 cpd.html                                        |   14 +-
 dependencies.html                               |  245 +
 dependency-convergence.html                     | 1209 ++--
 dependency-info.html                            |   16 +-
 dependency-management.html                      |   10 +-
 distribution-management.html                    |    2 +-
 images/close.gif                                |  Bin 0 -> 279 bytes
 index.html                                      |   16 +-
 integration.html                                |  244 +
 issue-tracking.html                             |  244 +
 license.html                                    |    2 +-
 mail-lists.html                                 |   55 +-
 mailing-lists.html                              |   16 +-
 modules.html                                    |    2 +-
 omid-components.html                            |   16 +-
 plugin-management.html                          |    2 +-
 plugins.html                                    |    8 +-
 pmd.html                                        |  253 +-
 project-info.html                               |    2 +-
 project-reports.html                            |    2 +-
 project-summary.html                            |    4 +-
 quickstart.html                                 |   22 +-
 source-repository.html                          |    2 +-
 team-list.html                                  |    2 +-
 xref-test/allclasses-frame.html                 |   23 +-
 xref-test/index.html                            |    2 +-
 .../committable/hbase/TestHBaseCommitTable.html |  549 +-
 .../omid/committable/hbase/package-frame.html   |    2 +-
 .../omid/committable/hbase/package-summary.html |    2 +-
 .../apache/omid/committable/package-frame.html  |    2 +-
 .../omid/committable/package-summary.html       |    2 +-
 xref-test/org/apache/omid/package-frame.html    |    8 +-
 xref-test/org/apache/omid/package-summary.html  |   12 +-
 .../storage/TestHBaseTimestampStorage.html      |   14 +-
 .../omid/timestamp/storage/package-frame.html   |    2 +-
 .../omid/timestamp/storage/package-summary.html |    2 +-
 .../omid/tools/hbase/TestOmidTableManager.html  |    2 +-
 .../apache/omid/tools/hbase/package-frame.html  |    2 +-
 .../omid/tools/hbase/package-summary.html       |    2 +-
 .../apache/omid/transaction/OmidTestBase.html   |  472 +-
 .../TSOForHBaseCompactorTestModule.html         |   91 +-
 .../TestAsynchronousPostCommitter.html          |   98 +-
 .../apache/omid/transaction/TestAutoFlush.html  |   20 +-
 .../TestBaillisAnomaliesWithTXs.html            |   86 +-
 .../omid/transaction/TestBasicTransaction.html  |  113 +-
 .../apache/omid/transaction/TestCellUtils.html  |  393 +-
 .../omid/transaction/TestColumnIterator.html    |    8 +-
 .../apache/omid/transaction/TestCompaction.html | 2355 ++++----
 .../omid/transaction/TestCompactorScanner.html  |  161 +-
 .../apache/omid/transaction/TestDeletion.html   |  637 +-
 .../TestEndToEndScenariosWithHA.html            |  777 ++-
 .../apache/omid/transaction/TestFilters.html    |  353 +-
 .../transaction/TestHBaseTransactionClient.html |  780 +--
 .../TestHBaseTransactionManager.html            |   44 +-
 .../omid/transaction/TestMultiplePut.html       |  217 +-
 .../apache/omid/transaction/TestReadPath.html   |   42 +-
 .../omid/transaction/TestShadowCells.html       |  975 ++-
 .../transaction/TestSingleColumnFamily.html     |   30 +-
 .../omid/transaction/TestTTableBehaviour.html   |  269 +-
 .../transaction/TestTransactionCleanup.html     |  199 +-
 .../transaction/TestTransactionConflict.html    |  764 +--
 .../omid/transaction/TestTxMgrFailover.html     |  165 +-
 .../apache/omid/transaction/TestUpdateScan.html |   56 +-
 .../apache/omid/transaction/package-frame.html  |   14 +-
 .../omid/transaction/package-summary.html       |   22 +-
 .../org/apache/omid/tso/TSOMockModule.html      |  121 +-
 .../org/apache/omid/tso/TestLeaseManager.html   |  791 ++-
 .../tso/TestPersistenceProcessorHandler.html    |  696 +--
 .../apache/omid/tso/TestRequestProcessor.html   |  334 +-
 .../omid/tso/TestTSOChannelHandlerNetty.html    |  158 +-
 .../apache/omid/tso/TestTimestampOracle.html    |  179 +-
 ...tionOfTSOClientServerBasicFunctionality.html |  430 +-
 .../omid/tso/client/TestMockTSOClient.html      |  100 +-
 .../client/TestTSOClientConnectionToTSO.html    |  498 +-
 ...stTSOClientRequestAndResponseBehaviours.html |  724 ++-
 .../apache/omid/tso/client/package-frame.html   |    5 +-
 .../apache/omid/tso/client/package-summary.html |    7 +-
 .../org/apache/omid/tso/package-frame.html      |    8 +-
 .../org/apache/omid/tso/package-summary.html    |   12 +-
 .../org/apache/statemachine/package-frame.html  |    2 +-
 .../apache/statemachine/package-summary.html    |    2 +-
 xref-test/overview-frame.html                   |    2 +-
 xref-test/overview-summary.html                 |    4 +-
 xref/allclasses-frame.html                      |   64 +-
 xref/index.html                                 |    2 +-
 .../hbase/regionserver/package-frame.html       |    7 +-
 .../hbase/regionserver/package-summary.html     |    9 +-
 xref/org/apache/omid/HBaseShims.html            |  103 +-
 xref/org/apache/omid/NetworkUtils.html          |   62 +-
 xref/org/apache/omid/YAMLUtils.html             |  105 +-
 .../omid/benchmarks/hbase/package-frame.html    |    2 +-
 .../omid/benchmarks/hbase/package-summary.html  |    2 +-
 .../omid/benchmarks/tso/package-frame.html      |    2 +-
 .../omid/benchmarks/tso/package-summary.html    |    2 +-
 .../omid/benchmarks/utils/package-frame.html    |    2 +-
 .../omid/benchmarks/utils/package-summary.html  |    2 +-
 .../committable/hbase/HBaseCommitTable.html     |  772 ++-
 .../omid/committable/hbase/package-frame.html   |    2 +-
 .../omid/committable/hbase/package-summary.html |    2 +-
 .../apache/omid/committable/package-frame.html  |    2 +-
 .../omid/committable/package-summary.html       |    2 +-
 xref/org/apache/omid/examples/BasicExample.html |  181 +-
 .../omid/examples/ConfigurationExample.html     |  205 +-
 .../omid/examples/SnapshotIsolationExample.html |  393 +-
 .../org/apache/omid/examples/package-frame.html |    2 +-
 .../apache/omid/examples/package-summary.html   |    2 +-
 xref/org/apache/omid/metrics/package-frame.html |    2 +-
 .../apache/omid/metrics/package-summary.html    |    2 +-
 xref/org/apache/omid/package-frame.html         |    7 +-
 xref/org/apache/omid/package-summary.html       |    9 +-
 .../storage/HBaseTimestampStorage.html          |  139 +-
 .../omid/timestamp/storage/package-frame.html   |    2 +-
 .../omid/timestamp/storage/package-summary.html |    2 +-
 .../org/apache/omid/tools/hbase/HBaseLogin.html |   47 +-
 .../omid/tools/hbase/OmidTableManager.html      |  358 +-
 .../apache/omid/tools/hbase/package-frame.html  |    2 +-
 .../omid/tools/hbase/package-summary.html       |    2 +-
 .../omid/transaction/AbstractTransaction.html   |  543 +-
 .../transaction/AbstractTransactionManager.html |  901 +--
 xref/org/apache/omid/transaction/CellUtils.html |  782 ++-
 .../apache/omid/transaction/CompactorUtil.html  |  149 +-
 .../apache/omid/transaction/HBaseCellId.html    |  140 +-
 .../HBaseOmidClientConfiguration.html           |  319 +-
 .../transaction/HBaseSyncPostCommitter.html     |  207 +-
 .../omid/transaction/HBaseTransaction.html      |  133 +-
 .../transaction/HBaseTransactionClient.html     |    6 +-
 .../transaction/HBaseTransactionManager.html    |  509 +-
 .../apache/omid/transaction/OmidCompactor.html  |  254 +-
 xref/org/apache/omid/transaction/TTable.html    | 1457 ++---
 .../apache/omid/transaction/Transaction.html    |   55 +-
 .../omid/transaction/TransactionManager.html    |   13 +-
 .../apache/omid/transaction/package-frame.html  |   39 +-
 .../omid/transaction/package-summary.html       |   61 +-
 xref/org/apache/omid/tso/Batch.html             |   88 +-
 xref/org/apache/omid/tso/BatchPoolModule.html   |   38 +-
 xref/org/apache/omid/tso/CacheEvaluation.html   |    2 +-
 xref/org/apache/omid/tso/PersistEvent.html      |   66 +-
 .../apache/omid/tso/PersistenceProcessor.html   |    8 +-
 .../omid/tso/PersistenceProcessorHandler.html   |  350 +-
 .../omid/tso/PersistenceProcessorImpl.html      |  154 +-
 xref/org/apache/omid/tso/ReplyProcessor.html    |   17 +-
 .../org/apache/omid/tso/ReplyProcessorImpl.html |  393 +-
 xref/org/apache/omid/tso/RequestProcessor.html  |    5 +-
 .../apache/omid/tso/RequestProcessorImpl.html   |  711 +--
 xref/org/apache/omid/tso/TSOChannelHandler.html |  210 +-
 xref/org/apache/omid/tso/TSOModule.html         |  101 +-
 xref/org/apache/omid/tso/TSOServer.html         |    2 +-
 xref/org/apache/omid/tso/TSOServerConfig.html   |  275 +-
 .../apache/omid/tso/TimestampOracleImpl.html    |  280 +-
 xref/org/apache/omid/tso/client/CellId.html     |    5 +-
 .../apache/omid/tso/client/MockTSOClient.html   |  224 +-
 .../tso/client/OmidClientConfiguration.html     |  290 +-
 xref/org/apache/omid/tso/client/TSOClient.html  | 1873 +++---
 .../org/apache/omid/tso/client/TSOProtocol.html |  111 +-
 .../apache/omid/tso/client/package-frame.html   |    8 +-
 .../apache/omid/tso/client/package-summary.html |   12 +-
 xref/org/apache/omid/tso/package-frame.html     |    8 +-
 xref/org/apache/omid/tso/package-summary.html   |   12 +-
 .../apache/omid/tso/util/DummyCellIdImpl.html   |   37 +-
 .../org/apache/omid/tso/util/package-frame.html |    2 +-
 .../apache/omid/tso/util/package-summary.html   |    2 +-
 xref/org/apache/omid/zk/package-frame.html      |    2 +-
 xref/org/apache/omid/zk/package-summary.html    |    2 +-
 xref/org/apache/statemachine/package-frame.html |    2 +-
 .../apache/statemachine/package-summary.html    |    2 +-
 xref/overview-frame.html                        |    5 +-
 xref/overview-summary.html                      |    9 +-
 174 files changed, 16250 insertions(+), 19247 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/basic-algorithm.html
----------------------------------------------------------------------
diff --git a/basic-algorithm.html b/basic-algorithm.html
index d9ae5cd..8680793 100644
--- a/basic-algorithm.html
+++ b/basic-algorithm.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>Basic Transaction Algorithm</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>Basic Transaction Algorithm</h1>
 <p>A simplified version of the algorithm for performing transactional operations in a non-faulty scenario is depicted in the following figure:</p>
 <p><img src="images/basic-alg.png" alt="Basic algorithm for managing transactions" /></p>
 <p>Initially, a user application (not shown in the figure for the sake of simplicity) starts a new transaction using the Transactional Client API, which in turn acquires a start timestamp from the TSO.</p>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/basic-concepts.html
----------------------------------------------------------------------
diff --git a/basic-concepts.html b/basic-concepts.html
index 43fcbaf..5341859 100644
--- a/basic-concepts.html
+++ b/basic-concepts.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>Basic Concepts</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>Basic Concepts</h1>
 <p>Omid started as a research project in 2011 at Yahoo Labs, with the aim of adding transactions to HBase. While Omid was designed with HBase in mind, we have been careful to not bind ourselves to a particular big datastore. As a consequence, Omid can be potentially adapted to be used with any other multiversioned key-value datastore with some additional extensions.</p>
 <p>In the next sections, we introduce two basic concepts that have driven Omid&#x2019;s design.</p>
 <div class="section">

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/basic-examples.html
----------------------------------------------------------------------
diff --git a/basic-examples.html b/basic-examples.html
index d7a17d1..8c99c5b 100644
--- a/basic-examples.html
+++ b/basic-examples.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -207,7 +207,19 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>Code Examples</h1>
+            <!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--><h1>Code Examples</h1>
 <p>This section guides the developer of Omid-based transactional applications over the different steps required to execute multi-row transactions on HBase and the different APIs involved in the process.</p>
 <div class="section">
 <h2><a name="Transactional_Contexts_and_Operations_with_Omid"></a>Transactional Contexts and Operations with Omid</h2>


[06/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/RequestProcessorImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/RequestProcessorImpl.html b/xref/org/apache/omid/tso/RequestProcessorImpl.html
index 927e134..400c699 100644
--- a/xref/org/apache/omid/tso/RequestProcessorImpl.html
+++ b/xref/org/apache/omid/tso/RequestProcessorImpl.html
@@ -34,416 +34,345 @@
 <a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> com.lmax.disruptor.TimeoutBlockingWaitStrategy;
 <a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> com.lmax.disruptor.TimeoutHandler;
 <a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> com.lmax.disruptor.dsl.Disruptor;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOStateManager.TSOState;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.Channel;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.NoSuchElementException;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutorService;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ThreadFactory;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOStateManager.TSOState;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.Channel;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.NoSuchElementException;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutorService;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ThreadFactory;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> com.lmax.disruptor.dsl.ProducerType.MULTI;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> java.util.concurrent.TimeUnit.MILLISECONDS;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> java.util.concurrent.TimeUnit.SECONDS;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.RequestProcessorImpl.RequestEvent.EVENT_FACTORY;
 <a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> com.lmax.disruptor.dsl.ProducerType.MULTI;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> java.util.concurrent.TimeUnit.MILLISECONDS;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> java.util.concurrent.TimeUnit.SECONDS;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.RequestProcessorImpl.RequestEvent.EVENT_FACTORY;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestProcessorImpl</a> <strong class="jxr_keyword">implements</strong> EventHandler&lt;RequestProcessorImpl.RequestEvent&gt;, RequestProcessor, TimeoutHandler {
-<a class="jxr_linenumber" name="53" href="#53">53</a>  
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(RequestProcessorImpl.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestProcessorImpl</a> <strong class="jxr_keyword">implements</strong> EventHandler&lt;RequestProcessorImpl.RequestEvent&gt;, RequestProcessor, TimeoutHandler {
+<a class="jxr_linenumber" name="48" href="#48">48</a>  
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(RequestProcessorImpl.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <em class="jxr_comment">// Disruptor-related attributes</em>
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ExecutorService disruptorExec;
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Disruptor&lt;RequestEvent&gt; disruptor;
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> RingBuffer&lt;RequestEvent&gt; requestRing;
 <a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <em class="jxr_comment">// Disruptor-related attributes</em>
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ExecutorService disruptorExec;
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Disruptor&lt;RequestEvent&gt; disruptor;
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> RingBuffer&lt;RequestEvent&gt; requestRing;
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/TimestampOracle.html">TimestampOracle</a> timestampOracle;
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/CommitHashMap.html">CommitHashMap</a> hashmap;
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics;
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessor.html">PersistenceProcessor</a> persistProc;
 <a class="jxr_linenumber" name="60" href="#60">60</a>  
-<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/TimestampOracle.html">TimestampOracle</a> timestampOracle;
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/CommitHashMap.html">CommitHashMap</a> hashmap;
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Long, Long&gt; tableFences;
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics;
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessor.html">PersistenceProcessor</a> persistProc;
-<a class="jxr_linenumber" name="66" href="#66">66</a>  
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> lowWatermark = -1L;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      @Inject
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestProcessorImpl</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics,
-<a class="jxr_linenumber" name="71" href="#71">71</a>                           <a href="../../../../org/apache/omid/tso/TimestampOracle.html">TimestampOracle</a> timestampOracle,
-<a class="jxr_linenumber" name="72" href="#72">72</a>                           <a href="../../../../org/apache/omid/tso/PersistenceProcessor.html">PersistenceProcessor</a> persistProc,
-<a class="jxr_linenumber" name="73" href="#73">73</a>                           <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker,
-<a class="jxr_linenumber" name="74" href="#74">74</a>                           <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> config)
-<a class="jxr_linenumber" name="75" href="#75">75</a>              <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> lowWatermark = -1L;
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>      @Inject
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestProcessorImpl</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics,
+<a class="jxr_linenumber" name="65" href="#65">65</a>                           <a href="../../../../org/apache/omid/tso/TimestampOracle.html">TimestampOracle</a> timestampOracle,
+<a class="jxr_linenumber" name="66" href="#66">66</a>                           <a href="../../../../org/apache/omid/tso/PersistenceProcessor.html">PersistenceProcessor</a> persistProc,
+<a class="jxr_linenumber" name="67" href="#67">67</a>                           <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker,
+<a class="jxr_linenumber" name="68" href="#68">68</a>                           <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> config)
+<a class="jxr_linenumber" name="69" href="#69">69</a>              <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="70" href="#70">70</a>  
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <em class="jxr_comment">// Disruptor initialization</em>
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="74" href="#74">74</a>  
+<a class="jxr_linenumber" name="75" href="#75">75</a>          TimeoutBlockingWaitStrategy timeoutStrategy = <strong class="jxr_keyword">new</strong> TimeoutBlockingWaitStrategy(config.getBatchPersistTimeoutInMs(), MILLISECONDS);
 <a class="jxr_linenumber" name="76" href="#76">76</a>  
-<a class="jxr_linenumber" name="77" href="#77">77</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>          <em class="jxr_comment">// Disruptor initialization</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>          TimeoutBlockingWaitStrategy timeoutStrategy = <strong class="jxr_keyword">new</strong> TimeoutBlockingWaitStrategy(config.getBatchPersistTimeoutInMs(), MILLISECONDS);
-<a class="jxr_linenumber" name="82" href="#82">82</a>  
-<a class="jxr_linenumber" name="83" href="#83">83</a>          ThreadFactory threadFactory = <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"request-%d"</span>).build();
-<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">this</strong>.disruptorExec = Executors.newSingleThreadExecutor(threadFactory);
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">this</strong>.disruptor = <strong class="jxr_keyword">new</strong> Disruptor&lt;&gt;(EVENT_FACTORY, 1 &lt;&lt; 12, disruptorExec, MULTI, timeoutStrategy);
-<a class="jxr_linenumber" name="87" href="#87">87</a>          disruptor.handleExceptionsWith(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/FatalExceptionHandler.html">FatalExceptionHandler</a>(panicker)); <em class="jxr_comment">// This must be before handleEventsWith()</em>
-<a class="jxr_linenumber" name="88" href="#88">88</a>          disruptor.handleEventsWith(<strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="89" href="#89">89</a>          <strong class="jxr_keyword">this</strong>.requestRing = disruptor.start();
-<a class="jxr_linenumber" name="90" href="#90">90</a>  
-<a class="jxr_linenumber" name="91" href="#91">91</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="92" href="#92">92</a>          <em class="jxr_comment">// Attribute initialization</em>
-<a class="jxr_linenumber" name="93" href="#93">93</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="94" href="#94">94</a>  
-<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">this</strong>.metrics = metrics;
-<a class="jxr_linenumber" name="96" href="#96">96</a>          <strong class="jxr_keyword">this</strong>.persistProc = persistProc;
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">this</strong>.timestampOracle = timestampOracle;
-<a class="jxr_linenumber" name="98" href="#98">98</a>          <strong class="jxr_keyword">this</strong>.hashmap = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/CommitHashMap.html">CommitHashMap</a>(config.getConflictMapSize());
-<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">this</strong>.tableFences = <strong class="jxr_keyword">new</strong> HashMap&lt;Long, Long&gt;();
-<a class="jxr_linenumber" name="100" href="#100">100</a> 
-<a class="jxr_linenumber" name="101" href="#101">101</a>         LOG.info(<span class="jxr_string">"RequestProcessor initialized"</span>);
-<a class="jxr_linenumber" name="102" href="#102">102</a> 
-<a class="jxr_linenumber" name="103" href="#103">103</a>     }
-<a class="jxr_linenumber" name="104" href="#104">104</a> 
-<a class="jxr_linenumber" name="105" href="#105">105</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * This should be called when the TSO gets leadership</em>
-<a class="jxr_linenumber" name="107" href="#107">107</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="108" href="#108">108</a>     @Override
-<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> update(<a href="../../../../org/apache/omid/tso/TSOStateManager.html">TSOState</a> state) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="110" href="#110">110</a>         LOG.info(<span class="jxr_string">"Initializing RequestProcessor state..."</span>);
-<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">this</strong>.lowWatermark = state.getLowWatermark();
-<a class="jxr_linenumber" name="112" href="#112">112</a>         persistProc.persistLowWatermark(lowWatermark).get(); <em class="jxr_comment">// Sync persist</em>
-<a class="jxr_linenumber" name="113" href="#113">113</a>         LOG.info(<span class="jxr_string">"RequestProcessor state initialized with LWMs {} and Epoch {}"</span>, lowWatermark, state.getEpoch());
-<a class="jxr_linenumber" name="114" href="#114">114</a>     }
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>     @Override
-<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onEvent(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> event, <strong class="jxr_keyword">long</strong> sequence, <strong class="jxr_keyword">boolean</strong> endOfBatch) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>         <strong class="jxr_keyword">switch</strong> (event.getType()) {
-<a class="jxr_linenumber" name="120" href="#120">120</a>             <strong class="jxr_keyword">case</strong> TIMESTAMP:
-<a class="jxr_linenumber" name="121" href="#121">121</a>                 handleTimestamp(event);
-<a class="jxr_linenumber" name="122" href="#122">122</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="123" href="#123">123</a>             <strong class="jxr_keyword">case</strong> COMMIT:
-<a class="jxr_linenumber" name="124" href="#124">124</a>                 handleCommit(event);
-<a class="jxr_linenumber" name="125" href="#125">125</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="126" href="#126">126</a>             <strong class="jxr_keyword">case</strong> FENCE:
-<a class="jxr_linenumber" name="127" href="#127">127</a>                 handleFence(event);
-<a class="jxr_linenumber" name="128" href="#128">128</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="129" href="#129">129</a>             <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="130" href="#130">130</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Event not allowed in Request Processor: "</span> + event);
-<a class="jxr_linenumber" name="131" href="#131">131</a>         }
-<a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a>     }
-<a class="jxr_linenumber" name="134" href="#134">134</a> 
-<a class="jxr_linenumber" name="135" href="#135">135</a>     @Override
-<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onTimeout(<strong class="jxr_keyword">long</strong> sequence) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="77" href="#77">77</a>          ThreadFactory threadFactory = <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"request-%d"</span>).build();
+<a class="jxr_linenumber" name="78" href="#78">78</a>          <strong class="jxr_keyword">this</strong>.disruptorExec = Executors.newSingleThreadExecutor(threadFactory);
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">this</strong>.disruptor = <strong class="jxr_keyword">new</strong> Disruptor&lt;&gt;(EVENT_FACTORY, 1 &lt;&lt; 12, disruptorExec, MULTI, timeoutStrategy);
+<a class="jxr_linenumber" name="81" href="#81">81</a>          disruptor.handleExceptionsWith(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/FatalExceptionHandler.html">FatalExceptionHandler</a>(panicker)); <em class="jxr_comment">// This must be before handleEventsWith()</em>
+<a class="jxr_linenumber" name="82" href="#82">82</a>          disruptor.handleEventsWith(<strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">this</strong>.requestRing = disruptor.start();
+<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="85" href="#85">85</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="86" href="#86">86</a>          <em class="jxr_comment">// Attribute initialization</em>
+<a class="jxr_linenumber" name="87" href="#87">87</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>          <strong class="jxr_keyword">this</strong>.metrics = metrics;
+<a class="jxr_linenumber" name="90" href="#90">90</a>          <strong class="jxr_keyword">this</strong>.persistProc = persistProc;
+<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">this</strong>.timestampOracle = timestampOracle;
+<a class="jxr_linenumber" name="92" href="#92">92</a>          <strong class="jxr_keyword">this</strong>.hashmap = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/CommitHashMap.html">CommitHashMap</a>(config.getConflictMapSize());
+<a class="jxr_linenumber" name="93" href="#93">93</a>  
+<a class="jxr_linenumber" name="94" href="#94">94</a>          LOG.info(<span class="jxr_string">"RequestProcessor initialized"</span>);
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>      }
+<a class="jxr_linenumber" name="97" href="#97">97</a>  
+<a class="jxr_linenumber" name="98" href="#98">98</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * This should be called when the TSO gets leadership</em>
+<a class="jxr_linenumber" name="100" href="#100">100</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="101" href="#101">101</a>     @Override
+<a class="jxr_linenumber" name="102" href="#102">102</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> update(<a href="../../../../org/apache/omid/tso/TSOStateManager.html">TSOState</a> state) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="103" href="#103">103</a>         LOG.info(<span class="jxr_string">"Initializing RequestProcessor state..."</span>);
+<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">this</strong>.lowWatermark = state.getLowWatermark();
+<a class="jxr_linenumber" name="105" href="#105">105</a>         persistProc.persistLowWatermark(lowWatermark).get(); <em class="jxr_comment">// Sync persist</em>
+<a class="jxr_linenumber" name="106" href="#106">106</a>         LOG.info(<span class="jxr_string">"RequestProcessor state initialized with LWMs {} and Epoch {}"</span>, lowWatermark, state.getEpoch());
+<a class="jxr_linenumber" name="107" href="#107">107</a>     }
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>     @Override
+<a class="jxr_linenumber" name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onEvent(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> event, <strong class="jxr_keyword">long</strong> sequence, <strong class="jxr_keyword">boolean</strong> endOfBatch) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="111" href="#111">111</a> 
+<a class="jxr_linenumber" name="112" href="#112">112</a>         <strong class="jxr_keyword">switch</strong> (event.getType()) {
+<a class="jxr_linenumber" name="113" href="#113">113</a>             <strong class="jxr_keyword">case</strong> TIMESTAMP:
+<a class="jxr_linenumber" name="114" href="#114">114</a>                 handleTimestamp(event);
+<a class="jxr_linenumber" name="115" href="#115">115</a>                 <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="116" href="#116">116</a>             <strong class="jxr_keyword">case</strong> COMMIT:
+<a class="jxr_linenumber" name="117" href="#117">117</a>                 handleCommit(event);
+<a class="jxr_linenumber" name="118" href="#118">118</a>                 <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="119" href="#119">119</a>             <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="120" href="#120">120</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Event not allowed in Request Processor: "</span> + event);
+<a class="jxr_linenumber" name="121" href="#121">121</a>         }
+<a class="jxr_linenumber" name="122" href="#122">122</a> 
+<a class="jxr_linenumber" name="123" href="#123">123</a>     }
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a>     @Override
+<a class="jxr_linenumber" name="126" href="#126">126</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onTimeout(<strong class="jxr_keyword">long</strong> sequence) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="127" href="#127">127</a> 
+<a class="jxr_linenumber" name="128" href="#128">128</a>         <em class="jxr_comment">// TODO We can not use this as a timeout trigger for flushing. This timeout is related to the time between</em>
+<a class="jxr_linenumber" name="129" href="#129">129</a>         <em class="jxr_comment">// TODO (cont) arrivals of requests to the disruptor. We need another mechanism to trigger timeouts</em>
+<a class="jxr_linenumber" name="130" href="#130">130</a>         <em class="jxr_comment">// TODO (cont) WARNING!!! Take care with the implementation because if there's other thread than request-0</em>
+<a class="jxr_linenumber" name="131" href="#131">131</a>         <em class="jxr_comment">// TODO (cont) thread the one that calls persistProc.triggerCurrentBatchFlush(); we'll incur in concurrency issues</em>
+<a class="jxr_linenumber" name="132" href="#132">132</a>         <em class="jxr_comment">// TODO (cont) This is because, in the current implementation, only the request-0 thread calls the public methods</em>
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <em class="jxr_comment">// TODO (cont) in persistProc and it is guaranteed that access them serially.</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a>         persistProc.triggerCurrentBatchFlush();
+<a class="jxr_linenumber" name="135" href="#135">135</a> 
+<a class="jxr_linenumber" name="136" href="#136">136</a>     }
 <a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>         <em class="jxr_comment">// TODO We can not use this as a timeout trigger for flushing. This timeout is related to the time between</em>
-<a class="jxr_linenumber" name="139" href="#139">139</a>         <em class="jxr_comment">// TODO (cont) arrivals of requests to the disruptor. We need another mechanism to trigger timeouts</em>
-<a class="jxr_linenumber" name="140" href="#140">140</a>         <em class="jxr_comment">// TODO (cont) WARNING!!! Take care with the implementation because if there's other thread than request-0</em>
-<a class="jxr_linenumber" name="141" href="#141">141</a>         <em class="jxr_comment">// TODO (cont) thread the one that calls persistProc.triggerCurrentBatchFlush(); we'll incur in concurrency issues</em>
-<a class="jxr_linenumber" name="142" href="#142">142</a>         <em class="jxr_comment">// TODO (cont) This is because, in the current implementation, only the request-0 thread calls the public methods</em>
-<a class="jxr_linenumber" name="143" href="#143">143</a>         <em class="jxr_comment">// TODO (cont) in persistProc and it is guaranteed that access them serially.</em>
-<a class="jxr_linenumber" name="144" href="#144">144</a>         persistProc.triggerCurrentBatchFlush();
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>     }
-<a class="jxr_linenumber" name="147" href="#147">147</a> 
-<a class="jxr_linenumber" name="148" href="#148">148</a>     @Override
-<a class="jxr_linenumber" name="149" href="#149">149</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> timestampRequest(Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
-<a class="jxr_linenumber" name="150" href="#150">150</a> 
-<a class="jxr_linenumber" name="151" href="#151">151</a>         monCtx.timerStart(<span class="jxr_string">"request.processor.timestamp.latency"</span>);
-<a class="jxr_linenumber" name="152" href="#152">152</a>         <strong class="jxr_keyword">long</strong> seq = requestRing.next();
-<a class="jxr_linenumber" name="153" href="#153">153</a>         <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e = requestRing.get(seq);
-<a class="jxr_linenumber" name="154" href="#154">154</a>         RequestEvent.makeTimestampRequest(e, c, monCtx);
-<a class="jxr_linenumber" name="155" href="#155">155</a>         requestRing.publish(seq);
-<a class="jxr_linenumber" name="156" href="#156">156</a> 
-<a class="jxr_linenumber" name="157" href="#157">157</a>     }
+<a class="jxr_linenumber" name="138" href="#138">138</a>     @Override
+<a class="jxr_linenumber" name="139" href="#139">139</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> timestampRequest(Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
+<a class="jxr_linenumber" name="140" href="#140">140</a> 
+<a class="jxr_linenumber" name="141" href="#141">141</a>         monCtx.timerStart(<span class="jxr_string">"request.processor.timestamp.latency"</span>);
+<a class="jxr_linenumber" name="142" href="#142">142</a>         <strong class="jxr_keyword">long</strong> seq = requestRing.next();
+<a class="jxr_linenumber" name="143" href="#143">143</a>         <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e = requestRing.get(seq);
+<a class="jxr_linenumber" name="144" href="#144">144</a>         RequestEvent.makeTimestampRequest(e, c, monCtx);
+<a class="jxr_linenumber" name="145" href="#145">145</a>         requestRing.publish(seq);
+<a class="jxr_linenumber" name="146" href="#146">146</a> 
+<a class="jxr_linenumber" name="147" href="#147">147</a>     }
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>     @Override
+<a class="jxr_linenumber" name="150" href="#150">150</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> commitRequest(<strong class="jxr_keyword">long</strong> startTimestamp, Collection&lt;Long&gt; writeSet, <strong class="jxr_keyword">boolean</strong> isRetry, Channel c,
+<a class="jxr_linenumber" name="151" href="#151">151</a>                               <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
+<a class="jxr_linenumber" name="152" href="#152">152</a> 
+<a class="jxr_linenumber" name="153" href="#153">153</a>         monCtx.timerStart(<span class="jxr_string">"request.processor.commit.latency"</span>);
+<a class="jxr_linenumber" name="154" href="#154">154</a>         <strong class="jxr_keyword">long</strong> seq = requestRing.next();
+<a class="jxr_linenumber" name="155" href="#155">155</a>         <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e = requestRing.get(seq);
+<a class="jxr_linenumber" name="156" href="#156">156</a>         RequestEvent.makeCommitRequest(e, startTimestamp, monCtx, writeSet, isRetry, c);
+<a class="jxr_linenumber" name="157" href="#157">157</a>         requestRing.publish(seq);
 <a class="jxr_linenumber" name="158" href="#158">158</a> 
-<a class="jxr_linenumber" name="159" href="#159">159</a>     @Override
-<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> commitRequest(<strong class="jxr_keyword">long</strong> startTimestamp, Collection&lt;Long&gt; writeSet, Collection&lt;Long&gt; tableIdSet, <strong class="jxr_keyword">boolean</strong> isRetry, Channel c,
-<a class="jxr_linenumber" name="161" href="#161">161</a>                               <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
+<a class="jxr_linenumber" name="159" href="#159">159</a>     }
+<a class="jxr_linenumber" name="160" href="#160">160</a> 
+<a class="jxr_linenumber" name="161" href="#161">161</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> handleTimestamp(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> requestEvent) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="162" href="#162">162</a> 
-<a class="jxr_linenumber" name="163" href="#163">163</a>         monCtx.timerStart(<span class="jxr_string">"request.processor.commit.latency"</span>);
-<a class="jxr_linenumber" name="164" href="#164">164</a>         <strong class="jxr_keyword">long</strong> seq = requestRing.next();
-<a class="jxr_linenumber" name="165" href="#165">165</a>         <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e = requestRing.get(seq);
-<a class="jxr_linenumber" name="166" href="#166">166</a>         RequestEvent.makeCommitRequest(e, startTimestamp, monCtx, writeSet, tableIdSet, isRetry, c);
-<a class="jxr_linenumber" name="167" href="#167">167</a>         requestRing.publish(seq);
+<a class="jxr_linenumber" name="163" href="#163">163</a>         <strong class="jxr_keyword">long</strong> timestamp = timestampOracle.next();
+<a class="jxr_linenumber" name="164" href="#164">164</a>         requestEvent.getMonCtx().timerStop(<span class="jxr_string">"request.processor.timestamp.latency"</span>);
+<a class="jxr_linenumber" name="165" href="#165">165</a>         persistProc.addTimestampToBatch(timestamp, requestEvent.getChannel(), requestEvent.getMonCtx());
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>     }
 <a class="jxr_linenumber" name="168" href="#168">168</a> 
-<a class="jxr_linenumber" name="169" href="#169">169</a>     }
+<a class="jxr_linenumber" name="169" href="#169">169</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> handleCommit(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> event) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="170" href="#170">170</a> 
-<a class="jxr_linenumber" name="171" href="#171">171</a>     @Override
-<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> fenceRequest(<strong class="jxr_keyword">long</strong> tableID, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
-<a class="jxr_linenumber" name="173" href="#173">173</a> 
-<a class="jxr_linenumber" name="174" href="#174">174</a>         monCtx.timerStart(<span class="jxr_string">"request.processor.fence.latency"</span>);
-<a class="jxr_linenumber" name="175" href="#175">175</a>         <strong class="jxr_keyword">long</strong> seq = requestRing.next();
-<a class="jxr_linenumber" name="176" href="#176">176</a>         <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e = requestRing.get(seq);
-<a class="jxr_linenumber" name="177" href="#177">177</a>         RequestEvent.makeFenceRequest(e, tableID, c, monCtx);
-<a class="jxr_linenumber" name="178" href="#178">178</a>         requestRing.publish(seq);
-<a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a>     }
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> handleTimestamp(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> requestEvent) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">long</strong> timestamp = timestampOracle.next();
-<a class="jxr_linenumber" name="185" href="#185">185</a>         requestEvent.getMonCtx().timerStop(<span class="jxr_string">"request.processor.timestamp.latency"</span>);
-<a class="jxr_linenumber" name="186" href="#186">186</a>         persistProc.addTimestampToBatch(timestamp, requestEvent.getChannel(), requestEvent.getMonCtx());
-<a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>     }
-<a class="jxr_linenumber" name="189" href="#189">189</a> 
-<a class="jxr_linenumber" name="190" href="#190">190</a>     <em class="jxr_comment">// Checks whether transaction transactionId started before a fence creation of a table transactionId modified.</em>
-<a class="jxr_linenumber" name="191" href="#191">191</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> hasConflictsWithFences(<strong class="jxr_keyword">long</strong> startTimestamp, Collection&lt;Long&gt; tableIdSet) {
-<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">if</strong> (!tableFences.isEmpty()) {
-<a class="jxr_linenumber" name="193" href="#193">193</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> tableId: tableIdSet) {
-<a class="jxr_linenumber" name="194" href="#194">194</a>                 Long fence = tableFences.get(tableId);
-<a class="jxr_linenumber" name="195" href="#195">195</a>                 <strong class="jxr_keyword">if</strong> (fence != <strong class="jxr_keyword">null</strong> &amp;&amp; fence &gt; startTimestamp) {
-<a class="jxr_linenumber" name="196" href="#196">196</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="197" href="#197">197</a>                 }
-<a class="jxr_linenumber" name="198" href="#198">198</a>                 <strong class="jxr_keyword">if</strong> (fence != <strong class="jxr_keyword">null</strong> &amp;&amp; fence &lt; lowWatermark) {
-<a class="jxr_linenumber" name="199" href="#199">199</a>                     tableFences.remove(tableId); <em class="jxr_comment">// Garbage collect entries of old fences.</em>
-<a class="jxr_linenumber" name="200" href="#200">200</a>                 }
-<a class="jxr_linenumber" name="201" href="#201">201</a>             }
-<a class="jxr_linenumber" name="202" href="#202">202</a>         }
-<a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a>         <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="205" href="#205">205</a>     }
-<a class="jxr_linenumber" name="206" href="#206">206</a> 
-<a class="jxr_linenumber" name="207" href="#207">207</a>  <em class="jxr_comment">// Checks whether transactionId has a write-write conflict with a transaction committed after transactionId.</em>
-<a class="jxr_linenumber" name="208" href="#208">208</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> hasConflictsWithCommittedTransactions(<strong class="jxr_keyword">long</strong> startTimestamp, Iterable&lt;Long&gt; writeSet) {
-<a class="jxr_linenumber" name="209" href="#209">209</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> cellId : writeSet) {
-<a class="jxr_linenumber" name="210" href="#210">210</a>             <strong class="jxr_keyword">long</strong> value = hashmap.getLatestWriteForCell(cellId);
-<a class="jxr_linenumber" name="211" href="#211">211</a>             <strong class="jxr_keyword">if</strong> (value != 0 &amp;&amp; value &gt;= startTimestamp) {
-<a class="jxr_linenumber" name="212" href="#212">212</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="171" href="#171">171</a>         <strong class="jxr_keyword">long</strong> startTimestamp = event.getStartTimestamp();
+<a class="jxr_linenumber" name="172" href="#172">172</a>         Iterable&lt;Long&gt; writeSet = event.writeSet();
+<a class="jxr_linenumber" name="173" href="#173">173</a>         <strong class="jxr_keyword">boolean</strong> isCommitRetry = event.isCommitRetry();
+<a class="jxr_linenumber" name="174" href="#174">174</a>         Channel c = event.getChannel();
+<a class="jxr_linenumber" name="175" href="#175">175</a> 
+<a class="jxr_linenumber" name="176" href="#176">176</a>         <strong class="jxr_keyword">boolean</strong> txCanCommit;
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>         <strong class="jxr_keyword">int</strong> numCellsInWriteset = 0;
+<a class="jxr_linenumber" name="179" href="#179">179</a>         <em class="jxr_comment">// 0. check if it should abort</em>
+<a class="jxr_linenumber" name="180" href="#180">180</a>         <strong class="jxr_keyword">if</strong> (startTimestamp &lt;= lowWatermark) {
+<a class="jxr_linenumber" name="181" href="#181">181</a>             txCanCommit = false;
+<a class="jxr_linenumber" name="182" href="#182">182</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="183" href="#183">183</a>             <em class="jxr_comment">// 1. check the write-write conflicts</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a>             txCanCommit = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="185" href="#185">185</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> cellId : writeSet) {
+<a class="jxr_linenumber" name="186" href="#186">186</a>                 <strong class="jxr_keyword">long</strong> value = hashmap.getLatestWriteForCell(cellId);
+<a class="jxr_linenumber" name="187" href="#187">187</a>                 <strong class="jxr_keyword">if</strong> (value != 0 &amp;&amp; value &gt;= startTimestamp) {
+<a class="jxr_linenumber" name="188" href="#188">188</a>                     txCanCommit = false;
+<a class="jxr_linenumber" name="189" href="#189">189</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="190" href="#190">190</a>                 }
+<a class="jxr_linenumber" name="191" href="#191">191</a>                 numCellsInWriteset++;
+<a class="jxr_linenumber" name="192" href="#192">192</a>             }
+<a class="jxr_linenumber" name="193" href="#193">193</a>         }
+<a class="jxr_linenumber" name="194" href="#194">194</a> 
+<a class="jxr_linenumber" name="195" href="#195">195</a>         <strong class="jxr_keyword">if</strong> (txCanCommit) {
+<a class="jxr_linenumber" name="196" href="#196">196</a>             <em class="jxr_comment">// 2. commit</em>
+<a class="jxr_linenumber" name="197" href="#197">197</a> 
+<a class="jxr_linenumber" name="198" href="#198">198</a>             <strong class="jxr_keyword">long</strong> commitTimestamp = timestampOracle.next();
+<a class="jxr_linenumber" name="199" href="#199">199</a> 
+<a class="jxr_linenumber" name="200" href="#200">200</a>             <strong class="jxr_keyword">if</strong> (numCellsInWriteset &gt; 0) {
+<a class="jxr_linenumber" name="201" href="#201">201</a>                 <strong class="jxr_keyword">long</strong> newLowWatermark = lowWatermark;
+<a class="jxr_linenumber" name="202" href="#202">202</a> 
+<a class="jxr_linenumber" name="203" href="#203">203</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> r : writeSet) {
+<a class="jxr_linenumber" name="204" href="#204">204</a>                     <strong class="jxr_keyword">long</strong> removed = hashmap.putLatestWriteForCell(r, commitTimestamp);
+<a class="jxr_linenumber" name="205" href="#205">205</a>                     newLowWatermark = Math.max(removed, newLowWatermark);
+<a class="jxr_linenumber" name="206" href="#206">206</a>                 }
+<a class="jxr_linenumber" name="207" href="#207">207</a> 
+<a class="jxr_linenumber" name="208" href="#208">208</a>                 <strong class="jxr_keyword">if</strong> (newLowWatermark != lowWatermark) {
+<a class="jxr_linenumber" name="209" href="#209">209</a>                     LOG.trace(<span class="jxr_string">"Setting new low Watermark to {}"</span>, newLowWatermark);
+<a class="jxr_linenumber" name="210" href="#210">210</a>                     lowWatermark = newLowWatermark;
+<a class="jxr_linenumber" name="211" href="#211">211</a>                     persistProc.persistLowWatermark(newLowWatermark); <em class="jxr_comment">// Async persist</em>
+<a class="jxr_linenumber" name="212" href="#212">212</a>                 }
 <a class="jxr_linenumber" name="213" href="#213">213</a>             }
-<a class="jxr_linenumber" name="214" href="#214">214</a>         }
-<a class="jxr_linenumber" name="215" href="#215">215</a> 
-<a class="jxr_linenumber" name="216" href="#216">216</a>         <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="217" href="#217">217</a>     }
+<a class="jxr_linenumber" name="214" href="#214">214</a>             event.getMonCtx().timerStop(<span class="jxr_string">"request.processor.commit.latency"</span>);
+<a class="jxr_linenumber" name="215" href="#215">215</a>             persistProc.addCommitToBatch(startTimestamp, commitTimestamp, c, event.getMonCtx());
+<a class="jxr_linenumber" name="216" href="#216">216</a> 
+<a class="jxr_linenumber" name="217" href="#217">217</a>         } <strong class="jxr_keyword">else</strong> {
 <a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> handleCommit(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> event) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="220" href="#220">220</a> 
-<a class="jxr_linenumber" name="221" href="#221">221</a>         <strong class="jxr_keyword">long</strong> startTimestamp = event.getStartTimestamp();
-<a class="jxr_linenumber" name="222" href="#222">222</a>         Iterable&lt;Long&gt; writeSet = event.writeSet();
-<a class="jxr_linenumber" name="223" href="#223">223</a>         Collection&lt;Long&gt; tableIdSet = event.getTableIdSet();
-<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">boolean</strong> isCommitRetry = event.isCommitRetry();
-<a class="jxr_linenumber" name="225" href="#225">225</a>         Channel c = event.getChannel();
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>         <strong class="jxr_keyword">boolean</strong> nonEmptyWriteSet = writeSet.iterator().hasNext();
-<a class="jxr_linenumber" name="228" href="#228">228</a> 
-<a class="jxr_linenumber" name="229" href="#229">229</a>         <em class="jxr_comment">// If the transaction started before the low watermark, or</em>
-<a class="jxr_linenumber" name="230" href="#230">230</a>         <em class="jxr_comment">// it started before a fence and modified the table the fence created for, or</em>
-<a class="jxr_linenumber" name="231" href="#231">231</a>         <em class="jxr_comment">// it has a write-write conflict with a transaction committed after it started</em>
-<a class="jxr_linenumber" name="232" href="#232">232</a>         <em class="jxr_comment">// Then it should abort. Otherwise, it can commit.</em>
-<a class="jxr_linenumber" name="233" href="#233">233</a>         <strong class="jxr_keyword">if</strong> (startTimestamp &gt; lowWatermark &amp;&amp;
-<a class="jxr_linenumber" name="234" href="#234">234</a>             !hasConflictsWithFences(startTimestamp, tableIdSet) &amp;&amp;
-<a class="jxr_linenumber" name="235" href="#235">235</a>             !hasConflictsWithCommittedTransactions(startTimestamp, writeSet)) {
-<a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>             <strong class="jxr_keyword">long</strong> commitTimestamp = timestampOracle.next();
-<a class="jxr_linenumber" name="238" href="#238">238</a> 
-<a class="jxr_linenumber" name="239" href="#239">239</a>             <strong class="jxr_keyword">if</strong> (nonEmptyWriteSet) {
-<a class="jxr_linenumber" name="240" href="#240">240</a>                 <strong class="jxr_keyword">long</strong> newLowWatermark = lowWatermark;
-<a class="jxr_linenumber" name="241" href="#241">241</a> 
-<a class="jxr_linenumber" name="242" href="#242">242</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> r : writeSet) {
-<a class="jxr_linenumber" name="243" href="#243">243</a>                     <strong class="jxr_keyword">long</strong> removed = hashmap.putLatestWriteForCell(r, commitTimestamp);
-<a class="jxr_linenumber" name="244" href="#244">244</a>                     newLowWatermark = Math.max(removed, newLowWatermark);
-<a class="jxr_linenumber" name="245" href="#245">245</a>                 }
+<a class="jxr_linenumber" name="219" href="#219">219</a>             event.getMonCtx().timerStop(<span class="jxr_string">"request.processor.commit.latency"</span>);
+<a class="jxr_linenumber" name="220" href="#220">220</a>             <strong class="jxr_keyword">if</strong> (isCommitRetry) { <em class="jxr_comment">// Re-check if it was already committed but the client retried due to a lag replying</em>
+<a class="jxr_linenumber" name="221" href="#221">221</a>                 persistProc.addCommitRetryToBatch(startTimestamp, c, event.getMonCtx());
+<a class="jxr_linenumber" name="222" href="#222">222</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="223" href="#223">223</a>                 persistProc.addAbortToBatch(startTimestamp, c, event.getMonCtx());
+<a class="jxr_linenumber" name="224" href="#224">224</a>             }
+<a class="jxr_linenumber" name="225" href="#225">225</a> 
+<a class="jxr_linenumber" name="226" href="#226">226</a>         }
+<a class="jxr_linenumber" name="227" href="#227">227</a> 
+<a class="jxr_linenumber" name="228" href="#228">228</a>     }
+<a class="jxr_linenumber" name="229" href="#229">229</a> 
+<a class="jxr_linenumber" name="230" href="#230">230</a>     @Override
+<a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="232" href="#232">232</a> 
+<a class="jxr_linenumber" name="233" href="#233">233</a>         LOG.info(<span class="jxr_string">"Terminating Request Processor..."</span>);
+<a class="jxr_linenumber" name="234" href="#234">234</a>         disruptor.halt();
+<a class="jxr_linenumber" name="235" href="#235">235</a>         disruptor.shutdown();
+<a class="jxr_linenumber" name="236" href="#236">236</a>         LOG.info(<span class="jxr_string">"\tRequest Processor Disruptor shutdown"</span>);
+<a class="jxr_linenumber" name="237" href="#237">237</a>         disruptorExec.shutdownNow();
+<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="239" href="#239">239</a>             disruptorExec.awaitTermination(3, SECONDS);
+<a class="jxr_linenumber" name="240" href="#240">240</a>             LOG.info(<span class="jxr_string">"\tRequest Processor Disruptor executor shutdown"</span>);
+<a class="jxr_linenumber" name="241" href="#241">241</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
+<a class="jxr_linenumber" name="242" href="#242">242</a>             LOG.error(<span class="jxr_string">"Interrupted whilst finishing Request Processor Disruptor executor"</span>);
+<a class="jxr_linenumber" name="243" href="#243">243</a>             Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="244" href="#244">244</a>         }
+<a class="jxr_linenumber" name="245" href="#245">245</a>         LOG.info(<span class="jxr_string">"Request Processor terminated"</span>);
 <a class="jxr_linenumber" name="246" href="#246">246</a> 
-<a class="jxr_linenumber" name="247" href="#247">247</a>                 <strong class="jxr_keyword">if</strong> (newLowWatermark != lowWatermark) {
-<a class="jxr_linenumber" name="248" href="#248">248</a>                     LOG.trace(<span class="jxr_string">"Setting new low Watermark to {}"</span>, newLowWatermark);
-<a class="jxr_linenumber" name="249" href="#249">249</a>                     lowWatermark = newLowWatermark;
-<a class="jxr_linenumber" name="250" href="#250">250</a>                     persistProc.persistLowWatermark(newLowWatermark); <em class="jxr_comment">// Async persist</em>
-<a class="jxr_linenumber" name="251" href="#251">251</a>                 }
-<a class="jxr_linenumber" name="252" href="#252">252</a>             }
-<a class="jxr_linenumber" name="253" href="#253">253</a>             event.getMonCtx().timerStop(<span class="jxr_string">"request.processor.commit.latency"</span>);
-<a class="jxr_linenumber" name="254" href="#254">254</a>             persistProc.addCommitToBatch(startTimestamp, commitTimestamp, c, event.getMonCtx());
-<a class="jxr_linenumber" name="255" href="#255">255</a> 
-<a class="jxr_linenumber" name="256" href="#256">256</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="247" href="#247">247</a>     }
+<a class="jxr_linenumber" name="248" href="#248">248</a> 
+<a class="jxr_linenumber" name="249" href="#249">249</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> <strong class="jxr_keyword">implements</strong> Iterable&lt;Long&gt; {
+<a class="jxr_linenumber" name="250" href="#250">250</a> 
+<a class="jxr_linenumber" name="251" href="#251">251</a>         enum <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> {
+<a class="jxr_linenumber" name="252" href="#252">252</a>             TIMESTAMP, COMMIT
+<a class="jxr_linenumber" name="253" href="#253">253</a>         }
+<a class="jxr_linenumber" name="254" href="#254">254</a> 
+<a class="jxr_linenumber" name="255" href="#255">255</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> type = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="256" href="#256">256</a>         <strong class="jxr_keyword">private</strong> Channel channel = <strong class="jxr_keyword">null</strong>;
 <a class="jxr_linenumber" name="257" href="#257">257</a> 
-<a class="jxr_linenumber" name="258" href="#258">258</a>             event.getMonCtx().timerStop(<span class="jxr_string">"request.processor.commit.latency"</span>);
-<a class="jxr_linenumber" name="259" href="#259">259</a>             <strong class="jxr_keyword">if</strong> (isCommitRetry) { <em class="jxr_comment">// Re-check if it was already committed but the client retried due to a lag replying</em>
-<a class="jxr_linenumber" name="260" href="#260">260</a>                 persistProc.addCommitRetryToBatch(startTimestamp, c, event.getMonCtx());
-<a class="jxr_linenumber" name="261" href="#261">261</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="262" href="#262">262</a>                 persistProc.addAbortToBatch(startTimestamp, c, event.getMonCtx());
-<a class="jxr_linenumber" name="263" href="#263">263</a>             }
-<a class="jxr_linenumber" name="264" href="#264">264</a> 
-<a class="jxr_linenumber" name="265" href="#265">265</a>         }
+<a class="jxr_linenumber" name="258" href="#258">258</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isCommitRetry = false;
+<a class="jxr_linenumber" name="259" href="#259">259</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> startTimestamp = 0;
+<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx;
+<a class="jxr_linenumber" name="261" href="#261">261</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> numCells = 0;
+<a class="jxr_linenumber" name="262" href="#262">262</a> 
+<a class="jxr_linenumber" name="263" href="#263">263</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> MAX_INLINE = 40;
+<a class="jxr_linenumber" name="264" href="#264">264</a>         <strong class="jxr_keyword">private</strong> Long writeSet[] = <strong class="jxr_keyword">new</strong> Long[MAX_INLINE];
+<a class="jxr_linenumber" name="265" href="#265">265</a>         <strong class="jxr_keyword">private</strong> Collection&lt;Long&gt; writeSetAsCollection = <strong class="jxr_keyword">null</strong>; <em class="jxr_comment">// for the case where there's more than MAX_INLINE</em>
 <a class="jxr_linenumber" name="266" href="#266">266</a> 
-<a class="jxr_linenumber" name="267" href="#267">267</a>     }
-<a class="jxr_linenumber" name="268" href="#268">268</a> 
-<a class="jxr_linenumber" name="269" href="#269">269</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> handleFence(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> event) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="270" href="#270">270</a>         <strong class="jxr_keyword">long</strong> tableID = event.getTableId();
-<a class="jxr_linenumber" name="271" href="#271">271</a>         Channel c = event.getChannel();
+<a class="jxr_linenumber" name="267" href="#267">267</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makeTimestampRequest(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
+<a class="jxr_linenumber" name="268" href="#268">268</a>             e.type = Type.TIMESTAMP;
+<a class="jxr_linenumber" name="269" href="#269">269</a>             e.channel = c;
+<a class="jxr_linenumber" name="270" href="#270">270</a>             e.monCtx = monCtx;
+<a class="jxr_linenumber" name="271" href="#271">271</a>         }
 <a class="jxr_linenumber" name="272" href="#272">272</a> 
-<a class="jxr_linenumber" name="273" href="#273">273</a>         <strong class="jxr_keyword">long</strong> fenceTimestamp = timestampOracle.next();
-<a class="jxr_linenumber" name="274" href="#274">274</a> 
-<a class="jxr_linenumber" name="275" href="#275">275</a>         tableFences.put(tableID, fenceTimestamp);
-<a class="jxr_linenumber" name="276" href="#276">276</a>         persistProc.addFenceToBatch(tableID, fenceTimestamp, c, event.getMonCtx());
-<a class="jxr_linenumber" name="277" href="#277">277</a>     }
-<a class="jxr_linenumber" name="278" href="#278">278</a> 
-<a class="jxr_linenumber" name="279" href="#279">279</a>     @Override
-<a class="jxr_linenumber" name="280" href="#280">280</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="281" href="#281">281</a> 
-<a class="jxr_linenumber" name="282" href="#282">282</a>         LOG.info(<span class="jxr_string">"Terminating Request Processor..."</span>);
-<a class="jxr_linenumber" name="283" href="#283">283</a>         disruptor.halt();
-<a class="jxr_linenumber" name="284" href="#284">284</a>         disruptor.shutdown();
-<a class="jxr_linenumber" name="285" href="#285">285</a>         LOG.info(<span class="jxr_string">"\tRequest Processor Disruptor shutdown"</span>);
-<a class="jxr_linenumber" name="286" href="#286">286</a>         disruptorExec.shutdownNow();
-<a class="jxr_linenumber" name="287" href="#287">287</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="288" href="#288">288</a>             disruptorExec.awaitTermination(3, SECONDS);
-<a class="jxr_linenumber" name="289" href="#289">289</a>             LOG.info(<span class="jxr_string">"\tRequest Processor Disruptor executor shutdown"</span>);
-<a class="jxr_linenumber" name="290" href="#290">290</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
-<a class="jxr_linenumber" name="291" href="#291">291</a>             LOG.error(<span class="jxr_string">"Interrupted whilst finishing Request Processor Disruptor executor"</span>);
-<a class="jxr_linenumber" name="292" href="#292">292</a>             Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="293" href="#293">293</a>         }
-<a class="jxr_linenumber" name="294" href="#294">294</a>         LOG.info(<span class="jxr_string">"Request Processor terminated"</span>);
-<a class="jxr_linenumber" name="295" href="#295">295</a> 
-<a class="jxr_linenumber" name="296" href="#296">296</a>     }
-<a class="jxr_linenumber" name="297" href="#297">297</a> 
-<a class="jxr_linenumber" name="298" href="#298">298</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> <strong class="jxr_keyword">implements</strong> Iterable&lt;Long&gt; {
-<a class="jxr_linenumber" name="299" href="#299">299</a> 
-<a class="jxr_linenumber" name="300" href="#300">300</a>         enum <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> {
-<a class="jxr_linenumber" name="301" href="#301">301</a>             TIMESTAMP, COMMIT, FENCE
-<a class="jxr_linenumber" name="302" href="#302">302</a>         }
-<a class="jxr_linenumber" name="303" href="#303">303</a> 
-<a class="jxr_linenumber" name="304" href="#304">304</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> type = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="305" href="#305">305</a>         <strong class="jxr_keyword">private</strong> Channel channel = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="273" href="#273">273</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makeCommitRequest(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e,
+<a class="jxr_linenumber" name="274" href="#274">274</a>                                       <strong class="jxr_keyword">long</strong> startTimestamp,
+<a class="jxr_linenumber" name="275" href="#275">275</a>                                       <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx,
+<a class="jxr_linenumber" name="276" href="#276">276</a>                                       Collection&lt;Long&gt; writeSet,
+<a class="jxr_linenumber" name="277" href="#277">277</a>                                       <strong class="jxr_keyword">boolean</strong> isRetry,
+<a class="jxr_linenumber" name="278" href="#278">278</a>                                       Channel c) {
+<a class="jxr_linenumber" name="279" href="#279">279</a>             e.monCtx = monCtx;
+<a class="jxr_linenumber" name="280" href="#280">280</a>             e.type = Type.COMMIT;
+<a class="jxr_linenumber" name="281" href="#281">281</a>             e.channel = c;
+<a class="jxr_linenumber" name="282" href="#282">282</a>             e.startTimestamp = startTimestamp;
+<a class="jxr_linenumber" name="283" href="#283">283</a>             e.isCommitRetry = isRetry;
+<a class="jxr_linenumber" name="284" href="#284">284</a>             <strong class="jxr_keyword">if</strong> (writeSet.size() &gt; MAX_INLINE) {
+<a class="jxr_linenumber" name="285" href="#285">285</a>                 e.numCells = writeSet.size();
+<a class="jxr_linenumber" name="286" href="#286">286</a>                 e.writeSetAsCollection = writeSet;
+<a class="jxr_linenumber" name="287" href="#287">287</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="288" href="#288">288</a>                 e.writeSetAsCollection = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="289" href="#289">289</a>                 e.numCells = writeSet.size();
+<a class="jxr_linenumber" name="290" href="#290">290</a>                 <strong class="jxr_keyword">int</strong> i = 0;
+<a class="jxr_linenumber" name="291" href="#291">291</a>                 <strong class="jxr_keyword">for</strong> (Long cellId : writeSet) {
+<a class="jxr_linenumber" name="292" href="#292">292</a>                     e.writeSet[i] = cellId;
+<a class="jxr_linenumber" name="293" href="#293">293</a>                     i++;
+<a class="jxr_linenumber" name="294" href="#294">294</a>                 }
+<a class="jxr_linenumber" name="295" href="#295">295</a>             }
+<a class="jxr_linenumber" name="296" href="#296">296</a> 
+<a class="jxr_linenumber" name="297" href="#297">297</a>         }
+<a class="jxr_linenumber" name="298" href="#298">298</a> 
+<a class="jxr_linenumber" name="299" href="#299">299</a>         <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> getMonCtx() {
+<a class="jxr_linenumber" name="300" href="#300">300</a>             <strong class="jxr_keyword">return</strong> monCtx;
+<a class="jxr_linenumber" name="301" href="#301">301</a>         }
+<a class="jxr_linenumber" name="302" href="#302">302</a> 
+<a class="jxr_linenumber" name="303" href="#303">303</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> getType() {
+<a class="jxr_linenumber" name="304" href="#304">304</a>             <strong class="jxr_keyword">return</strong> type;
+<a class="jxr_linenumber" name="305" href="#305">305</a>         }
 <a class="jxr_linenumber" name="306" href="#306">306</a> 
-<a class="jxr_linenumber" name="307" href="#307">307</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isCommitRetry = false;
-<a class="jxr_linenumber" name="308" href="#308">308</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> startTimestamp = 0;
-<a class="jxr_linenumber" name="309" href="#309">309</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx;
-<a class="jxr_linenumber" name="310" href="#310">310</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> numCells = 0;
-<a class="jxr_linenumber" name="311" href="#311">311</a> 
-<a class="jxr_linenumber" name="312" href="#312">312</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> MAX_INLINE = 40;
-<a class="jxr_linenumber" name="313" href="#313">313</a>         <strong class="jxr_keyword">private</strong> Long writeSet[] = <strong class="jxr_keyword">new</strong> Long[MAX_INLINE];
-<a class="jxr_linenumber" name="314" href="#314">314</a>         <strong class="jxr_keyword">private</strong> Collection&lt;Long&gt; writeSetAsCollection = <strong class="jxr_keyword">null</strong>; <em class="jxr_comment">// for the case where there's more than MAX_INLINE</em>
-<a class="jxr_linenumber" name="315" href="#315">315</a> 
-<a class="jxr_linenumber" name="316" href="#316">316</a>         <strong class="jxr_keyword">private</strong> Collection&lt;Long&gt; tableIdSet = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="317" href="#317">317</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> tableID = 0;
-<a class="jxr_linenumber" name="318" href="#318">318</a> 
-<a class="jxr_linenumber" name="319" href="#319">319</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makeTimestampRequest(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
-<a class="jxr_linenumber" name="320" href="#320">320</a>             e.type = Type.TIMESTAMP;
-<a class="jxr_linenumber" name="321" href="#321">321</a>             e.channel = c;
-<a class="jxr_linenumber" name="322" href="#322">322</a>             e.monCtx = monCtx;
-<a class="jxr_linenumber" name="323" href="#323">323</a>         }
+<a class="jxr_linenumber" name="307" href="#307">307</a>         <strong class="jxr_keyword">long</strong> getStartTimestamp() {
+<a class="jxr_linenumber" name="308" href="#308">308</a>             <strong class="jxr_keyword">return</strong> startTimestamp;
+<a class="jxr_linenumber" name="309" href="#309">309</a>         }
+<a class="jxr_linenumber" name="310" href="#310">310</a> 
+<a class="jxr_linenumber" name="311" href="#311">311</a>         Channel getChannel() {
+<a class="jxr_linenumber" name="312" href="#312">312</a>             <strong class="jxr_keyword">return</strong> channel;
+<a class="jxr_linenumber" name="313" href="#313">313</a>         }
+<a class="jxr_linenumber" name="314" href="#314">314</a> 
+<a class="jxr_linenumber" name="315" href="#315">315</a>         @Override
+<a class="jxr_linenumber" name="316" href="#316">316</a>         <strong class="jxr_keyword">public</strong> Iterator&lt;Long&gt; iterator() {
+<a class="jxr_linenumber" name="317" href="#317">317</a> 
+<a class="jxr_linenumber" name="318" href="#318">318</a>             <strong class="jxr_keyword">if</strong> (writeSetAsCollection != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="319" href="#319">319</a>                 <strong class="jxr_keyword">return</strong> writeSetAsCollection.iterator();
+<a class="jxr_linenumber" name="320" href="#320">320</a>             }
+<a class="jxr_linenumber" name="321" href="#321">321</a> 
+<a class="jxr_linenumber" name="322" href="#322">322</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Iterator&lt;Long&gt;() {
+<a class="jxr_linenumber" name="323" href="#323">323</a>                 <strong class="jxr_keyword">int</strong> i = 0;
 <a class="jxr_linenumber" name="324" href="#324">324</a> 
-<a class="jxr_linenumber" name="325" href="#325">325</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makeCommitRequest(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e,
-<a class="jxr_linenumber" name="326" href="#326">326</a>                                       <strong class="jxr_keyword">long</strong> startTimestamp,
-<a class="jxr_linenumber" name="327" href="#327">327</a>                                       <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx,
-<a class="jxr_linenumber" name="328" href="#328">328</a>                                       Collection&lt;Long&gt; writeSet,
-<a class="jxr_linenumber" name="329" href="#329">329</a>                                       Collection&lt;Long&gt; TableIdSet,
-<a class="jxr_linenumber" name="330" href="#330">330</a>                                       <strong class="jxr_keyword">boolean</strong> isRetry,
-<a class="jxr_linenumber" name="331" href="#331">331</a>                                       Channel c) {
-<a class="jxr_linenumber" name="332" href="#332">332</a>             e.monCtx = monCtx;
-<a class="jxr_linenumber" name="333" href="#333">333</a>             e.type = Type.COMMIT;
-<a class="jxr_linenumber" name="334" href="#334">334</a>             e.channel = c;
-<a class="jxr_linenumber" name="335" href="#335">335</a>             e.startTimestamp = startTimestamp;
-<a class="jxr_linenumber" name="336" href="#336">336</a>             e.isCommitRetry = isRetry;
-<a class="jxr_linenumber" name="337" href="#337">337</a>             <strong class="jxr_keyword">if</strong> (writeSet.size() &gt; MAX_INLINE) {
-<a class="jxr_linenumber" name="338" href="#338">338</a>                 e.numCells = writeSet.size();
-<a class="jxr_linenumber" name="339" href="#339">339</a>                 e.writeSetAsCollection = writeSet;
-<a class="jxr_linenumber" name="340" href="#340">340</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="341" href="#341">341</a>                 e.writeSetAsCollection = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="342" href="#342">342</a>                 e.numCells = writeSet.size();
-<a class="jxr_linenumber" name="343" href="#343">343</a>                 <strong class="jxr_keyword">int</strong> i = 0;
-<a class="jxr_linenumber" name="344" href="#344">344</a>                 <strong class="jxr_keyword">for</strong> (Long cellId : writeSet) {
-<a class="jxr_linenumber" name="345" href="#345">345</a>                     e.writeSet[i] = cellId;
-<a class="jxr_linenumber" name="346" href="#346">346</a>                     ++i;
-<a class="jxr_linenumber" name="347" href="#347">347</a>                 }
-<a class="jxr_linenumber" name="348" href="#348">348</a>             }
-<a class="jxr_linenumber" name="349" href="#349">349</a>             e.tableIdSet = TableIdSet;
+<a class="jxr_linenumber" name="325" href="#325">325</a>                 @Override
+<a class="jxr_linenumber" name="326" href="#326">326</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> hasNext() {
+<a class="jxr_linenumber" name="327" href="#327">327</a>                     <strong class="jxr_keyword">return</strong> i &lt; numCells;
+<a class="jxr_linenumber" name="328" href="#328">328</a>                 }
+<a class="jxr_linenumber" name="329" href="#329">329</a> 
+<a class="jxr_linenumber" name="330" href="#330">330</a>                 @Override
+<a class="jxr_linenumber" name="331" href="#331">331</a>                 <strong class="jxr_keyword">public</strong> Long next() {
+<a class="jxr_linenumber" name="332" href="#332">332</a>                     <strong class="jxr_keyword">if</strong> (!hasNext()) {
+<a class="jxr_linenumber" name="333" href="#333">333</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NoSuchElementException();
+<a class="jxr_linenumber" name="334" href="#334">334</a>                     }
+<a class="jxr_linenumber" name="335" href="#335">335</a>                     <strong class="jxr_keyword">return</strong> writeSet[i++];
+<a class="jxr_linenumber" name="336" href="#336">336</a>                 }
+<a class="jxr_linenumber" name="337" href="#337">337</a> 
+<a class="jxr_linenumber" name="338" href="#338">338</a>                 @Override
+<a class="jxr_linenumber" name="339" href="#339">339</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> remove() {
+<a class="jxr_linenumber" name="340" href="#340">340</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException();
+<a class="jxr_linenumber" name="341" href="#341">341</a>                 }
+<a class="jxr_linenumber" name="342" href="#342">342</a>             };
+<a class="jxr_linenumber" name="343" href="#343">343</a> 
+<a class="jxr_linenumber" name="344" href="#344">344</a>         }
+<a class="jxr_linenumber" name="345" href="#345">345</a> 
+<a class="jxr_linenumber" name="346" href="#346">346</a>         Iterable&lt;Long&gt; writeSet() {
+<a class="jxr_linenumber" name="347" href="#347">347</a> 
+<a class="jxr_linenumber" name="348" href="#348">348</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="349" href="#349">349</a> 
 <a class="jxr_linenumber" name="350" href="#350">350</a>         }
 <a class="jxr_linenumber" name="351" href="#351">351</a> 
-<a class="jxr_linenumber" name="352" href="#352">352</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makeFenceRequest(<a href="../../../../org/apache/omid/tso/RequestProcessorImpl.html">RequestEvent</a> e,
-<a class="jxr_linenumber" name="353" href="#353">353</a>                                      <strong class="jxr_keyword">long</strong> tableID,
-<a class="jxr_linenumber" name="354" href="#354">354</a>                                      Channel c,
-<a class="jxr_linenumber" name="355" href="#355">355</a>                                      <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) {
-<a class="jxr_linenumber" name="356" href="#356">356</a>             e.type = Type.FENCE;
-<a class="jxr_linenumber" name="357" href="#357">357</a>             e.channel = c;
-<a class="jxr_linenumber" name="358" href="#358">358</a>             e.monCtx = monCtx;
-<a class="jxr_linenumber" name="359" href="#359">359</a>             e.tableID = tableID;
-<a class="jxr_linenumber" name="360" href="#360">360</a>         }
-<a class="jxr_linenumber" name="361" href="#361">361</a> 
-<a class="jxr_linenumber" name="362" href="#362">362</a>         <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> getMonCtx() {
-<a class="jxr_linenumber" name="363" href="#363">363</a>             <strong class="jxr_keyword">return</strong> monCtx;
-<a class="jxr_linenumber" name="364" href="#364">364</a>         }
-<a class="jxr_linenumber" name="365" href="#365">365</a> 
-<a class="jxr_linenumber" name="366" href="#366">366</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">Type</a> getType() {
-<a class="jxr_linenumber" name="367" href="#367">367</a>             <strong class="jxr_keyword">return</strong> type;
-<a class="jxr_linenumber" name="368" href="#368">368</a>         }
-<a class="jxr_linenumber" name="369" href="#369">369</a> 
-<a class="jxr_linenumber" name="370" href="#370">370</a>         <strong class="jxr_keyword">long</strong> getStartTimestamp() {
-<a class="jxr_linenumber" name="371" href="#371">371</a>             <strong class="jxr_keyword">return</strong> startTimestamp;
-<a class="jxr_linenumber" name="372" href="#372">372</a>         }
-<a class="jxr_linenumber" name="373" href="#373">373</a> 
-<a class="jxr_linenumber" name="374" href="#374">374</a>         Channel getChannel() {
-<a class="jxr_linenumber" name="375" href="#375">375</a>             <strong class="jxr_keyword">return</strong> channel;
-<a class="jxr_linenumber" name="376" href="#376">376</a>         }
-<a class="jxr_linenumber" name="377" href="#377">377</a> 
-<a class="jxr_linenumber" name="378" href="#378">378</a>         Collection&lt;Long&gt; getTableIdSet() {
-<a class="jxr_linenumber" name="379" href="#379">379</a>             <strong class="jxr_keyword">return</strong> tableIdSet;
-<a class="jxr_linenumber" name="380" href="#380">380</a>         }
-<a class="jxr_linenumber" name="381" href="#381">381</a> 
-<a class="jxr_linenumber" name="382" href="#382">382</a>         <strong class="jxr_keyword">long</strong> getTableId() {
-<a class="jxr_linenumber" name="383" href="#383">383</a>             <strong class="jxr_keyword">return</strong> tableID;
-<a class="jxr_linenumber" name="384" href="#384">384</a>         }
-<a class="jxr_linenumber" name="385" href="#385">385</a> 
-<a class="jxr_linenumber" name="386" href="#386">386</a>         @Override
-<a class="jxr_linenumber" name="387" href="#387">387</a>         <strong class="jxr_keyword">public</strong> Iterator&lt;Long&gt; iterator() {
-<a class="jxr_linenumber" name="388" href="#388">388</a> 
-<a class="jxr_linenumber" name="389" href="#389">389</a>             <strong class="jxr_keyword">if</strong> (writeSetAsCollection != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="390" href="#390">390</a>                 <strong class="jxr_keyword">return</strong> writeSetAsCollection.iterator();
-<a class="jxr_linenumber" name="391" href="#391">391</a>             }
-<a class="jxr_linenumber" name="392" href="#392">392</a> 
-<a class="jxr_linenumber" name="393" href="#393">393</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Iterator&lt;Long&gt;() {
-<a class="jxr_linenumber" name="394" href="#394">394</a>                 <strong class="jxr_keyword">int</strong> i = 0;
-<a class="jxr_linenumber" name="395" href="#395">395</a> 
-<a class="jxr_linenumber" name="396" href="#396">396</a>                 @Override
-<a class="jxr_linenumber" name="397" href="#397">397</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> hasNext() {
-<a class="jxr_linenumber" name="398" href="#398">398</a>                     <strong class="jxr_keyword">return</strong> i &lt; numCells;
-<a class="jxr_linenumber" name="399" href="#399">399</a>                 }
-<a class="jxr_linenumber" name="400" href="#400">400</a> 
-<a class="jxr_linenumber" name="401" href="#401">401</a>                 @Override
-<a class="jxr_linenumber" name="402" href="#402">402</a>                 <strong class="jxr_keyword">public</strong> Long next() {
-<a class="jxr_linenumber" name="403" href="#403">403</a>                     <strong class="jxr_keyword">if</strong> (!hasNext()) {
-<a class="jxr_linenumber" name="404" href="#404">404</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NoSuchElementException();
-<a class="jxr_linenumber" name="405" href="#405">405</a>                     }
-<a class="jxr_linenumber" name="406" href="#406">406</a>                     <strong class="jxr_keyword">return</strong> writeSet[i++];
-<a class="jxr_linenumber" name="407" href="#407">407</a>                 }
-<a class="jxr_linenumber" name="408" href="#408">408</a> 
-<a class="jxr_linenumber" name="409" href="#409">409</a>                 @Override
-<a class="jxr_linenumber" name="410" href="#410">410</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> remove() {
-<a class="jxr_linenumber" name="411" href="#411">411</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException();
-<a class="jxr_linenumber" name="412" href="#412">412</a>                 }
-<a class="jxr_linenumber" name="413" href="#413">413</a>             };
-<a class="jxr_linenumber" name="414" href="#414">414</a> 
-<a cla

<TRUNCATED>


[27/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/TestPersistenceProcessorHandler.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/TestPersistenceProcessorHandler.html b/xref-test/org/apache/omid/tso/TestPersistenceProcessorHandler.html
index 161b1ad..08b76e3 100644
--- a/xref-test/org/apache/omid/tso/TestPersistenceProcessorHandler.html
+++ b/xref-test/org/apache/omid/tso/TestPersistenceProcessorHandler.html
@@ -136,354 +136,384 @@
 <a class="jxr_linenumber" name="126" href="#126">126</a>         Mockito.reset(mockWriter);
 <a class="jxr_linenumber" name="127" href="#127">127</a>     }
 <a class="jxr_linenumber" name="128" href="#128">128</a> 
-<a class="jxr_linenumber" name="129" href="#129">129</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="130" href="#130">130</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfEmptyBatchPersistEvent() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="129" href="#129">129</a>     @Test(timeOut = 1_000)
+<a class="jxr_linenumber" name="130" href="#130">130</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPersistentProcessorHandlerIdsAreCreatedConsecutive() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="133" href="#133">133</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="134" href="#134">134</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="135" href="#135">135</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="136" href="#136">136</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>         verify(persistenceHandler, times(1)).flush(eq(0));
-<a class="jxr_linenumber" name="139" href="#139">139</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
-<a class="jxr_linenumber" name="140" href="#140">140</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="141" href="#141">141</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="142" href="#142">142</a>         assertTrue(batch.isEmpty());
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
-<a class="jxr_linenumber" name="144" href="#144">144</a>     }
+<a class="jxr_linenumber" name="132" href="#132">132</a>         TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="133" href="#133">133</a>         tsoConfig.setNumConcurrentCTWriters(32);
+<a class="jxr_linenumber" name="134" href="#134">134</a> 
+<a class="jxr_linenumber" name="135" href="#135">135</a>         PersistenceProcessorHandler[] handlers = <strong class="jxr_keyword">new</strong> PersistenceProcessorHandler[tsoConfig.getNumConcurrentCTWriters()];
+<a class="jxr_linenumber" name="136" href="#136">136</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; tsoConfig.getNumConcurrentCTWriters(); i++) {
+<a class="jxr_linenumber" name="137" href="#137">137</a>             handlers[i] = <strong class="jxr_keyword">new</strong> PersistenceProcessorHandler(metrics,
+<a class="jxr_linenumber" name="138" href="#138">138</a>                                                           <span class="jxr_string">"localhost:1234"</span>,
+<a class="jxr_linenumber" name="139" href="#139">139</a>                                                           mock(LeaseManager.<strong class="jxr_keyword">class</strong>),
+<a class="jxr_linenumber" name="140" href="#140">140</a>                                                           commitTable,
+<a class="jxr_linenumber" name="141" href="#141">141</a>                                                           mock(ReplyProcessor.<strong class="jxr_keyword">class</strong>),
+<a class="jxr_linenumber" name="142" href="#142">142</a>                                                           retryProcessor,
+<a class="jxr_linenumber" name="143" href="#143">143</a>                                                           panicker);
+<a class="jxr_linenumber" name="144" href="#144">144</a>         }
 <a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithASingleTimestampEvent() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="148" href="#148">148</a> 
-<a class="jxr_linenumber" name="149" href="#149">149</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="150" href="#150">150</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="151" href="#151">151</a>         batch.addTimestamp(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="152" href="#152">152</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="153" href="#153">153</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="154" href="#154">154</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>         verify(persistenceHandler, times(1)).flush(eq(0));
-<a class="jxr_linenumber" name="157" href="#157">157</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
-<a class="jxr_linenumber" name="158" href="#158">158</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="159" href="#159">159</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="160" href="#160">160</a>         assertEquals(batch.getNumEvents(), 1);
-<a class="jxr_linenumber" name="161" href="#161">161</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
-<a class="jxr_linenumber" name="162" href="#162">162</a> 
-<a class="jxr_linenumber" name="163" href="#163">163</a>     }
-<a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="166" href="#166">166</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithASingleCommitEvent() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="146" href="#146">146</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; tsoConfig.getNumConcurrentCTWriters(); i++) {
+<a class="jxr_linenumber" name="147" href="#147">147</a>             <em class="jxr_comment">// Required to generalize the cases when other tests have increased the static variable assigning the ids</em>
+<a class="jxr_linenumber" name="148" href="#148">148</a>             <strong class="jxr_keyword">if</strong> (i + 1 &lt; tsoConfig.getNumConcurrentCTWriters()) {
+<a class="jxr_linenumber" name="149" href="#149">149</a>                 <strong class="jxr_keyword">int</strong> followingHandlerIdAsInt = Integer.valueOf(handlers[i + 1].getId());
+<a class="jxr_linenumber" name="150" href="#150">150</a>                 assertEquals(handlers[i].getId(), String.valueOf(followingHandlerIdAsInt - 1));
+<a class="jxr_linenumber" name="151" href="#151">151</a>             } <strong class="jxr_keyword">else</strong> { <em class="jxr_comment">// Final case: compare with the last element that the sequence creator assigned</em>
+<a class="jxr_linenumber" name="152" href="#152">152</a>                 <strong class="jxr_keyword">int</strong> followingHandlerIdAsInt = PersistenceProcessorHandler.consecutiveSequenceCreator.get();
+<a class="jxr_linenumber" name="153" href="#153">153</a>                 assertEquals(handlers[i].getId(), String.valueOf(followingHandlerIdAsInt - 1));
+<a class="jxr_linenumber" name="154" href="#154">154</a>             }
+<a class="jxr_linenumber" name="155" href="#155">155</a>         }
+<a class="jxr_linenumber" name="156" href="#156">156</a> 
+<a class="jxr_linenumber" name="157" href="#157">157</a>     }
+<a class="jxr_linenumber" name="158" href="#158">158</a> 
+<a class="jxr_linenumber" name="159" href="#159">159</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfEmptyBatchPersistEvent() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="161" href="#161">161</a> 
+<a class="jxr_linenumber" name="162" href="#162">162</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="163" href="#163">163</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="164" href="#164">164</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="165" href="#165">165</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="166" href="#166">166</a>         persistenceHandler.onEvent(batchEvent);
 <a class="jxr_linenumber" name="167" href="#167">167</a> 
-<a class="jxr_linenumber" name="168" href="#168">168</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="169" href="#169">169</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="170" href="#170">170</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="171" href="#171">171</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="172" href="#172">172</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="173" href="#173">173</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="174" href="#174">174</a> 
-<a class="jxr_linenumber" name="175" href="#175">175</a>         verify(persistenceHandler, times(1)).flush(eq(1));
-<a class="jxr_linenumber" name="176" href="#176">176</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(batch);
-<a class="jxr_linenumber" name="177" href="#177">177</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="178" href="#178">178</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="179" href="#179">179</a>         assertEquals(batch.getNumEvents(), 1);
-<a class="jxr_linenumber" name="180" href="#180">180</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
-<a class="jxr_linenumber" name="181" href="#181">181</a>         assertEquals(batch.get(0).getCommitTimestamp(), FIRST_CT);
-<a class="jxr_linenumber" name="182" href="#182">182</a> 
-<a class="jxr_linenumber" name="183" href="#183">183</a>     }
-<a class="jxr_linenumber" name="184" href="#184">184</a> 
-<a class="jxr_linenumber" name="185" href="#185">185</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="186" href="#186">186</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithASingleAbortEventNoRetry() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="190" href="#190">190</a>         batch.addAbort(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="191" href="#191">191</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="192" href="#192">192</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="193" href="#193">193</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="168" href="#168">168</a>         verify(persistenceHandler, times(1)).flush(eq(0));
+<a class="jxr_linenumber" name="169" href="#169">169</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
+<a class="jxr_linenumber" name="170" href="#170">170</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="171" href="#171">171</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="172" href="#172">172</a>         assertTrue(batch.isEmpty());
+<a class="jxr_linenumber" name="173" href="#173">173</a> 
+<a class="jxr_linenumber" name="174" href="#174">174</a>     }
+<a class="jxr_linenumber" name="175" href="#175">175</a> 
+<a class="jxr_linenumber" name="176" href="#176">176</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="177" href="#177">177</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithASingleTimestampEvent() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="178" href="#178">178</a> 
+<a class="jxr_linenumber" name="179" href="#179">179</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="180" href="#180">180</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="181" href="#181">181</a>         batch.addTimestamp(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="182" href="#182">182</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="183" href="#183">183</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="184" href="#184">184</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="185" href="#185">185</a> 
+<a class="jxr_linenumber" name="186" href="#186">186</a>         verify(persistenceHandler, times(1)).flush(eq(0));
+<a class="jxr_linenumber" name="187" href="#187">187</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
+<a class="jxr_linenumber" name="188" href="#188">188</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="189" href="#189">189</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="190" href="#190">190</a>         assertEquals(batch.getNumEvents(), 1);
+<a class="jxr_linenumber" name="191" href="#191">191</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
+<a class="jxr_linenumber" name="192" href="#192">192</a> 
+<a class="jxr_linenumber" name="193" href="#193">193</a>     }
 <a class="jxr_linenumber" name="194" href="#194">194</a> 
-<a class="jxr_linenumber" name="195" href="#195">195</a>         verify(persistenceHandler, times(1)).flush(eq(0));
-<a class="jxr_linenumber" name="196" href="#196">196</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(batch);
-<a class="jxr_linenumber" name="197" href="#197">197</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="198" href="#198">198</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="199" href="#199">199</a>         assertEquals(batch.getNumEvents(), 1);
-<a class="jxr_linenumber" name="200" href="#200">200</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
-<a class="jxr_linenumber" name="201" href="#201">201</a> 
-<a class="jxr_linenumber" name="202" href="#202">202</a>     }
-<a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="205" href="#205">205</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithASingleCommitRetryEvent() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="206" href="#206">206</a> 
-<a class="jxr_linenumber" name="207" href="#207">207</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="208" href="#208">208</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="209" href="#209">209</a>         batch.addCommitRetry(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="210" href="#210">210</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="211" href="#211">211</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="195" href="#195">195</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="196" href="#196">196</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithASingleCommitEvent() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="197" href="#197">197</a> 
+<a class="jxr_linenumber" name="198" href="#198">198</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="199" href="#199">199</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="200" href="#200">200</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="201" href="#201">201</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="202" href="#202">202</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="203" href="#203">203</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="204" href="#204">204</a> 
+<a class="jxr_linenumber" name="205" href="#205">205</a>         verify(persistenceHandler, times(1)).flush(eq(1));
+<a class="jxr_linenumber" name="206" href="#206">206</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(batch);
+<a class="jxr_linenumber" name="207" href="#207">207</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="208" href="#208">208</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="209" href="#209">209</a>         assertEquals(batch.getNumEvents(), 1);
+<a class="jxr_linenumber" name="210" href="#210">210</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
+<a class="jxr_linenumber" name="211" href="#211">211</a>         assertEquals(batch.get(0).getCommitTimestamp(), FIRST_CT);
 <a class="jxr_linenumber" name="212" href="#212">212</a> 
-<a class="jxr_linenumber" name="213" href="#213">213</a>         <em class="jxr_comment">// Call process method</em>
-<a class="jxr_linenumber" name="214" href="#214">214</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="215" href="#215">215</a> 
-<a class="jxr_linenumber" name="216" href="#216">216</a>         verify(persistenceHandler, times(1)).flush(eq(0));
-<a class="jxr_linenumber" name="217" href="#217">217</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(batch);
-<a class="jxr_linenumber" name="218" href="#218">218</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(FIRST_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="219" href="#219">219</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="220" href="#220">220</a>         assertEquals(batch.getNumEvents(), 0);
-<a class="jxr_linenumber" name="221" href="#221">221</a> 
-<a class="jxr_linenumber" name="222" href="#222">222</a>     }
-<a class="jxr_linenumber" name="223" href="#223">223</a> 
-<a class="jxr_linenumber" name="224" href="#224">224</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="225" href="#225">225</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWith2EventsCommitAndCommitRetry() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="228" href="#228">228</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="229" href="#229">229</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="230" href="#230">230</a>         batch.addCommitRetry(SECOND_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="231" href="#231">231</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="232" href="#232">232</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="213" href="#213">213</a>     }
+<a class="jxr_linenumber" name="214" href="#214">214</a> 
+<a class="jxr_linenumber" name="215" href="#215">215</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithASingleAbortEventNoRetry() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="217" href="#217">217</a> 
+<a class="jxr_linenumber" name="218" href="#218">218</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="219" href="#219">219</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="220" href="#220">220</a>         batch.addAbort(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="221" href="#221">221</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="222" href="#222">222</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="223" href="#223">223</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="224" href="#224">224</a> 
+<a class="jxr_linenumber" name="225" href="#225">225</a>         verify(persistenceHandler, times(1)).flush(eq(0));
+<a class="jxr_linenumber" name="226" href="#226">226</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(batch);
+<a class="jxr_linenumber" name="227" href="#227">227</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="228" href="#228">228</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="229" href="#229">229</a>         assertEquals(batch.getNumEvents(), 1);
+<a class="jxr_linenumber" name="230" href="#230">230</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
+<a class="jxr_linenumber" name="231" href="#231">231</a> 
+<a class="jxr_linenumber" name="232" href="#232">232</a>     }
 <a class="jxr_linenumber" name="233" href="#233">233</a> 
-<a class="jxr_linenumber" name="234" href="#234">234</a>         <em class="jxr_comment">// Initial assertion</em>
-<a class="jxr_linenumber" name="235" href="#235">235</a>         assertEquals(batch.getNumEvents(), 2);
+<a class="jxr_linenumber" name="234" href="#234">234</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="235" href="#235">235</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithASingleCommitRetryEvent() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>         <em class="jxr_comment">// Call process method</em>
-<a class="jxr_linenumber" name="238" href="#238">238</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="239" href="#239">239</a> 
-<a class="jxr_linenumber" name="240" href="#240">240</a>         verify(persistenceHandler, times(1)).flush(eq(1));
-<a class="jxr_linenumber" name="241" href="#241">241</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
-<a class="jxr_linenumber" name="242" href="#242">242</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(SECOND_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="243" href="#243">243</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="244" href="#244">244</a>         assertEquals(batch.getNumEvents(), 1);
-<a class="jxr_linenumber" name="245" href="#245">245</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
-<a class="jxr_linenumber" name="246" href="#246">246</a>         assertEquals(batch.get(0).getCommitTimestamp(), FIRST_CT);
-<a class="jxr_linenumber" name="247" href="#247">247</a> 
-<a class="jxr_linenumber" name="248" href="#248">248</a>     }
-<a class="jxr_linenumber" name="249" href="#249">249</a> 
-<a class="jxr_linenumber" name="250" href="#250">250</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="251" href="#251">251</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWith2EventsCommitRetryAndCommit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="252" href="#252">252</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="253" href="#253">253</a>         <em class="jxr_comment">// Same test as testProcessingOfBatchPersistEventWith2EventsCommitAndCommitRetry but swapped events</em>
-<a class="jxr_linenumber" name="254" href="#254">254</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="255" href="#255">255</a> 
-<a class="jxr_linenumber" name="256" href="#256">256</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="257" href="#257">257</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="258" href="#258">258</a>         batch.addCommitRetry(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="259" href="#259">259</a>         batch.addCommit(SECOND_ST, SECOND_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="260" href="#260">260</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="261" href="#261">261</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="262" href="#262">262</a> 
-<a class="jxr_linenumber" name="263" href="#263">263</a>         <em class="jxr_comment">// Initial assertion</em>
-<a class="jxr_linenumber" name="264" href="#264">264</a>         assertEquals(batch.getNumEvents(), 2);
-<a class="jxr_linenumber" name="265" href="#265">265</a> 
-<a class="jxr_linenumber" name="266" href="#266">266</a>         <em class="jxr_comment">// Call process method</em>
-<a class="jxr_linenumber" name="267" href="#267">267</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="268" href="#268">268</a> 
-<a class="jxr_linenumber" name="269" href="#269">269</a>         verify(persistenceHandler, times(1)).flush(eq(1));
-<a class="jxr_linenumber" name="270" href="#270">270</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
-<a class="jxr_linenumber" name="271" href="#271">271</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(FIRST_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="272" href="#272">272</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="273" href="#273">273</a>         assertEquals(batch.getNumEvents(), 1);
-<a class="jxr_linenumber" name="274" href="#274">274</a>         assertEquals(batch.get(0).getStartTimestamp(), SECOND_ST);
-<a class="jxr_linenumber" name="275" href="#275">275</a>         assertEquals(batch.get(0).getCommitTimestamp(), SECOND_CT);
-<a class="jxr_linenumber" name="276" href="#276">276</a> 
-<a class="jxr_linenumber" name="277" href="#277">277</a>     }
-<a class="jxr_linenumber" name="278" href="#278">278</a> 
-<a class="jxr_linenumber" name="279" href="#279">279</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="280" href="#280">280</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWith2CommitRetryEvents() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="281" href="#281">281</a> 
-<a class="jxr_linenumber" name="282" href="#282">282</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="283" href="#283">283</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="284" href="#284">284</a>         batch.addCommitRetry(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="285" href="#285">285</a>         batch.addCommitRetry(SECOND_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="286" href="#286">286</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="287" href="#287">287</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="288" href="#288">288</a> 
-<a class="jxr_linenumber" name="289" href="#289">289</a>         <em class="jxr_comment">// Initial assertion</em>
-<a class="jxr_linenumber" name="290" href="#290">290</a>         assertEquals(batch.getNumEvents(), 2);
-<a class="jxr_linenumber" name="291" href="#291">291</a> 
-<a class="jxr_linenumber" name="292" href="#292">292</a>         <em class="jxr_comment">// Call process method</em>
-<a class="jxr_linenumber" name="293" href="#293">293</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="294" href="#294">294</a> 
-<a class="jxr_linenumber" name="295" href="#295">295</a>         verify(persistenceHandler, times(1)).flush(eq(0));
-<a class="jxr_linenumber" name="296" href="#296">296</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
-<a class="jxr_linenumber" name="297" href="#297">297</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(FIRST_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="298" href="#298">298</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(SECOND_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="299" href="#299">299</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="300" href="#300">300</a>         assertEquals(batch.getNumEvents(), 0);
-<a class="jxr_linenumber" name="301" href="#301">301</a> 
-<a class="jxr_linenumber" name="302" href="#302">302</a>     }
-<a class="jxr_linenumber" name="303" href="#303">303</a> 
-<a class="jxr_linenumber" name="304" href="#304">304</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="305" href="#305">305</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWith2AbortEvents() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="237" href="#237">237</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="238" href="#238">238</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="239" href="#239">239</a>         batch.addCommitRetry(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="240" href="#240">240</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="241" href="#241">241</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="242" href="#242">242</a> 
+<a class="jxr_linenumber" name="243" href="#243">243</a>         <em class="jxr_comment">// Call process method</em>
+<a class="jxr_linenumber" name="244" href="#244">244</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="245" href="#245">245</a> 
+<a class="jxr_linenumber" name="246" href="#246">246</a>         verify(persistenceHandler, times(1)).flush(eq(0));
+<a class="jxr_linenumber" name="247" href="#247">247</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(batch);
+<a class="jxr_linenumber" name="248" href="#248">248</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(FIRST_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="249" href="#249">249</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="250" href="#250">250</a>         assertEquals(batch.getNumEvents(), 0);
+<a class="jxr_linenumber" name="251" href="#251">251</a> 
+<a class="jxr_linenumber" name="252" href="#252">252</a>     }
+<a class="jxr_linenumber" name="253" href="#253">253</a> 
+<a class="jxr_linenumber" name="254" href="#254">254</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="255" href="#255">255</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWith2EventsCommitAndCommitRetry() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="256" href="#256">256</a> 
+<a class="jxr_linenumber" name="257" href="#257">257</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="258" href="#258">258</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="259" href="#259">259</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="260" href="#260">260</a>         batch.addCommitRetry(SECOND_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="261" href="#261">261</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="262" href="#262">262</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="263" href="#263">263</a> 
+<a class="jxr_linenumber" name="264" href="#264">264</a>         <em class="jxr_comment">// Initial assertion</em>
+<a class="jxr_linenumber" name="265" href="#265">265</a>         assertEquals(batch.getNumEvents(), 2);
+<a class="jxr_linenumber" name="266" href="#266">266</a> 
+<a class="jxr_linenumber" name="267" href="#267">267</a>         <em class="jxr_comment">// Call process method</em>
+<a class="jxr_linenumber" name="268" href="#268">268</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="269" href="#269">269</a> 
+<a class="jxr_linenumber" name="270" href="#270">270</a>         verify(persistenceHandler, times(1)).flush(eq(1));
+<a class="jxr_linenumber" name="271" href="#271">271</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
+<a class="jxr_linenumber" name="272" href="#272">272</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(SECOND_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="273" href="#273">273</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="274" href="#274">274</a>         assertEquals(batch.getNumEvents(), 1);
+<a class="jxr_linenumber" name="275" href="#275">275</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
+<a class="jxr_linenumber" name="276" href="#276">276</a>         assertEquals(batch.get(0).getCommitTimestamp(), FIRST_CT);
+<a class="jxr_linenumber" name="277" href="#277">277</a> 
+<a class="jxr_linenumber" name="278" href="#278">278</a>     }
+<a class="jxr_linenumber" name="279" href="#279">279</a> 
+<a class="jxr_linenumber" name="280" href="#280">280</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="281" href="#281">281</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWith2EventsCommitRetryAndCommit() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="282" href="#282">282</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="283" href="#283">283</a>         <em class="jxr_comment">// Same test as testProcessingOfBatchPersistEventWith2EventsCommitAndCommitRetry but swapped events</em>
+<a class="jxr_linenumber" name="284" href="#284">284</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="285" href="#285">285</a> 
+<a class="jxr_linenumber" name="286" href="#286">286</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="287" href="#287">287</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="288" href="#288">288</a>         batch.addCommitRetry(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="289" href="#289">289</a>         batch.addCommit(SECOND_ST, SECOND_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="290" href="#290">290</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="291" href="#291">291</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="292" href="#292">292</a> 
+<a class="jxr_linenumber" name="293" href="#293">293</a>         <em class="jxr_comment">// Initial assertion</em>
+<a class="jxr_linenumber" name="294" href="#294">294</a>         assertEquals(batch.getNumEvents(), 2);
+<a class="jxr_linenumber" name="295" href="#295">295</a> 
+<a class="jxr_linenumber" name="296" href="#296">296</a>         <em class="jxr_comment">// Call process method</em>
+<a class="jxr_linenumber" name="297" href="#297">297</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="298" href="#298">298</a> 
+<a class="jxr_linenumber" name="299" href="#299">299</a>         verify(persistenceHandler, times(1)).flush(eq(1));
+<a class="jxr_linenumber" name="300" href="#300">300</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
+<a class="jxr_linenumber" name="301" href="#301">301</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(FIRST_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="302" href="#302">302</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="303" href="#303">303</a>         assertEquals(batch.getNumEvents(), 1);
+<a class="jxr_linenumber" name="304" href="#304">304</a>         assertEquals(batch.get(0).getStartTimestamp(), SECOND_ST);
+<a class="jxr_linenumber" name="305" href="#305">305</a>         assertEquals(batch.get(0).getCommitTimestamp(), SECOND_CT);
 <a class="jxr_linenumber" name="306" href="#306">306</a> 
-<a class="jxr_linenumber" name="307" href="#307">307</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="308" href="#308">308</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="309" href="#309">309</a>         batch.addAbort(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="310" href="#310">310</a>         batch.addAbort(SECOND_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="311" href="#311">311</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="312" href="#312">312</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="313" href="#313">313</a> 
-<a class="jxr_linenumber" name="314" href="#314">314</a>         <em class="jxr_comment">// Initial assertion</em>
-<a class="jxr_linenumber" name="315" href="#315">315</a>         assertEquals(batch.getNumEvents(), 2);
-<a class="jxr_linenumber" name="316" href="#316">316</a> 
-<a class="jxr_linenumber" name="317" href="#317">317</a>         <em class="jxr_comment">// Call process method</em>
-<a class="jxr_linenumber" name="318" href="#318">318</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="319" href="#319">319</a> 
-<a class="jxr_linenumber" name="320" href="#320">320</a>         verify(persistenceHandler, times(1)).flush(eq(0));
-<a class="jxr_linenumber" name="321" href="#321">321</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
-<a class="jxr_linenumber" name="322" href="#322">322</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="323" href="#323">323</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="324" href="#324">324</a>         assertEquals(batch.getNumEvents(), 2);
-<a class="jxr_linenumber" name="325" href="#325">325</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
-<a class="jxr_linenumber" name="326" href="#326">326</a>         assertEquals(batch.get(1).getStartTimestamp(), SECOND_ST);
-<a class="jxr_linenumber" name="327" href="#327">327</a> 
-<a class="jxr_linenumber" name="328" href="#328">328</a>     }
-<a class="jxr_linenumber" name="329" href="#329">329</a> 
-<a class="jxr_linenumber" name="330" href="#330">330</a> 
-<a class="jxr_linenumber" name="331" href="#331">331</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="332" href="#332">332</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithMultipleRetryAndNonRetryEvents() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="307" href="#307">307</a>     }
+<a class="jxr_linenumber" name="308" href="#308">308</a> 
+<a class="jxr_linenumber" name="309" href="#309">309</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="310" href="#310">310</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWith2CommitRetryEvents() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="311" href="#311">311</a> 
+<a class="jxr_linenumber" name="312" href="#312">312</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="313" href="#313">313</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="314" href="#314">314</a>         batch.addCommitRetry(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="315" href="#315">315</a>         batch.addCommitRetry(SECOND_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="316" href="#316">316</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="317" href="#317">317</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="318" href="#318">318</a> 
+<a class="jxr_linenumber" name="319" href="#319">319</a>         <em class="jxr_comment">// Initial assertion</em>
+<a class="jxr_linenumber" name="320" href="#320">320</a>         assertEquals(batch.getNumEvents(), 2);
+<a class="jxr_linenumber" name="321" href="#321">321</a> 
+<a class="jxr_linenumber" name="322" href="#322">322</a>         <em class="jxr_comment">// Call process method</em>
+<a class="jxr_linenumber" name="323" href="#323">323</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="324" href="#324">324</a> 
+<a class="jxr_linenumber" name="325" href="#325">325</a>         verify(persistenceHandler, times(1)).flush(eq(0));
+<a class="jxr_linenumber" name="326" href="#326">326</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
+<a class="jxr_linenumber" name="327" href="#327">327</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(FIRST_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="328" href="#328">328</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(SECOND_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="329" href="#329">329</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="330" href="#330">330</a>         assertEquals(batch.getNumEvents(), 0);
+<a class="jxr_linenumber" name="331" href="#331">331</a> 
+<a class="jxr_linenumber" name="332" href="#332">332</a>     }
 <a class="jxr_linenumber" name="333" href="#333">333</a> 
-<a class="jxr_linenumber" name="334" href="#334">334</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="335" href="#335">335</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="334" href="#334">334</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="335" href="#335">335</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWith2AbortEvents() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="336" href="#336">336</a> 
-<a class="jxr_linenumber" name="337" href="#337">337</a>         batch.addTimestamp(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="338" href="#338">338</a>         batch.addCommitRetry(SECOND_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="339" href="#339">339</a>         batch.addCommit(THIRD_ST, THIRD_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="340" href="#340">340</a>         batch.addAbort(FOURTH_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="341" href="#341">341</a>         batch.addCommit(FIFTH_ST, FIFTH_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="342" href="#342">342</a>         batch.addCommitRetry(SIXTH_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="343" href="#343">343</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="344" href="#344">344</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="345" href="#345">345</a> 
-<a class="jxr_linenumber" name="346" href="#346">346</a>         <em class="jxr_comment">// Initial assertion</em>
-<a class="jxr_linenumber" name="347" href="#347">347</a>         assertEquals(batch.getNumEvents(), 6);
-<a class="jxr_linenumber" name="348" href="#348">348</a> 
-<a class="jxr_linenumber" name="349" href="#349">349</a>         <em class="jxr_comment">// Call process method</em>
-<a class="jxr_linenumber" name="350" href="#350">350</a>         persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="351" href="#351">351</a> 
-<a class="jxr_linenumber" name="352" href="#352">352</a>         verify(persistenceHandler, times(1)).flush(2); <em class="jxr_comment">// 2 commits to flush</em>
-<a class="jxr_linenumber" name="353" href="#353">353</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
-<a class="jxr_linenumber" name="354" href="#354">354</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(SECOND_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="355" href="#355">355</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
-<a class="jxr_linenumber" name="356" href="#356">356</a>         assertEquals(batch.getNumEvents(), 4);
-<a class="jxr_linenumber" name="357" href="#357">357</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
-<a class="jxr_linenumber" name="358" href="#358">358</a>         assertEquals(batch.get(1).getStartTimestamp(), FIFTH_ST);
-<a class="jxr_linenumber" name="359" href="#359">359</a>         assertEquals(batch.get(1).getCommitTimestamp(), FIFTH_CT);
-<a class="jxr_linenumber" name="360" href="#360">360</a>         assertEquals(batch.get(2).getStartTimestamp(), THIRD_ST);
-<a class="jxr_linenumber" name="361" href="#361">361</a>         assertEquals(batch.get(2).getCommitTimestamp(), THIRD_CT);
-<a class="jxr_linenumber" name="362" href="#362">362</a>         assertEquals(batch.get(3).getStartTimestamp(), FOURTH_ST);
+<a class="jxr_linenumber" name="337" href="#337">337</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="338" href="#338">338</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="339" href="#339">339</a>         batch.addAbort(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="340" href="#340">340</a>         batch.addAbort(SECOND_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="341" href="#341">341</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="342" href="#342">342</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="343" href="#343">343</a> 
+<a class="jxr_linenumber" name="344" href="#344">344</a>         <em class="jxr_comment">// Initial assertion</em>
+<a class="jxr_linenumber" name="345" href="#345">345</a>         assertEquals(batch.getNumEvents(), 2);
+<a class="jxr_linenumber" name="346" href="#346">346</a> 
+<a class="jxr_linenumber" name="347" href="#347">347</a>         <em class="jxr_comment">// Call process method</em>
+<a class="jxr_linenumber" name="348" href="#348">348</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="349" href="#349">349</a> 
+<a class="jxr_linenumber" name="350" href="#350">350</a>         verify(persistenceHandler, times(1)).flush(eq(0));
+<a class="jxr_linenumber" name="351" href="#351">351</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
+<a class="jxr_linenumber" name="352" href="#352">352</a>         verify(retryProcessor, never()).disambiguateRetryRequestHeuristically(anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="353" href="#353">353</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="354" href="#354">354</a>         assertEquals(batch.getNumEvents(), 2);
+<a class="jxr_linenumber" name="355" href="#355">355</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
+<a class="jxr_linenumber" name="356" href="#356">356</a>         assertEquals(batch.get(1).getStartTimestamp(), SECOND_ST);
+<a class="jxr_linenumber" name="357" href="#357">357</a> 
+<a class="jxr_linenumber" name="358" href="#358">358</a>     }
+<a class="jxr_linenumber" name="359" href="#359">359</a> 
+<a class="jxr_linenumber" name="360" href="#360">360</a> 
+<a class="jxr_linenumber" name="361" href="#361">361</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="362" href="#362">362</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testProcessingOfBatchPersistEventWithMultipleRetryAndNonRetryEvents() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="363" href="#363">363</a> 
-<a class="jxr_linenumber" name="364" href="#364">364</a>     }
-<a class="jxr_linenumber" name="365" href="#365">365</a> 
-<a class="jxr_linenumber" name="366" href="#366">366</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="367" href="#367">367</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPanicPersistingEvents() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="368" href="#368">368</a> 
-<a class="jxr_linenumber" name="369" href="#369">369</a>         <em class="jxr_comment">// User the real panicker</em>
-<a class="jxr_linenumber" name="370" href="#370">370</a>         Panicker panicker = spy(<strong class="jxr_keyword">new</strong> RuntimeExceptionPanicker());
-<a class="jxr_linenumber" name="371" href="#371">371</a>         persistenceHandler = spy(<strong class="jxr_keyword">new</strong> PersistenceProcessorHandler(metrics,
-<a class="jxr_linenumber" name="372" href="#372">372</a>                                                                  <span class="jxr_string">"localhost:1234"</span>,
-<a class="jxr_linenumber" name="373" href="#373">373</a>                                                                  leaseManager,
-<a class="jxr_linenumber" name="374" href="#374">374</a>                                                                  commitTable,
-<a class="jxr_linenumber" name="375" href="#375">375</a>                                                                  replyProcessor,
-<a class="jxr_linenumber" name="376" href="#376">376</a>                                                                  retryProcessor,
-<a class="jxr_linenumber" name="377" href="#377">377</a>                                                                  panicker));
+<a class="jxr_linenumber" name="364" href="#364">364</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="365" href="#365">365</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="366" href="#366">366</a> 
+<a class="jxr_linenumber" name="367" href="#367">367</a>         batch.addTimestamp(FIRST_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="368" href="#368">368</a>         batch.addCommitRetry(SECOND_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="369" href="#369">369</a>         batch.addCommit(THIRD_ST, THIRD_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="370" href="#370">370</a>         batch.addAbort(FOURTH_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="371" href="#371">371</a>         batch.addCommit(FIFTH_ST, FIFTH_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="372" href="#372">372</a>         batch.addCommitRetry(SIXTH_ST, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="373" href="#373">373</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="374" href="#374">374</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="375" href="#375">375</a> 
+<a class="jxr_linenumber" name="376" href="#376">376</a>         <em class="jxr_comment">// Initial assertion</em>
+<a class="jxr_linenumber" name="377" href="#377">377</a>         assertEquals(batch.getNumEvents(), 6);
 <a class="jxr_linenumber" name="378" href="#378">378</a> 
-<a class="jxr_linenumber" name="379" href="#379">379</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="380" href="#380">380</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="381" href="#381">381</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="382" href="#382">382</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="383" href="#383">383</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="384" href="#384">384</a> 
-<a class="jxr_linenumber" name="385" href="#385">385</a>         doThrow(IOException.<strong class="jxr_keyword">class</strong>).when(mockWriter).flush();
-<a class="jxr_linenumber" name="386" href="#386">386</a> 
-<a class="jxr_linenumber" name="387" href="#387">387</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="388" href="#388">388</a>             persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="389" href="#389">389</a>             fail();
-<a class="jxr_linenumber" name="390" href="#390">390</a>         } <strong class="jxr_keyword">catch</strong> (RuntimeException re) {
-<a class="jxr_linenumber" name="391" href="#391">391</a>             <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="392" href="#392">392</a>         }
+<a class="jxr_linenumber" name="379" href="#379">379</a>         <em class="jxr_comment">// Call process method</em>
+<a class="jxr_linenumber" name="380" href="#380">380</a>         persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="381" href="#381">381</a> 
+<a class="jxr_linenumber" name="382" href="#382">382</a>         verify(persistenceHandler, times(1)).flush(2); <em class="jxr_comment">// 2 commits to flush</em>
+<a class="jxr_linenumber" name="383" href="#383">383</a>         verify(persistenceHandler, times(1)).filterAndDissambiguateClientRetries(eq(batch));
+<a class="jxr_linenumber" name="384" href="#384">384</a>         verify(retryProcessor, times(1)).disambiguateRetryRequestHeuristically(eq(SECOND_ST), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="385" href="#385">385</a>         verify(replyProcessor, times(1)).manageResponsesBatch(eq(BATCH_SEQUENCE), eq(batch));
+<a class="jxr_linenumber" name="386" href="#386">386</a>         assertEquals(batch.getNumEvents(), 4);
+<a class="jxr_linenumber" name="387" href="#387">387</a>         assertEquals(batch.get(0).getStartTimestamp(), FIRST_ST);
+<a class="jxr_linenumber" name="388" href="#388">388</a>         assertEquals(batch.get(1).getStartTimestamp(), FIFTH_ST);
+<a class="jxr_linenumber" name="389" href="#389">389</a>         assertEquals(batch.get(1).getCommitTimestamp(), FIFTH_CT);
+<a class="jxr_linenumber" name="390" href="#390">390</a>         assertEquals(batch.get(2).getStartTimestamp(), THIRD_ST);
+<a class="jxr_linenumber" name="391" href="#391">391</a>         assertEquals(batch.get(2).getCommitTimestamp(), THIRD_CT);
+<a class="jxr_linenumber" name="392" href="#392">392</a>         assertEquals(batch.get(3).getStartTimestamp(), FOURTH_ST);
 <a class="jxr_linenumber" name="393" href="#393">393</a> 
-<a class="jxr_linenumber" name="394" href="#394">394</a>         verify(persistenceHandler, times(1)).flush(1);
-<a class="jxr_linenumber" name="395" href="#395">395</a>         verify(panicker, times(1)).panic(eq(<span class="jxr_string">"Error persisting commit batch"</span>), any(IOException.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="396" href="#396">396</a>         verify(persistenceHandler, never()).filterAndDissambiguateClientRetries(any(Batch.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="397" href="#397">397</a>         verify(replyProcessor, never()).manageResponsesBatch(anyLong(), any(Batch.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="394" href="#394">394</a>     }
+<a class="jxr_linenumber" name="395" href="#395">395</a> 
+<a class="jxr_linenumber" name="396" href="#396">396</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="397" href="#397">397</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPanicPersistingEvents() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="398" href="#398">398</a> 
-<a class="jxr_linenumber" name="399" href="#399">399</a>     }
-<a class="jxr_linenumber" name="400" href="#400">400</a> 
-<a class="jxr_linenumber" name="401" href="#401">401</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="402" href="#402">402</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPanicBecauseMasterLosesMastership() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="403" href="#403">403</a> 
-<a class="jxr_linenumber" name="404" href="#404">404</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="405" href="#405">405</a>         <em class="jxr_comment">// 1) Test panic before flushing</em>
-<a class="jxr_linenumber" name="406" href="#406">406</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="407" href="#407">407</a> 
-<a class="jxr_linenumber" name="408" href="#408">408</a>         <em class="jxr_comment">// Simulate we lose mastership BEFORE flushing</em>
-<a class="jxr_linenumber" name="409" href="#409">409</a>         doReturn(false).when(leaseManager).stillInLeasePeriod();
-<a class="jxr_linenumber" name="410" href="#410">410</a> 
-<a class="jxr_linenumber" name="411" href="#411">411</a>         <em class="jxr_comment">// User the real panicker</em>
-<a class="jxr_linenumber" name="412" href="#412">412</a>         Panicker panicker = spy(<strong class="jxr_keyword">new</strong> RuntimeExceptionPanicker());
-<a class="jxr_linenumber" name="413" href="#413">413</a>         persistenceHandler = spy(<strong class="jxr_keyword">new</strong> PersistenceProcessorHandler(metrics,
-<a class="jxr_linenumber" name="414" href="#414">414</a>                                                                  <span class="jxr_string">"localhost:1234"</span>,
-<a class="jxr_linenumber" name="415" href="#415">415</a>                                                                  leaseManager,
-<a class="jxr_linenumber" name="416" href="#416">416</a>                                                                  commitTable,
-<a class="jxr_linenumber" name="417" href="#417">417</a>                                                                  replyProcessor,
-<a class="jxr_linenumber" name="418" href="#418">418</a>                                                                  retryProcessor,
-<a class="jxr_linenumber" name="419" href="#419">419</a>                                                                  panicker));
-<a class="jxr_linenumber" name="420" href="#420">420</a> 
-<a class="jxr_linenumber" name="421" href="#421">421</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="422" href="#422">422</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="423" href="#423">423</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="424" href="#424">424</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="425" href="#425">425</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="426" href="#426">426</a> 
-<a class="jxr_linenumber" name="427" href="#427">427</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="428" href="#428">428</a>             persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="429" href="#429">429</a>             fail();
-<a class="jxr_linenumber" name="430" href="#430">430</a>         } <strong class="jxr_keyword">catch</strong> (RuntimeException re) {
-<a class="jxr_linenumber" name="431" href="#431">431</a>             <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="432" href="#432">432</a>         }
-<a class="jxr_linenumber" name="433" href="#433">433</a>         verify(persistenceHandler, times(1)).flush(eq(1));
-<a class="jxr_linenumber" name="434" href="#434">434</a>         verify(mockWriter, never()).flush();
-<a class="jxr_linenumber" name="435" href="#435">435</a>         verify(panicker, times(1)).panic(eq(<span class="jxr_string">"Replica localhost:1234 lost mastership whilst flushing data. Committing suicide"</span>), any(IOException.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="436" href="#436">436</a>         verify(persistenceHandler, never()).filterAndDissambiguateClientRetries(any(Batch.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="437" href="#437">437</a>         verify(replyProcessor, never()).manageResponsesBatch(anyLong(), any(Batch.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="438" href="#438">438</a> 
-<a class="jxr_linenumber" name="439" href="#439">439</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="440" href="#440">440</a>         <em class="jxr_comment">// 2) Test panic after flushing</em>
-<a class="jxr_linenumber" name="441" href="#441">441</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="442" href="#442">442</a> 
-<a class="jxr_linenumber" name="443" href="#443">443</a>         <em class="jxr_comment">// Simulate we lose mastership AFTER flushing</em>
-<a class="jxr_linenumber" name="444" href="#444">444</a>         doReturn(<strong class="jxr_keyword">true</strong>).doReturn(false).when(leaseManager).stillInLeasePeriod();
-<a class="jxr_linenumber" name="445" href="#445">445</a> 
-<a class="jxr_linenumber" name="446" href="#446">446</a>         <em class="jxr_comment">// User the real panicker</em>
-<a class="jxr_linenumber" name="447" href="#447">447</a>         panicker = spy(<strong class="jxr_keyword">new</strong> RuntimeExceptionPanicker());
-<a class="jxr_linenumber" name="448" href="#448">448</a>         persistenceHandler = spy(<strong class="jxr_keyword">new</strong> PersistenceProcessorHandler(metrics,
-<a class="jxr_linenumber" name="449" href="#449">449</a>                                                                  <span class="jxr_string">"localhost:1234"</span>,
-<a class="jxr_linenumber" name="450" href="#450">450</a>                                                                  leaseManager,
-<a class="jxr_linenumber" name="451" href="#451">451</a>                                                                  commitTable,
-<a class="jxr_linenumber" name="452" href="#452">452</a>                                                                  replyProcessor,
-<a class="jxr_linenumber" name="453" href="#453">453</a>                                                                  retryProcessor,
-<a class="jxr_linenumber" name="454" href="#454">454</a>                                                                  panicker));
-<a class="jxr_linenumber" name="455" href="#455">455</a> 
-<a class="jxr_linenumber" name="456" href="#456">456</a>         <em class="jxr_comment">// Prepare test batch</em>
-<a class="jxr_linenumber" name="457" href="#457">457</a>         batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
-<a class="jxr_linenumber" name="458" href="#458">458</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="459" href="#459">459</a>         batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
-<a class="jxr_linenumber" name="460" href="#460">460</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
-<a class="jxr_linenumber" name="461" href="#461">461</a> 
-<a class="jxr_linenumber" name="462" href="#462">462</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="463" href="#463">463</a>             persistenceHandler.onEvent(batchEvent);
-<a class="jxr_linenumber" name="464" href="#464">464</a>             fail();
-<a class="jxr_linenumber" name="465" href="#465">465</a>         } <strong class="jxr_keyword">catch</strong> (RuntimeException re) {
-<a class="jxr_linenumber" name="466" href="#466">466</a>             <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="467" href="#467">467</a>         }
-<a class="jxr_linenumber" name="468" href="#468">468</a>         verify(persistenceHandler, times(1)).flush(eq(1));
-<a class="jxr_linenumber" name="469" href="#469">469</a>         verify(mockWriter, times(1)).flush();
-<a class="jxr_linenumber" name="470" href="#470">470</a>         verify(panicker, times(1)).panic(eq(<span class="jxr_string">"Replica localhost:1234 lost mastership whilst flushing data. Committing suicide"</span>), any(IOException.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="471" href="#471">471</a>         verify(persistenceHandler, never()).filterAndDissambiguateClientRetries(any(Batch.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="472" href="#472">472</a>         verify(replyProcessor, never()).manageResponsesBatch(anyLong(), any(Batch.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="473" href="#473">473</a> 
-<a class="jxr_linenumber" name="474" href="#474">474</a>     }
+<a class="jxr_linenumber" name="399" href="#399">399</a>         <em class="jxr_comment">// User the real panicker</em>
+<a class="jxr_linenumber" name="400" href="#400">400</a>         Panicker panicker = spy(<strong class="jxr_keyword">new</strong> RuntimeExceptionPanicker());
+<a class="jxr_linenumber" name="401" href="#401">401</a>         persistenceHandler = spy(<strong class="jxr_keyword">new</strong> PersistenceProcessorHandler(metrics,
+<a class="jxr_linenumber" name="402" href="#402">402</a>                                                                  <span class="jxr_string">"localhost:1234"</span>,
+<a class="jxr_linenumber" name="403" href="#403">403</a>                                                                  leaseManager,
+<a class="jxr_linenumber" name="404" href="#404">404</a>                                                                  commitTable,
+<a class="jxr_linenumber" name="405" href="#405">405</a>                                                                  replyProcessor,
+<a class="jxr_linenumber" name="406" href="#406">406</a>                                                                  retryProcessor,
+<a class="jxr_linenumber" name="407" href="#407">407</a>                                                                  panicker));
+<a class="jxr_linenumber" name="408" href="#408">408</a> 
+<a class="jxr_linenumber" name="409" href="#409">409</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="410" href="#410">410</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="411" href="#411">411</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="412" href="#412">412</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="413" href="#413">413</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="414" href="#414">414</a> 
+<a class="jxr_linenumber" name="415" href="#415">415</a>         doThrow(IOException.<strong class="jxr_keyword">class</strong>).when(mockWriter).flush();
+<a class="jxr_linenumber" name="416" href="#416">416</a> 
+<a class="jxr_linenumber" name="417" href="#417">417</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="418" href="#418">418</a>             persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="419" href="#419">419</a>             fail();
+<a class="jxr_linenumber" name="420" href="#420">420</a>         } <strong class="jxr_keyword">catch</strong> (RuntimeException re) {
+<a class="jxr_linenumber" name="421" href="#421">421</a>             <em class="jxr_comment">// Expected</em>
+<a class="jxr_linenumber" name="422" href="#422">422</a>         }
+<a class="jxr_linenumber" name="423" href="#423">423</a> 
+<a class="jxr_linenumber" name="424" href="#424">424</a>         verify(persistenceHandler, times(1)).flush(1);
+<a class="jxr_linenumber" name="425" href="#425">425</a>         verify(panicker, times(1)).panic(eq(<span class="jxr_string">"Error persisting commit batch"</span>), any(IOException.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="426" href="#426">426</a>         verify(persistenceHandler, never()).filterAndDissambiguateClientRetries(any(Batch.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="427" href="#427">427</a>         verify(replyProcessor, never()).manageResponsesBatch(anyLong(), any(Batch.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="428" href="#428">428</a> 
+<a class="jxr_linenumber" name="429" href="#429">429</a>     }
+<a class="jxr_linenumber" name="430" href="#430">430</a> 
+<a class="jxr_linenumber" name="431" href="#431">431</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="432" href="#432">432</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPanicBecauseMasterLosesMastership() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="433" href="#433">433</a> 
+<a class="jxr_linenumber" name="434" href="#434">434</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="435" href="#435">435</a>         <em class="jxr_comment">// 1) Test panic before flushing</em>
+<a class="jxr_linenumber" name="436" href="#436">436</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="437" href="#437">437</a> 
+<a class="jxr_linenumber" name="438" href="#438">438</a>         <em class="jxr_comment">// Simulate we lose mastership BEFORE flushing</em>
+<a class="jxr_linenumber" name="439" href="#439">439</a>         doReturn(false).when(leaseManager).stillInLeasePeriod();
+<a class="jxr_linenumber" name="440" href="#440">440</a> 
+<a class="jxr_linenumber" name="441" href="#441">441</a>         <em class="jxr_comment">// User the real panicker</em>
+<a class="jxr_linenumber" name="442" href="#442">442</a>         Panicker panicker = spy(<strong class="jxr_keyword">new</strong> RuntimeExceptionPanicker());
+<a class="jxr_linenumber" name="443" href="#443">443</a>         persistenceHandler = spy(<strong class="jxr_keyword">new</strong> PersistenceProcessorHandler(metrics,
+<a class="jxr_linenumber" name="444" href="#444">444</a>                                                                  <span class="jxr_string">"localhost:1234"</span>,
+<a class="jxr_linenumber" name="445" href="#445">445</a>                                                                  leaseManager,
+<a class="jxr_linenumber" name="446" href="#446">446</a>                                                                  commitTable,
+<a class="jxr_linenumber" name="447" href="#447">447</a>                                                                  replyProcessor,
+<a class="jxr_linenumber" name="448" href="#448">448</a>                                                                  retryProcessor,
+<a class="jxr_linenumber" name="449" href="#449">449</a>                                                                  panicker));
+<a class="jxr_linenumber" name="450" href="#450">450</a> 
+<a class="jxr_linenumber" name="451" href="#451">451</a>         <em class="jxr_comment">// Prepare test batch</em>
+<a class="jxr_linenumber" name="452" href="#452">452</a>         Batch batch = <strong class="jxr_keyword">new</strong> Batch(BATCH_ID, BATCH_SIZE);
+<a class="jxr_linenumber" name="453" href="#453">453</a>         batch.addCommit(FIRST_ST, FIRST_CT, <strong class="jxr_keyword">null</strong>, mock(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="454" href="#454">454</a>         PersistBatchEvent batchEvent = <strong class="jxr_keyword">new</strong> PersistBatchEvent();
+<a class="jxr_linenumber" name="455" href="#455">455</a>         PersistBatchEvent.makePersistBatch(batchEvent, BATCH_SEQUENCE, batch);
+<a class="jxr_linenumber" name="456" href="#456">456</a> 
+<a class="jxr_linenumber" name="457" href="#457">457</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="458" href="#458">458</a>             persistenceHandler.onEvent(batchEvent);
+<a class="jxr_linenumber" name="459" href="#459">459</a>             fail();
+<a class="jxr_linenumber" name="460" href="#460">460</a>         } <strong class="jxr_keyword">catch</strong> (RuntimeException re) {
+<a class="jxr_linenumber" name="461" href="#461">461</a>             <em class="jxr_comment">// Expected</em>
+<a class="jxr_linenumber" name="462" href="#462">462</a>         }
+<a class="jxr_linenumber" name="463" href="#463">463</a>         verify(persistenceHandler, times(1)).flush(eq(1));
+<a class="jxr_linenumber" name="464" href="#464">464</a>         verify(mockWriter, never()).flush();
+<a class="jxr_linenumber" name="465" href="#465">465</a>         verify(panicker, times(1)).panic(eq(<span class="jxr_string">"Replica localhost:1234 lost mastership whilst flushing data. Committing suicide"</span>), any(IOException.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="466" href="#466">466</a>         verify(persistenceHandler, never()).filterAndDissambiguateClientRetries(any(Batch.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="467" href="#467">467</a>         verify(replyProcessor, never()).manageResponsesBatch(anyLong(), any(Batch.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="468" href="#468">468</a> 
+<a class="jxr_linenumber" name="469" href="#469">469</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="470" href="#470">470</a>         <em class="jxr_comment">// 2) Test panic after flushing</em>
+<a class="jxr_linenumber" name="471" href="#471">471</a>         <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="472" href="#472">472</a> 
+<a class="jxr_linenumber" name="473" href="#473">473</a>         <em class="jxr_comment">// Simulate we lose mastership AFTER flushing</em>
+<a class="jxr_linenumber" name="474" href="#474">474</a>         doReturn(<strong class="jxr_keyword">true</strong>).doR

<TRUNCATED>


[45/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index d87b5c6..1e1c25c 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -223,19 +223,19 @@
 <td>20</td></tr>
 <tr class="a">
 <th>Number of dependencies (NOD):</th>
-<td>189</td></tr>
+<td>145</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>279</td></tr>
+<td>208</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
-<td>28</td></tr>
+<td>25</td></tr>
 <tr class="b">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
 <tr class="a">
 <th>Convergence (NOD/NOA):</th>
-<td><img alt="[Error]" src="images/icon_error_sml.gif" />&#160;<b>67 %</b></td></tr>
+<td><img alt="[Error]" src="images/icon_error_sml.gif" />&#160;<b>69 %</b></td></tr>
 <tr class="b">
 <th>Ready for release (100% convergence and no SNAPSHOTS):</th>
 <td><img alt="[Error]" src="images/icon_error_sml.gif" />&#160;<b>Error</b><br />You do not have 100% convergence.</td></tr></table></div>
@@ -249,23 +249,23 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="b">
-<td width="25%">1.35</td>
+<td width="25%">1.27</td>
 <td>
 <ol style="list-style-type: decimal">
-<li>org.apache.omid:omid-benchmarks:jar:0.8.2.11-SNAPSHOT<br />\-&#160;com.beust:jcommander:jar:1.35:compile<br /></li><br />
-<li>org.apache.omid:omid-hbase-client:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-tools:jar:0.8.2.11-SNAPSHOT:test<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.35:compile - scope updated from test; omitted for duplicate)<br /></li><br />
-<li>org.apache.omid:omid-hbase-coprocessor:jar:0.8.2.11-SNAPSHOT<br />\-&#160;com.beust:jcommander:jar:1.35:compile<br /></li><br />
-<li>org.apache.omid:omid-hbase-tools:jar:0.8.2.11-SNAPSHOT<br />\-&#160;com.beust:jcommander:jar:1.35:compile<br /></li><br />
-<li>org.apache.omid:omid-tso-server:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-tools:jar:0.8.2.11-SNAPSHOT:provided<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.35:compile - scope updated from provided; omitted for duplicate)<br /></li><br /></ol></td></tr>
+<li>org.apache.omid:omid-benchmarks:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.8.8:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.27:test - omitted for conflict with 1.35)<br /></li><br />
+<li>org.apache.omid:omid-hbase-client:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.8.8:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;com.beust:jcommander:jar:1.27:test<br /></li><br />
+<li>org.apache.omid:omid-hbase-coprocessor:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.8.8:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.27:test - omitted for conflict with 1.35)<br /></li><br />
+<li>org.apache.omid:omid-hbase-tools:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.8.8:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.27:test - omitted for conflict with 1.35)<br /></li><br />
+<li>org.apache.omid:omid-tso-server:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.8.8:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;com.beust:jcommander:jar:1.27:test<br /></li><br /></ol></td></tr>
 <tr class="a">
-<td width="25%">1.48</td>
+<td width="25%">1.35</td>
 <td>
 <ol style="list-style-type: decimal">
-<li>org.apache.omid:omid-benchmarks:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.10:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.48:test - omitted for conflict with 1.35)<br /></li><br />
-<li>org.apache.omid:omid-hbase-client:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.10:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;com.beust:jcommander:jar:1.48:test<br /></li><br />
-<li>org.apache.omid:omid-hbase-coprocessor:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.10:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.48:test - omitted for conflict with 1.35)<br /></li><br />
-<li>org.apache.omid:omid-hbase-tools:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.10:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.48:test - omitted for conflict with 1.35)<br /></li><br />
-<li>org.apache.omid:omid-tso-server:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.testng:testng:jar:6.10:test (scope not updated to compile)<br />&#160;&#160;&#160;\-&#160;com.beust:jcommander:jar:1.48:test<br /></li><br /></ol></td></tr></table></td></tr></table></div>
+<li>org.apache.omid:omid-benchmarks:jar:0.9.1.0-SNAPSHOT<br />\-&#160;com.beust:jcommander:jar:1.35:compile<br /></li><br />
+<li>org.apache.omid:omid-hbase-client:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-tools:jar:0.9.1.0-SNAPSHOT:test<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.35:compile - scope updated from test; omitted for duplicate)<br /></li><br />
+<li>org.apache.omid:omid-hbase-coprocessor:jar:0.9.1.0-SNAPSHOT<br />\-&#160;com.beust:jcommander:jar:1.35:compile<br /></li><br />
+<li>org.apache.omid:omid-hbase-tools:jar:0.9.1.0-SNAPSHOT<br />\-&#160;com.beust:jcommander:jar:1.35:compile<br /></li><br />
+<li>org.apache.omid:omid-tso-server:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-tools:jar:0.9.1.0-SNAPSHOT:provided<br />&#160;&#160;&#160;\-&#160;(com.beust:jcommander:jar:1.35:compile - scope updated from provided; omitted for duplicate)<br /></li><br /></ol></td></tr></table></td></tr></table></div>
 <div class="section">
 <h4><a name="com.google.code.findbugs:jsr305"></a>com.google.code.findbugs:jsr305</h4>
 <table border="0" class="table table-striped">
@@ -277,16 +277,16 @@
 <td width="25%">1.3.9</td>
 <td>
 <ol style="list-style-type: decimal">
-<li>org.apache.omid:omid-hbase-client:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:1.3.9:compile - omitted for conflict with 3.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase-coprocessor:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;com.google.code.findbugs:jsr305:jar:1.3.9:compile<br /></li><br />
-<li>org.apache.omid:omid-tso-server:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:1.3.9:compile - omitted for conflict with 3.0.1)<br /></li><br /></ol></td></tr>
+<li>org.apache.omid:omid-hbase-client:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:1.3.9:compile - omitted for conflict with 3.0.1)<br /></li><br />
+<li>org.apache.omid:omid-hbase-coprocessor:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;com.google.code.findbugs:jsr305:jar:1.3.9:compile<br /></li><br />
+<li>org.apache.omid:omid-tso-server:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:1.3.9:compile - omitted for conflict with 3.0.1)<br /></li><br /></ol></td></tr>
 <tr class="b">
 <td width="25%">3.0.1</td>
 <td>
 <ol style="list-style-type: decimal">
-<li>org.apache.omid:omid-hbase-client:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.omid:omid-tso-server:jar:0.8.2.11-SNAPSHOT:test<br />|&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:3.0.1:compile - scope updated from test; omitted for duplicate)<br />+-&#160;org.apache.omid:omid-tso-server:test-jar:tests:0.8.2.11-SNAPSHOT:test<br />|&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:3.0.1:compile - scope updated from test; omitted for duplicate)<br />\-&#160;com.google.code.findbugs:jsr305:jar:3.0.1:test (scope not updated to compile)<br /></li><br />
-<li>org.apache.omid:omid-hbase-coprocessor:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.omid:omid-tso-server:jar:0.8.2.11-SNAPSHOT:test<br />|&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:3.0.1:compile - scope updated from test; omitted for duplicate)<br />\-&#160;org.apache.omid:omid-tso-server:test-jar:tests:0.8.2.11-SNAPSHOT:test<br />&#160;&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:3.0.1:compile - scope updated from test; omitted for duplicate)<br /></li><br />
-<li>org.apache.omid:omid-tso-server:jar:0.8.2.11-SNAPSHOT<br />\-&#160;com.google.code.findbugs:jsr305:jar:3.0.1:compile<br /></li><br /></ol></td></tr></table></td></tr></table></div>
+<li>org.apache.omid:omid-hbase-client:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.omid:omid-tso-server:jar:0.9.1.0-SNAPSHOT:test<br />|&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:3.0.1:compile - scope updated from test; omitted for duplicate)<br />+-&#160;org.apache.omid:omid-tso-server:test-jar:tests:0.9.1.0-SNAPSHOT:test<br />|&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:3.0.1:compile - scope updated from test; omitted for duplicate)<br />\-&#160;com.google.code.findbugs:jsr305:jar:3.0.1:test (scope not updated to compile)<br /></li><br />
+<li>org.apache.omid:omid-hbase-coprocessor:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.omid:omid-tso-server:jar:0.9.1.0-SNAPSHOT:test<br />|&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:3.0.1:compile - scope updated from test; omitted for duplicate)<br />\-&#160;org.apache.omid:omid-tso-server:test-jar:tests:0.9.1.0-SNAPSHOT:test<br />&#160;&#160;&#160;\-&#160;(com.google.code.findbugs:jsr305:jar:3.0.1:compile - scope updated from test; omitted for duplicate)<br /></li><br />
+<li>org.apache.omid:omid-tso-server:jar:0.9.1.0-SNAPSHOT<br />\-&#160;com.google.code.findbugs:jsr305:jar:3.0.1:compile<br /></li><br /></ol></td></tr></table></td></tr></table></div>
 <div class="section">
 <h4><a name="com.google.guava:guava"></a>com.google.guava:guava</h4>
 <table border="0" class="table table-striped">
@@ -298,62 +298,62 @@
 <td width="25%">11.0.2</td>
 <td>
 <ol style="list-style-type: decimal">
-<li>org.apache.omid:omid-benchmarks:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-commit-table:jar:0.8.2.11-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict 
 with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-examples:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-client:jar:0.8.2.11-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.
 0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase-client:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:test<br />&#160;&#160;&#
 160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160
 ;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#16
 0;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test -
  omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase-commit-table:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:test<br />&#160;&#
 160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160
 ;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#16
 0;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:
 test - omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase-common:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:test<br />&#160;&#160;&#
 160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160
 ;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#16
 0;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test -
  omitted for conflict with 12.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase-coprocessor:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />+-&#160;org.apache.hbase:hbase-server:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-client:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2
 .5.1:compile<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted 
 for conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:test (scope not updated to compile)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.
 guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)
 <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase-tools:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />+-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:test (scope not updated t
 o compile)<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apa
 che.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.omid:omid-hbase1-shims:jar:0.8.2.11-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-server:jar:1.2.5:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-client:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;o
 rg.apache.hadoop:hadoop-mapreduce-client-app:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:
 compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase1-shims:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-common:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />+-&#160;org.apache.hbase:hbase-server:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-client:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict 
 with 12.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:compile<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted 
 for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#16
 0;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:
 jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase2-shims:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-endpoint:jar:2.0.1:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-common:jar:2.7.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 16.0.1)<br /></li><br />
-<li>org.apache.omid:omid-shims-aggregator:pom:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-common:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />+-&#160;org.apache.hbase:hbase-server:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-client:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for confl
 ict with 12.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:compile<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omit
 ted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;
 &#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:gu
 ava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br /></li><br />
-<li>org.apache.omid:omid-timestamp-storage:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 16.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 16.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 16.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:test<br />&#160;&#1
 60;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;
 &#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160
 ;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:t
 est - omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-tso-server:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:test<br />&#160;&#160;&#16
 0;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&
 #160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 &#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - o
 mitted for conflict with 14.0.1)<br /></li><br /></ol></td></tr>
+<li>org.apache.omid:omid-benchmarks:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-commit-table:jar:0.9.1.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict wi
 th 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br /></li><br />
+<li>org.apache.omid:omid-examples:jar:0.9.1.0-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-client:jar:0.9.1.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.
 1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br /></li><br />
+<li>org.apache.omid:omid-hbase-client:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.3.1:test<br />&#160;&#160;&#1
 60;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;
 &#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160
 ;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - 
 omitted for conflict with 14.0.1)<br /></li><br />
+<li>org.apache.omid:omid-hbase-commit-table:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.3.1:test<br />&#160;&#1
 60;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;
 &#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160
 ;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:t
 est - omitted for conflict with 14.0.1)<br /></li><br />
+<li>org.apache.omid:omid-hbase-common:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.3.1:test<br />&#160;&#160;&#1
 60;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;
 &#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160
 ;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - 
 omitted for conflict with 12.0.1)<br /></li><br />
+<li>org.apache.omid:omid-hbase-coprocessor:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />+-&#160;org.apache.hbase:hbase-server:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-client:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.
 5.1:compile<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted f
 or conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.3.1:test<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - om
 itted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#
 160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br /></li><br />
+<li>org.apache.omid:omid-hbase-tools:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />+-&#160;org.apache.hbase:hbase-testing-util:jar:1.3.1:test<br />|&#160;&#160;+-&
 #160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-ap
 plicationhistoryservice:jar:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.omid:omid-hbase1-shims:jar:0.9.1.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-server:jar:1.3.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-client:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce
 -client-app:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:compile<br />&#160;&#160;&#160;&#
 160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br /></li><br />
+<li>org.apache.omid:omid-hbase1-shims:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-common:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />\-&#160;org.apache.hbase:hbase-server:jar:1.3.1:compile<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-client:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-com
 mon:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com
 .google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br /></li><br />
+<li>org.apache.omid:omid-shims-aggregator:pom:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-common:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />\-&#160;org.apache.hbase:hbase-server:jar:1.3.1:compile<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-client:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client
 -common:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;
 (com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 12.0.1)<br /></li><br />
+<li>org.apache.omid:omid-timestamp-storage:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 16.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 16.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 16.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.3.1:test<br />&#160;&#16
 0;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&
 #160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;
 &#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:te
 st - omitted for conflict with 14.0.1)<br /></li><br />
+<li>org.apache.omid:omid-tso-server:jar:0.9.1.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.3.1:compile<br />|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:jar:2.5.1:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-common:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-api:jar:2.5.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.3.1:test<br />&#160;&#160;&#160
 ;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-client:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-common:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#
 160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:jar:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-minicluster:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hadoop:hadoop-common:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 #160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.5.1:test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:11.0.2:test - om
 itted for conflict with 14.0.1)<br /></li><br /></ol></td></tr>
 <tr class="a">
 <td width="25%">12.0.1</td>
 <td>
 <ol style="list-style-type: decimal">
-<li>org.apache.omid:omid-benchmarks:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-commit-table:jar:0.8.2.11-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hbase:hbase-common:jar:1.2.5:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:compile - omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-examples:jar:0.8.2.11-SNAPSHOT<br />\-&#160;org.apache.omid:omid-hbase-client:jar:0.8.2.11-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.apache.hbase:hbase-common:jar:1.2.5:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:compile - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:compile - omitted for conflict with 14.0.1)<br /></li><br />
-<li>org.apache.omid:omid-hbase-client:jar:0.8.2.11-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-client:jar:1.2.5:compile<br />|&#160;&#160;+-&#160;org.apache.hbase:hbase-common:jar:1.2.5:compile<br />|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:compile - omitted for conflict with 14.0.1)<br />|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:compile - omitted for conflict with 14.0.1)<br />\-&#160;org.apache.hbase:hbase-testing-util:jar:1.2.5:test<br />&#160;&#160;&#160;+-&#160;org.apache.hbase:hbase-common:test-jar:tests:1.2.5:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hbase:hbase-server:jar:1.2.5:test<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hbase:hbase-procedure:jar:1.2.5:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;+-&#160;org.apache.hbase:hbase-common:jar:tests:1.2.5:test<br />&#160;&#160;&#160;|&#160;&#
 160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;+-&#160;org.apache.hbase:hbase-prefix-tree:jar:1.2.5:test<br />&#160;&#160;&#160;|&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hbase:hbase-server:test-jar:tests:1.2.5:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:test - omitted for conflict with 14.0.1)<br />&#160;&#160;&#160;+-&#160;org.apache.hbase:hbase-hadoop2-compat:jar:1.2.5:test<br />&#160;&#160;&#160;|&#160;&#160;\-&#160;(com.google.guava:guava:jar:12.0.1:test - omitted for conflict with 
 14.0.1)<br />&#160;&#160;&#160;\-&#160;org.apache.hbase:hbase-hadoop2-compat:test-jar:tests:1.2.5:test<br />

<TRUNCATED>


[39/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestCompaction.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestCompaction.html b/xref-test/org/apache/omid/transaction/TestCompaction.html
index 0618d92..eeb18f9 100644
--- a/xref-test/org/apache/omid/transaction/TestCompaction.html
+++ b/xref-test/org/apache/omid/transaction/TestCompaction.html
@@ -27,1188 +27,1181 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doThrow;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Random;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicBoolean;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Coprocessor;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MiniHBaseCluster;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Row;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.HBaseShims;
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig;
-<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
-<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterClass;
-<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
-<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="77" href="#77">77</a>  
-<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Guice;
-<a class="jxr_linenumber" name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Injector;
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestCompaction.html">TestCompaction</a> {
-<a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestCompaction.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_FAMILY = <span class="jxr_string">"test-fam"</span>;
-<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_QUALIFIER = <span class="jxr_string">"test-qual"</span>;
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] qual = Bytes.toBytes(TEST_QUALIFIER);
-<a class="jxr_linenumber" name="91" href="#91">91</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] data = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> MAX_VERSIONS = 3;
-<a class="jxr_linenumber" name="94" href="#94">94</a>  
-<a class="jxr_linenumber" name="95" href="#95">95</a>      <strong class="jxr_keyword">private</strong> Random randomGenerator;
-<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> AbstractTransactionManager tm;
-<a class="jxr_linenumber" name="97" href="#97">97</a>  
-<a class="jxr_linenumber" name="98" href="#98">98</a>      <strong class="jxr_keyword">private</strong> Injector injector;
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">private</strong> Admin admin;
-<a class="jxr_linenumber" name="101" href="#101">101</a>     <strong class="jxr_keyword">private</strong> Configuration hbaseConf;
-<a class="jxr_linenumber" name="102" href="#102">102</a>     <strong class="jxr_keyword">private</strong> HBaseTestingUtility hbaseTestUtil;
-<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">private</strong> MiniHBaseCluster hbaseCluster;
-<a class="jxr_linenumber" name="104" href="#104">104</a> 
-<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">private</strong> TSOServer tso;
-<a class="jxr_linenumber" name="106" href="#106">106</a> 
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     <strong class="jxr_keyword">private</strong> CommitTable commitTable;
-<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">private</strong> PostCommitActions syncPostCommitter;
-<a class="jxr_linenumber" name="110" href="#110">110</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Connection connection;
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>     @BeforeClass
-<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setupTestCompation() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="114" href="#114">114</a>         TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="115" href="#115">115</a>         tsoConfig.setPort(1234);
-<a class="jxr_linenumber" name="116" href="#116">116</a>         tsoConfig.setConflictMapSize(1);
-<a class="jxr_linenumber" name="117" href="#117">117</a>         injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TSOForHBaseCompactorTestModule.html">TSOForHBaseCompactorTestModule</a>(tsoConfig));
-<a class="jxr_linenumber" name="118" href="#118">118</a>         hbaseConf = injector.getInstance(Configuration.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="119" href="#119">119</a>         HBaseCommitTableConfig hBaseCommitTableConfig = injector.getInstance(HBaseCommitTableConfig.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="120" href="#120">120</a>         HBaseTimestampStorageConfig hBaseTimestampStorageConfig = injector.getInstance(HBaseTimestampStorageConfig.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="121" href="#121">121</a> 
-<a class="jxr_linenumber" name="122" href="#122">122</a>         <em class="jxr_comment">// settings required for #testDuplicateDeletes()</em>
-<a class="jxr_linenumber" name="123" href="#123">123</a>         hbaseConf.setInt(<span class="jxr_string">"hbase.hstore.compaction.min"</span>, 2);
-<a class="jxr_linenumber" name="124" href="#124">124</a>         hbaseConf.setInt(<span class="jxr_string">"hbase.hstore.compaction.max"</span>, 2);
-<a class="jxr_linenumber" name="125" href="#125">125</a>         setupHBase();
-<a class="jxr_linenumber" name="126" href="#126">126</a>         connection = ConnectionFactory.createConnection(hbaseConf);
-<a class="jxr_linenumber" name="127" href="#127">127</a>         admin = connection.getAdmin();
-<a class="jxr_linenumber" name="128" href="#128">128</a>         createRequiredHBaseTables(hBaseTimestampStorageConfig, hBaseCommitTableConfig);
-<a class="jxr_linenumber" name="129" href="#129">129</a>         setupTSO();
-<a class="jxr_linenumber" name="130" href="#130">130</a> 
-<a class="jxr_linenumber" name="131" href="#131">131</a>         commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="132" href="#132">132</a>     }
-<a class="jxr_linenumber" name="133" href="#133">133</a> 
-<a class="jxr_linenumber" name="134" href="#134">134</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setupHBase() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="135" href="#135">135</a>         LOG.info(<span class="jxr_string">"--------------------------------------------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="136" href="#136">136</a>         LOG.info(<span class="jxr_string">"Setting up HBase"</span>);
-<a class="jxr_linenumber" name="137" href="#137">137</a>         LOG.info(<span class="jxr_string">"--------------------------------------------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="138" href="#138">138</a>         hbaseTestUtil = <strong class="jxr_keyword">new</strong> HBaseTestingUtility(hbaseConf);
-<a class="jxr_linenumber" name="139" href="#139">139</a>         LOG.info(<span class="jxr_string">"--------------------------------------------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="140" href="#140">140</a>         LOG.info(<span class="jxr_string">"Creating HBase MiniCluster"</span>);
-<a class="jxr_linenumber" name="141" href="#141">141</a>         LOG.info(<span class="jxr_string">"--------------------------------------------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         hbaseCluster = hbaseTestUtil.startMiniCluster(1);
-<a class="jxr_linenumber" name="143" href="#143">143</a>     }
-<a class="jxr_linenumber" name="144" href="#144">144</a> 
-<a class="jxr_linenumber" name="145" href="#145">145</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createRequiredHBaseTables(HBaseTimestampStorageConfig timestampStorageConfig,
-<a class="jxr_linenumber" name="146" href="#146">146</a>                                            HBaseCommitTableConfig hBaseCommitTableConfig) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="147" href="#147">147</a>         createTableIfNotExists(timestampStorageConfig.getTableName(), timestampStorageConfig.getFamilyName().getBytes());
-<a class="jxr_linenumber" name="148" href="#148">148</a> 
-<a class="jxr_linenumber" name="149" href="#149">149</a>         createTableIfNotExists(hBaseCommitTableConfig.getTableName(), hBaseCommitTableConfig.getCommitTableFamily(), hBaseCommitTableConfig.getLowWatermarkFamily());
-<a class="jxr_linenumber" name="150" href="#150">150</a>     }
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createTableIfNotExists(String tableName, byte[]... families) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="153" href="#153">153</a>         <strong class="jxr_keyword">if</strong> (!admin.tableExists(TableName.valueOf(tableName))) {
-<a class="jxr_linenumber" name="154" href="#154">154</a>             LOG.info(<span class="jxr_string">"Creating {} table..."</span>, tableName);
-<a class="jxr_linenumber" name="155" href="#155">155</a>             HTableDescriptor desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(TableName.valueOf(tableName));
-<a class="jxr_linenumber" name="156" href="#156">156</a> 
-<a class="jxr_linenumber" name="157" href="#157">157</a>             <strong class="jxr_keyword">for</strong> (byte[] family : families) {
-<a class="jxr_linenumber" name="158" href="#158">158</a>                 HColumnDescriptor datafam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(family);
-<a class="jxr_linenumber" name="159" href="#159">159</a>                 datafam.setMaxVersions(MAX_VERSIONS);
-<a class="jxr_linenumber" name="160" href="#160">160</a>                 desc.addFamily(datafam);
-<a class="jxr_linenumber" name="161" href="#161">161</a>             }
-<a class="jxr_linenumber" name="162" href="#162">162</a> 
-<a class="jxr_linenumber" name="163" href="#163">163</a>             desc.addCoprocessor(<span class="jxr_string">"org.apache.hadoop.hbase.coprocessor.AggregateImplementation"</span>,<strong class="jxr_keyword">null</strong>,Coprocessor.PRIORITY_HIGHEST,<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="164" href="#164">164</a>             admin.createTable(desc);
-<a class="jxr_linenumber" name="165" href="#165">165</a>             <strong class="jxr_keyword">for</strong> (byte[] family : families) {
-<a class="jxr_linenumber" name="166" href="#166">166</a>                 CompactorUtil.enableOmidCompaction(connection, TableName.valueOf(tableName), family);
-<a class="jxr_linenumber" name="167" href="#167">167</a>             }
-<a class="jxr_linenumber" name="168" href="#168">168</a>         }
-<a class="jxr_linenumber" name="169" href="#169">169</a> 
-<a class="jxr_linenumber" name="170" href="#170">170</a>     }
-<a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setupTSO() <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="173" href="#173">173</a>         tso = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="174" href="#174">174</a>         tso.startAndWait();
-<a class="jxr_linenumber" name="175" href="#175">175</a>         TestUtils.waitForSocketListening(<span class="jxr_string">"localhost"</span>, 1234, 100);
-<a class="jxr_linenumber" name="176" href="#176">176</a>         Thread.currentThread().setName(<span class="jxr_string">"UnitTest(s) thread"</span>);
-<a class="jxr_linenumber" name="177" href="#177">177</a>     }
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>     @AfterClass
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cleanupTestCompation() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="181" href="#181">181</a>         teardownTSO();
-<a class="jxr_linenumber" name="182" href="#182">182</a>         hbaseCluster.shutdown();
-<a class="jxr_linenumber" name="183" href="#183">183</a>     }
-<a class="jxr_linenumber" name="184" href="#184">184</a> 
-<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> teardownTSO() <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="186" href="#186">186</a>         tso.stopAndWait();
-<a class="jxr_linenumber" name="187" href="#187">187</a>         TestUtils.waitForSocketNotListening(<span class="jxr_string">"localhost"</span>, 1234, 1000);
-<a class="jxr_linenumber" name="188" href="#188">188</a>     }
-<a class="jxr_linenumber" name="189" href="#189">189</a> 
-<a class="jxr_linenumber" name="190" href="#190">190</a>     @BeforeMethod
-<a class="jxr_linenumber" name="191" href="#191">191</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setupTestCompactionIndividualTest() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="192" href="#192">192</a>         randomGenerator = <strong class="jxr_keyword">new</strong> Random(0xfeedcafeL);
-<a class="jxr_linenumber" name="193" href="#193">193</a>         tm = spy((AbstractTransactionManager) newTransactionManager());
-<a class="jxr_linenumber" name="194" href="#194">194</a>     }
-<a class="jxr_linenumber" name="195" href="#195">195</a> 
-<a class="jxr_linenumber" name="196" href="#196">196</a>     <strong class="jxr_keyword">private</strong> TransactionManager newTransactionManager() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="197" href="#197">197</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="198" href="#198">198</a>         hbaseOmidClientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
-<a class="jxr_linenumber" name="199" href="#199">199</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="200" href="#200">200</a>         CommitTable.Client commitTableClient = commitTable.getClient();
-<a class="jxr_linenumber" name="201" href="#201">201</a>         syncPostCommitter =
-<a class="jxr_linenumber" name="202" href="#202">202</a>                 spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(),commitTableClient));
-<a class="jxr_linenumber" name="203" href="#203">203</a>         <strong class="jxr_keyword">return</strong> HBaseTransactionManager.builder(hbaseOmidClientConf)
-<a class="jxr_linenumber" name="204" href="#204">204</a>                 .postCommitter(syncPostCommitter)
-<a class="jxr_linenumber" name="205" href="#205">205</a>                 .commitTableClient(commitTableClient)
-<a class="jxr_linenumber" name="206" href="#206">206</a>                 .build();
-<a class="jxr_linenumber" name="207" href="#207">207</a>     }
-<a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testStandardTXsWithShadowCellsAndWithSTBelowAndAboveLWMArePresevedAfterCompaction() <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="211" href="#211">211</a>         String TEST_TABLE = <span class="jxr_string">"testStandardTXsWithShadowCellsAndWithSTBelowAndAboveLWMArePresevedAfterCompaction"</span>;
-<a class="jxr_linenumber" name="212" href="#212">212</a>         createTableIfNotExists(TEST_TABLE, Bytes.toBytes(TEST_FAMILY));
-<a class="jxr_linenumber" name="213" href="#213">213</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="214" href="#214">214</a> 
-<a class="jxr_linenumber" name="215" href="#215">215</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> ROWS_TO_ADD = 5;
-<a class="jxr_linenumber" name="216" href="#216">216</a> 
-<a class="jxr_linenumber" name="217" href="#217">217</a>         <strong class="jxr_keyword">long</strong> fakeAssignedLowWatermark = 0L;
-<a class="jxr_linenumber" name="218" href="#218">218</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; ROWS_TO_ADD; ++i) {
-<a class="jxr_linenumber" name="219" href="#219">219</a>             <strong class="jxr_keyword">long</strong> rowId = randomGenerator.nextLong();
-<a class="jxr_linenumber" name="220" href="#220">220</a>             Transaction tx = tm.begin();
-<a class="jxr_linenumber" name="221" href="#221">221</a>             <strong class="jxr_keyword">if</strong> (i == (ROWS_TO_ADD / 2)) {
-<a class="jxr_linenumber" name="222" href="#222">222</a>                 fakeAssignedLowWatermark = tx.getTransactionId();
-<a class="jxr_linenumber" name="223" href="#223">223</a>                 LOG.info(<span class="jxr_string">"AssignedLowWatermark "</span> + fakeAssignedLowWatermark);
-<a class="jxr_linenumber" name="224" href="#224">224</a>             }
-<a class="jxr_linenumber" name="225" href="#225">225</a>             Put put = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(rowId));
-<a class="jxr_linenumber" name="226" href="#226">226</a>             put.addColumn(fam, qual, data);
-<a class="jxr_linenumber" name="227" href="#227">227</a>             txTable.put(tx, put);
-<a class="jxr_linenumber" name="228" href="#228">228</a>             tm.commit(tx);
-<a class="jxr_linenumber" name="229" href="#229">229</a>         }
-<a class="jxr_linenumber" name="230" href="#230">230</a> 
-<a class="jxr_linenumber" name="231" href="#231">231</a>         LOG.info(<span class="jxr_string">"Flushing table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="232" href="#232">232</a>         admin.flush(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="233" href="#233">233</a> 
-<a class="jxr_linenumber" name="234" href="#234">234</a>         <em class="jxr_comment">// Return a LWM that triggers compaction &amp; stays between 1 and the max start timestamp assigned to previous TXs</em>
-<a class="jxr_linenumber" name="235" href="#235">235</a>         LOG.info(<span class="jxr_string">"Regions in table {}: {}"</span>, TEST_TABLE, hbaseCluster.getRegions(Bytes.toBytes(TEST_TABLE)).size());
-<a class="jxr_linenumber" name="236" href="#236">236</a>         OmidCompactor omidCompactor = (OmidCompactor) hbaseCluster.getRegions(Bytes.toBytes(TEST_TABLE)).get(0)
-<a class="jxr_linenumber" name="237" href="#237">237</a>                 .getCoprocessorHost().findCoprocessor(OmidCompactor.<strong class="jxr_keyword">class</strong>.getName());
-<a class="jxr_linenumber" name="238" href="#238">238</a>         CommitTable commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="239" href="#239">239</a>         CommitTable.Client commitTableClient = spy(commitTable.getClient());
-<a class="jxr_linenumber" name="240" href="#240">240</a>         SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="241" href="#241">241</a>         f.set(fakeAssignedLowWatermark);
-<a class="jxr_linenumber" name="242" href="#242">242</a>         doReturn(f).when(commitTableClient).readLowWatermark();
-<a class="jxr_linenumber" name="243" href="#243">243</a>         omidCompactor.commitTableClientQueue.add(commitTableClient);
-<a class="jxr_linenumber" name="244" href="#244">244</a>         LOG.info(<span class="jxr_string">"Compacting table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="245" href="#245">245</a>         admin.majorCompact(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="246" href="#246">246</a> 
-<a class="jxr_linenumber" name="247" href="#247">247</a>         LOG.info(<span class="jxr_string">"Sleeping for 3 secs"</span>);
-<a class="jxr_linenumber" name="248" href="#248">248</a>         Thread.sleep(3000);
-<a class="jxr_linenumber" name="249" href="#249">249</a>         LOG.info(<span class="jxr_string">"Waking up after 3 secs"</span>);
-<a class="jxr_linenumber" name="250" href="#250">250</a> 
-<a class="jxr_linenumber" name="251" href="#251">251</a>         <em class="jxr_comment">// No rows should have been discarded after compacting</em>
-<a class="jxr_linenumber" name="252" href="#252">252</a>         assertEquals(rowCount(TEST_TABLE, fam), ROWS_TO_ADD, <span class="jxr_string">"Rows in table after compacting should be "</span> + ROWS_TO_ADD);
-<a class="jxr_linenumber" name="253" href="#253">253</a>     }
-<a class="jxr_linenumber" name="254" href="#254">254</a> 
-<a class="jxr_linenumber" name="255" href="#255">255</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="256" href="#256">256</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTXWithoutShadowCellsAndWithSTBelowLWMGetsShadowCellHealedAfterCompaction() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="257" href="#257">257</a>         String TEST_TABLE = <span class="jxr_string">"testTXWithoutShadowCellsAndWithSTBelowLWMGetsShadowCellHealedAfterCompaction"</span>;
-<a class="jxr_linenumber" name="258" href="#258">258</a>         createTableIfNotExists(TEST_TABLE, Bytes.toBytes(TEST_FAMILY));
-<a class="jxr_linenumber" name="259" href="#259">259</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="260" href="#260">260</a> 
-<a class="jxr_linenumber" name="261" href="#261">261</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
-<a class="jxr_linenumber" name="262" href="#262">262</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="263" href="#263">263</a> 
-<a class="jxr_linenumber" name="264" href="#264">264</a>         HBaseTransaction problematicTx = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="265" href="#265">265</a> 
-<a class="jxr_linenumber" name="266" href="#266">266</a>         <strong class="jxr_keyword">long</strong> row = randomGenerator.nextLong();
-<a class="jxr_linenumber" name="267" href="#267">267</a> 
-<a class="jxr_linenumber" name="268" href="#268">268</a>         <em class="jxr_comment">// Test shadow cell are created properly</em>
-<a class="jxr_linenumber" name="269" href="#269">269</a>         Put put = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(row));
-<a class="jxr_linenumber" name="270" href="#270">270</a>         put.addColumn(fam, qual, data);
-<a class="jxr_linenumber" name="271" href="#271">271</a>         txTable.put(problematicTx, put);
-<a class="jxr_linenumber" name="272" href="#272">272</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="273" href="#273">273</a>             tm.commit(problematicTx);
-<a class="jxr_linenumber" name="274" href="#274">274</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) Crash</em>
-<a class="jxr_linenumber" name="275" href="#275">275</a>             <em class="jxr_comment">// Do nothing</em>
-<a class="jxr_linenumber" name="276" href="#276">276</a>         }
-<a class="jxr_linenumber" name="277" href="#277">277</a> 
-<a class="jxr_linenumber" name="278" href="#278">278</a>         assertTrue(CellUtils.hasCell(Bytes.toBytes(row), fam, qual, problematicTx.getStartTimestamp(),
-<a class="jxr_linenumber" name="279" href="#279">279</a>                                      <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="280" href="#280">280</a>                    <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="281" href="#281">281</a>         assertFalse(CellUtils.hasShadowCell(Bytes.toBytes(row), fam, qual, problematicTx.getStartTimestamp(),
-<a class="jxr_linenumber" name="282" href="#282">282</a>                                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="283" href="#283">283</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="284" href="#284">284</a> 
-<a class="jxr_linenumber" name="285" href="#285">285</a>         <em class="jxr_comment">// Return a LWM that triggers compaction and has all the possible start timestamps below it</em>
-<a class="jxr_linenumber" name="286" href="#286">286</a>         LOG.info(<span class="jxr_string">"Regions in table {}: {}"</span>, TEST_TABLE, hbaseCluster.getRegions(Bytes.toBytes(TEST_TABLE)).size());
-<a class="jxr_linenumber" name="287" href="#287">287</a>         OmidCompactor omidCompactor = (OmidCompactor) hbaseCluster.getRegions(Bytes.toBytes(TEST_TABLE)).get(0)
-<a class="jxr_linenumber" name="288" href="#288">288</a>                 .getCoprocessorHost().findCoprocessor(OmidCompactor.<strong class="jxr_keyword">class</strong>.getName());
-<a class="jxr_linenumber" name="289" href="#289">289</a>         CommitTable commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="290" href="#290">290</a>         CommitTable.Client commitTableClient = spy(commitTable.getClient());
-<a class="jxr_linenumber" name="291" href="#291">291</a>         SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="292" href="#292">292</a>         f.set(Long.MAX_VALUE);
-<a class="jxr_linenumber" name="293" href="#293">293</a>         doReturn(f).when(commitTableClient).readLowWatermark();
-<a class="jxr_linenumber" name="294" href="#294">294</a>         omidCompactor.commitTableClientQueue.add(commitTableClient);
-<a class="jxr_linenumber" name="295" href="#295">295</a> 
-<a class="jxr_linenumber" name="296" href="#296">296</a>         LOG.info(<span class="jxr_string">"Flushing table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="297" href="#297">297</a>         admin.flush(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="298" href="#298">298</a> 
-<a class="jxr_linenumber" name="299" href="#299">299</a>         LOG.info(<span class="jxr_string">"Compacting table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="300" href="#300">300</a>         admin.majorCompact(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="301" href="#301">301</a> 
-<a class="jxr_linenumber" name="302" href="#302">302</a>         LOG.info(<span class="jxr_string">"Sleeping for 3 secs"</span>);
-<a class="jxr_linenumber" name="303" href="#303">303</a>         Thread.sleep(3000);
-<a class="jxr_linenumber" name="304" href="#304">304</a>         LOG.info(<span class="jxr_string">"Waking up after 3 secs"</span>);
-<a class="jxr_linenumber" name="305" href="#305">305</a> 
-<a class="jxr_linenumber" name="306" href="#306">306</a>         assertTrue(CellUtils.hasCell(Bytes.toBytes(row), fam, qual, problematicTx.getStartTimestamp(),
-<a class="jxr_linenumber" name="307" href="#307">307</a>                                      <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="308" href="#308">308</a>                    <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="309" href="#309">309</a>         assertTrue(CellUtils.hasShadowCell(Bytes.toBytes(row), fam, qual, problematicTx.getStartTimestamp(),
-<a class="jxr_linenumber" name="310" href="#310">310</a>                                            <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="311" href="#311">311</a>                    <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="312" href="#312">312</a>     }
-<a class="jxr_linenumber" name="313" href="#313">313</a> 
-<a class="jxr_linenumber" name="314" href="#314">314</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="315" href="#315">315</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNeverendingTXsWithSTBelowAndAboveLWMAreDiscardedAndPreservedRespectivelyAfterCompaction()
-<a class="jxr_linenumber" name="316" href="#316">316</a>             <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="317" href="#317">317</a>         String
-<a class="jxr_linenumber" name="318" href="#318">318</a>                 TEST_TABLE =
-<a class="jxr_linenumber" name="319" href="#319">319</a>                 <span class="jxr_string">"testNeverendingTXsWithSTBelowAndAboveLWMAreDiscardedAndPreservedRespectivelyAfterCompaction"</span>;
-<a class="jxr_linenumber" name="320" href="#320">320</a>         createTableIfNotExists(TEST_TABLE, Bytes.toBytes(TEST_FAMILY));
-<a class="jxr_linenumber" name="321" href="#321">321</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="322" href="#322">322</a> 
-<a class="jxr_linenumber" name="323" href="#323">323</a>         <em class="jxr_comment">// The KV in this transaction should be discarded</em>
-<a class="jxr_linenumber" name="324" href="#324">324</a>         HBaseTransaction neverendingTxBelowLowWatermark = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="325" href="#325">325</a>         <strong class="jxr_keyword">long</strong> rowId = randomGenerator.nextLong();
-<a class="jxr_linenumber" name="326" href="#326">326</a>         Put put = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(rowId));
-<a class="jxr_linenumber" name="327" href="#327">327</a>         put.addColumn(fam, qual, data);
-<a class="jxr_linenumber" name="328" href="#328">328</a>         txTable.put(neverendingTxBelowLowWatermark, put);
-<a class="jxr_linenumber" name="329" href="#329">329</a>         assertTrue(CellUtils.hasCell(Bytes.toBytes(rowId), fam, qual, neverendingTxBelowLowWatermark.getStartTimestamp(),
-<a class="jxr_linenumber" name="330" href="#330">330</a>                                      <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="331" href="#331">331</a>                    <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="332" href="#332">332</a>         assertFalse(CellUtils.hasShadowCell(Bytes.toBytes(rowId), fam, qual, neverendingTxBelowLowWatermark.getStartTimestamp(),
-<a class="jxr_linenumber" name="333" href="#333">333</a>                                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="334" href="#334">334</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="335" href="#335">335</a> 
-<a class="jxr_linenumber" name="336" href="#336">336</a>         <em class="jxr_comment">// The KV in this transaction should be added without the shadow cells</em>
-<a class="jxr_linenumber" name="337" href="#337">337</a>         HBaseTransaction neverendingTxAboveLowWatermark = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="338" href="#338">338</a>         <strong class="jxr_keyword">long</strong> anotherRowId = randomGenerator.nextLong();
-<a class="jxr_linenumber" name="339" href="#339">339</a>         put = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(anotherRowId));
-<a class="jxr_linenumber" name="340" href="#340">340</a>         put.addColumn(fam, qual, data);
-<a class="jxr_linenumber" name="341" href="#341">341</a>         txTable.put(neverendingTxAboveLowWatermark, put);
-<a class="jxr_linenumber" name="342" href="#342">342</a>         assertTrue(CellUtils.hasCell(Bytes.toBytes(anotherRowId), fam, qual, neverendingTxAboveLowWatermark.getStartTimestamp(),
-<a class="jxr_linenumber" name="343" href="#343">343</a>                                      <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="344" href="#344">344</a>                    <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="345" href="#345">345</a>         assertFalse(CellUtils.hasShadowCell(Bytes.toBytes(anotherRowId), fam, qual, neverendingTxAboveLowWatermark.getStartTimestamp(),
-<a class="jxr_linenumber" name="346" href="#346">346</a>                                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="347" href="#347">347</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="348" href="#348">348</a> 
-<a class="jxr_linenumber" name="349" href="#349">349</a>         assertEquals(rowCount(TEST_TABLE, fam), 2, <span class="jxr_string">"Rows in table before flushing should be 2"</span>);
-<a class="jxr_linenumber" name="350" href="#350">350</a>         LOG.info(<span class="jxr_string">"Flushing table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="351" href="#351">351</a>         admin.flush(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="352" href="#352">352</a>         assertEquals(rowCount(TEST_TABLE, fam), 2, <span class="jxr_string">"Rows in table after flushing should be 2"</span>);
-<a class="jxr_linenumber" name="353" href="#353">353</a> 
-<a class="jxr_linenumber" name="354" href="#354">354</a>         <em class="jxr_comment">// Return a LWM that triggers compaction and stays between both ST of TXs, so assign 1st TX's start timestamp</em>
-<a class="jxr_linenumber" name="355" href="#355">355</a>         LOG.info(<span class="jxr_string">"Regions in table {}: {}"</span>, TEST_TABLE, hbaseCluster.getRegions(Bytes.toBytes(TEST_TABLE)).size());
-<a class="jxr_linenumber" name="356" href="#356">356</a>         OmidCompactor omidCompactor = (OmidCompactor) hbaseCluster.getRegions(Bytes.toBytes(TEST_TABLE)).get(0)
-<a class="jxr_linenumber" name="357" href="#357">357</a>                 .getCoprocessorHost().findCoprocessor(OmidCompactor.<strong class="jxr_keyword">class</strong>.getName());
-<a class="jxr_linenumber" name="358" href="#358">358</a>         CommitTable commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="359" href="#359">359</a>         CommitTable.Client commitTableClient = spy(commitTable.getClient());
-<a class="jxr_linenumber" name="360" href="#360">360</a>         SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="361" href="#361">361</a>         f.set(neverendingTxBelowLowWatermark.getStartTimestamp());
-<a class="jxr_linenumber" name="362" href="#362">362</a>         doReturn(f).when(commitTableClient).readLowWatermark();
-<a class="jxr_linenumber" name="363" href="#363">363</a>         omidCompactor.commitTableClientQueue.add(commitTableClient);
-<a class="jxr_linenumber" name="364" href="#364">364</a>         LOG.info(<span class="jxr_string">"Compacting table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="365" href="#365">365</a>         admin.majorCompact(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="366" href="#366">366</a> 
-<a class="jxr_linenumber" name="367" href="#367">367</a>         LOG.info(<span class="jxr_string">"Sleeping for 3 secs"</span>);
-<a class="jxr_linenumber" name="368" href="#368">368</a>         Thread.sleep(3000);
-<a class="jxr_linenumber" name="369" href="#369">369</a>         LOG.info(<span class="jxr_string">"Waking up after 3 secs"</span>);
-<a class="jxr_linenumber" name="370" href="#370">370</a> 
-<a class="jxr_linenumber" name="371" href="#371">371</a>         <em class="jxr_comment">// One row should have been discarded after compacting</em>
-<a class="jxr_linenumber" name="372" href="#372">372</a>         assertEquals(rowCount(TEST_TABLE, fam), 1, <span class="jxr_string">"There should be only one row in table after compacting"</span>);
-<a class="jxr_linenumber" name="373" href="#373">373</a>         <em class="jxr_comment">// The row from the TX below the LWM should not be there (nor its Shadow Cell)</em>
-<a class="jxr_linenumber" name="374" href="#374">374</a>         assertFalse(CellUtils.hasCell(Bytes.toBytes(rowId), fam, qual, neverendingTxBelowLowWatermark.getStartTimestamp(),
-<a class="jxr_linenumber" name="375" href="#375">375</a>                                       <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="376" href="#376">376</a>                     <span class="jxr_string">"Cell should not be there"</span>);
-<a class="jxr_linenumber" name="377" href="#377">377</a>         assertFalse(CellUtils.hasShadowCell(Bytes.toBytes(rowId), fam, qual, neverendingTxBelowLowWatermark.getStartTimestamp(),
-<a class="jxr_linenumber" name="378" href="#378">378</a>                                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="379" href="#379">379</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="380" href="#380">380</a>         <em class="jxr_comment">// The row from the TX above the LWM should be there without the Shadow Cell</em>
-<a class="jxr_linenumber" name="381" href="#381">381</a>         assertTrue(CellUtils.hasCell(Bytes.toBytes(anotherRowId), fam, qual, neverendingTxAboveLowWatermark.getStartTimestamp(),
-<a class="jxr_linenumber" name="382" href="#382">382</a>                                      <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="383" href="#383">383</a>                    <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="384" href="#384">384</a>         assertFalse(CellUtils.hasShadowCell(Bytes.toBytes(anotherRowId), fam, qual, neverendingTxAboveLowWatermark.getStartTimestamp(),
-<a class="jxr_linenumber" name="385" href="#385">385</a>                                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="386" href="#386">386</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="387" href="#387">387</a> 
-<a class="jxr_linenumber" name="388" href="#388">388</a>     }
-<a class="jxr_linenumber" name="389" href="#389">389</a> 
-<a class="jxr_linenumber" name="390" href="#390">390</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="391" href="#391">391</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRowsUnalteredWhenCommitTableCannotBeReached() <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="392" href="#392">392</a>         String TEST_TABLE = <span class="jxr_string">"testRowsUnalteredWhenCommitTableCannotBeReached"</span>;
-<a class="jxr_linenumber" name="393" href="#393">393</a>         createTableIfNotExists(TEST_TABLE, Bytes.toBytes(TEST_FAMILY));
-<a class="jxr_linenumber" name="394" href="#394">394</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="395" href="#395">395</a> 
-<a class="jxr_linenumber" name="396" href="#396">396</a>         <em class="jxr_comment">// The KV in this transaction should be discarded but in the end should remain there because</em>
-<a class="jxr_linenumber" name="397" href="#397">397</a>         <em class="jxr_comment">// the commit table won't be accessed (simulating an error on access)</em>
-<a class="jxr_linenumber" name="398" href="#398">398</a>         HBaseTransaction neverendingTx = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="399" href="#399">399</a>         <strong class="jxr_keyword">long</strong> rowId = randomGenerator.nextLong();
-<a class="jxr_linenumber" name="400" href="#400">400</a>         Put put = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(rowId));
-<a class="jxr_linenumber" name="401" href="#401">401</a>         put.addColumn(fam, qual, data);
-<a class="jxr_linenumber" name="402" href="#402">402</a>         txTable.put(neverendingTx, put);
-<a class="jxr_linenumber" name="403" href="#403">403</a>         assertTrue(CellUtils.hasCell(Bytes.toBytes(rowId), fam, qual, neverendingTx.getStartTimestamp(),
-<a class="jxr_linenumber" name="404" href="#404">404</a>                                      <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="405" href="#405">405</a>                    <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="406" href="#406">406</a>         assertFalse(CellUtils.hasShadowCell(Bytes.toBytes(rowId), fam, qual, neverendingTx.getStartTimestamp(),
-<a class="jxr_linenumber" name="407" href="#407">407</a>                                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="408" href="#408">408</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="409" href="#409">409</a> 
-<a class="jxr_linenumber" name="410" href="#410">410</a>         assertEquals(rowCount(TEST_TABLE, fam), 1, <span class="jxr_string">"There should be only one rows in table before flushing"</span>);
-<a class="jxr_linenumber" name="411" href="#411">411</a>         LOG.info(<span class="jxr_string">"Flushing table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="412" href="#412">412</a>         admin.flush(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="413" href="#413">413</a>         assertEquals(rowCount(TEST_TABLE, fam), 1, <span class="jxr_string">"There should be only one rows in table after flushing"</span>);
-<a class="jxr_linenumber" name="414" href="#414">414</a> 
-<a class="jxr_linenumber" name="415" href="#415">415</a>         <em class="jxr_comment">// Break access to CommitTable functionality in Compactor</em>
-<a class="jxr_linenumber" name="416" href="#416">416</a>         LOG.info(<span class="jxr_string">"Regions in table {}: {}"</span>, TEST_TABLE, hbaseCluster.getRegions(Bytes.toBytes(TEST_TABLE)).size());
-<a class="jxr_linenumber" name="417" href="#417">417</a>         OmidCompactor omidCompactor = (OmidCompactor) hbaseCluster.getRegions(Bytes.toBytes(TEST_TABLE)).get(0)
-<a class="jxr_linenumber" name="418" href="#418">418</a>                 .getCoprocessorHost().findCoprocessor(OmidCompactor.<strong class="jxr_keyword">class</strong>.getName());
-<a class="jxr_linenumber" name="419" href="#419">419</a>         CommitTable commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="420" href="#420">420</a>         CommitTable.Client commitTableClient = spy(commitTable.getClient());
-<a class="jxr_linenumber" name="421" href="#421">421</a>         SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="422" href="#422">422</a>         f.setException(<strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Unable to read"</span>));
-<a class="jxr_linenumber" name="423" href="#423">423</a>         doReturn(f).when(commitTableClient).readLowWatermark();
-<a class="jxr_linenumber" name="424" href="#424">424</a>         omidCompactor.commitTableClientQueue.add(commitTableClient);
-<a class="jxr_linenumber" name="425" href="#425">425</a> 
-<a class="jxr_linenumber" name="426" href="#426">426</a>         LOG.info(<span class="jxr_string">"Compacting table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="427" href="#427">427</a>         admin.majorCompact(TableName.valueOf(TEST_TABLE)); <em class="jxr_comment">// Should trigger the error when accessing CommitTable funct.</em>
-<a class="jxr_linenumber" name="428" href="#428">428</a> 
-<a class="jxr_linenumber" name="429" href="#429">429</a>         LOG.info(<span class="jxr_string">"Sleeping for 3 secs"</span>);
-<a class="jxr_linenumber" name="430" href="#430">430</a>         Thread.sleep(3000);
-<a class="jxr_linenumber" name="431" href="#431">431</a>         LOG.info(<span class="jxr_string">"Waking up after 3 secs"</span>);
-<a class="jxr_linenumber" name="432" href="#432">432</a> 
-<a class="jxr_linenumber" name="433" href="#433">433</a>         <em class="jxr_comment">// All rows should be there after the failed compaction</em>
-<a class="jxr_linenumber" name="434" href="#434">434</a>         assertEquals(rowCount(TEST_TABLE, fam), 1, <span class="jxr_string">"There should be only one row in table after compacting"</span>);
-<a class="jxr_linenumber" name="435" href="#435">435</a>         assertTrue(CellUtils.hasCell(Bytes.toBytes(rowId), fam, qual, neverendingTx.getStartTimestamp(),
-<a class="jxr_linenumber" name="436" href="#436">436</a>                                      <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="437" href="#437">437</a>                    <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="438" href="#438">438</a>         assertFalse(CellUtils.hasShadowCell(Bytes.toBytes(rowId), fam, qual, neverendingTx.getStartTimestamp(),
-<a class="jxr_linenumber" name="439" href="#439">439</a>                                             <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable)),
-<a class="jxr_linenumber" name="440" href="#440">440</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="441" href="#441">441</a>     }
-<a class="jxr_linenumber" name="442" href="#442">442</a> 
-<a class="jxr_linenumber" name="443" href="#443">443</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="444" href="#444">444</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOriginalTableParametersAreAvoidedAlsoWhenCompacting() <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="445" href="#445">445</a>         String TEST_TABLE = <span class="jxr_string">"testOriginalTableParametersAreAvoidedAlsoWhenCompacting"</span>;
-<a class="jxr_linenumber" name="446" href="#446">446</a>         createTableIfNotExists(TEST_TABLE, Bytes.toBytes(TEST_FAMILY));
-<a class="jxr_linenumber" name="447" href="#447">447</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="448" href="#448">448</a> 
-<a class="jxr_linenumber" name="449" href="#449">449</a>         <strong class="jxr_keyword">long</strong> rowId = randomGenerator.nextLong();
-<a class="jxr_linenumber" name="450" href="#450">450</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> versionCount = 0; versionCount &lt;= (2 * MAX_VERSIONS); versionCount++) {
-<a class="jxr_linenumber" name="451" href="#451">451</a>             Transaction tx = tm.begin();
-<a class="jxr_linenumber" name="452" href="#452">452</a>             Put put = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(rowId));
-<a class="jxr_linenumber" name="453" href="#453">453</a>             put.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"testWrite-"</span> + versionCount));
-<a class="jxr_linenumber" name="454" href="#454">454</a>             txTable.put(tx, put);
-<a class="jxr_linenumber" name="455" href="#455">455</a>             tm.commit(tx);
-<a class="jxr_linenumber" name="456" href="#456">456</a>         }
-<a class="jxr_linenumber" name="457" href="#457">457</a> 
-<a class="jxr_linenumber" name="458" href="#458">458</a>         Transaction tx = tm.begin();
-<a class="jxr_linenumber" name="459" href="#459">459</a>         Get get = <strong class="jxr_keyword">new</strong> Get(Bytes.toBytes(rowId));
-<a class="jxr_linenumber" name="460" href="#460">460</a>         get.setMaxVersions(2 * MAX_VERSIONS);
-<a class="jxr_linenumber" name="461" href="#461">461</a>         assertEquals(get.getMaxVersions(), (2 * MAX_VERSIONS), <span class="jxr_string">"Max versions should be set to "</span> + (2 * MAX_VERSIONS));
-<a class="jxr_linenumber" name="462" href="#462">462</a>         get.addColumn(fam, qual);
-<a class="jxr_linenumber" name="463" href="#463">463</a>         Result result = txTable.get(tx, get);
-<a class="jxr_linenumber" name="464" href="#464">464</a>         tm.commit(tx);
-<a class="jxr_linenumber" name="465" href="#465">465</a>         List&lt;Cell&gt; column = result.getColumnCells(fam, qual);
-<a class="jxr_linenumber" name="466" href="#466">466</a>         assertEquals(column.size(), 1, <span class="jxr_string">"There should be only one version in the result"</span>);
-<a class="jxr_linenumber" name="467" href="#467">467</a> 
-<a class="jxr_linenumber" name="468" href="#468">468</a>         assertEquals(rowCount(TEST_TABLE, fam), 1, <span class="jxr_string">"There should be only one row in table before flushing"</span>);
-<a class="jxr_linenumber" name="469" href="#469">469</a>         LOG.info(<span class="jxr_string">"Flushing table {}"</span>, TEST_TABLE);
-<a class="jxr_linenumber" name="470" href="#470">470</a>         admin.flush(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="471" href="#471">471</a>         assertEquals(rowCount(TEST_TABLE, fam), 1, <span class="jxr_string">"There should be only one row in table after flushing"</span>);
-<a class="jxr_linenumber" name="472" href="#472">472</a> 
-<a class="jxr_linenumber" name="473" href="#473">473</a>         <em class="jxr_comment">// Return a LWM that triggers compaction</em>
-<a class="jxr_linenumber" name="474" href="#474">474</a>         compactEverything(TEST_TABLE);
-<a class="jxr_linenumber" name="475" href="#475">475</a> 
-<a class="jxr_linenumber" name="476" href="#476">476</a>         <em class="jxr_comment">// One row should have been discarded after compacting</em>
-<a class="jxr_linenumber" name="477" href="#477">477</a>         assertEquals(rowCount(TEST_TABLE, fam), 1, <span class="jxr_string">"There should be only one row in table after compacting"</span>);
-<a class="jxr_linenumber" name="478" href="#478">478</a> 
-<a class="jxr_linenumber" name="479" href="#479">479</a>         tx = tm.begin();
-<a class="jxr_linenumber" name="480" href="#480">480</a>         get = <strong class="jxr_keyword">new</strong> Get(Bytes.toBytes(rowId));
-<a class="jxr_linenumber" name="481" href="#481">481</a>         get.setMaxVersions(2 * MAX_VERSIONS);
-<a class="jxr_linenumber" name="482" href="#482">482</a>         assertEquals(get.getMaxVersions(), (2 * MAX_VERSIONS), <span class="jxr_string">"Max versions should be set to "</span> + (2 * MAX_VERSIONS));
-<a class="jxr_linenumber" name="483" href="#483">483</a>         get.addColumn(fam, qual);
-<a class="jxr_linenumber" name="484" href="#484">484</a>         result = txTable.get(tx, get);
-<a class="jxr_linenumber" name="485" href="#485">485</a>         tm.commit(tx);
-<a class="jxr_linenumber" name="486" href="#486">486</a>         column = result.getColumnCells(fam, qual);
-<a class="jxr_linenumber" name="487" href="#487">487</a>         assertEquals(column.size(), 1, <span class="jxr_string">"There should be only one version in the result"</span>);
-<a class="jxr_linenumber" name="488" href="#488">488</a>         assertEquals(Bytes.toString(CellUtil.cloneValue(column.get(0))), <span class="jxr_string">"testWrite-"</span> + (2 * MAX_VERSIONS),
-<a class="jxr_linenumber" name="489" href="#489">489</a>                      <span class="jxr_string">"Values don't match"</span>);
-<a class="jxr_linenumber" name="490" href="#490">490</a>     }
-<a class="jxr_linenumber" name="491" href="#491">491</a> 
-<a class="jxr_linenumber" name="492" href="#492">492</a>     <em class="jxr_comment">// manually flush the regions on the region server.</em>
-<a class="jxr_linenumber" name="493" href="#493">493</a>     <em class="jxr_comment">// flushing like this prevents compaction running</em>
-<a class="jxr_linenumber" name="494" href="#494">494</a>     <em class="jxr_comment">// directly after the flush, which we want to avoid.</em>
-<a class="jxr_linenumber" name="495" href="#495">495</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> manualFlush(String tableName) <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="496" href="#496">496</a>         LOG.info(<span class="jxr_string">"Manually flushing all regions and waiting 2 secs"</span>);
-<a class="jxr_linenumber" name="497" href="#497">497</a>         HBaseShims.flushAllOnlineRegions(hbaseTestUtil.getHBaseCluster().getRegionServer(0),
-<a class="jxr_linenumber" name="498" href="#498">498</a>                                          TableName.valueOf(tableName));
-<a class="jxr_linenumber" name="499" href="#499">499</a>         TimeUnit.SECONDS.sleep(2);
-<a class="jxr_linenumber" name="500" href="#500">500</a>     }
-<a class="jxr_linenumber" name="501" href="#501">501</a> 
-<a class="jxr_linenumber" name="502" href="#502">502</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="503" href="#503">503</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOldCellsAreDiscardedAfterCompaction() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="504" href="#504">504</a>         String TEST_TABLE = <span class="jxr_string">"testOldCellsAreDiscardedAfterCompaction"</span>;
-<a class="jxr_linenumber" name="505" href="#505">505</a>         createTableIfNotExists(TEST_TABLE, Bytes.toBytes(TEST_FAMILY));
-<a class="jxr_linenumber" name="506" href="#506">506</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="507" href="#507">507</a> 
-<a class="jxr_linenumber" name="508" href="#508">508</a>         byte[] rowId = Bytes.toBytes(<span class="jxr_string">"row"</span>);
-<a class="jxr_linenumber" name="509" href="#509">509</a> 
-<a class="jxr_linenumber" name="510" href="#510">510</a>         <em class="jxr_comment">// Create 3 transactions modifying the same cell in a particular row</em>
-<a class="jxr_linenumber" name="511" href="#511">511</a>         HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="512" href="#512">512</a>         Put put1 = <strong class="jxr_keyword">new</strong> Put(rowId);
-<a class="jxr_linenumber" name="513" href="#513">513</a>         put1.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"testValue 1"</span>));
-<a class="jxr_linenumber" name="514" href="#514">514</a>         txTable.put(tx1, put1);
-<a class="jxr_linenumber" name="515" href="#515">515</a>         tm.commit(tx1);
-<a class="jxr_linenumber" name="516" href="#516">516</a> 
-<a class="jxr_linenumber" name="517" href="#517">517</a>         HBaseTransaction tx2 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="518" href="#518">518</a>         Put put2 = <strong class="jxr_keyword">new</strong> Put(rowId);
-<a class="jxr_linenumber" name="519" href="#519">519</a>         put2.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"testValue 2"</span>));
-<a class="jxr_linenumber" name="520" href="#520">520</a>         txTable.put(tx2, put2);
-<a class="jxr_linenumber" name="521" href="#521">521</a>         tm.commit(tx2);
-<a class="jxr_linenumber" name="522" href="#522">522</a> 
-<a class="jxr_linenumber" name="523" href="#523">523</a>         HBaseTransaction tx3 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="524" href="#524">524</a>         Put put3 = <strong class="jxr_keyword">new</strong> Put(rowId);
-<a class="jxr_linenumber" name="525" href="#525">525</a>         put3.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"testValue 3"</span>));
-<a class="jxr_linenumber" name="526" href="#526">526</a>         txTable.put(tx3, put3);
-<a class="jxr_linenumber" name="527" href="#527">527</a>         tm.commit(tx3);
-<a class="jxr_linenumber" name="528" href="#528">528</a> 
-<a class="jxr_linenumber" name="529" href="#529">529</a>         <em class="jxr_comment">// Before compaction, the three timestamped values for the cell should be there</em>
-<a class="jxr_linenumber" name="530" href="#530">530</a>         TTableCellGetterAdapter getter = <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(txTable);
-<a class="jxr_linenumber" name="531" href="#531">531</a>         assertTrue(CellUtils.hasCell(rowId, fam, qual, tx1.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="532" href="#532">532</a>                    <span class="jxr_string">"Put cell of Tx1 should be there"</span>);
-<a class="jxr_linenumber" name="533" href="#533">533</a>         assertTrue(CellUtils.hasShadowCell(rowId, fam, qual, tx1.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="534" href="#534">534</a>                    <span class="jxr_string">"Put shadow cell of Tx1 should be there"</span>);
-<a class="jxr_linenumber" name="535" href="#535">535</a>         assertTrue(CellUtils.hasCell(rowId, fam, qual, tx2.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="536" href="#536">536</a>                    <span class="jxr_string">"Put cell of Tx2 cell should be there"</span>);
-<a class="jxr_linenumber" name="537" href="#537">537</a>         assertTrue(CellUtils.hasShadowCell(rowId, fam, qual, tx2.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="538" href="#538">538</a>                    <span class="jxr_string">"Put shadow cell of Tx2 should be there"</span>);
-<a class="jxr_linenumber" name="539" href="#539">539</a>         assertTrue(CellUtils.hasCell(rowId, fam, qual, tx3.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="540" href="#540">540</a>                    <span class="jxr_string">"Put cell of Tx3 cell should be there"</span>);
-<a class="jxr_linenumber" name="541" href="#541">541</a>         assertTrue(CellUtils.hasShadowCell(rowId, fam, qual, tx3.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="542" href="#542">542</a>                    <span class="jxr_string">"Put shadow cell of Tx3 should be there"</span>);
-<a class="jxr_linenumber" name="543" href="#543">543</a> 
-<a class="jxr_linenumber" name="544" href="#544">544</a>         <em class="jxr_comment">// Compact</em>
-<a class="jxr_linenumber" name="545" href="#545">545</a>         HBaseTransaction lwmTx = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="546" href="#546">546</a>         compactWithLWM(lwmTx.getStartTimestamp(), TEST_TABLE);
-<a class="jxr_linenumber" name="547" href="#547">547</a> 
-<a class="jxr_linenumber" name="548" href="#548">548</a>         <em class="jxr_comment">// After compaction, only the last value for the cell should have survived</em>
-<a class="jxr_linenumber" name="549" href="#549">549</a>         assertFalse(CellUtils.hasCell(rowId, fam, qual, tx1.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="550" href="#550">550</a>                     <span class="jxr_string">"Put cell of Tx1 should not be there"</span>);
-<a class="jxr_linenumber" name="551" href="#551">551</a>         assertFalse(CellUtils.hasShadowCell(rowId, fam, qual, tx1.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="552" href="#552">552</a>                     <span class="jxr_string">"Put shadow cell of Tx1 should not be there"</span>);
-<a class="jxr_linenumber" name="553" href="#553">553</a>         assertFalse(CellUtils.hasCell(rowId, fam, qual, tx2.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="554" href="#554">554</a>                     <span class="jxr_string">"Put cell of Tx2 should not be there"</span>);
-<a class="jxr_linenumber" name="555" href="#555">555</a>         assertFalse(CellUtils.hasShadowCell(rowId, fam, qual, tx2.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="556" href="#556">556</a>                     <span class="jxr_string">"Put shadow cell of Tx2 should not be there"</span>);
-<a class="jxr_linenumber" name="557" href="#557">557</a>         assertTrue(CellUtils.hasCell(rowId, fam, qual, tx3.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="558" href="#558">558</a>                    <span class="jxr_string">"Put cell of Tx3 cell should be there"</span>);
-<a class="jxr_linenumber" name="559" href="#559">559</a>         assertTrue(CellUtils.hasShadowCell(rowId, fam, qual, tx3.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="560" href="#560">560</a>                    <span class="jxr_string">"Put shadow cell of Tx3 should be there"</span>);
-<a class="jxr_linenumber" name="561" href="#561">561</a> 
-<a class="jxr_linenumber" name="562" href="#562">562</a>         <em class="jxr_comment">// A new transaction after compaction should read the last value written</em>
-<a class="jxr_linenumber" name="563" href="#563">563</a>         HBaseTransaction newTx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="564" href="#564">564</a>         Get newGet1 = <strong class="jxr_keyword">new</strong> Get(rowId);
-<a class="jxr_linenumber" name="565" href="#565">565</a>         newGet1.addColumn(fam, qual);
-<a class="jxr_linenumber" name="566" href="#566">566</a>         Result result = txTable.get(newTx1, newGet1);
-<a class="jxr_linenumber" name="567" href="#567">567</a>         assertEquals(Bytes.toBytes(<span class="jxr_string">"testValue 3"</span>), result.getValue(fam, qual));
-<a class="jxr_linenumber" name="568" href="#568">568</a>         <em class="jxr_comment">// Write a new value</em>
-<a class="jxr_linenumber" name="569" href="#569">569</a>         Put newPut1 = <strong class="jxr_keyword">new</strong> Put(rowId);
-<a class="jxr_linenumber" name="570" href="#570">570</a>         newPut1.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"new testValue 1"</span>));
-<a class="jxr_linenumber" name="571" href="#571">571</a>         txTable.put(newTx1, newPut1);
-<a class="jxr_linenumber" name="572" href="#572">572</a> 
-<a class="jxr_linenumber" name="573" href="#573">573</a>         <em class="jxr_comment">// Start a second new transaction</em>
-<a class="jxr_linenumber" name="574" href="#574">574</a>         HBaseTransaction newTx2 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="575" href="#575">575</a>         <em class="jxr_comment">// Commit first of the new tx</em>
-<a class="jxr_linenumber" name="576" href="#576">576</a>         tm.commit(newTx1);
-<a class="jxr_linenumber" name="577" href="#577">577</a> 
-<a class="jxr_linenumber" name="578" href="#578">578</a>         <em class="jxr_comment">// The second transaction should still read the previous value</em>
-<a class="jxr_linenumber" name="579" href="#579">579</a>         Get newGet2 = <strong class="jxr_keyword">new</strong> Get(rowId);
-<a class="jxr_linenumber" name="580" href="#580">580</a>         newGet2.addColumn(fam, qual);
-<a class="jxr_linenumber" name="581" href="#581">581</a>         result = txTable.get(newTx2, newGet2);
-<a class="jxr_linenumber" name="582" href="#582">582</a>         assertEquals(Bytes.toBytes(<span class="jxr_string">"testValue 3"</span>), result.getValue(fam, qual));
-<a class="jxr_linenumber" name="583" href="#583">583</a>         tm.commit(newTx2);
-<a class="jxr_linenumber" name="584" href="#584">584</a> 
-<a class="jxr_linenumber" name="585" href="#585">585</a>         <em class="jxr_comment">// Only two values -the new written by newTx1 and the last value</em>
-<a class="jxr_linenumber" name="586" href="#586">586</a>         <em class="jxr_comment">// for the cell after compaction- should have survived</em>
-<a class="jxr_linenumber" name="587" href="#587">587</a>         assertFalse(CellUtils.hasCell(rowId, fam, qual, tx1.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="588" href="#588">588</a>                     <span class="jxr_string">"Put cell of Tx1 should not be there"</span>);
-<a class="jxr_linenumber" name="589" href="#589">589</a>         assertFalse(CellUtils.hasShadowCell(rowId, fam, qual, tx1.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="590" href="#590">590</a>                     <span class="jxr_string">"Put shadow cell of Tx1 should not be there"</span>);
-<a class="jxr_linenumber" name="591" href="#591">591</a>         assertFalse(CellUtils.hasCell(rowId, fam, qual, tx2.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="592" href="#592">592</a>                     <span class="jxr_string">"Put cell of Tx2 should not be there"</span>);
-<a class="jxr_linenumber" name="593" href="#593">593</a>         assertFalse(CellUtils.hasShadowCell(rowId, fam, qual, tx2.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="594" href="#594">594</a>                     <span class="jxr_string">"Put shadow cell of Tx2 should not be there"</span>);
-<a class="jxr_linenumber" name="595" href="#595">595</a>         assertTrue(CellUtils.hasCell(rowId, fam, qual, tx3.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="596" href="#596">596</a>                    <span class="jxr_string">"Put cell of Tx3 cell should be there"</span>);
-<a class="jxr_linenumber" name="597" href="#597">597</a>         assertTrue(CellUtils.hasShadowCell(rowId, fam, qual, tx3.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="598" href="#598">598</a>                    <span class="jxr_string">"Put shadow cell of Tx3 should be there"</span>);
-<a class="jxr_linenumber" name="599" href="#599">599</a>         assertTrue(CellUtils.hasCell(rowId, fam, qual, newTx1.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="600" href="#600">600</a>                    <span class="jxr_string">"Put cell of NewTx1 cell should be there"</span>);
-<a class="jxr_linenumber" name="601" href="#601">601</a>         assertTrue(CellUtils.hasShadowCell(rowId, fam, qual, newTx1.getStartTimestamp(), getter),
-<a class="jxr_linenumber" name="602" href="#602">602</a>                    <span class="jxr_string">"Put shadow cell of NewTx1 should be there"</span>);
-<a class="jxr_linenumber" name="603" href="#603">603</a>     }
-<a class="jxr_linenumber" name="604" href="#604">604</a> 
-<a class="jxr_linenumber" name="605" href="#605">605</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="606" href="#606">606</a> <em class="jxr_javadoccomment">     * Tests a case where a temporary failure to flush causes the compactor to crash</em>
-<a class="jxr_linenumber" name="607" href="#607">607</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="608" href="#608">608</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="609" href="#609">609</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDuplicateDeletes() <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="610" href="#610">610</a>         String TEST_TABLE = <span class="jxr_string">"testDuplicateDeletes"</span>;
-<a class="jxr_linenumber" name="611" href="#611">611</a>         createTableIfNotExists(TEST_TABLE, Bytes.toBytes(TEST_FAMILY));
-<a class="jxr_linenumber" name="612" href="#612">612</a>         TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="613" href="#613">613</a> 
-<a class="jxr_linenumber" name="614" href="#614">614</a>         <em class="jxr_comment">// jump through hoops to trigger a minor compaction.</em>
-<a class="jxr_linenumber" name="615" href="#615">615</a>         <em class="jxr_comment">// a minor compaction will only run if there are enough</em>
-<a class="jxr_linenumber" name="616" href="#616">616</a>         <em class="jxr_comment">// files to be compacted, but that is less than the number</em>
-<a class="jxr_linenumber" name="617" href="#617">617</a>         <em class="jxr_comment">// of total files, in which case it will run a major</em>
-<a class="jxr_linenumber" name="618" href="#618">618</a>         <em class="jxr_comment">// compaction. The issue this is testing only shows up</em>
-<a class="jxr_linenumber" name="619" href="#619">619</a>         <em class="jxr_comment">// with minor compaction, as only Deletes can be duplicate</em>
-<a class="jxr_linenumber" name="620" href="#620">620</a>         <em class="jxr_comment">// and major compactions filter them out.</em>
-<a class="jxr_linenumber" name="621" href="#621">621</a>         byte[] firstRow = <span class="jxr_string">"FirstRow"</span>.getBytes();
-<a class="jxr_linenumber" name="622" href="#622">622</a>         HBaseTransaction tx0 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="623" href="#623">623</a>         Put put0 = <strong class="jxr_keyword">new</strong> Put(firstRow);
-<a class="jxr_linenumber" name="624" href="#624">624</a>         put0.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>));
-<a class="jxr_linenumber" name="625" href="#625">625</a>         txTable.put(tx0, put0);
-<a class="jxr_linenumber" name="626" href="#626">626</a>         tm.commit(tx0);
-<a class="jxr_linenumber" name="627" href="#627">627</a> 
-<a class="jxr_linenumber" name="628" href="#628">628</a>         <em class="jxr_comment">// create the first hfile</em>
-<a class="jxr_linenumber" name="629" href="#629">629</a>         manualFlush(TEST_TABLE);
-<a class="jxr_linenumber" name="630" href="#630">630</a> 
-<a class="jxr_linenumber" name="631" href="#631">631</a>         <em class="jxr_comment">// write a row, it won't be committed</em>
-<a class="jxr_linenumber" name="632" href="#632">632</a>         byte[] rowToBeCompactedAway = <span class="jxr_string">"compactMe"</span>.getBytes();
-<a class="jxr_linenumber" name="633" href="#633">633</a>         HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="634" href="#634">634</a>         Put put1 = <strong class="jxr_keyword">new</strong> Put(rowToBeCompactedAway);
-<a class="jxr_linenumber" name="635" href="#635">635</a>         put1.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>));
-<a class="jxr_linenumber" name="636" href="#636">636</a>         txTable.put(tx1, put1);
-<a class="jxr_linenumber" name="637" href="#637">637</a>         txTable.flushCommits();
-<a class="jxr_linenumber" name="638" href="#638">638</a> 
-<a class="jxr_linenumber" name="639" href="#639">639</a>         <em class="jxr_comment">// write a row to trigger the double delete problem</em>
-<a class="jxr_linenumber" name="640" href="#640">640</a>         byte[] row = <span class="jxr_string">"iCauseErrors"</span>.getBytes();
-<a class="jxr_linenumber" name="641" href="#641">641</a>         HBaseTransaction tx2 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="642" href="#642">642</a>         Put put2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="643" href="#643">643</a>         put2.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>));
-<a class="jxr_linenumber" name="644" href="#644">644</a>         txTable.put(tx2, put2);
-<a class="jxr_linenumber" name="645" href="#645">645</a>         tm.commit(tx2);
-<a class="jxr_linenumber" name="646" href="#646">646</a> 
-<a class="jxr_linenumber" name="647" href="#647">647</a>         HBaseTransaction tx3 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="648" href="#648">648</a>         Put put3 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="649" href="#649">649</a>         put3.addColumn(fam, qual, Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>));
-<a class="jxr_linenumber" name="650" href="#650">650</a>         txTable.put(tx3, put3);
-<a class="jxr_linenumber" name="651" href="#651">651</a>         txTable.flushCommits();
-<a class="jxr_linenumber" name="652" href="#652">652</a> 
-<a class="jxr_linenumber" name="653" href="#653">653</a>         <em class="jxr_comment">// cause a failure on HBaseTM#preCommit();</em>
-<a class="jxr_linenumber" name="654" href="#654">654</a>         Set&lt;HBaseCellId&gt; writeSet = tx3.getWriteSet();
-<a class="jxr_linenumber" name="655" href="#655">655</a>         assertEquals(1, writeSet.size());
-<a class="jxr_linenumber" name="656" href="#656">656</a>         List&lt;HBaseCellId&gt; newWriteSet = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="657" href="#657">657</a>         <strong class="jxr_keyword">final</strong> AtomicBoolean flushFailing = <strong class="jxr_keyword">new</strong> AtomicBoolean(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="658" href="#658">658</a>         <strong class="jxr_keyword">for</strong> (HBaseCellId id : writeSet) {
-<a class="jxr_linenumber" name="659" href="#659">659</a>             TTable failableHTable = spy(id.getTable());
-<a class="jxr_linenumber" name="660" href="#660">660</a>             doAnswer(<strong class="jxr_keyword">new</strong> Answer&lt;Void&gt;() {
-<a class="jxr_linenumber" name="661" href="#661">661</a>                 @Override
-<a class="jxr_linenumber" name="662" href="#662">662</a>                 <strong class="jxr_keyword">public</strong> Void answer(InvocationOnMock invocation)
-<a class="jxr_linenumber" name="663" href="#663">663</a>                         <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="664" href="#664">664</a>                     <strong class="jxr_keyword">if</strong> (flushFailing.get()) {
-<a class="jxr_linenumber" name="665" href="#665">665</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RetriesExhaustedWithDetailsException(<strong class="jxr_keyword">new</strong> ArrayList&lt;Throwable&gt;(),
-<a class="jxr_linenumber" name="666" href="#666">666</a>                                                                        <strong class="jxr_keyword">new</strong> ArrayList&lt;Row&gt;(), <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;());
-<a class="jxr_linenumber" name="667" href="#667">667</a>                     } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="668" href="#668">668</a>                         invocation.callRealMethod();
-<a class="jxr_linenumber" name="669" href="#669">669</a>                     }
-<a class="jxr_linenumber" name="670" href="#670">670</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="671" href="#671">671</a>                 }
-<a class="jxr_linenumber" name="672" href="#672">672</a>             }).when(failableHTable).flushCommits();
-<a class="jxr_linenumber" name="673" href="#673">673</a> 
-<a class="jxr_linenumber" name="674" href="#674">674</a>             newWriteSet.add(<strong class="jxr_keyword">new</strong> HBaseCellId(failableHTable,
-<a class="jxr_linenumber" name="675" href="#675">675</a>                                             id.getRow(), id.getFamily(),
-<a class="jxr_linenumber" name="676" href="#676">676</a>                                             id.getQualifier(), id.getTimestamp()));
-<a class="jxr_linenumber" name="677" href="#677">677</a>         }
-<a class="jxr_linenumber" name="678" href="#678">678</a>         writeSet.clear();
-<a class="jxr_linenumber" name="679" href="#679">679</a>         writeSet.addAll(newWriteSet);
-<a class="jxr_linenumber" name="680" href="#680">680</a> 
-<a class="jxr_linenumber" name="681" href="#681">681</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="682" href="#682">682</a>             tm.commit(tx3);
-<a class="jxr_linenumber" name="683" href="#683">683</a>             fail(<span class="jxr_string">"Shouldn't succeed"</span>);
-<a class="jxr_linenumber" name="684" href="#684">684</a>         } <strong class="jxr_keyword">catch</strong> (TransactionException tme) {
-<a class="jxr_linenumber" name="685" href="#685">685</a>             flushFailing.set(false);
-<a class="jxr_linenumber" name="686" href="#686">686</a>             tm.rollback(tx3);
-<a class="jxr_linenumber" name="687" href="#687">687</a>         }
-<a class="jxr_linenumber" name="688" href="#688">688</a> 
-<a class="jxr_linenumber" name="689" href="#689">689</a>         <em class="jxr_comment">// create second hfile,</em>
-<a class="jxr_linenumber" name="690" href="#690">690</a>         <em class="jxr_comment">// it should contain multiple deletes</em>
-<a class="jxr_linenumber" name="691" href="#691">691</a>         manualFlush(TEST_TABLE);
-<a class="jxr_linenumber" name="692" href="#692">692</a> 
-<a class="jxr_linenumber" name="693" href="#693">693</a>         <em class="jxr_comment">// create loads of files</em>
-<a class="jxr_linenumber" name="694" href="#694">694</a>         byte[] anotherRow = <span class="jxr_string">"someotherrow"</span>.getBytes();
-<a class="jxr_linenumber" name="695" href="#695">695</a>         HBaseTransaction tx4 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="696" href="#696">696</a>         Put put4 = <strong class="jxr_keyword">new</strong> Put(anotherRow);
-<a class="jxr_linenumber" n

<TRUNCATED>


[14/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/CompactorUtil.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/CompactorUtil.html b/xref/org/apache/omid/transaction/CompactorUtil.html
index 4c4a893..71c2dda 100644
--- a/xref/org/apache/omid/transaction/CompactorUtil.html
+++ b/xref/org/apache/omid/transaction/CompactorUtil.html
@@ -30,84 +30,91 @@
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.JCommander;
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.Parameter;
 <a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.ParametersDelegate;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.HBaseShims;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.HBaseLogin;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.SecureHBaseConfig;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.HBaseLogin;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.SecureHBaseConfig;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
 <a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/CompactorUtil.html">CompactorUtil</a> {
-<a class="jxr_linenumber" name="39" href="#39">39</a>  
-<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setOmidCompaction(Connection conn, TableName table, byte[] columnFamily, String value)
-<a class="jxr_linenumber" name="41" href="#41">41</a>              <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="42" href="#42">42</a>          HBaseShims.setCompaction(conn, table, columnFamily, OmidCompactor.OMID_COMPACTABLE_CF_FLAG, value);
-<a class="jxr_linenumber" name="43" href="#43">43</a>      }
-<a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> enableOmidCompaction(Connection conn,
-<a class="jxr_linenumber" name="46" href="#46">46</a>                                              TableName table, byte[] columnFamily) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>          setOmidCompaction(conn, table, columnFamily, Boolean.TRUE.toString());
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/CompactorUtil.html">CompactorUtil</a> {
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> enableOmidCompaction(Configuration conf,
+<a class="jxr_linenumber" name="38" href="#38">38</a>                                              TableName table, byte[] columnFamily) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="39" href="#39">39</a>          HBaseAdmin admin = <strong class="jxr_keyword">new</strong> HBaseAdmin(conf);
+<a class="jxr_linenumber" name="40" href="#40">40</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="41" href="#41">41</a>              HTableDescriptor desc = admin.getTableDescriptor(table);
+<a class="jxr_linenumber" name="42" href="#42">42</a>              HColumnDescriptor cfDesc = desc.getFamily(columnFamily);
+<a class="jxr_linenumber" name="43" href="#43">43</a>              cfDesc.setValue(OmidCompactor.OMID_COMPACTABLE_CF_FLAG,
+<a class="jxr_linenumber" name="44" href="#44">44</a>                      Boolean.TRUE.toString());
+<a class="jxr_linenumber" name="45" href="#45">45</a>              admin.modifyColumn(table, cfDesc);
+<a class="jxr_linenumber" name="46" href="#46">46</a>          } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="47" href="#47">47</a>              admin.close();
+<a class="jxr_linenumber" name="48" href="#48">48</a>          }
 <a class="jxr_linenumber" name="49" href="#49">49</a>      }
 <a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> disableOmidCompaction(Connection conn,
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> disableOmidCompaction(Configuration conf,
 <a class="jxr_linenumber" name="52" href="#52">52</a>                                               TableName table, byte[] columnFamily) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="53" href="#53">53</a>          setOmidCompaction(conn, table, columnFamily, Boolean.FALSE.toString());
-<a class="jxr_linenumber" name="54" href="#54">54</a>      }
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/CompactorUtil.html">Config</a> {
-<a class="jxr_linenumber" name="57" href="#57">57</a>          @Parameter(names = <span class="jxr_string">"-table"</span>, required = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="58" href="#58">58</a>          String table;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  
-<a class="jxr_linenumber" name="60" href="#60">60</a>          @Parameter(names = <span class="jxr_string">"-columnFamily"</span>, required = false)
-<a class="jxr_linenumber" name="61" href="#61">61</a>          String columnFamily;
-<a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>          @Parameter(names = <span class="jxr_string">"-help"</span>)
-<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">boolean</strong> help = false;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>          @Parameter(names = <span class="jxr_string">"-enable"</span>)
-<a class="jxr_linenumber" name="67" href="#67">67</a>          <strong class="jxr_keyword">boolean</strong> enable = false;
+<a class="jxr_linenumber" name="53" href="#53">53</a>          HBaseAdmin admin = <strong class="jxr_keyword">new</strong> HBaseAdmin(conf);
+<a class="jxr_linenumber" name="54" href="#54">54</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="55" href="#55">55</a>              HTableDescriptor desc = admin.getTableDescriptor(table);
+<a class="jxr_linenumber" name="56" href="#56">56</a>              HColumnDescriptor cfDesc = desc.getFamily(columnFamily);
+<a class="jxr_linenumber" name="57" href="#57">57</a>              cfDesc.setValue(OmidCompactor.OMID_COMPACTABLE_CF_FLAG,
+<a class="jxr_linenumber" name="58" href="#58">58</a>                      Boolean.FALSE.toString());
+<a class="jxr_linenumber" name="59" href="#59">59</a>              admin.modifyColumn(table, cfDesc);
+<a class="jxr_linenumber" name="60" href="#60">60</a>          } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="61" href="#61">61</a>              admin.close();
+<a class="jxr_linenumber" name="62" href="#62">62</a>          }
+<a class="jxr_linenumber" name="63" href="#63">63</a>      }
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/CompactorUtil.html">Config</a> {
+<a class="jxr_linenumber" name="66" href="#66">66</a>          @Parameter(names = <span class="jxr_string">"-table"</span>, required = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="67" href="#67">67</a>          String table;
 <a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>          @Parameter(names = <span class="jxr_string">"-disable"</span>)
-<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">boolean</strong> disable = false;
+<a class="jxr_linenumber" name="69" href="#69">69</a>          @Parameter(names = <span class="jxr_string">"-columnFamily"</span>, required = false)
+<a class="jxr_linenumber" name="70" href="#70">70</a>          String columnFamily;
 <a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>          @ParametersDelegate
-<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a> loginFlags = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a>();
+<a class="jxr_linenumber" name="72" href="#72">72</a>          @Parameter(names = <span class="jxr_string">"-help"</span>)
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">boolean</strong> help = false;
 <a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>      }
-<a class="jxr_linenumber" name="76" href="#76">76</a>  
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="78" href="#78">78</a>          <a href="../../../../org/apache/omid/transaction/CompactorUtil.html">Config</a> cmdline = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/CompactorUtil.html">Config</a>();
-<a class="jxr_linenumber" name="79" href="#79">79</a>          JCommander jcommander = <strong class="jxr_keyword">new</strong> JCommander(cmdline, args);
-<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">if</strong> (cmdline.help) {
-<a class="jxr_linenumber" name="81" href="#81">81</a>              jcommander.usage(<span class="jxr_string">"CompactorUtil"</span>);
-<a class="jxr_linenumber" name="82" href="#82">82</a>              System.exit(1);
-<a class="jxr_linenumber" name="83" href="#83">83</a>          }
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>          HBaseLogin.loginIfNeeded(cmdline.loginFlags);
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>          Configuration conf = HBaseConfiguration.create();
-<a class="jxr_linenumber" name="88" href="#88">88</a>          Connection conn = ConnectionFactory.createConnection(conf);
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>          <strong class="jxr_keyword">if</strong> (cmdline.enable) {
-<a class="jxr_linenumber" name="91" href="#91">91</a>              enableOmidCompaction(conn, TableName.valueOf(cmdline.table),
-<a class="jxr_linenumber" name="92" href="#92">92</a>                      Bytes.toBytes(cmdline.columnFamily));
-<a class="jxr_linenumber" name="93" href="#93">93</a>          } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (cmdline.disable) {
-<a class="jxr_linenumber" name="94" href="#94">94</a>              disableOmidCompaction(conn, TableName.valueOf(cmdline.table),
-<a class="jxr_linenumber" name="95" href="#95">95</a>                      Bytes.toBytes(cmdline.columnFamily));
-<a class="jxr_linenumber" name="96" href="#96">96</a>          } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="97" href="#97">97</a>              System.err.println(<span class="jxr_string">"Must specify enable or disable"</span>);
-<a class="jxr_linenumber" name="98" href="#98">98</a>          }
-<a class="jxr_linenumber" name="99" href="#99">99</a>      }
-<a class="jxr_linenumber" name="100" href="#100">100</a> }
+<a class="jxr_linenumber" name="75" href="#75">75</a>          @Parameter(names = <span class="jxr_string">"-enable"</span>)
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">boolean</strong> enable = false;
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>          @Parameter(names = <span class="jxr_string">"-disable"</span>)
+<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">boolean</strong> disable = false;
+<a class="jxr_linenumber" name="80" href="#80">80</a>  
+<a class="jxr_linenumber" name="81" href="#81">81</a>          @ParametersDelegate
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a> loginFlags = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a>();
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>      }
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
+<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="87" href="#87">87</a>          <a href="../../../../org/apache/omid/transaction/CompactorUtil.html">Config</a> cmdline = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/CompactorUtil.html">Config</a>();
+<a class="jxr_linenumber" name="88" href="#88">88</a>          JCommander jcommander = <strong class="jxr_keyword">new</strong> JCommander(cmdline, args);
+<a class="jxr_linenumber" name="89" href="#89">89</a>          <strong class="jxr_keyword">if</strong> (cmdline.help) {
+<a class="jxr_linenumber" name="90" href="#90">90</a>              jcommander.usage(<span class="jxr_string">"CompactorUtil"</span>);
+<a class="jxr_linenumber" name="91" href="#91">91</a>              System.exit(1);
+<a class="jxr_linenumber" name="92" href="#92">92</a>          }
+<a class="jxr_linenumber" name="93" href="#93">93</a>  
+<a class="jxr_linenumber" name="94" href="#94">94</a>          HBaseLogin.loginIfNeeded(cmdline.loginFlags);
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>          Configuration conf = HBaseConfiguration.create();
+<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">if</strong> (cmdline.enable) {
+<a class="jxr_linenumber" name="98" href="#98">98</a>              enableOmidCompaction(conf, TableName.valueOf(cmdline.table),
+<a class="jxr_linenumber" name="99" href="#99">99</a>                      Bytes.toBytes(cmdline.columnFamily));
+<a class="jxr_linenumber" name="100" href="#100">100</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (cmdline.disable) {
+<a class="jxr_linenumber" name="101" href="#101">101</a>             disableOmidCompaction(conf, TableName.valueOf(cmdline.table),
+<a class="jxr_linenumber" name="102" href="#102">102</a>                     Bytes.toBytes(cmdline.columnFamily));
+<a class="jxr_linenumber" name="103" href="#103">103</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="104" href="#104">104</a>             System.err.println(<span class="jxr_string">"Must specify enable or disable"</span>);
+<a class="jxr_linenumber" name="105" href="#105">105</a>         }
+<a class="jxr_linenumber" name="106" href="#106">106</a>     }
+<a class="jxr_linenumber" name="107" href="#107">107</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/HBaseCellId.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/HBaseCellId.html b/xref/org/apache/omid/transaction/HBaseCellId.html
index a106ad2..6b35fdb 100644
--- a/xref/org/apache/omid/transaction/HBaseCellId.html
+++ b/xref/org/apache/omid/transaction/HBaseCellId.html
@@ -27,87 +27,67 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> com.google.common.base.Charsets.UTF_8;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.hash.Hashing;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTableInterface;
 <a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> com.google.common.hash.Hasher;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> com.google.common.hash.Hashing;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/tso/client/CellId.html">CellId</a> {
-<a class="jxr_linenumber" name="28" href="#28">28</a>  
-<a class="jxr_linenumber" name="29" href="#29">29</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> table;
-<a class="jxr_linenumber" name="30" href="#30">30</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] row;
-<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] family;
-<a class="jxr_linenumber" name="32" href="#32">32</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier;
-<a class="jxr_linenumber" name="33" href="#33">33</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> timestamp;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  
-<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(<a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> table, byte[] row, byte[] family, byte[] qualifier, <strong class="jxr_keyword">long</strong> timestamp) {
-<a class="jxr_linenumber" name="36" href="#36">36</a>          <strong class="jxr_keyword">this</strong>.timestamp = timestamp;
-<a class="jxr_linenumber" name="37" href="#37">37</a>          <strong class="jxr_keyword">this</strong>.table = table;
-<a class="jxr_linenumber" name="38" href="#38">38</a>          <strong class="jxr_keyword">this</strong>.row = row;
-<a class="jxr_linenumber" name="39" href="#39">39</a>          <strong class="jxr_keyword">this</strong>.family = family;
-<a class="jxr_linenumber" name="40" href="#40">40</a>          <strong class="jxr_keyword">this</strong>.qualifier = qualifier;
-<a class="jxr_linenumber" name="41" href="#41">41</a>      }
-<a class="jxr_linenumber" name="42" href="#42">42</a>  
-<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> getTable() {
-<a class="jxr_linenumber" name="44" href="#44">44</a>          <strong class="jxr_keyword">return</strong> table;
-<a class="jxr_linenumber" name="45" href="#45">45</a>      }
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> byte[] getRow() {
-<a class="jxr_linenumber" name="48" href="#48">48</a>          <strong class="jxr_keyword">return</strong> row;
-<a class="jxr_linenumber" name="49" href="#49">49</a>      }
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> byte[] getFamily() {
-<a class="jxr_linenumber" name="52" href="#52">52</a>          <strong class="jxr_keyword">return</strong> family;
-<a class="jxr_linenumber" name="53" href="#53">53</a>      }
-<a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> byte[] getQualifier() {
-<a class="jxr_linenumber" name="56" href="#56">56</a>          <strong class="jxr_keyword">return</strong> qualifier;
-<a class="jxr_linenumber" name="57" href="#57">57</a>      }
-<a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getTimestamp() {
-<a class="jxr_linenumber" name="60" href="#60">60</a>          <strong class="jxr_keyword">return</strong> timestamp;
-<a class="jxr_linenumber" name="61" href="#61">61</a>      }
-<a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>      @Override
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="65" href="#65">65</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> String(table.getTableName(), UTF_8)
-<a class="jxr_linenumber" name="66" href="#66">66</a>                  + <span class="jxr_string">":"</span> + <strong class="jxr_keyword">new</strong> String(row, UTF_8)
-<a class="jxr_linenumber" name="67" href="#67">67</a>                  + <span class="jxr_string">":"</span> + <strong class="jxr_keyword">new</strong> String(family, UTF_8)
-<a class="jxr_linenumber" name="68" href="#68">68</a>                  + <span class="jxr_string">":"</span> + <strong class="jxr_keyword">new</strong> String(qualifier, UTF_8)
-<a class="jxr_linenumber" name="69" href="#69">69</a>                  + <span class="jxr_string">":"</span> + timestamp;
-<a class="jxr_linenumber" name="70" href="#70">70</a>      }
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>      @Override
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getCellId() {
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">return</strong> getHasher()
-<a class="jxr_linenumber" name="75" href="#75">75</a>                  .putBytes(table.getTableName())
-<a class="jxr_linenumber" name="76" href="#76">76</a>                  .putBytes(row)
-<a class="jxr_linenumber" name="77" href="#77">77</a>                  .putBytes(family)
-<a class="jxr_linenumber" name="78" href="#78">78</a>                  .putBytes(qualifier)
-<a class="jxr_linenumber" name="79" href="#79">79</a>                  .hash().asLong();
-<a class="jxr_linenumber" name="80" href="#80">80</a>      }
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>      @Override
-<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getTableId() {
-<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">return</strong> getHasher()
-<a class="jxr_linenumber" name="85" href="#85">85</a>                  .putBytes(table.getTableName())
-<a class="jxr_linenumber" name="86" href="#86">86</a>                  .hash().asLong();
-<a class="jxr_linenumber" name="87" href="#87">87</a>      }
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>      @Override
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getRowId() {
-<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">return</strong> getHasher()
-<a class="jxr_linenumber" name="92" href="#92">92</a>                  .putBytes(table.getTableName())
-<a class="jxr_linenumber" name="93" href="#93">93</a>                  .putBytes(row)
-<a class="jxr_linenumber" name="94" href="#94">94</a>                  .hash().asLong();
-<a class="jxr_linenumber" name="95" href="#95">95</a>      }
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Hasher getHasher() {
-<a class="jxr_linenumber" name="98" href="#98">98</a>          <strong class="jxr_keyword">return</strong> Hashing.murmur3_128().newHasher();
-<a class="jxr_linenumber" name="99" href="#99">99</a>      }
-<a class="jxr_linenumber" name="100" href="#100">100</a> }
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> com.google.common.base.Charsets.UTF_8;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/tso/client/CellId.html">CellId</a> {
+<a class="jxr_linenumber" name="27" href="#27">27</a>  
+<a class="jxr_linenumber" name="28" href="#28">28</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> HTableInterface table;
+<a class="jxr_linenumber" name="29" href="#29">29</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] row;
+<a class="jxr_linenumber" name="30" href="#30">30</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] family;
+<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier;
+<a class="jxr_linenumber" name="32" href="#32">32</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> timestamp;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  
+<a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(HTableInterface table, byte[] row, byte[] family, byte[] qualifier, <strong class="jxr_keyword">long</strong> timestamp) {
+<a class="jxr_linenumber" name="35" href="#35">35</a>          <strong class="jxr_keyword">this</strong>.timestamp = timestamp;
+<a class="jxr_linenumber" name="36" href="#36">36</a>          <strong class="jxr_keyword">this</strong>.table = table;
+<a class="jxr_linenumber" name="37" href="#37">37</a>          <strong class="jxr_keyword">this</strong>.row = row;
+<a class="jxr_linenumber" name="38" href="#38">38</a>          <strong class="jxr_keyword">this</strong>.family = family;
+<a class="jxr_linenumber" name="39" href="#39">39</a>          <strong class="jxr_keyword">this</strong>.qualifier = qualifier;
+<a class="jxr_linenumber" name="40" href="#40">40</a>      }
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> HTableInterface getTable() {
+<a class="jxr_linenumber" name="43" href="#43">43</a>          <strong class="jxr_keyword">return</strong> table;
+<a class="jxr_linenumber" name="44" href="#44">44</a>      }
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> byte[] getRow() {
+<a class="jxr_linenumber" name="47" href="#47">47</a>          <strong class="jxr_keyword">return</strong> row;
+<a class="jxr_linenumber" name="48" href="#48">48</a>      }
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">public</strong> byte[] getFamily() {
+<a class="jxr_linenumber" name="51" href="#51">51</a>          <strong class="jxr_keyword">return</strong> family;
+<a class="jxr_linenumber" name="52" href="#52">52</a>      }
+<a class="jxr_linenumber" name="53" href="#53">53</a>  
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">public</strong> byte[] getQualifier() {
+<a class="jxr_linenumber" name="55" href="#55">55</a>          <strong class="jxr_keyword">return</strong> qualifier;
+<a class="jxr_linenumber" name="56" href="#56">56</a>      }
+<a class="jxr_linenumber" name="57" href="#57">57</a>  
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getTimestamp() {
+<a class="jxr_linenumber" name="59" href="#59">59</a>          <strong class="jxr_keyword">return</strong> timestamp;
+<a class="jxr_linenumber" name="60" href="#60">60</a>      }
+<a class="jxr_linenumber" name="61" href="#61">61</a>  
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">public</strong> String toString() {
+<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> String(table.getTableName(), UTF_8)
+<a class="jxr_linenumber" name="64" href="#64">64</a>                  + <span class="jxr_string">":"</span> + <strong class="jxr_keyword">new</strong> String(row, UTF_8)
+<a class="jxr_linenumber" name="65" href="#65">65</a>                  + <span class="jxr_string">":"</span> + <strong class="jxr_keyword">new</strong> String(family, UTF_8)
+<a class="jxr_linenumber" name="66" href="#66">66</a>                  + <span class="jxr_string">":"</span> + <strong class="jxr_keyword">new</strong> String(qualifier, UTF_8)
+<a class="jxr_linenumber" name="67" href="#67">67</a>                  + <span class="jxr_string">":"</span> + timestamp;
+<a class="jxr_linenumber" name="68" href="#68">68</a>      }
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>      @Override
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getCellId() {
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">return</strong> Hashing.murmur3_128().newHasher()
+<a class="jxr_linenumber" name="73" href="#73">73</a>                  .putBytes(table.getTableName())
+<a class="jxr_linenumber" name="74" href="#74">74</a>                  .putBytes(row)
+<a class="jxr_linenumber" name="75" href="#75">75</a>                  .putBytes(family)
+<a class="jxr_linenumber" name="76" href="#76">76</a>                  .putBytes(qualifier)
+<a class="jxr_linenumber" name="77" href="#77">77</a>                  .hash().asLong();
+<a class="jxr_linenumber" name="78" href="#78">78</a>      }
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/HBaseOmidClientConfiguration.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/HBaseOmidClientConfiguration.html b/xref/org/apache/omid/transaction/HBaseOmidClientConfiguration.html
index 128e58d..e71ed49 100644
--- a/xref/org/apache/omid/transaction/HBaseOmidClientConfiguration.html
+++ b/xref/org/apache/omid/transaction/HBaseOmidClientConfiguration.html
@@ -30,164 +30,171 @@
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.annotations.VisibleForTesting;
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Inject;
 <a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.inject.name.Named;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.YAMLUtils;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.SecureHBaseConfig;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConflictDetectionLevel;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration.PostCommitMode;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.beanutils.BeanUtils;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.YAMLUtils;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.SecureHBaseConfig;
 <a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * Configuration for HBase's Omid client side</em>
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a> {
-<a class="jxr_linenumber" name="37" href="#37">37</a>  
-<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_CONFIG_FILE_NAME = <span class="jxr_string">"default-hbase-omid-client-config.yml"</span>;
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CONFIG_FILE_NAME = <span class="jxr_string">"hbase-omid-client-config.yml"</span>;
-<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> Configuration hbaseConfiguration = HBaseConfiguration.create();
-<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> String commitTableName;
-<a class="jxr_linenumber" name="42" href="#42">42</a>      @Inject
-<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> omidClientConfiguration;
-<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  
-<a class="jxr_linenumber" name="46" href="#46">46</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <em class="jxr_comment">// Instantiation</em>
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration.PostCommitMode;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.InvocationTargetException;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * Configuration for HBase's Omid client side</em>
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a> {
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_CONFIG_FILE_NAME = <span class="jxr_string">"default-hbase-omid-client-config.yml"</span>;
+<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CONFIG_FILE_NAME = <span class="jxr_string">"hbase-omid-client-config.yml"</span>;
+<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> Configuration hbaseConfiguration = HBaseConfiguration.create();
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> String commitTableName;
+<a class="jxr_linenumber" name="44" href="#44">44</a>      @Inject
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> omidClientConfiguration;
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  
 <a class="jxr_linenumber" name="48" href="#48">48</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>() {
-<a class="jxr_linenumber" name="50" href="#50">50</a>          <strong class="jxr_keyword">this</strong>(CONFIG_FILE_NAME);
-<a class="jxr_linenumber" name="51" href="#51">51</a>      }
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>      @VisibleForTesting
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>(String configFileName) {
-<a class="jxr_linenumber" name="55" href="#55">55</a>          <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a>().loadSettings(configFileName, DEFAULT_CONFIG_FILE_NAME, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="56" href="#56">56</a>      }
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <em class="jxr_comment">// Getters and setters for config params</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">public</strong> Configuration getHBaseConfiguration() {
-<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">return</strong> hbaseConfiguration;
-<a class="jxr_linenumber" name="64" href="#64">64</a>      }
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setHBaseConfiguration(Configuration hbaseConfiguration) {
-<a class="jxr_linenumber" name="67" href="#67">67</a>          <strong class="jxr_keyword">this</strong>.hbaseConfiguration = hbaseConfiguration;
-<a class="jxr_linenumber" name="68" href="#68">68</a>      }
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> getPostCommitMode() {
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">return</strong> omidClientConfiguration.getPostCommitMode();
-<a class="jxr_linenumber" name="72" href="#72">72</a>      }
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPostCommitMode(<a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> postCommitMode) {
-<a class="jxr_linenumber" name="75" href="#75">75</a>          omidClientConfiguration.setPostCommitMode(postCommitMode);
-<a class="jxr_linenumber" name="76" href="#76">76</a>      }
-<a class="jxr_linenumber" name="77" href="#77">77</a>  
-<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> getConflictAnalysisLevel() {
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">return</strong> omidClientConfiguration.getConflictAnalysisLevel();
-<a class="jxr_linenumber" name="80" href="#80">80</a>      }
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConflictAnalysisLevel(<a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> conflictAnalysisLevel) {
-<a class="jxr_linenumber" name="83" href="#83">83</a>          omidClientConfiguration.setConflictAnalysisLevel(conflictAnalysisLevel);
-<a class="jxr_linenumber" name="84" href="#84">84</a>      }
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">public</strong> String getCommitTableName() {
-<a class="jxr_linenumber" name="87" href="#87">87</a>          <strong class="jxr_keyword">return</strong> commitTableName;
-<a class="jxr_linenumber" name="88" href="#88">88</a>      }
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>      @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="91" href="#91">91</a>      @Named(<span class="jxr_string">"omid.client.hbase.commitTableName"</span>)
-<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCommitTableName(String commitTableName) {
-<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">this</strong>.commitTableName = commitTableName;
-<a class="jxr_linenumber" name="94" href="#94">94</a>      }
-<a class="jxr_linenumber" name="95" href="#95">95</a>  
-<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> getOmidClientConfiguration() {
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">return</strong> omidClientConfiguration;
-<a class="jxr_linenumber" name="98" href="#98">98</a>      }
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOmidClientConfiguration(<a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> omidClientConfiguration) {
-<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">this</strong>.omidClientConfiguration = omidClientConfiguration;
-<a class="jxr_linenumber" name="102" href="#102">102</a>     }
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> getMetrics() {
-<a class="jxr_linenumber" name="105" href="#105">105</a>         <strong class="jxr_keyword">return</strong> metrics;
-<a class="jxr_linenumber" name="106" href="#106">106</a>     }
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="109" href="#109">109</a>     @Named(<span class="jxr_string">"omid.client.hbase.metrics"</span>)
-<a class="jxr_linenumber" name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMetrics(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics) {
-<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">this</strong>.metrics = metrics;
-<a class="jxr_linenumber" name="112" href="#112">112</a>     }
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>     <em class="jxr_comment">// Delegation to make end-user life better</em>
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> OmidClientConfiguration.ConnType getConnectionType() {
-<a class="jxr_linenumber" name="117" href="#117">117</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getConnectionType();
-<a class="jxr_linenumber" name="118" href="#118">118</a>     }
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setReconnectionDelayInSecs(<strong class="jxr_keyword">int</strong> reconnectionDelayInSecs) {
-<a class="jxr_linenumber" name="121" href="#121">121</a>         omidClientConfiguration.setReconnectionDelayInSecs(reconnectionDelayInSecs);
-<a class="jxr_linenumber" name="122" href="#122">122</a>     }
-<a class="jxr_linenumber" name="123" href="#123">123</a> 
-<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setExecutorThreads(<strong class="jxr_keyword">int</strong> executorThreads) {
-<a class="jxr_linenumber" name="125" href="#125">125</a>         omidClientConfiguration.setExecutorThreads(executorThreads);
-<a class="jxr_linenumber" name="126" href="#126">126</a>     }
-<a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRequestTimeoutInMs() {
-<a class="jxr_linenumber" name="129" href="#129">129</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getRequestTimeoutInMs();
-<a class="jxr_linenumber" name="130" href="#130">130</a>     }
-<a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConnectionString(String connectionString) {
-<a class="jxr_linenumber" name="133" href="#133">133</a>         omidClientConfiguration.setConnectionString(connectionString);
-<a class="jxr_linenumber" name="134" href="#134">134</a>     }
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRequestTimeoutInMs(<strong class="jxr_keyword">int</strong> requestTimeoutInMs) {
-<a class="jxr_linenumber" name="137" href="#137">137</a>         omidClientConfiguration.setRequestTimeoutInMs(requestTimeoutInMs);
-<a class="jxr_linenumber" name="138" href="#138">138</a>     }
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setZkConnectionTimeoutInSecs(<strong class="jxr_keyword">int</strong> zkConnectionTimeoutInSecs) {
-<a class="jxr_linenumber" name="141" href="#141">141</a>         omidClientConfiguration.setZkConnectionTimeoutInSecs(zkConnectionTimeoutInSecs);
-<a class="jxr_linenumber" name="142" href="#142">142</a>     }
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
-<a class="jxr_linenumber" name="144" href="#144">144</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConnectionType(OmidClientConfiguration.ConnType connectionType) {
-<a class="jxr_linenumber" name="145" href="#145">145</a>         omidClientConfiguration.setConnectionType(connectionType);
-<a class="jxr_linenumber" name="146" href="#146">146</a>     }
-<a class="jxr_linenumber" name="147" href="#147">147</a> 
-<a class="jxr_linenumber" name="148" href="#148">148</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRequestMaxRetries(<strong class="jxr_keyword">int</strong> requestMaxRetries) {
-<a class="jxr_linenumber" name="149" href="#149">149</a>         omidClientConfiguration.setRequestMaxRetries(requestMaxRetries);
-<a class="jxr_linenumber" name="150" href="#150">150</a>     }
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getZkConnectionTimeoutInSecs() {
-<a class="jxr_linenumber" name="153" href="#153">153</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getZkConnectionTimeoutInSecs();
-<a class="jxr_linenumber" name="154" href="#154">154</a>     }
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRetryDelayInMs(<strong class="jxr_keyword">int</strong> retryDelayInMs) {
-<a class="jxr_linenumber" name="157" href="#157">157</a>         omidClientConfiguration.setRetryDelayInMs(retryDelayInMs);
-<a class="jxr_linenumber" name="158" href="#158">158</a>     }
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getExecutorThreads() {
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getExecutorThreads();
-<a class="jxr_linenumber" name="162" href="#162">162</a>     }
-<a class="jxr_linenumber" name="163" href="#163">163</a> 
-<a class="jxr_linenumber" name="164" href="#164">164</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRetryDelayInMs() {
-<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getRetryDelayInMs();
-<a class="jxr_linenumber" name="166" href="#166">166</a>     }
-<a class="jxr_linenumber" name="167" href="#167">167</a> 
-<a class="jxr_linenumber" name="168" href="#168">168</a>     <strong class="jxr_keyword">public</strong> String getConnectionString() {
-<a class="jxr_linenumber" name="169" href="#169">169</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getConnectionString();
-<a class="jxr_linenumber" name="170" href="#170">170</a>     }
-<a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRequestMaxRetries() {
-<a class="jxr_linenumber" name="173" href="#173">173</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getRequestMaxRetries();
-<a class="jxr_linenumber" name="174" href="#174">174</a>     }
-<a class="jxr_linenumber" name="175" href="#175">175</a> 
-<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getReconnectionDelayInSecs() {
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getReconnectionDelayInSecs();
-<a class="jxr_linenumber" name="178" href="#178">178</a>     }
-<a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a> }
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <em class="jxr_comment">// Instantiation</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>      
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> loadFromString(String yamlContent) {
+<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a>().loadStringAsMap(yamlContent));
+<a class="jxr_linenumber" name="54" href="#54">54</a>      }
+<a class="jxr_linenumber" name="55" href="#55">55</a>  
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>() {
+<a class="jxr_linenumber" name="57" href="#57">57</a>          <strong class="jxr_keyword">this</strong>(CONFIG_FILE_NAME);
+<a class="jxr_linenumber" name="58" href="#58">58</a>      }
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">public</strong> &lt;K, V&gt; <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>(Map&lt;K, V&gt; properties) {
+<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="62" href="#62">62</a>              BeanUtils.populate(<strong class="jxr_keyword">this</strong>, properties);
+<a class="jxr_linenumber" name="63" href="#63">63</a>          } <strong class="jxr_keyword">catch</strong> (IllegalAccessException | InvocationTargetException e) {
+<a class="jxr_linenumber" name="64" href="#64">64</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(e);
+<a class="jxr_linenumber" name="65" href="#65">65</a>          }
+<a class="jxr_linenumber" name="66" href="#66">66</a>      }
+<a class="jxr_linenumber" name="67" href="#67">67</a>  
+<a class="jxr_linenumber" name="68" href="#68">68</a>      @VisibleForTesting
+<a class="jxr_linenumber" name="69" href="#69">69</a>      <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>(String configFileName) {
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a>().loadSettings(configFileName, DEFAULT_CONFIG_FILE_NAME, <strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>      }
+<a class="jxr_linenumber" name="72" href="#72">72</a>  
+<a class="jxr_linenumber" name="73" href="#73">73</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <em class="jxr_comment">// Getters and setters for config params</em>
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="76" href="#76">76</a>  
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> Configuration getHBaseConfiguration() {
+<a class="jxr_linenumber" name="78" href="#78">78</a>          <strong class="jxr_keyword">return</strong> hbaseConfiguration;
+<a class="jxr_linenumber" name="79" href="#79">79</a>      }
+<a class="jxr_linenumber" name="80" href="#80">80</a>  
+<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setHBaseConfiguration(Configuration hbaseConfiguration) {
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">this</strong>.hbaseConfiguration = hbaseConfiguration;
+<a class="jxr_linenumber" name="83" href="#83">83</a>      }
+<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> getPostCommitMode() {
+<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">return</strong> omidClientConfiguration.getPostCommitMode();
+<a class="jxr_linenumber" name="87" href="#87">87</a>      }
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPostCommitMode(<a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> postCommitMode) {
+<a class="jxr_linenumber" name="90" href="#90">90</a>          omidClientConfiguration.setPostCommitMode(postCommitMode);
+<a class="jxr_linenumber" name="91" href="#91">91</a>      }
+<a class="jxr_linenumber" name="92" href="#92">92</a>  
+<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> String getCommitTableName() {
+<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">return</strong> commitTableName;
+<a class="jxr_linenumber" name="95" href="#95">95</a>      }
+<a class="jxr_linenumber" name="96" href="#96">96</a>  
+<a class="jxr_linenumber" name="97" href="#97">97</a>      @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="98" href="#98">98</a>      @Named(<span class="jxr_string">"omid.client.hbase.commitTableName"</span>)
+<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCommitTableName(String commitTableName) {
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">this</strong>.commitTableName = commitTableName;
+<a class="jxr_linenumber" name="101" href="#101">101</a>     }
+<a class="jxr_linenumber" name="102" href="#102">102</a> 
+<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> getOmidClientConfiguration() {
+<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration;
+<a class="jxr_linenumber" name="105" href="#105">105</a>     }
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOmidClientConfiguration(<a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a> omidClientConfiguration) {
+<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">this</strong>.omidClientConfiguration = omidClientConfiguration;
+<a class="jxr_linenumber" name="109" href="#109">109</a>     }
+<a class="jxr_linenumber" name="110" href="#110">110</a> 
+<a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> getMetrics() {
+<a class="jxr_linenumber" name="112" href="#112">112</a>         <strong class="jxr_keyword">return</strong> metrics;
+<a class="jxr_linenumber" name="113" href="#113">113</a>     }
+<a class="jxr_linenumber" name="114" href="#114">114</a> 
+<a class="jxr_linenumber" name="115" href="#115">115</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="116" href="#116">116</a>     @Named(<span class="jxr_string">"omid.client.hbase.metrics"</span>)
+<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMetrics(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics) {
+<a class="jxr_linenumber" name="118" href="#118">118</a>         <strong class="jxr_keyword">this</strong>.metrics = metrics;
+<a class="jxr_linenumber" name="119" href="#119">119</a>     }
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>     <em class="jxr_comment">// Delegation to make end-user life better</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a> 
+<a class="jxr_linenumber" name="123" href="#123">123</a>     <strong class="jxr_keyword">public</strong> OmidClientConfiguration.ConnType getConnectionType() {
+<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getConnectionType();
+<a class="jxr_linenumber" name="125" href="#125">125</a>     }
+<a class="jxr_linenumber" name="126" href="#126">126</a> 
+<a class="jxr_linenumber" name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setReconnectionDelayInSecs(<strong class="jxr_keyword">int</strong> reconnectionDelayInSecs) {
+<a class="jxr_linenumber" name="128" href="#128">128</a>         omidClientConfiguration.setReconnectionDelayInSecs(reconnectionDelayInSecs);
+<a class="jxr_linenumber" name="129" href="#129">129</a>     }
+<a class="jxr_linenumber" name="130" href="#130">130</a> 
+<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setExecutorThreads(<strong class="jxr_keyword">int</strong> executorThreads) {
+<a class="jxr_linenumber" name="132" href="#132">132</a>         omidClientConfiguration.setExecutorThreads(executorThreads);
+<a class="jxr_linenumber" name="133" href="#133">133</a>     }
+<a class="jxr_linenumber" name="134" href="#134">134</a> 
+<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRequestTimeoutInMs() {
+<a class="jxr_linenumber" name="136" href="#136">136</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getRequestTimeoutInMs();
+<a class="jxr_linenumber" name="137" href="#137">137</a>     }
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConnectionString(String connectionString) {
+<a class="jxr_linenumber" name="140" href="#140">140</a>         omidClientConfiguration.setConnectionString(connectionString);
+<a class="jxr_linenumber" name="141" href="#141">141</a>     }
+<a class="jxr_linenumber" name="142" href="#142">142</a> 
+<a class="jxr_linenumber" name="143" href="#143">143</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRequestTimeoutInMs(<strong class="jxr_keyword">int</strong> requestTimeoutInMs) {
+<a class="jxr_linenumber" name="144" href="#144">144</a>         omidClientConfiguration.setRequestTimeoutInMs(requestTimeoutInMs);
+<a class="jxr_linenumber" name="145" href="#145">145</a>     }
+<a class="jxr_linenumber" name="146" href="#146">146</a> 
+<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setZkConnectionTimeoutInSecs(<strong class="jxr_keyword">int</strong> zkConnectionTimeoutInSecs) {
+<a class="jxr_linenumber" name="148" href="#148">148</a>         omidClientConfiguration.setZkConnectionTimeoutInSecs(zkConnectionTimeoutInSecs);
+<a class="jxr_linenumber" name="149" href="#149">149</a>     }
+<a class="jxr_linenumber" name="150" href="#150">150</a> 
+<a class="jxr_linenumber" name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConnectionType(OmidClientConfiguration.ConnType connectionType) {
+<a class="jxr_linenumber" name="152" href="#152">152</a>         omidClientConfiguration.setConnectionType(connectionType);
+<a class="jxr_linenumber" name="153" href="#153">153</a>     }
+<a class="jxr_linenumber" name="154" href="#154">154</a> 
+<a class="jxr_linenumber" name="155" href="#155">155</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRequestMaxRetries(<strong class="jxr_keyword">int</strong> requestMaxRetries) {
+<a class="jxr_linenumber" name="156" href="#156">156</a>         omidClientConfiguration.setRequestMaxRetries(requestMaxRetries);
+<a class="jxr_linenumber" name="157" href="#157">157</a>     }
+<a class="jxr_linenumber" name="158" href="#158">158</a> 
+<a class="jxr_linenumber" name="159" href="#159">159</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getZkConnectionTimeoutInSecs() {
+<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getZkConnectionTimeoutInSecs();
+<a class="jxr_linenumber" name="161" href="#161">161</a>     }
+<a class="jxr_linenumber" name="162" href="#162">162</a> 
+<a class="jxr_linenumber" name="163" href="#163">163</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRetryDelayInMs(<strong class="jxr_keyword">int</strong> retryDelayInMs) {
+<a class="jxr_linenumber" name="164" href="#164">164</a>         omidClientConfiguration.setRetryDelayInMs(retryDelayInMs);
+<a class="jxr_linenumber" name="165" href="#165">165</a>     }
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getExecutorThreads() {
+<a class="jxr_linenumber" name="168" href="#168">168</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getExecutorThreads();
+<a class="jxr_linenumber" name="169" href="#169">169</a>     }
+<a class="jxr_linenumber" name="170" href="#170">170</a> 
+<a class="jxr_linenumber" name="171" href="#171">171</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRetryDelayInMs() {
+<a class="jxr_linenumber" name="172" href="#172">172</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getRetryDelayInMs();
+<a class="jxr_linenumber" name="173" href="#173">173</a>     }
+<a class="jxr_linenumber" name="174" href="#174">174</a> 
+<a class="jxr_linenumber" name="175" href="#175">175</a>     <strong class="jxr_keyword">public</strong> String getConnectionString() {
+<a class="jxr_linenumber" name="176" href="#176">176</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getConnectionString();
+<a class="jxr_linenumber" name="177" href="#177">177</a>     }
+<a class="jxr_linenumber" name="178" href="#178">178</a> 
+<a class="jxr_linenumber" name="179" href="#179">179</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRequestMaxRetries() {
+<a class="jxr_linenumber" name="180" href="#180">180</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getRequestMaxRetries();
+<a class="jxr_linenumber" name="181" href="#181">181</a>     }
+<a class="jxr_linenumber" name="182" href="#182">182</a> 
+<a class="jxr_linenumber" name="183" href="#183">183</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getReconnectionDelayInSecs() {
+<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">return</strong> omidClientConfiguration.getReconnectionDelayInSecs();
+<a class="jxr_linenumber" name="185" href="#185">185</a>     }
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[35/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestFilters.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestFilters.html b/xref-test/org/apache/omid/transaction/TestFilters.html
index e9a5362..2edc667 100644
--- a/xref-test/org/apache/omid/transaction/TestFilters.html
+++ b/xref-test/org/apache/omid/transaction/TestFilters.html
@@ -27,183 +27,182 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.BinaryComparator;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.ColumnPrefixFilter;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.CompareFilter;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.Filter;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.ValueFilter;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * Tests to verify that Get and Scan filters still work with transactions tables</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="50" href="#50">50</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestFilters.html">TestFilters</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>      byte[] family = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"row1"</span>);
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> byte[] row2 = Bytes.toBytes(<span class="jxr_string">"row2"</span>);
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> byte[] row3 = Bytes.toBytes(<span class="jxr_string">"row3"</span>);
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> byte[] prefix = Bytes.toBytes(<span class="jxr_string">"foo"</span>);
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> byte[] col1 = Bytes.toBytes(<span class="jxr_string">"foobar"</span>);
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> byte[] col2 = Bytes.toBytes(<span class="jxr_string">"boofar"</span>);
-<a class="jxr_linenumber" name="60" href="#60">60</a>  
-<a class="jxr_linenumber" name="61" href="#61">61</a>      @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithColumnPrefixFilter(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="63" href="#63">63</a>          testGet(context, <strong class="jxr_keyword">new</strong> ColumnPrefixFilter(prefix));
-<a class="jxr_linenumber" name="64" href="#64">64</a>      }
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithValueFilter(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="68" href="#68">68</a>          testGet(context, <strong class="jxr_keyword">new</strong> ValueFilter(CompareFilter.CompareOp.EQUAL, <strong class="jxr_keyword">new</strong> BinaryComparator(col1)));
-<a class="jxr_linenumber" name="69" href="#69">69</a>      }
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testGet(ITestContext context, Filter f) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="72" href="#72">72</a>  
-<a class="jxr_linenumber" name="73" href="#73">73</a>          CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
-<a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>          HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="76" href="#76">76</a>          hbaseOmidClientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="78" href="#78">78</a>  
-<a class="jxr_linenumber" name="79" href="#79">79</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="80" href="#80">80</a>          PostCommitActions syncPostCommitter = spy(
-<a class="jxr_linenumber" name="81" href="#81">81</a>                  <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
-<a class="jxr_linenumber" name="82" href="#82">82</a>          AbstractTransactionManager tm = HBaseTransactionManager.builder(hbaseOmidClientConf)
-<a class="jxr_linenumber" name="83" href="#83">83</a>                  .commitTableClient(commitTableClient)
-<a class="jxr_linenumber" name="84" href="#84">84</a>                  .postCommitter(syncPostCommitter)
-<a class="jxr_linenumber" name="85" href="#85">85</a>                  .build();
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>          writeRows(table, tm, syncPostCommitter);
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>          Transaction t = tm.begin();
-<a class="jxr_linenumber" name="90" href="#90">90</a>          Get g = <strong class="jxr_keyword">new</strong> Get(row1);
-<a class="jxr_linenumber" name="91" href="#91">91</a>          g.setFilter(f);
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>          Result r = table.get(t, g);
-<a class="jxr_linenumber" name="94" href="#94">94</a>          assertEquals(r.getColumnCells(family, col1).size(), 1, <span class="jxr_string">"should exist in result"</span>);
-<a class="jxr_linenumber" name="95" href="#95">95</a>          assertEquals(r.getColumnCells(family, col2).size(), 0 , <span class="jxr_string">"shouldn't exist in result"</span>);
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>          g = <strong class="jxr_keyword">new</strong> Get(row2);
-<a class="jxr_linenumber" name="98" href="#98">98</a>          g.setFilter(f);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          r = table.get(t, g);
-<a class="jxr_linenumber" name="100" href="#100">100</a>         assertEquals(r.getColumnCells(family, col1).size(), 1, <span class="jxr_string">"should exist in result"</span>);
-<a class="jxr_linenumber" name="101" href="#101">101</a>         assertEquals(r.getColumnCells(family, col2).size(), 0, <span class="jxr_string">"shouldn't exist in result"</span>);
-<a class="jxr_linenumber" name="102" href="#102">102</a> 
-<a class="jxr_linenumber" name="103" href="#103">103</a>         g = <strong class="jxr_keyword">new</strong> Get(row3);
-<a class="jxr_linenumber" name="104" href="#104">104</a>         g.setFilter(f);
-<a class="jxr_linenumber" name="105" href="#105">105</a>         r = table.get(t, g);
-<a class="jxr_linenumber" name="106" href="#106">106</a>         assertEquals(r.getColumnCells(family, col2).size(), 0, <span class="jxr_string">"shouldn't exist in result"</span>);
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     }
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScanWithColumnPrefixFilter(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="112" href="#112">112</a>         testScan(context, <strong class="jxr_keyword">new</strong> ColumnPrefixFilter(prefix));
-<a class="jxr_linenumber" name="113" href="#113">113</a>     }
-<a class="jxr_linenumber" name="114" href="#114">114</a> 
-<a class="jxr_linenumber" name="115" href="#115">115</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScanWithValueFilter(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="117" href="#117">117</a>         testScan(context, <strong class="jxr_keyword">new</strong> ValueFilter(CompareFilter.CompareOp.EQUAL, <strong class="jxr_keyword">new</strong> BinaryComparator(col1)));
-<a class="jxr_linenumber" name="118" href="#118">118</a>     }
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testScan(ITestContext context, Filter f) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="121" href="#121">121</a> 
-<a class="jxr_linenumber" name="122" href="#122">122</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
-<a class="jxr_linenumber" name="123" href="#123">123</a> 
-<a class="jxr_linenumber" name="124" href="#124">124</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="125" href="#125">125</a>         hbaseOmidClientConf.getOmidClientConfiguration().setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
-<a class="jxr_linenumber" name="126" href="#126">126</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="127" href="#127">127</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="128" href="#128">128</a>         PostCommitActions syncPostCommitter = spy(
-<a class="jxr_linenumber" name="129" href="#129">129</a>                 <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
-<a class="jxr_linenumber" name="130" href="#130">130</a>         AbstractTransactionManager tm = HBaseTransactionManager.builder(hbaseOmidClientConf)
-<a class="jxr_linenumber" name="131" href="#131">131</a>                 .commitTableClient(commitTableClient)
-<a class="jxr_linenumber" name="132" href="#132">132</a>                 .postCommitter(syncPostCommitter)
-<a class="jxr_linenumber" name="133" href="#133">133</a>                 .build();
-<a class="jxr_linenumber" name="134" href="#134">134</a> 
-<a class="jxr_linenumber" name="135" href="#135">135</a>         writeRows(table, tm, syncPostCommitter);
-<a class="jxr_linenumber" name="136" href="#136">136</a> 
-<a class="jxr_linenumber" name="137" href="#137">137</a>         Transaction t = tm.begin();
-<a class="jxr_linenumber" name="138" href="#138">138</a>         Scan s = <strong class="jxr_keyword">new</strong> Scan().setFilter(f);
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>         ResultScanner rs = table.getScanner(t, s);
-<a class="jxr_linenumber" name="141" href="#141">141</a> 
-<a class="jxr_linenumber" name="142" href="#142">142</a>         Result r = rs.next();
-<a class="jxr_linenumber" name="143" href="#143">143</a>         assertEquals(r.getColumnCells(family, col1).size(), 1, <span class="jxr_string">"should exist in result"</span>);
-<a class="jxr_linenumber" name="144" href="#144">144</a>         assertEquals(r.getColumnCells(family, col2).size(), 0, <span class="jxr_string">"shouldn't exist in result"</span>);
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>         r = rs.next();
-<a class="jxr_linenumber" name="147" href="#147">147</a>         assertEquals(r.getColumnCells(family, col1).size(), 1, <span class="jxr_string">"should exist in result"</span>);
-<a class="jxr_linenumber" name="148" href="#148">148</a>         assertEquals(r.getColumnCells(family, col2).size(), 0, <span class="jxr_string">"shouldn't exist in result"</span>);
-<a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>         r = rs.next();
-<a class="jxr_linenumber" name="151" href="#151">151</a>         assertNull(r, <span class="jxr_string">"Last row shouldn't exist"</span>);
-<a class="jxr_linenumber" name="152" href="#152">152</a> 
-<a class="jxr_linenumber" name="153" href="#153">153</a>     }
-<a class="jxr_linenumber" name="154" href="#154">154</a> 
-<a class="jxr_linenumber" name="155" href="#155">155</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeRows(TTable table, TransactionManager tm, PostCommitActions postCommitter)
-<a class="jxr_linenumber" name="156" href="#156">156</a>             <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="157" href="#157">157</a>         <em class="jxr_comment">// create normal row with both cells</em>
-<a class="jxr_linenumber" name="158" href="#158">158</a>         Transaction t = tm.begin();
-<a class="jxr_linenumber" name="159" href="#159">159</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="160" href="#160">160</a>         p.addColumn(family, col1, col1);
-<a class="jxr_linenumber" name="161" href="#161">161</a>         p.addColumn(family, col2, col2);
-<a class="jxr_linenumber" name="162" href="#162">162</a>         table.put(t, p);
-<a class="jxr_linenumber" name="163" href="#163">163</a>         tm.commit(t);
-<a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a>         <em class="jxr_comment">// create normal row, but fail to update shadow cells</em>
-<a class="jxr_linenumber" name="166" href="#166">166</a>         doAnswer(<strong class="jxr_keyword">new</strong> Answer&lt;ListenableFuture&lt;Void&gt;&gt;() {
-<a class="jxr_linenumber" name="167" href="#167">167</a>             <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; answer(InvocationOnMock invocation) {
-<a class="jxr_linenumber" name="168" href="#168">168</a>                 <em class="jxr_comment">// Do not invoke the real method</em>
-<a class="jxr_linenumber" name="169" href="#169">169</a>                 <strong class="jxr_keyword">return</strong> SettableFuture.create();
-<a class="jxr_linenumber" name="170" href="#170">170</a>             }
-<a class="jxr_linenumber" name="171" href="#171">171</a>         }).when(postCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="172" href="#172">172</a> 
-<a class="jxr_linenumber" name="173" href="#173">173</a>         t = tm.begin();
-<a class="jxr_linenumber" name="174" href="#174">174</a>         p = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="175" href="#175">175</a>         p.addColumn(family, col1, col1);
-<a class="jxr_linenumber" name="176" href="#176">176</a>         p.addColumn(family, col2, col2);
-<a class="jxr_linenumber" name="177" href="#177">177</a>         table.put(t, p);
-<a class="jxr_linenumber" name="178" href="#178">178</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="179" href="#179">179</a>             tm.commit(t);
-<a class="jxr_linenumber" name="180" href="#180">180</a>         } <strong class="jxr_keyword">catch</strong> (TransactionException e) {
-<a class="jxr_linenumber" name="181" href="#181">181</a>             <em class="jxr_comment">// Expected, see comment above</em>
-<a class="jxr_linenumber" name="182" href="#182">182</a>         }
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <em class="jxr_comment">// create normal row with only one cell</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a>         t = tm.begin();
-<a class="jxr_linenumber" name="186" href="#186">186</a>         p = <strong class="jxr_keyword">new</strong> Put(row3);
-<a class="jxr_linenumber" name="187" href="#187">187</a>         p.addColumn(family, col2, col2);
-<a class="jxr_linenumber" name="188" href="#188">188</a>         table.put(t, p);
-<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="190" href="#190">190</a>             tm.commit(t);
-<a class="jxr_linenumber" name="191" href="#191">191</a>         } <strong class="jxr_keyword">catch</strong> (TransactionException e) {
-<a class="jxr_linenumber" name="192" href="#192">192</a>             <em class="jxr_comment">// Expected, see comment above</em>
-<a class="jxr_linenumber" name="193" href="#193">193</a>         }
-<a class="jxr_linenumber" name="194" href="#194">194</a>     }
-<a class="jxr_linenumber" name="195" href="#195">195</a> 
-<a class="jxr_linenumber" name="196" href="#196">196</a> }
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.BinaryComparator;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.ColumnPrefixFilter;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.CompareFilter;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.Filter;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.ValueFilter;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * Tests to verify that Get and Scan filters still work with transactions tables</em>
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="49" href="#49">49</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestFilters.html">TestFilters</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="51" href="#51">51</a>  
+<a class="jxr_linenumber" name="52" href="#52">52</a>      byte[] family = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"row1"</span>);
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> byte[] row2 = Bytes.toBytes(<span class="jxr_string">"row2"</span>);
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> byte[] row3 = Bytes.toBytes(<span class="jxr_string">"row3"</span>);
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> byte[] prefix = Bytes.toBytes(<span class="jxr_string">"foo"</span>);
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> byte[] col1 = Bytes.toBytes(<span class="jxr_string">"foobar"</span>);
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> byte[] col2 = Bytes.toBytes(<span class="jxr_string">"boofar"</span>);
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithColumnPrefixFilter(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="62" href="#62">62</a>          testGet(context, <strong class="jxr_keyword">new</strong> ColumnPrefixFilter(prefix));
+<a class="jxr_linenumber" name="63" href="#63">63</a>      }
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithValueFilter(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="67" href="#67">67</a>          testGet(context, <strong class="jxr_keyword">new</strong> ValueFilter(CompareFilter.CompareOp.EQUAL, <strong class="jxr_keyword">new</strong> BinaryComparator(col1)));
+<a class="jxr_linenumber" name="68" href="#68">68</a>      }
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testGet(ITestContext context, Filter f) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="71" href="#71">71</a>  
+<a class="jxr_linenumber" name="72" href="#72">72</a>          CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>          HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="75" href="#75">75</a>          hbaseOmidClientConf.setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
+<a class="jxr_linenumber" name="76" href="#76">76</a>          hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="79" href="#79">79</a>          PostCommitActions syncPostCommitter = spy(
+<a class="jxr_linenumber" name="80" href="#80">80</a>                  <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
+<a class="jxr_linenumber" name="81" href="#81">81</a>          AbstractTransactionManager tm = HBaseTransactionManager.builder(hbaseOmidClientConf)
+<a class="jxr_linenumber" name="82" href="#82">82</a>                  .commitTableClient(commitTableClient)
+<a class="jxr_linenumber" name="83" href="#83">83</a>                  .postCommitter(syncPostCommitter)
+<a class="jxr_linenumber" name="84" href="#84">84</a>                  .build();
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
+<a class="jxr_linenumber" name="86" href="#86">86</a>          writeRows(table, tm, syncPostCommitter);
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>          Transaction t = tm.begin();
+<a class="jxr_linenumber" name="89" href="#89">89</a>          Get g = <strong class="jxr_keyword">new</strong> Get(row1);
+<a class="jxr_linenumber" name="90" href="#90">90</a>          g.setFilter(f);
+<a class="jxr_linenumber" name="91" href="#91">91</a>  
+<a class="jxr_linenumber" name="92" href="#92">92</a>          Result r = table.get(t, g);
+<a class="jxr_linenumber" name="93" href="#93">93</a>          assertEquals(r.getColumnCells(family, col1).size(), 1, <span class="jxr_string">"should exist in result"</span>);
+<a class="jxr_linenumber" name="94" href="#94">94</a>          assertEquals(r.getColumnCells(family, col2).size(), 0 , <span class="jxr_string">"shouldn't exist in result"</span>);
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>          g = <strong class="jxr_keyword">new</strong> Get(row2);
+<a class="jxr_linenumber" name="97" href="#97">97</a>          g.setFilter(f);
+<a class="jxr_linenumber" name="98" href="#98">98</a>          r = table.get(t, g);
+<a class="jxr_linenumber" name="99" href="#99">99</a>          assertEquals(r.getColumnCells(family, col1).size(), 1, <span class="jxr_string">"should exist in result"</span>);
+<a class="jxr_linenumber" name="100" href="#100">100</a>         assertEquals(r.getColumnCells(family, col2).size(), 0, <span class="jxr_string">"shouldn't exist in result"</span>);
+<a class="jxr_linenumber" name="101" href="#101">101</a> 
+<a class="jxr_linenumber" name="102" href="#102">102</a>         g = <strong class="jxr_keyword">new</strong> Get(row3);
+<a class="jxr_linenumber" name="103" href="#103">103</a>         g.setFilter(f);
+<a class="jxr_linenumber" name="104" href="#104">104</a>         r = table.get(t, g);
+<a class="jxr_linenumber" name="105" href="#105">105</a>         assertEquals(r.getColumnCells(family, col2).size(), 0, <span class="jxr_string">"shouldn't exist in result"</span>);
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>     }
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>     @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScanWithColumnPrefixFilter(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="111" href="#111">111</a>         testScan(context, <strong class="jxr_keyword">new</strong> ColumnPrefixFilter(prefix));
+<a class="jxr_linenumber" name="112" href="#112">112</a>     }
+<a class="jxr_linenumber" name="113" href="#113">113</a> 
+<a class="jxr_linenumber" name="114" href="#114">114</a>     @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="115" href="#115">115</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScanWithValueFilter(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="116" href="#116">116</a>         testScan(context, <strong class="jxr_keyword">new</strong> ValueFilter(CompareFilter.CompareOp.EQUAL, <strong class="jxr_keyword">new</strong> BinaryComparator(col1)));
+<a class="jxr_linenumber" name="117" href="#117">117</a>     }
+<a class="jxr_linenumber" name="118" href="#118">118</a> 
+<a class="jxr_linenumber" name="119" href="#119">119</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testScan(ITestContext context, Filter f) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
+<a class="jxr_linenumber" name="122" href="#122">122</a> 
+<a class="jxr_linenumber" name="123" href="#123">123</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="124" href="#124">124</a>         hbaseOmidClientConf.getOmidClientConfiguration().setConnectionString(<span class="jxr_string">"localhost:1234"</span>);
+<a class="jxr_linenumber" name="125" href="#125">125</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="126" href="#126">126</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="127" href="#127">127</a>         PostCommitActions syncPostCommitter = spy(
+<a class="jxr_linenumber" name="128" href="#128">128</a>                 <strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), commitTableClient));
+<a class="jxr_linenumber" name="129" href="#129">129</a>         AbstractTransactionManager tm = HBaseTransactionManager.builder(hbaseOmidClientConf)
+<a class="jxr_linenumber" name="130" href="#130">130</a>                 .commitTableClient(commitTableClient)
+<a class="jxr_linenumber" name="131" href="#131">131</a>                 .postCommitter(syncPostCommitter)
+<a class="jxr_linenumber" name="132" href="#132">132</a>                 .build();
+<a class="jxr_linenumber" name="133" href="#133">133</a> 
+<a class="jxr_linenumber" name="134" href="#134">134</a>         writeRows(table, tm, syncPostCommitter);
+<a class="jxr_linenumber" name="135" href="#135">135</a> 
+<a class="jxr_linenumber" name="136" href="#136">136</a>         Transaction t = tm.begin();
+<a class="jxr_linenumber" name="137" href="#137">137</a>         Scan s = <strong class="jxr_keyword">new</strong> Scan().setFilter(f);
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>         ResultScanner rs = table.getScanner(t, s);
+<a class="jxr_linenumber" name="140" href="#140">140</a> 
+<a class="jxr_linenumber" name="141" href="#141">141</a>         Result r = rs.next();
+<a class="jxr_linenumber" name="142" href="#142">142</a>         assertEquals(r.getColumnCells(family, col1).size(), 1, <span class="jxr_string">"should exist in result"</span>);
+<a class="jxr_linenumber" name="143" href="#143">143</a>         assertEquals(r.getColumnCells(family, col2).size(), 0, <span class="jxr_string">"shouldn't exist in result"</span>);
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>         r = rs.next();
+<a class="jxr_linenumber" name="146" href="#146">146</a>         assertEquals(r.getColumnCells(family, col1).size(), 1, <span class="jxr_string">"should exist in result"</span>);
+<a class="jxr_linenumber" name="147" href="#147">147</a>         assertEquals(r.getColumnCells(family, col2).size(), 0, <span class="jxr_string">"shouldn't exist in result"</span>);
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>         r = rs.next();
+<a class="jxr_linenumber" name="150" href="#150">150</a>         assertNull(r, <span class="jxr_string">"Last row shouldn't exist"</span>);
+<a class="jxr_linenumber" name="151" href="#151">151</a> 
+<a class="jxr_linenumber" name="152" href="#152">152</a>     }
+<a class="jxr_linenumber" name="153" href="#153">153</a> 
+<a class="jxr_linenumber" name="154" href="#154">154</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeRows(TTable table, TransactionManager tm, PostCommitActions postCommitter)
+<a class="jxr_linenumber" name="155" href="#155">155</a>             <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="156" href="#156">156</a>         <em class="jxr_comment">// create normal row with both cells</em>
+<a class="jxr_linenumber" name="157" href="#157">157</a>         Transaction t = tm.begin();
+<a class="jxr_linenumber" name="158" href="#158">158</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="159" href="#159">159</a>         p.add(family, col1, col1);
+<a class="jxr_linenumber" name="160" href="#160">160</a>         p.add(family, col2, col2);
+<a class="jxr_linenumber" name="161" href="#161">161</a>         table.put(t, p);
+<a class="jxr_linenumber" name="162" href="#162">162</a>         tm.commit(t);
+<a class="jxr_linenumber" name="163" href="#163">163</a> 
+<a class="jxr_linenumber" name="164" href="#164">164</a>         <em class="jxr_comment">// create normal row, but fail to update shadow cells</em>
+<a class="jxr_linenumber" name="165" href="#165">165</a>         doAnswer(<strong class="jxr_keyword">new</strong> Answer&lt;ListenableFuture&lt;Void&gt;&gt;() {
+<a class="jxr_linenumber" name="166" href="#166">166</a>             <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; answer(InvocationOnMock invocation) {
+<a class="jxr_linenumber" name="167" href="#167">167</a>                 <em class="jxr_comment">// Do not invoke the real method</em>
+<a class="jxr_linenumber" name="168" href="#168">168</a>                 <strong class="jxr_keyword">return</strong> SettableFuture.create();
+<a class="jxr_linenumber" name="169" href="#169">169</a>             }
+<a class="jxr_linenumber" name="170" href="#170">170</a>         }).when(postCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="171" href="#171">171</a> 
+<a class="jxr_linenumber" name="172" href="#172">172</a>         t = tm.begin();
+<a class="jxr_linenumber" name="173" href="#173">173</a>         p = <strong class="jxr_keyword">new</strong> Put(row2);
+<a class="jxr_linenumber" name="174" href="#174">174</a>         p.add(family, col1, col1);
+<a class="jxr_linenumber" name="175" href="#175">175</a>         p.add(family, col2, col2);
+<a class="jxr_linenumber" name="176" href="#176">176</a>         table.put(t, p);
+<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="178" href="#178">178</a>             tm.commit(t);
+<a class="jxr_linenumber" name="179" href="#179">179</a>         } <strong class="jxr_keyword">catch</strong> (TransactionException e) {
+<a class="jxr_linenumber" name="180" href="#180">180</a>             <em class="jxr_comment">// Expected, see comment above</em>
+<a class="jxr_linenumber" name="181" href="#181">181</a>         }
+<a class="jxr_linenumber" name="182" href="#182">182</a> 
+<a class="jxr_linenumber" name="183" href="#183">183</a>         <em class="jxr_comment">// create normal row with only one cell</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a>         t = tm.begin();
+<a class="jxr_linenumber" name="185" href="#185">185</a>         p = <strong class="jxr_keyword">new</strong> Put(row3);
+<a class="jxr_linenumber" name="186" href="#186">186</a>         p.add(family, col2, col2);
+<a class="jxr_linenumber" name="187" href="#187">187</a>         table.put(t, p);
+<a class="jxr_linenumber" name="188" href="#188">188</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="189" href="#189">189</a>             tm.commit(t);
+<a class="jxr_linenumber" name="190" href="#190">190</a>         } <strong class="jxr_keyword">catch</strong> (TransactionException e) {
+<a class="jxr_linenumber" name="191" href="#191">191</a>             <em class="jxr_comment">// Expected, see comment above</em>
+<a class="jxr_linenumber" name="192" href="#192">192</a>         }
+<a class="jxr_linenumber" name="193" href="#193">193</a>     }
+<a class="jxr_linenumber" name="194" href="#194">194</a> 
+<a class="jxr_linenumber" name="195" href="#195">195</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>



[24/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/client/TestMockTSOClient.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/client/TestMockTSOClient.html b/xref-test/org/apache/omid/tso/client/TestMockTSOClient.html
index 57a0f8b..3846e24 100644
--- a/xref-test/org/apache/omid/tso/client/TestMockTSOClient.html
+++ b/xref-test/org/apache/omid/tso/client/TestMockTSOClient.html
@@ -28,60 +28,58 @@
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.tso.client;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Sets;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.InMemoryCommitTable;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.util.DummyCellIdImpl;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.InMemoryCommitTable;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.util.DummyCellIdImpl;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TestMockTSOClient.html">TestMockTSOClient</a> {
 <a class="jxr_linenumber" name="33" href="#33">33</a>  
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TestMockTSOClient.html">TestMockTSOClient</a> {
-<a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> CellId c1 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xdeadbeefL);
-<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> CellId c2 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(-0xfeedcafeL);
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConflicts() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="41" href="#41">41</a>          CommitTable commitTable = <strong class="jxr_keyword">new</strong> InMemoryCommitTable();
-<a class="jxr_linenumber" name="42" href="#42">42</a>          TSOProtocol client = <strong class="jxr_keyword">new</strong> MockTSOClient(commitTable.getWriter());
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>          <strong class="jxr_keyword">long</strong> tr1 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="45" href="#45">45</a>          <strong class="jxr_keyword">long</strong> tr2 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> CellId c1 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xdeadbeefL);
+<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> CellId c2 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(-0xfeedcafeL);
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConflicts() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="39" href="#39">39</a>          CommitTable commitTable = <strong class="jxr_keyword">new</strong> InMemoryCommitTable();
+<a class="jxr_linenumber" name="40" href="#40">40</a>          TSOProtocol client = <strong class="jxr_keyword">new</strong> MockTSOClient(commitTable.getWriter());
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>          <strong class="jxr_keyword">long</strong> tr1 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="43" href="#43">43</a>          <strong class="jxr_keyword">long</strong> tr2 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="44" href="#44">44</a>  
+<a class="jxr_linenumber" name="45" href="#45">45</a>          client.commit(tr1, Sets.newHashSet(c1)).get();
 <a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>          client.commit(tr1, Sets.newHashSet(c1), <strong class="jxr_keyword">new</strong> HashSet&lt;CellId&gt;()).get();
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="50" href="#50">50</a>              client.commit(tr2, Sets.newHashSet(c1, c2), <strong class="jxr_keyword">new</strong> HashSet&lt;CellId&gt;()).get();
-<a class="jxr_linenumber" name="51" href="#51">51</a>              fail(<span class="jxr_string">"Shouldn't have committed"</span>);
-<a class="jxr_linenumber" name="52" href="#52">52</a>          } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="53" href="#53">53</a>              assertEquals(ee.getCause().getClass(), AbortException.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"Should have aborted"</span>);
-<a class="jxr_linenumber" name="54" href="#54">54</a>          }
-<a class="jxr_linenumber" name="55" href="#55">55</a>      }
-<a class="jxr_linenumber" name="56" href="#56">56</a>  
-<a class="jxr_linenumber" name="57" href="#57">57</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWatermarkUpdate() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="59" href="#59">59</a>          CommitTable commitTable = <strong class="jxr_keyword">new</strong> InMemoryCommitTable();
-<a class="jxr_linenumber" name="60" href="#60">60</a>          TSOProtocol client = <strong class="jxr_keyword">new</strong> MockTSOClient(commitTable.getWriter());
-<a class="jxr_linenumber" name="61" href="#61">61</a>          CommitTable.Client commitTableClient = commitTable.getClient();
-<a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">long</strong> tr1 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="64" href="#64">64</a>          client.commit(tr1, Sets.newHashSet(c1), <strong class="jxr_keyword">new</strong> HashSet&lt;CellId&gt;()).get();
+<a class="jxr_linenumber" name="47" href="#47">47</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="48" href="#48">48</a>              client.commit(tr2, Sets.newHashSet(c1, c2)).get();
+<a class="jxr_linenumber" name="49" href="#49">49</a>              fail(<span class="jxr_string">"Shouldn't have committed"</span>);
+<a class="jxr_linenumber" name="50" href="#50">50</a>          } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
+<a class="jxr_linenumber" name="51" href="#51">51</a>              assertEquals(ee.getCause().getClass(), AbortException.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"Should have aborted"</span>);
+<a class="jxr_linenumber" name="52" href="#52">52</a>          }
+<a class="jxr_linenumber" name="53" href="#53">53</a>      }
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWatermarkUpdate() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="57" href="#57">57</a>          CommitTable commitTable = <strong class="jxr_keyword">new</strong> InMemoryCommitTable();
+<a class="jxr_linenumber" name="58" href="#58">58</a>          TSOProtocol client = <strong class="jxr_keyword">new</strong> MockTSOClient(commitTable.getWriter());
+<a class="jxr_linenumber" name="59" href="#59">59</a>          CommitTable.Client commitTableClient = commitTable.getClient();
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">long</strong> tr1 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="62" href="#62">62</a>          client.commit(tr1, Sets.newHashSet(c1)).get();
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">long</strong> initWatermark = commitTableClient.readLowWatermark().get();
 <a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">long</strong> initWatermark = commitTableClient.readLowWatermark().get();
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>          <strong class="jxr_keyword">long</strong> tr2 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="69" href="#69">69</a>          client.commit(tr2, Sets.newHashSet(c1), <strong class="jxr_keyword">new</strong> HashSet&lt;CellId&gt;()).get();
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">long</strong> newWatermark = commitTableClient.readLowWatermark().get();
-<a class="jxr_linenumber" name="72" href="#72">72</a>          assertTrue(newWatermark &gt; initWatermark, <span class="jxr_string">"new low watermark should be bigger"</span>);
-<a class="jxr_linenumber" name="73" href="#73">73</a>      }
-<a class="jxr_linenumber" name="74" href="#74">74</a>  }
+<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">long</strong> tr2 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="67" href="#67">67</a>          client.commit(tr2, Sets.newHashSet(c1)).get();
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <strong class="jxr_keyword">long</strong> newWatermark = commitTableClient.readLowWatermark().get();
+<a class="jxr_linenumber" name="70" href="#70">70</a>          assertTrue(newWatermark &gt; initWatermark, <span class="jxr_string">"new low watermark should be bigger"</span>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>      }
+<a class="jxr_linenumber" name="72" href="#72">72</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.html b/xref-test/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.html
index 3f20abd..38de9f0 100644
--- a/xref-test/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.html
+++ b/xref-test/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.html
@@ -29,271 +29,269 @@
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Guice;
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Injector;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFramework;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.test.TestingServer;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.utils.CloseableUtils;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.AbstractTransactionManager;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.HALeaseManagementModule;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOMockModule;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.VoidLeaseManagementModule;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.statemachine.StateMachine.FsmImpl;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.zookeeper.KeeperException.NoNodeException;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.zookeeper.data.Stat;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFramework;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.test.TestingServer;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.utils.CloseableUtils;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.HALeaseManagementModule;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOMockModule;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.VoidLeaseManagementModule;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.statemachine.StateMachine.FsmImpl;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.zookeeper.KeeperException.NoNodeException;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.zookeeper.data.Stat;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
 <a class="jxr_linenumber" name="41" href="#41">41</a>  
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNotNull;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNotNull;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TestTSOClientConnectionToTSO.html">TestTSOClientConnectionToTSO</a> {
 <a class="jxr_linenumber" name="49" href="#49">49</a>  
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TestTSOClientConnectionToTSO.html">TestTSOClientConnectionToTSO</a> {
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTSOClientConnectionToTSO.<strong class="jxr_keyword">class</strong>);
 <a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTSOClientConnectionToTSO.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="53" href="#53">53</a>  
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <em class="jxr_comment">// Constants and variables for component connectivity</em>
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_HOST = <span class="jxr_string">"localhost"</span>;
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CURRENT_TSO_PATH = <span class="jxr_string">"/current_tso_path"</span>;
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_LEASE_PATH = <span class="jxr_string">"/tso_lease_path"</span>;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> tsoPortForTest;
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> String zkClusterForTest;
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <em class="jxr_comment">// Constants and variables for component connectivity</em>
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_HOST = <span class="jxr_string">"localhost"</span>;
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CURRENT_TSO_PATH = <span class="jxr_string">"/current_tso_path"</span>;
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_LEASE_PATH = <span class="jxr_string">"/tso_lease_path"</span>;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> tsoPortForTest;
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> String zkClusterForTest;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> Injector injector = <strong class="jxr_keyword">null</strong>;
 <a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> Injector injector = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> TestingServer zkServer;
 <a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> TestingServer zkServer;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> CuratorFramework zkClient;
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> TSOServer tsoServer;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      @BeforeMethod
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeMethod() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> CuratorFramework zkClient;
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> TSOServer tsoServer;
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>      @BeforeMethod
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeMethod() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>          tsoPortForTest = TestUtils.getFreeLocalPort();
 <a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>          tsoPortForTest = TestUtils.getFreeLocalPort();
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">int</strong> zkPortForTest = TestUtils.getFreeLocalPort();
-<a class="jxr_linenumber" name="75" href="#75">75</a>          zkClusterForTest = TSO_HOST + <span class="jxr_string">":"</span> + zkPortForTest;
-<a class="jxr_linenumber" name="76" href="#76">76</a>          LOG.info(<span class="jxr_string">"Starting ZK Server in port {}"</span>, zkPortForTest);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          zkServer = TestUtils.provideTestingZKServer(zkPortForTest);
-<a class="jxr_linenumber" name="78" href="#78">78</a>          LOG.info(<span class="jxr_string">"ZK Server Started @ {}"</span>, zkServer.getConnectString());
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">int</strong> zkPortForTest = TestUtils.getFreeLocalPort();
+<a class="jxr_linenumber" name="73" href="#73">73</a>          zkClusterForTest = TSO_HOST + <span class="jxr_string">":"</span> + zkPortForTest;
+<a class="jxr_linenumber" name="74" href="#74">74</a>          LOG.info(<span class="jxr_string">"Starting ZK Server in port {}"</span>, zkPortForTest);
+<a class="jxr_linenumber" name="75" href="#75">75</a>          zkServer = TestUtils.provideTestingZKServer(zkPortForTest);
+<a class="jxr_linenumber" name="76" href="#76">76</a>          LOG.info(<span class="jxr_string">"ZK Server Started @ {}"</span>, zkServer.getConnectString());
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>          zkClient = TestUtils.provideConnectedZKClient(zkClusterForTest);
 <a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>          zkClient = TestUtils.provideConnectedZKClient(zkClusterForTest);
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>          Stat stat;
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="84" href="#84">84</a>              zkClient.delete().forPath(CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="85" href="#85">85</a>              stat = zkClient.checkExists().forPath(CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="86" href="#86">86</a>              assertNull(stat, CURRENT_TSO_PATH + <span class="jxr_string">" should not exist"</span>);
-<a class="jxr_linenumber" name="87" href="#87">87</a>          } <strong class="jxr_keyword">catch</strong> (NoNodeException e) {
-<a class="jxr_linenumber" name="88" href="#88">88</a>              LOG.info(<span class="jxr_string">"{} ZNode did not exist"</span>, CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="89" href="#89">89</a>          }
+<a class="jxr_linenumber" name="80" href="#80">80</a>          Stat stat;
+<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="82" href="#82">82</a>              zkClient.delete().forPath(CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="83" href="#83">83</a>              stat = zkClient.checkExists().forPath(CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="84" href="#84">84</a>              assertNull(stat, CURRENT_TSO_PATH + <span class="jxr_string">" should not exist"</span>);
+<a class="jxr_linenumber" name="85" href="#85">85</a>          } <strong class="jxr_keyword">catch</strong> (NoNodeException e) {
+<a class="jxr_linenumber" name="86" href="#86">86</a>              LOG.info(<span class="jxr_string">"{} ZNode did not exist"</span>, CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="87" href="#87">87</a>          }
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>      }
 <a class="jxr_linenumber" name="90" href="#90">90</a>  
-<a class="jxr_linenumber" name="91" href="#91">91</a>      }
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>      @AfterMethod
-<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterMethod() {
+<a class="jxr_linenumber" name="91" href="#91">91</a>      @AfterMethod
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterMethod() {
+<a class="jxr_linenumber" name="93" href="#93">93</a>  
+<a class="jxr_linenumber" name="94" href="#94">94</a>          zkClient.close();
 <a class="jxr_linenumber" name="95" href="#95">95</a>  
-<a class="jxr_linenumber" name="96" href="#96">96</a>          zkClient.close();
-<a class="jxr_linenumber" name="97" href="#97">97</a>  
-<a class="jxr_linenumber" name="98" href="#98">98</a>          CloseableUtils.closeQuietly(zkServer);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          zkServer = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="100" href="#100">100</a>         LOG.info(<span class="jxr_string">"ZK Server Stopped"</span>);
+<a class="jxr_linenumber" name="96" href="#96">96</a>          CloseableUtils.closeQuietly(zkServer);
+<a class="jxr_linenumber" name="97" href="#97">97</a>          zkServer = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="98" href="#98">98</a>          LOG.info(<span class="jxr_string">"ZK Server Stopped"</span>);
+<a class="jxr_linenumber" name="99" href="#99">99</a>  
+<a class="jxr_linenumber" name="100" href="#100">100</a>     }
 <a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>     }
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUnsuccessfulConnectionToTSO() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="106" href="#106">106</a> 
-<a class="jxr_linenumber" name="107" href="#107">107</a>         <em class="jxr_comment">// When no HA node for TSOServer is found &amp; no host:port config exists</em>
-<a class="jxr_linenumber" name="108" href="#108">108</a>         <em class="jxr_comment">// we should get an exception when getting the client</em>
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="110" href="#110">110</a>             TSOClient.newInstance(<strong class="jxr_keyword">new</strong> OmidClientConfiguration());
-<a class="jxr_linenumber" name="111" href="#111">111</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="112" href="#112">112</a>             <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="113" href="#113">113</a>         }
+<a class="jxr_linenumber" name="102" href="#102">102</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUnsuccessfulConnectionToTSO() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="104" href="#104">104</a> 
+<a class="jxr_linenumber" name="105" href="#105">105</a>         <em class="jxr_comment">// When no HA node for TSOServer is found &amp; no host:port config exists</em>
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <em class="jxr_comment">// we should get an exception when getting the client</em>
+<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="108" href="#108">108</a>             TSOClient.newInstance(<strong class="jxr_keyword">new</strong> OmidClientConfiguration());
+<a class="jxr_linenumber" name="109" href="#109">109</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="110" href="#110">110</a>             <em class="jxr_comment">// Expected</em>
+<a class="jxr_linenumber" name="111" href="#111">111</a>         }
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a>     }
 <a class="jxr_linenumber" name="114" href="#114">114</a> 
-<a class="jxr_linenumber" name="115" href="#115">115</a>     }
-<a class="jxr_linenumber" name="116" href="#116">116</a> 
-<a class="jxr_linenumber" name="117" href="#117">117</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="118" href="#118">118</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSuccessfulConnectionToTSOWithHostAndPort() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>         <em class="jxr_comment">// Launch a TSO WITHOUT publishing the address in HA...</em>
-<a class="jxr_linenumber" name="121" href="#121">121</a>         TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="122" href="#122">122</a>         tsoConfig.setConflictMapSize(1000);
-<a class="jxr_linenumber" name="123" href="#123">123</a>         tsoConfig.setPort(tsoPortForTest);
-<a class="jxr_linenumber" name="124" href="#124">124</a>         tsoConfig.setLeaseModule(<strong class="jxr_keyword">new</strong> VoidLeaseManagementModule());
-<a class="jxr_linenumber" name="125" href="#125">125</a>         injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(tsoConfig));
-<a class="jxr_linenumber" name="126" href="#126">126</a>         LOG.info(<span class="jxr_string">"Starting TSO"</span>);
-<a class="jxr_linenumber" name="127" href="#127">127</a>         tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="128" href="#128">128</a>         tsoServer.startAndWait();
-<a class="jxr_linenumber" name="129" href="#129">129</a>         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
-<a class="jxr_linenumber" name="130" href="#130">130</a>         LOG.info(<span class="jxr_string">"Finished loading TSO"</span>);
-<a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>         <em class="jxr_comment">// When no HA node for TSOServer is found we should get a connection</em>
-<a class="jxr_linenumber" name="133" href="#133">133</a>         <em class="jxr_comment">// to the TSO through the host:port configured...</em>
-<a class="jxr_linenumber" name="134" href="#134">134</a>         OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="135" href="#135">135</a>         tsoClientConf.setConnectionString(<span class="jxr_string">"localhost:"</span> + tsoPortForTest);
-<a class="jxr_linenumber" name="136" href="#136">136</a>         tsoClientConf.setZkCurrentTsoPath(CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="137" href="#137">137</a>         TSOClient tsoClient = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="138" href="#138">138</a> 
-<a class="jxr_linenumber" name="139" href="#139">139</a>         <em class="jxr_comment">// ... so we should get responses from the methods</em>
-<a class="jxr_linenumber" name="140" href="#140">140</a>         Long startTS = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="141" href="#141">141</a>         LOG.info(<span class="jxr_string">"Start TS {} "</span>, startTS);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         assertEquals(startTS.longValue(), AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN);
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
-<a class="jxr_linenumber" name="144" href="#144">144</a>         <em class="jxr_comment">// Close the tsoClient connection and stop the TSO Server</em>
-<a class="jxr_linenumber" name="145" href="#145">145</a>         tsoClient.close().get();
-<a class="jxr_linenumber" name="146" href="#146">146</a>         tsoServer.stopAndWait();
-<a class="jxr_linenumber" name="147" href="#147">147</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="148" href="#148">148</a>         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
-<a class="jxr_linenumber" name="149" href="#149">149</a>         LOG.info(<span class="jxr_string">"TSO Server Stopped"</span>);
+<a class="jxr_linenumber" name="115" href="#115">115</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSuccessfulConnectionToTSOWithHostAndPort() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="117" href="#117">117</a> 
+<a class="jxr_linenumber" name="118" href="#118">118</a>         <em class="jxr_comment">// Launch a TSO WITHOUT publishing the address in HA...</em>
+<a class="jxr_linenumber" name="119" href="#119">119</a>         TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="120" href="#120">120</a>         tsoConfig.setConflictMapSize(1000);
+<a class="jxr_linenumber" name="121" href="#121">121</a>         tsoConfig.setPort(tsoPortForTest);
+<a class="jxr_linenumber" name="122" href="#122">122</a>         tsoConfig.setLeaseModule(<strong class="jxr_keyword">new</strong> VoidLeaseManagementModule());
+<a class="jxr_linenumber" name="123" href="#123">123</a>         injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(tsoConfig));
+<a class="jxr_linenumber" name="124" href="#124">124</a>         LOG.info(<span class="jxr_string">"Starting TSO"</span>);
+<a class="jxr_linenumber" name="125" href="#125">125</a>         tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="126" href="#126">126</a>         tsoServer.startAndWait();
+<a class="jxr_linenumber" name="127" href="#127">127</a>         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
+<a class="jxr_linenumber" name="128" href="#128">128</a>         LOG.info(<span class="jxr_string">"Finished loading TSO"</span>);
+<a class="jxr_linenumber" name="129" href="#129">129</a> 
+<a class="jxr_linenumber" name="130" href="#130">130</a>         <em class="jxr_comment">// When no HA node for TSOServer is found we should get a connection</em>
+<a class="jxr_linenumber" name="131" href="#131">131</a>         <em class="jxr_comment">// to the TSO through the host:port configured...</em>
+<a class="jxr_linenumber" name="132" href="#132">132</a>         OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="133" href="#133">133</a>         tsoClientConf.setConnectionString(<span class="jxr_string">"localhost:"</span> + tsoPortForTest);
+<a class="jxr_linenumber" name="134" href="#134">134</a>         tsoClientConf.setZkCurrentTsoPath(CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="135" href="#135">135</a>         TSOClient tsoClient = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="136" href="#136">136</a> 
+<a class="jxr_linenumber" name="137" href="#137">137</a>         <em class="jxr_comment">// ... so we should get responses from the methods</em>
+<a class="jxr_linenumber" name="138" href="#138">138</a>         Long startTS = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="139" href="#139">139</a>         LOG.info(<span class="jxr_string">"Start TS {} "</span>, startTS);
+<a class="jxr_linenumber" name="140" href="#140">140</a>         assertEquals(startTS.longValue(), 1);
+<a class="jxr_linenumber" name="141" href="#141">141</a> 
+<a class="jxr_linenumber" name="142" href="#142">142</a>         <em class="jxr_comment">// Close the tsoClient connection and stop the TSO Server</em>
+<a class="jxr_linenumber" name="143" href="#143">143</a>         tsoClient.close().get();
+<a class="jxr_linenumber" name="144" href="#144">144</a>         tsoServer.stopAndWait();
+<a class="jxr_linenumber" name="145" href="#145">145</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="146" href="#146">146</a>         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
+<a class="jxr_linenumber" name="147" href="#147">147</a>         LOG.info(<span class="jxr_string">"TSO Server Stopped"</span>);
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>     }
 <a class="jxr_linenumber" name="150" href="#150">150</a> 
-<a class="jxr_linenumber" name="151" href="#151">151</a>     }
-<a class="jxr_linenumber" name="152" href="#152">152</a> 
-<a class="jxr_linenumber" name="153" href="#153">153</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="154" href="#154">154</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSuccessfulConnectionToTSOThroughZK() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>         <em class="jxr_comment">// Launch a TSO publishing the address in HA...</em>
-<a class="jxr_linenumber" name="157" href="#157">157</a>         TSOServerConfig config = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="158" href="#158">158</a>         config.setConflictMapSize(1000);
-<a class="jxr_linenumber" name="159" href="#159">159</a>         config.setPort(tsoPortForTest);
-<a class="jxr_linenumber" name="160" href="#160">160</a>         config.setLeaseModule(<strong class="jxr_keyword">new</strong> HALeaseManagementModule(1000, TSO_LEASE_PATH, CURRENT_TSO_PATH, zkClusterForTest, <span class="jxr_string">"omid"</span>));
-<a class="jxr_linenumber" name="161" href="#161">161</a>         injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(config));
-<a class="jxr_linenumber" name="162" href="#162">162</a>         LOG.info(<span class="jxr_string">"Starting TSO"</span>);
-<a class="jxr_linenumber" name="163" href="#163">163</a>         tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="164" href="#164">164</a>         tsoServer.startAndWait();
-<a class="jxr_linenumber" name="165" href="#165">165</a>         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
-<a class="jxr_linenumber" name="166" href="#166">166</a>         LOG.info(<span class="jxr_string">"Finished loading TSO"</span>);
+<a class="jxr_linenumber" name="151" href="#151">151</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSuccessfulConnectionToTSOThroughZK() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="153" href="#153">153</a> 
+<a class="jxr_linenumber" name="154" href="#154">154</a>         <em class="jxr_comment">// Launch a TSO publishing the address in HA...</em>
+<a class="jxr_linenumber" name="155" href="#155">155</a>         TSOServerConfig config = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="156" href="#156">156</a>         config.setConflictMapSize(1000);
+<a class="jxr_linenumber" name="157" href="#157">157</a>         config.setPort(tsoPortForTest);
+<a class="jxr_linenumber" name="158" href="#158">158</a>         config.setLeaseModule(<strong class="jxr_keyword">new</strong> HALeaseManagementModule(1000, TSO_LEASE_PATH, CURRENT_TSO_PATH, zkClusterForTest, <span class="jxr_string">"omid"</span>));
+<a class="jxr_linenumber" name="159" href="#159">159</a>         injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(config));
+<a class="jxr_linenumber" name="160" href="#160">160</a>         LOG.info(<span class="jxr_string">"Starting TSO"</span>);
+<a class="jxr_linenumber" name="161" href="#161">161</a>         tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="162" href="#162">162</a>         tsoServer.startAndWait();
+<a class="jxr_linenumber" name="163" href="#163">163</a>         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
+<a class="jxr_linenumber" name="164" href="#164">164</a>         LOG.info(<span class="jxr_string">"Finished loading TSO"</span>);
+<a class="jxr_linenumber" name="165" href="#165">165</a> 
+<a class="jxr_linenumber" name="166" href="#166">166</a>         waitTillTsoRegisters(injector.getInstance(CuratorFramework.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="167" href="#167">167</a> 
-<a class="jxr_linenumber" name="168" href="#168">168</a>         waitTillTsoRegisters(injector.getInstance(CuratorFramework.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="169" href="#169">169</a> 
-<a class="jxr_linenumber" name="170" href="#170">170</a>         <em class="jxr_comment">// When a HA node for TSOServer is found we should get a connection</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a>         OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="172" href="#172">172</a>         tsoClientConf.setConnectionType(OmidClientConfiguration.ConnType.HA);
-<a class="jxr_linenumber" name="173" href="#173">173</a>         tsoClientConf.setConnectionString(zkClusterForTest);
-<a class="jxr_linenumber" name="174" href="#174">174</a>         tsoClientConf.setZkCurrentTsoPath(CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="175" href="#175">175</a>         TSOClient tsoClient = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <em class="jxr_comment">// ... so we should get responses from the methods</em>
-<a class="jxr_linenumber" name="178" href="#178">178</a>         Long startTS = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="179" href="#179">179</a>         LOG.info(<span class="jxr_string">"Start TS {} "</span>, startTS);
-<a class="jxr_linenumber" name="180" href="#180">180</a>         assertEquals(startTS.longValue(), AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN);
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>         <em class="jxr_comment">// Close the tsoClient connection and stop the TSO Server</em>
-<a class="jxr_linenumber" name="183" href="#183">183</a>         tsoClient.close().get();
-<a class="jxr_linenumber" name="184" href="#184">184</a>         tsoServer.stopAndWait();
-<a class="jxr_linenumber" name="185" href="#185">185</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="186" href="#186">186</a>         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
-<a class="jxr_linenumber" name="187" href="#187">187</a>         LOG.info(<span class="jxr_string">"TSO Server Stopped"</span>);
+<a class="jxr_linenumber" name="168" href="#168">168</a>         <em class="jxr_comment">// When a HA node for TSOServer is found we should get a connection</em>
+<a class="jxr_linenumber" name="169" href="#169">169</a>         OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="170" href="#170">170</a>         tsoClientConf.setConnectionType(OmidClientConfiguration.ConnType.HA);
+<a class="jxr_linenumber" name="171" href="#171">171</a>         tsoClientConf.setConnectionString(zkClusterForTest);
+<a class="jxr_linenumber" name="172" href="#172">172</a>         tsoClientConf.setZkCurrentTsoPath(CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="173" href="#173">173</a>         TSOClient tsoClient = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="174" href="#174">174</a> 
+<a class="jxr_linenumber" name="175" href="#175">175</a>         <em class="jxr_comment">// ... so we should get responses from the methods</em>
+<a class="jxr_linenumber" name="176" href="#176">176</a>         Long startTS = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="177" href="#177">177</a>         LOG.info(<span class="jxr_string">"Start TS {} "</span>, startTS);
+<a class="jxr_linenumber" name="178" href="#178">178</a>         assertEquals(startTS.longValue(), 1);
+<a class="jxr_linenumber" name="179" href="#179">179</a> 
+<a class="jxr_linenumber" name="180" href="#180">180</a>         <em class="jxr_comment">// Close the tsoClient connection and stop the TSO Server</em>
+<a class="jxr_linenumber" name="181" href="#181">181</a>         tsoClient.close().get();
+<a class="jxr_linenumber" name="182" href="#182">182</a>         tsoServer.stopAndWait();
+<a class="jxr_linenumber" name="183" href="#183">183</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="184" href="#184">184</a>         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
+<a class="jxr_linenumber" name="185" href="#185">185</a>         LOG.info(<span class="jxr_string">"TSO Server Stopped"</span>);
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a>     }
 <a class="jxr_linenumber" name="188" href="#188">188</a> 
-<a class="jxr_linenumber" name="189" href="#189">189</a>     }
-<a class="jxr_linenumber" name="190" href="#190">190</a> 
-<a class="jxr_linenumber" name="191" href="#191">191</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSuccessOfTSOClientReconnectionsToARestartedTSOWithZKPublishing() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="193" href="#193">193</a> 
-<a class="jxr_linenumber" name="194" href="#194">194</a>         <em class="jxr_comment">// Start a TSO with HA...</em>
-<a class="jxr_linenumber" name="195" href="#195">195</a>         TSOServerConfig config = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="196" href="#196">196</a>         config.setConflictMapSize(1000);
-<a class="jxr_linenumber" name="197" href="#197">197</a>         config.setPort(tsoPortForTest);
-<a class="jxr_linenumber" name="198" href="#198">198</a>         config.setLeaseModule(<strong class="jxr_keyword">new</strong> HALeaseManagementModule(1000, TSO_LEASE_PATH, CURRENT_TSO_PATH, zkClusterForTest, <span class="jxr_string">"omid"</span>));
-<a class="jxr_linenumber" name="199" href="#199">199</a>         injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(config));
-<a class="jxr_linenumber" name="200" href="#200">200</a>         LOG.info(<span class="jxr_string">"Starting Initial TSO"</span>);
-<a class="jxr_linenumber" name="201" href="#201">201</a>         tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="202" href="#202">202</a>         tsoServer.startAndWait();
-<a class="jxr_linenumber" name="203" href="#203">203</a>         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
-<a class="jxr_linenumber" name="204" href="#204">204</a>         LOG.info(<span class="jxr_string">"Finished loading TSO"</span>);
+<a class="jxr_linenumber" name="189" href="#189">189</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="190" href="#190">190</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSuccessOfTSOClientReconnectionsToARestartedTSOWithZKPublishing() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="191" href="#191">191</a> 
+<a class="jxr_linenumber" name="192" href="#192">192</a>         <em class="jxr_comment">// Start a TSO with HA...</em>
+<a class="jxr_linenumber" name="193" href="#193">193</a>         TSOServerConfig config = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="194" href="#194">194</a>         config.setConflictMapSize(1000);
+<a class="jxr_linenumber" name="195" href="#195">195</a>         config.setPort(tsoPortForTest);
+<a class="jxr_linenumber" name="196" href="#196">196</a>         config.setLeaseModule(<strong class="jxr_keyword">new</strong> HALeaseManagementModule(1000, TSO_LEASE_PATH, CURRENT_TSO_PATH, zkClusterForTest, <span class="jxr_string">"omid"</span>));
+<a class="jxr_linenumber" name="197" href="#197">197</a>         injector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(config));
+<a class="jxr_linenumber" name="198" href="#198">198</a>         LOG.info(<span class="jxr_string">"Starting Initial TSO"</span>);
+<a class="jxr_linenumber" name="199" href="#199">199</a>         tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="200" href="#200">200</a>         tsoServer.startAndWait();
+<a class="jxr_linenumber" name="201" href="#201">201</a>         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
+<a class="jxr_linenumber" name="202" href="#202">202</a>         LOG.info(<span class="jxr_string">"Finished loading TSO"</span>);
+<a class="jxr_linenumber" name="203" href="#203">203</a> 
+<a class="jxr_linenumber" name="204" href="#204">204</a>         waitTillTsoRegisters(injector.getInstance(CuratorFramework.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="205" href="#205">205</a> 
-<a class="jxr_linenumber" name="206" href="#206">206</a>         waitTillTsoRegisters(injector.getInstance(CuratorFramework.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="207" href="#207">207</a> 
-<a class="jxr_linenumber" name="208" href="#208">208</a>         <em class="jxr_comment">// Then create the TSO Client under test...</em>
-<a class="jxr_linenumber" name="209" href="#209">209</a>         OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="210" href="#210">210</a>         tsoClientConf.setConnectionType(OmidClientConfiguration.ConnType.HA);
-<a class="jxr_linenumber" name="211" href="#211">211</a>         tsoClientConf.setConnectionString(zkClusterForTest);
-<a class="jxr_linenumber" name="212" href="#212">212</a>         tsoClientConf.setZkCurrentTsoPath(CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="213" href="#213">213</a>         TSOClient tsoClient = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="214" href="#214">214</a> 
-<a class="jxr_linenumber" name="215" href="#215">215</a>         <em class="jxr_comment">// ... and check that initially we get responses from the methods</em>
-<a class="jxr_linenumber" name="216" href="#216">216</a>         Long startTS = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="217" href="#217">217</a>         LOG.info(<span class="jxr_string">"Start TS {} "</span>, startTS);
-<a class="jxr_linenumber" name="218" href="#218">218</a>         assertEquals(startTS.longValue(), AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN);
-<a class="jxr_linenumber" name="219" href="#219">219</a> 
-<a class="jxr_linenumber" name="220" href="#220">220</a>         <em class="jxr_comment">// Then stop the server...</em>
-<a class="jxr_linenumber" name="221" href="#221">221</a>         tsoServer.stopAndWait();
-<a class="jxr_linenumber" name="222" href="#222">222</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="223" href="#223">223</a>         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
-<a class="jxr_linenumber" name="224" href="#224">224</a>         LOG.info(<span class="jxr_string">"Initial TSO Server Stopped"</span>);
-<a class="jxr_linenumber" name="225" href="#225">225</a> 
-<a class="jxr_linenumber" name="226" href="#226">226</a>         Thread.sleep(1500); <em class="jxr_comment">// ...allow the client to receive disconnection event...</em>
-<a class="jxr_linenumber" name="227" href="#227">227</a>         <em class="jxr_comment">// ... and check that we get a conn exception when trying to access the client</em>
-<a class="jxr_linenumber" name="228" href="#228">228</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="229" href="#229">229</a>             startTS = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="230" href="#230">230</a>             fail();
-<a class="jxr_linenumber" name="231" href="#231">231</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
-<a class="jxr_linenumber" name="232" href="#232">232</a>             LOG.info(<span class="jxr_string">"Exception expected"</span>);
-<a class="jxr_linenumber" name="233" href="#233">233</a>             <em class="jxr_comment">// Internal accessor to fsm to do the required checkings</em>
-<a class="jxr_linenumber" name="234" href="#234">234</a>             FsmImpl fsm = (FsmImpl) tsoClient.fsm;
-<a class="jxr_linenumber" name="235" href="#235">235</a>             assertEquals(e.getCause().getClass(), ConnectionException.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="236" href="#236">236</a>             assertTrue(fsm.getState().getClass().equals(TSOClient.ConnectionFailedState.<strong class="jxr_keyword">class</strong>)
-<a class="jxr_linenumber" name="237" href="#237">237</a>                                ||
-<a class="jxr_linenumber" name="238" href="#238">238</a>                                fsm.getState().getClass().equals(TSOClient.DisconnectedState.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="239" href="#239">239</a>         }
-<a class="jxr_linenumber" name="240" href="#240">240</a> 
-<a class="jxr_linenumber" name="241" href="#241">241</a>         <em class="jxr_comment">// After that, simulate that a new TSO has been launched...</em>
-<a class="jxr_linenumber" name="242" href="#242">242</a>         Injector newInjector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(config));
-<a class="jxr_linenumber" name="243" href="#243">243</a>         LOG.info(<span class="jxr_string">"Re-Starting again the TSO"</span>);
-<a class="jxr_linenumber" name="244" href="#244">244</a>         tsoServer = newInjector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="245" href="#245">245</a>         tsoServer.startAndWait();
-<a class="jxr_linenumber" name="246" href="#246">246</a>         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
-<a class="jxr_linenumber" name="247" href="#247">247</a>         LOG.info(<span class="jxr_string">"Finished loading restarted TSO"</span>);
-<a class="jxr_linenumber" name="248" href="#248">248</a> 
-<a class="jxr_linenumber" name="249" href="#249">249</a>         <em class="jxr_comment">// Finally re-check that, eventually, we can get a new value from the new TSO...</em>
-<a class="jxr_linenumber" name="250" href="#250">250</a>         <strong class="jxr_keyword">boolean</strong> reconnectionActive = false;
-<a class="jxr_linenumber" name="251" href="#251">251</a>         <strong class="jxr_keyword">while</strong> (!reconnectionActive) {
-<a class="jxr_linenumber" name="252" href="#252">252</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="253" href="#253">253</a>                 startTS = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="254" href="#254">254</a>                 reconnectionActive = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="255" href="#255">255</a>             } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
-<a class="jxr_linenumber" name="256" href="#256">256</a>                 <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="257" href="#257">257</a>             }
-<a class="jxr_linenumber" name="258" href="#258">258</a>         }
-<a class="jxr_linenumber" name="259" href="#259">259</a>         assertNotNull(startTS);
-<a class="jxr_linenumber" name="260" href="#260">260</a> 
-<a class="jxr_linenumber" name="261" href="#261">261</a>         <em class="jxr_comment">// ...and stop the server</em>
-<a class="jxr_linenumber" name="262" href="#262">262</a>         tsoServer.stopAndWait();
-<a class="jxr_linenumber" name="263" href="#263">263</a>         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
-<a class="jxr_linenumber" name="264" href="#264">264</a>         LOG.info(<span class="jxr_string">"Restarted TSO Server Stopped"</span>);
-<a class="jxr_linenumber" name="265" href="#265">265</a>     }
-<a class="jxr_linenumber" name="266" href="#266">266</a> 
-<a class="jxr_linenumber" name="267" href="#267">267</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> waitTillTsoRegisters(CuratorFramework zkClient) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="268" href="#268">268</a>         <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
-<a class="jxr_linenumber" name="269" href="#269">269</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="270" href="#270">270</a>                 Stat stat = zkClient.checkExists().forPath(CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="271" href="#271">271</a>                 <strong class="jxr_keyword">if</strong> (stat == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="272" href="#272">272</a>                     <strong class="jxr_keyword">continue</strong>;
-<a class="jxr_linenumber" name="273" href="#273">273</a>                 }
-<a class="jxr_linenumber" name="274" href="#274">274</a>                 LOG.info(<span class="jxr_string">"TSO registered in HA with path {}={}"</span>, CURRENT_TSO_PATH, stat.toString());
-<a class="jxr_linenumber" name="275" href="#275">275</a>                 <strong class="jxr_keyword">if</strong> (stat.toString().length() == 0) {
-<a class="jxr_linenumber" name="276" href="#276">276</a>                     <strong class="jxr_keyword">continue</strong>;
-<a class="jxr_linenumber" name="277" href="#277">277</a>                 }
-<a class="jxr_linenumber" name="278" href="#278">278</a>                 <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="279" href="#279">279</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="280" href="#280">280</a>                 LOG.debug(<span class="jxr_string">"TSO still has not registered yet, sleeping..."</span>, e);
-<a class="jxr_linenumber" name="281" href="#281">281</a>                 Thread.sleep(500);
-<a class="jxr_linenumber" name="282" href="#282">282</a>             }
-<a class="jxr_linenumber" name="283" href="#283">283</a>         }
-<a class="jxr_linenumber" name="284" href="#284">284</a>     }
-<a class="jxr_linenumber" name="285" href="#285">285</a> 
-<a class="jxr_linenumber" name="286" href="#286">286</a> }
+<a class="jxr_linenumber" name="206" href="#206">206</a>         <em class="jxr_comment">// Then create the TSO Client under test...</em>
+<a class="jxr_linenumber" name="207" href="#207">207</a>         OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="208" href="#208">208</a>         tsoClientConf.setConnectionType(OmidClientConfiguration.ConnType.HA);
+<a class="jxr_linenumber" name="209" href="#209">209</a>         tsoClientConf.setConnectionString(zkClusterForTest);
+<a class="jxr_linenumber" name="210" href="#210">210</a>         tsoClientConf.setZkCurrentTsoPath(CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="211" href="#211">211</a>         TSOClient tsoClient = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="212" href="#212">212</a> 
+<a class="jxr_linenumber" name="213" href="#213">213</a>         <em class="jxr_comment">// ... and check that initially we get responses from the methods</em>
+<a class="jxr_linenumber" name="214" href="#214">214</a>         Long startTS = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="215" href="#215">215</a>         LOG.info(<span class="jxr_string">"Start TS {} "</span>, startTS);
+<a class="jxr_linenumber" name="216" href="#216">216</a>         assertEquals(startTS.longValue(), 1);
+<a class="jxr_linenumber" name="217" href="#217">217</a> 
+<a class="jxr_linenumber" name="218" href="#218">218</a>         <em class="jxr_comment">// Then stop the server...</em>
+<a class="jxr_linenumber" name="219" href="#219">219</a>         tsoServer.stopAndWait();
+<a class="jxr_linenumber" name="220" href="#220">220</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="221" href="#221">221</a>         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
+<a class="jxr_linenumber" name="222" href="#222">222</a>         LOG.info(<span class="jxr_string">"Initial TSO Server Stopped"</span>);
+<a class="jxr_linenumber" name="223" href="#223">223</a> 
+<a class="jxr_linenumber" name="224" href="#224">224</a>         Thread.sleep(1500); <em class="jxr_comment">// ...allow the client to receive disconnection event...</em>
+<a class="jxr_linenumber" name="225" href="#225">225</a>         <em class="jxr_comment">// ... and check that we get a conn exception when trying to access the client</em>
+<a class="jxr_linenumber" name="226" href="#226">226</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="227" href="#227">227</a>             startTS = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="228" href="#228">228</a>             fail();
+<a class="jxr_linenumber" name="229" href="#229">229</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
+<a class="jxr_linenumber" name="230" href="#230">230</a>             LOG.info(<span class="jxr_string">"Exception expected"</span>);
+<a class="jxr_linenumber" name="231" href="#231">231</a>             <em class="jxr_comment">// Internal accessor to fsm to do the required checkings</em>
+<a class="jxr_linenumber" name="232" href="#232">232</a>             FsmImpl fsm = (FsmImpl) tsoClient.fsm;
+<a class="jxr_linenumber" name="233" href="#233">233</a>             assertEquals(e.getCause().getClass(), ConnectionException.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="234" href="#234">234</a>             assertTrue(fsm.getState().getClass().equals(TSOClient.ConnectionFailedState.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="235" href="#235">235</a>                                ||
+<a class="jxr_linenumber" name="236" href="#236">236</a>                                fsm.getState().getClass().equals(TSOClient.DisconnectedState.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="237" href="#237">237</a>         }
+<a class="jxr_linenumber" name="238" href="#238">238</a> 
+<a class="jxr_linenumber" name="239" href="#239">239</a>         <em class="jxr_comment">// After that, simulate that a new TSO has been launched...</em>
+<a class="jxr_linenumber" name="240" href="#240">240</a>         Injector newInjector = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(config));
+<a class="jxr_linenumber" name="241" href="#241">241</a>         LOG.info(<span class="jxr_string">"Re-Starting again the TSO"</span>);
+<a class="jxr_linenumber" name="242" href="#242">242</a>         tsoServer = newInjector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="243" href="#243">243</a>         tsoServer.startAndWait();
+<a class="jxr_linenumber" name="244" href="#244">244</a>         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
+<a class="jxr_linenumber" name="245" href="#245">245</a>         LOG.info(<span class="jxr_string">"Finished loading restarted TSO"</span>);
+<a class="jxr_linenumber" name="246" href="#246">246</a> 
+<a class="jxr_linenumber" name="247" href="#247">247</a>         <em class="jxr_comment">// Finally re-check that, eventually, we can get a new value from the new TSO...</em>
+<a class="jxr_linenumber" name="248" href="#248">248</a>         <strong class="jxr_keyword">boolean</strong> reconnectionActive = false;
+<a class="jxr_linenumber" name="249" href="#249">249</a>         <strong class="jxr_keyword">while</strong> (!reconnectionActive) {
+<a class="jxr_linenumber" name="250" href="#250">250</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="251" href="#251">251</a>                 startTS = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="252" href="#252">252</a>                 reconnectionActive = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="253" href="#253">253</a>             } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
+<a class="jxr_linenumber" name="254" href="#254">254</a>                 <em class="jxr_comment">// Expected</em>
+<a class="jxr_linenumber" name="255" href="#255">255</a>             }
+<a class="jxr_linenumber" name="256" href="#256">256</a>         }
+<a class="jxr_linenumber" name="257" href="#257">257</a>         assertNotNull(startTS);
+<a class="jxr_linenumber" name="258" href="#258">258</a> 
+<a class="jxr_linenumber" name="259" href="#259">259</a>         <em class="jxr_comment">// ...and stop the server</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a>         tsoServer.stopAndWait();
+<a class="jxr_linenumber" name="261" href="#261">261</a>         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
+<a class="jxr_linenumber" name="262" href="#262">262</a>         LOG.info(<span class="jxr_string">"Restarted TSO Server Stopped"</span>);
+<a class="jxr_linenumber" name="263" href="#263">263</a>     }
+<a class="jxr_linenumber" name="264" href="#264">264</a> 
+<a class="jxr_linenumber" name="265" href="#265">265</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> waitTillTsoRegisters(CuratorFramework zkClient) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="266" href="#266">266</a>         <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
+<a class="jxr_linenumber" name="267" href="#267">267</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="268" href="#268">268</a>                 Stat stat = zkClient.checkExists().forPath(CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="269" href="#269">269</a>                 <strong class="jxr_keyword">if</strong> (stat == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="270" href="#270">270</a>                     <strong class="jxr_keyword">continue</strong>;
+<a class="jxr_linenumber" name="271" href="#271">271</a>                 }
+<a class="jxr_linenumber" name="272" href="#272">272</a>                 LOG.info(<span class="jxr_string">"TSO registered in HA with path {}={}"</span>, CURRENT_TSO_PATH, stat.toString());
+<a class="jxr_linenumber" name="273" href="#273">273</a>                 <strong class="jxr_keyword">if</strong> (stat.toString().length() == 0) {
+<a class="jxr_linenumber" name="274" href="#274">274</a>                     <strong class="jxr_keyword">continue</strong>;
+<a class="jxr_linenumber" name="275" href="#275">275</a>                 }
+<a class="jxr_linenumber" name="276" href="#276">276</a>                 <strong class="jxr_keyword">return</strong>;
+<a class="jxr_linenumber" name="277" href="#277">277</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="278" href="#278">278</a>                 LOG.debug(<span class="jxr_string">"TSO still has not registered yet, sleeping..."</span>, e);
+<a class="jxr_linenumber" name="279" href="#279">279</a>                 Thread.sleep(500);
+<a class="jxr_linenumber" name="280" href="#280">280</a>             }
+<a class="jxr_linenumber" name="281" href="#281">281</a>         }
+<a class="jxr_linenumber" name="282" href="#282">282</a>     }
+<a class="jxr_linenumber" name="283" href="#283">283</a> 
+<a class="jxr_linenumber" name="284" href="#284">284</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[47/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index a83f4cd..94e64a1 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -194,7 +194,7 @@
       <div id="breadcrumbs">
         <ul class="breadcrumb">
               
-                  <li id="projectVersion">Version: 0.8.2.11-SNAPSHOT
+                  <li id="projectVersion">Version: 0.9.1.0-SNAPSHOT
                     </li>
               
               
@@ -219,9 +219,9 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>149</td>
+<td>139</td>
 <td>0</td>
-<td>1292</td>
+<td>939</td>
 <td>0</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
@@ -232,19 +232,9 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;W</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;E</th></tr>
 <tr class="b">
-<td><a href="#org.apache.hadoop.hbase.coprocessor.BaseRegionObserver.java">org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java</a></td>
+<td><a href="#org.apache.hadoop.hbase.regionserver.ScannerContext.java">org/apache/hadoop/hbase/regionserver/ScannerContext.java</a></td>
 <td>0</td>
-<td>3</td>
-<td>0</td></tr>
-<tr class="a">
-<td><a href="#org.apache.hadoop.hbase.regionserver.CompactorScanner.java">org/apache/hadoop/hbase/regionserver/CompactorScanner.java</a></td>
-<td>0</td>
-<td>19</td>
-<td>0</td></tr>
-<tr class="b">
-<td><a href="#org.apache.hadoop.hbase.regionserver.RegionAccessWrapper.java">org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.java</a></td>
-<td>0</td>
-<td>8</td>
+<td>1</td>
 <td>0</td></tr>
 <tr class="a">
 <td><a href="#org.apache.omid.HBaseConfigModule.java">org/apache/omid/HBaseConfigModule.java</a></td>
@@ -254,322 +244,322 @@
 <tr class="b">
 <td><a href="#org.apache.omid.HBaseShims.java">org/apache/omid/HBaseShims.java</a></td>
 <td>0</td>
-<td>26</td>
+<td>21</td>
 <td>0</td></tr>
 <tr class="a">
 <td><a href="#org.apache.omid.NetworkUtils.java">org/apache/omid/NetworkUtils.java</a></td>
 <td>0</td>
-<td>2</td>
+<td>6</td>
 <td>0</td></tr>
 <tr class="b">
-<td><a href="#org.apache.omid.OmidFilterBase.java">org/apache/omid/OmidFilterBase.java</a></td>
+<td><a href="#org.apache.omid.ReflectionHelper.java">org/apache/omid/ReflectionHelper.java</a></td>
 <td>0</td>
-<td>4</td>
+<td>3</td>
 <td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.YAMLUtils.java">org/apache/omid/YAMLUtils.java</a></td>
+<td><a href="#org.apache.omid.RegionWrapper.java">org/apache/omid/RegionWrapper.java</a></td>
 <td>0</td>
-<td>5</td>
+<td>10</td>
 <td>0</td></tr>
 <tr class="b">
+<td><a href="#org.apache.omid.YAMLUtils.java">org/apache/omid/YAMLUtils.java</a></td>
+<td>0</td>
+<td>8</td>
+<td>0</td></tr>
+<tr class="a">
 <td><a href="#org.apache.omid.benchmarks.hbase.HBaseCommitTableTester.java">org/apache/omid/benchmarks/hbase/HBaseCommitTableTester.java</a></td>
 <td>0</td>
 <td>6</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.benchmarks.tso.RawTxRunner.java">org/apache/omid/benchmarks/tso/RawTxRunner.java</a></td>
 <td>0</td>
 <td>12</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.benchmarks.tso.TSOServerBenchmark.java">org/apache/omid/benchmarks/tso/TSOServerBenchmark.java</a></td>
 <td>0</td>
 <td>6</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.benchmarks.tso.TSOServerBenchmarkConfig.java">org/apache/omid/benchmarks/tso/TSOServerBenchmarkConfig.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.benchmarks.utils.Generator.java">org/apache/omid/benchmarks/utils/Generator.java</a></td>
 <td>0</td>
 <td>5</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.benchmarks.utils.IntegerGenerator.java">org/apache/omid/benchmarks/utils/IntegerGenerator.java</a></td>
 <td>0</td>
 <td>12</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.benchmarks.utils.ScrambledZipfianGenerator.java">org/apache/omid/benchmarks/utils/ScrambledZipfianGenerator.java</a></td>
 <td>0</td>
 <td>28</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.benchmarks.utils.UniformGenerator.java">org/apache/omid/benchmarks/utils/UniformGenerator.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.benchmarks.utils.ZipfianGenerator.java">org/apache/omid/benchmarks/utils/ZipfianGenerator.java</a></td>
 <td>0</td>
 <td>58</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.committable.CommitTable.java">org/apache/omid/committable/CommitTable.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.committable.InMemoryCommitTable.java">org/apache/omid/committable/InMemoryCommitTable.java</a></td>
 <td>0</td>
 <td>6</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.committable.NullCommitTable.java">org/apache/omid/committable/NullCommitTable.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.committable.hbase.DefaultHBaseCommitTableStorageModule.java">org/apache/omid/committable/hbase/DefaultHBaseCommitTableStorageModule.java</a></td>
 <td>0</td>
 <td>3</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.committable.hbase.HBaseCommitTable.java">org/apache/omid/committable/hbase/HBaseCommitTable.java</a></td>
 <td>0</td>
-<td>39</td>
+<td>34</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.committable.hbase.HBaseCommitTableConfig.java">org/apache/omid/committable/hbase/HBaseCommitTableConfig.java</a></td>
 <td>0</td>
 <td>3</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.committable.hbase.HBaseCommitTableStorageModule.java">org/apache/omid/committable/hbase/HBaseCommitTableStorageModule.java</a></td>
 <td>0</td>
 <td>3</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.committable.hbase.KeyGenerator.java">org/apache/omid/committable/hbase/KeyGenerator.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.committable.hbase.KeyGeneratorImplementations.java">org/apache/omid/committable/hbase/KeyGeneratorImplementations.java</a></td>
 <td>0</td>
 <td>3</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.committable.hbase.RegionSplitter.java">org/apache/omid/committable/hbase/RegionSplitter.java</a></td>
 <td>0</td>
 <td>10</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.examples.BasicExample.java">org/apache/omid/examples/BasicExample.java</a></td>
 <td>0</td>
-<td>12</td>
+<td>15</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.examples.ConfigurationExample.java">org/apache/omid/examples/ConfigurationExample.java</a></td>
 <td>0</td>
-<td>8</td>
+<td>11</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.examples.ParallelExecution.java">org/apache/omid/examples/ParallelExecution.java</a></td>
 <td>0</td>
 <td>7</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.examples.RowIdGenerator.java">org/apache/omid/examples/RowIdGenerator.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.examples.SnapshotIsolationExample.java">org/apache/omid/examples/SnapshotIsolationExample.java</a></td>
 <td>0</td>
-<td>28</td>
+<td>14</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.metrics.AbstractMetricsConfig.java">org/apache/omid/metrics/AbstractMetricsConfig.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.metrics.CodahaleMetricsConfig.java">org/apache/omid/metrics/CodahaleMetricsConfig.java</a></td>
 <td>0</td>
 <td>3</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.metrics.CodahaleMetricsProvider.java">org/apache/omid/metrics/CodahaleMetricsProvider.java</a></td>
 <td>0</td>
 <td>9</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.metrics.Counter.java">org/apache/omid/metrics/Counter.java</a></td>
 <td>0</td>
 <td>3</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.metrics.Gauge.java">org/apache/omid/metrics/Gauge.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.metrics.Histogram.java">org/apache/omid/metrics/Histogram.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.metrics.Meter.java">org/apache/omid/metrics/Meter.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.metrics.Metric.java">org/apache/omid/metrics/Metric.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.metrics.MetricsProvider.java">org/apache/omid/metrics/MetricsProvider.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.metrics.MetricsRegistry.java">org/apache/omid/metrics/MetricsRegistry.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.metrics.MetricsRegistryMap.java">org/apache/omid/metrics/MetricsRegistryMap.java</a></td>
 <td>0</td>
 <td>8</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.metrics.MetricsUtils.java">org/apache/omid/metrics/MetricsUtils.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.metrics.NullMetricsProvider.java">org/apache/omid/metrics/NullMetricsProvider.java</a></td>
 <td>0</td>
 <td>4</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.metrics.Timer.java">org/apache/omid/metrics/Timer.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.timestamp.storage.DefaultHBaseTimestampStorageModule.java">org/apache/omid/timestamp/storage/DefaultHBaseTimestampStorageModule.java</a></td>
 <td>0</td>
 <td>6</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.timestamp.storage.DefaultZKTimestampStorageModule.java">org/apache/omid/timestamp/storage/DefaultZKTimestampStorageModule.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.timestamp.storage.HBaseTimestampStorage.java">org/apache/omid/timestamp/storage/HBaseTimestampStorage.java</a></td>
 <td>0</td>
-<td>4</td>
+<td>3</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.java">org/apache/omid/timestamp/storage/HBaseTimestampStorageConfig.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.timestamp.storage.HBaseTimestampStorageModule.java">org/apache/omid/timestamp/storage/HBaseTimestampStorageModule.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.timestamp.storage.TimestampStorage.java">org/apache/omid/timestamp/storage/TimestampStorage.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.timestamp.storage.ZKModule.java">org/apache/omid/timestamp/storage/ZKModule.java</a></td>
 <td>0</td>
 <td>7</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.timestamp.storage.ZKTimestampPaths.java">org/apache/omid/timestamp/storage/ZKTimestampPaths.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.timestamp.storage.ZKTimestampStorage.java">org/apache/omid/timestamp/storage/ZKTimestampStorage.java</a></td>
 <td>0</td>
 <td>3</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.timestamp.storage.ZKTimestampStorageModule.java">org/apache/omid/timestamp/storage/ZKTimestampStorageModule.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tools.hbase.HBaseLogin.java">org/apache/omid/tools/hbase/HBaseLogin.java</a></td>
 <td>0</td>
-<td>2</td>
+<td>4</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tools.hbase.OmidTableManager.java">org/apache/omid/tools/hbase/OmidTableManager.java</a></td>
 <td>0</td>
-<td>31</td>
+<td>8</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tools.hbase.SecureHBaseConfig.java">org/apache/omid/tools/hbase/SecureHBaseConfig.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.transaction.AbstractTransaction.java">org/apache/omid/transaction/AbstractTransaction.java</a></td>
 <td>0</td>
-<td>25</td>
+<td>6</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.transaction.AbstractTransactionManager.java">org/apache/omid/transaction/AbstractTransactionManager.java</a></td>
 <td>0</td>
 <td>17</td>
 <td>0</td></tr>
-<tr class="a">
-<td><a href="#org.apache.omid.transaction.AttributeSetSnapshotFilter.java">org/apache/omid/transaction/AttributeSetSnapshotFilter.java</a></td>
-<td>0</td>
-<td>14</td>
-<td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.transaction.CellInfo.java">org/apache/omid/transaction/CellInfo.java</a></td>
 <td>0</td>
 <td>3</td>
 <td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.transaction.CellSkipFilterBase.java">org/apache/omid/transaction/CellSkipFilterBase.java</a></td>
-<td>0</td>
-<td>2</td>
-<td>0</td></tr>
-<tr class="b">
 <td><a href="#org.apache.omid.transaction.CellUtils.java">org/apache/omid/transaction/CellUtils.java</a></td>
 <td>0</td>
-<td>26</td>
+<td>8</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.transaction.ColumnWrapper.java">org/apache/omid/transaction/ColumnWrapper.java</a></td>
 <td>0</td>
 <td>5</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.transaction.CommitTimestampLocator.java">org/apache/omid/transaction/CommitTimestampLocator.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
+<tr class="b">
+<td><a href="#org.apache.omid.transaction.CompactorScanner.java">org/apache/omid/transaction/CompactorScanner.java</a></td>
+<td>0</td>
+<td>19</td>
+<td>0</td></tr>
 <tr class="a">
 <td><a href="#org.apache.omid.transaction.CompactorUtil.java">org/apache/omid/transaction/CompactorUtil.java</a></td>
 <td>0</td>
-<td>6</td>
+<td>11</td>
 <td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.transaction.HBaseAsyncPostCommitter.java">org/apache/omid/transaction/HBaseAsyncPostCommitter.java</a></td>
@@ -579,7 +569,7 @@
 <tr class="a">
 <td><a href="#org.apache.omid.transaction.HBaseCellId.java">org/apache/omid/transaction/HBaseCellId.java</a></td>
 <td>0</td>
-<td>3</td>
+<td>6</td>
 <td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.transaction.HBaseOmidClientConfiguration.java">org/apache/omid/transaction/HBaseOmidClientConfiguration.java</a></td>
@@ -589,22 +579,22 @@
 <tr class="a">
 <td><a href="#org.apache.omid.transaction.HBaseSyncPostCommitter.java">org/apache/omid/transaction/HBaseSyncPostCommitter.java</a></td>
 <td>0</td>
-<td>12</td>
+<td>6</td>
 <td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.transaction.HBaseTransaction.java">org/apache/omid/transaction/HBaseTransaction.java</a></td>
 <td>0</td>
-<td>9</td>
+<td>2</td>
 <td>0</td></tr>
 <tr class="a">
 <td><a href="#org.apache.omid.transaction.HBaseTransactionClient.java">org/apache/omid/transaction/HBaseTransactionClient.java</a></td>
 <td>0</td>
-<td>1</td>
+<td>2</td>
 <td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.transaction.HBaseTransactionManager.java">org/apache/omid/transaction/HBaseTransactionManager.java</a></td>
 <td>0</td>
-<td>31</td>
+<td>17</td>
 <td>0</td></tr>
 <tr class="a">
 <td><a href="#org.apache.omid.transaction.HRegionCellGetterAdapter.java">org/apache/omid/transaction/HRegionCellGetterAdapter.java</a></td>
@@ -612,19 +602,9 @@
 <td>6</td>
 <td>0</td></tr>
 <tr class="b">
-<td><a href="#org.apache.omid.transaction.HTableAccessWrapper.java">org/apache/omid/transaction/HTableAccessWrapper.java</a></td>
-<td>0</td>
-<td>7</td>
-<td>0</td></tr>
-<tr class="a">
 <td><a href="#org.apache.omid.transaction.OmidCompactor.java">org/apache/omid/transaction/OmidCompactor.java</a></td>
 <td>0</td>
-<td>18</td>
-<td>0</td></tr>
-<tr class="b">
-<td><a href="#org.apache.omid.transaction.OmidSnapshotFilter.java">org/apache/omid/transaction/OmidSnapshotFilter.java</a></td>
-<td>0</td>
-<td>26</td>
+<td>19</td>
 <td>0</td></tr>
 <tr class="a">
 <td><a href="#org.apache.omid.transaction.PostCommitActions.java">org/apache/omid/transaction/PostCommitActions.java</a></td>
@@ -637,19 +617,9 @@
 <td>1</td>
 <td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.transaction.SnapshotFilter.java">org/apache/omid/transaction/SnapshotFilter.java</a></td>
-<td>0</td>
-<td>11</td>
-<td>0</td></tr>
-<tr class="b">
-<td><a href="#org.apache.omid.transaction.SnapshotFilterImpl.java">org/apache/omid/transaction/SnapshotFilterImpl.java</a></td>
-<td>0</td>
-<td>73</td>
-<td>0</td></tr>
-<tr class="a">
 <td><a href="#org.apache.omid.transaction.TTable.java">org/apache/omid/transaction/TTable.java</a></td>
 <td>0</td>
-<td>62</td>
+<td>18</td>
 <td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.transaction.TTableCellGetterAdapter.java">org/apache/omid/transaction/TTableCellGetterAdapter.java</a></td>
@@ -657,29 +627,19 @@
 <td>3</td>
 <td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.transaction.TableAccessWrapper.java">org/apache/omid/transaction/TableAccessWrapper.java</a></td>
-<td>0</td>
-<td>5</td>
-<td>0</td></tr>
-<tr class="b">
 <td><a href="#org.apache.omid.transaction.Transaction.java">org/apache/omid/transaction/Transaction.java</a></td>
 <td>0</td>
 <td>7</td>
 <td>0</td></tr>
-<tr class="a">
-<td><a href="#org.apache.omid.transaction.TransactionException.java">org/apache/omid/transaction/TransactionException.java</a></td>
-<td>0</td>
-<td>2</td>
-<td>0</td></tr>
 <tr class="b">
-<td><a href="#org.apache.omid.transaction.TransactionFilters.java">org/apache/omid/transaction/TransactionFilters.java</a></td>
+<td><a href="#org.apache.omid.transaction.TransactionException.java">org/apache/omid/transaction/TransactionException.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
 <tr class="a">
 <td><a href="#org.apache.omid.transaction.TransactionManager.java">org/apache/omid/transaction/TransactionManager.java</a></td>
 <td>0</td>
-<td>5</td>
+<td>4</td>
 <td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.transaction.TransactionManagerException.java">org/apache/omid/transaction/TransactionManagerException.java</a></td>
@@ -687,210 +647,200 @@
 <td>2</td>
 <td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.transaction.TransactionVisibilityFilterBase.java">org/apache/omid/transaction/TransactionVisibilityFilterBase.java</a></td>
+<td><a href="#org.apache.omid.tso.Batch.java">org/apache/omid/tso/Batch.java</a></td>
 <td>0</td>
 <td>10</td>
 <td>0</td></tr>
 <tr class="b">
-<td><a href="#org.apache.omid.tso.Batch.java">org/apache/omid/tso/Batch.java</a></td>
-<td>0</td>
-<td>12</td>
-<td>0</td></tr>
-<tr class="a">
 <td><a href="#org.apache.omid.tso.BatchPoolModule.java">org/apache/omid/tso/BatchPoolModule.java</a></td>
 <td>0</td>
-<td>4</td>
+<td>5</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.CacheEvaluation.java">org/apache/omid/tso/CacheEvaluation.java</a></td>
 <td>0</td>
 <td>9</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.CommitHashMap.java">org/apache/omid/tso/CommitHashMap.java</a></td>
 <td>0</td>
 <td>5</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.DisruptorModule.java">org/apache/omid/tso/DisruptorModule.java</a></td>
 <td>0</td>
 <td>13</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.FatalExceptionHandler.java">org/apache/omid/tso/FatalExceptionHandler.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.HALeaseManagementModule.java">org/apache/omid/tso/HALeaseManagementModule.java</a></td>
 <td>0</td>
 <td>4</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.InMemoryCommitTableStorageModule.java">org/apache/omid/tso/InMemoryCommitTableStorageModule.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.InMemoryTimestampStorageModule.java">org/apache/omid/tso/InMemoryTimestampStorageModule.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.LeaseManagement.java">org/apache/omid/tso/LeaseManagement.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.LeaseManager.java">org/apache/omid/tso/LeaseManager.java</a></td>
 <td>0</td>
 <td>7</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.LongCache.java">org/apache/omid/tso/LongCache.java</a></td>
 <td>0</td>
 <td>4</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.MockPanicker.java">org/apache/omid/tso/MockPanicker.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.MonitoringContext.java">org/apache/omid/tso/MonitoringContext.java</a></td>
 <td>0</td>
 <td>11</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.NetworkInterfaceUtils.java">org/apache/omid/tso/NetworkInterfaceUtils.java</a></td>
 <td>0</td>
 <td>4</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.Panicker.java">org/apache/omid/tso/Panicker.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
-<td><a href="#org.apache.omid.tso.PersistEvent.java">org/apache/omid/tso/PersistEvent.java</a></td>
-<td>0</td>
-<td>7</td>
-<td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.tso.PersistenceProcessor.java">org/apache/omid/tso/PersistenceProcessor.java</a></td>
+<td><a href="#org.apache.omid.tso.PersistEvent.java">org/apache/omid/tso/PersistEvent.java</a></td>
 <td>0</td>
 <td>6</td>
 <td>0</td></tr>
 <tr class="b">
-<td><a href="#org.apache.omid.tso.PersistenceProcessorHandler.java">org/apache/omid/tso/PersistenceProcessorHandler.java</a></td>
+<td><a href="#org.apache.omid.tso.PersistenceProcessor.java">org/apache/omid/tso/PersistenceProcessor.java</a></td>
 <td>0</td>
-<td>11</td>
+<td>5</td>
 <td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.tso.PersistenceProcessorImpl.java">org/apache/omid/tso/PersistenceProcessorImpl.java</a></td>
+<td><a href="#org.apache.omid.tso.PersistenceProcessorHandler.java">org/apache/omid/tso/PersistenceProcessorHandler.java</a></td>
 <td>0</td>
-<td>23</td>
+<td>15</td>
 <td>0</td></tr>
 <tr class="b">
-<td><a href="#org.apache.omid.tso.ReplyProcessor.java">org/apache/omid/tso/ReplyProcessor.java</a></td>
+<td><a href="#org.apache.omid.tso.PersistenceProcessorImpl.java">org/apache/omid/tso/PersistenceProcessorImpl.java</a></td>
 <td>0</td>
-<td>2</td>
+<td>21</td>
 <td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.tso.ReplyProcessorImpl.java">org/apache/omid/tso/ReplyProcessorImpl.java</a></td>
+<td><a href="#org.apache.omid.tso.ReplyProcessor.java">org/apache/omid/tso/ReplyProcessor.java</a></td>
 <td>0</td>
-<td>15</td>
+<td>1</td>
 <td>0</td></tr>
 <tr class="b">
-<td><a href="#org.apache.omid.tso.RequestProcessor.java">org/apache/omid/tso/RequestProcessor.java</a></td>
+<td><a href="#org.apache.omid.tso.ReplyProcessorImpl.java">org/apache/omid/tso/ReplyProcessorImpl.java</a></td>
 <td>0</td>
-<td>5</td>
+<td>14</td>
 <td>0</td></tr>
 <tr class="a">
-<td><a href="#org.apache.omid.tso.RequestProcessorImpl.java">org/apache/omid/tso/RequestProcessorImpl.java</a></td>
+<td><a href="#org.apache.omid.tso.RequestProcessor.java">org/apache/omid/tso/RequestProcessor.java</a></td>
 <td>0</td>
-<td>45</td>
+<td>4</td>
 <td>0</td></tr>
 <tr class="b">
+<td><a href="#org.apache.omid.tso.RequestProcessorImpl.java">org/apache/omid/tso/RequestProcessorImpl.java</a></td>
+<td>0</td>
+<td>32</td>
+<td>0</td></tr>
+<tr class="a">
 <td><a href="#org.apache.omid.tso.RetryProcessor.java">org/apache/omid/tso/RetryProcessor.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.RetryProcessorImpl.java">org/apache/omid/tso/RetryProcessorImpl.java</a></td>
 <td>0</td>
 <td>18</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.RuntimeExceptionPanicker.java">org/apache/omid/tso/RuntimeExceptionPanicker.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.SystemExitPanicker.java">org/apache/omid/tso/SystemExitPanicker.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.TSOChannelHandler.java">org/apache/omid/tso/TSOChannelHandler.java</a></td>
 <td>0</td>
 <td>20</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.TSOModule.java">org/apache/omid/tso/TSOModule.java</a></td>
 <td>0</td>
 <td>5</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.TSOServer.java">org/apache/omid/tso/TSOServer.java</a></td>
 <td>0</td>
-<td>4</td>
+<td>3</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.TSOServerConfig.java">org/apache/omid/tso/TSOServerConfig.java</a></td>
 <td>0</td>
-<td>7</td>
+<td>4</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.TSOStateManager.java">org/apache/omid/tso/TSOStateManager.java</a></td>
 <td>0</td>
 <td>10</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.TSOStateManagerImpl.java">org/apache/omid/tso/TSOStateManagerImpl.java</a></td>
 <td>0</td>
 <td>5</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.TimestampOracle.java">org/apache/omid/tso/TimestampOracle.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.TimestampOracleImpl.java">org/apache/omid/tso/TimestampOracleImpl.java</a></td>
 <td>0</td>
-<td>6</td>
+<td>7</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.TsoServerDaemon.java">org/apache/omid/tso/TsoServerDaemon.java</a></td>
 <td>0</td>
 <td>2</td>
 <td>0</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.omid.tso.VoidLeaseManagementModule.java">org/apache/omid/tso/VoidLeaseManagementModule.java</a></td>
 <td>0</td>
 <td>4</td>
 <td>0</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.omid.tso.VoidLeaseManager.java">org/apache/omid/tso/VoidLeaseManager.java</a></td>
 <td>0</td>
 <td>1</td>
 <td>0</td></tr>
-<tr class="a">
-<td><a href="#org.apache.omid.tso.WorldClockOracleImpl.java">org/apache/omid/tso/WorldClockOracleImpl.java</a></td>
-<td>0</td>
-<td>15</td>
-<td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.tso.client.AbortException.java">org/apache/omid/tso/client/AbortException.java</a></td>
 <td>0</td>
@@ -924,7 +874,7 @@
 <tr class="b">
 <td><a href="#org.apache.omid.tso.client.MockTSOClient.java">org/apache/omid/tso/client/MockTSOClient.java</a></td>
 <td>0</td>
-<td>9</td>
+<td>5</td>
 <td>0</td></tr>
 <tr class="a">
 <td><a href="#org.apache.omid.tso.client.OmidClientConfiguration.java">org/apache/omid/tso/client/OmidClientConfiguration.java</a></td>
@@ -939,7 +889,7 @@
 <tr class="a">
 <td><a href="#org.apache.omid.tso.client.TSOClient.java">org/apache/omid/tso/client/TSOClient.java</a></td>
 <td>0</td>
-<td>80</td>
+<td>58</td>
 <td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.tso.client.TSOFuture.java">org/apache/omid/tso/client/TSOFuture.java</a></td>
@@ -949,7 +899,7 @@
 <tr class="a">
 <td><a href="#org.apache.omid.tso.client.TSOProtocol.java">org/apache/omid/tso/client/TSOProtocol.java</a></td>
 <td>0</td>
-<td>18</td>
+<td>9</td>
 <td>0</td></tr>
 <tr class="b">
 <td><a href="#org.apache.omid.tso.util.DummyCellIdImpl.java">org/apache/omid/tso/util/DummyCellIdImpl.java</a></td>
@@ -984,12 +934,12 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#LeftCurly">LeftCurly</a>
 <ul>
 <li>maxLineLength: <tt>&quot;120&quot;</tt></li></ul></td>
-<td>5</td>
+<td>4</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#NeedBraces">NeedBraces</a></td>
-<td>15</td>
+<td>12</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td>coding</td>
@@ -1008,27 +958,27 @@
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td></td>
-<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_coding.html#OneStatementPerLine">OneStatementPerLine</a></td>
-<td>1</td>
+<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_coding.html#OverloadMethodsDeclarationOrder">OverloadMethodsDeclarationOrder</a></td>
+<td>13</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td></td>
-<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_coding.html#OverloadMethodsDeclarationOrder">OverloadMethodsDeclarationOrder</a></td>
-<td>14</td>
+<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_coding.html#VariableDeclarationUsageDistance">VariableDeclarationUsageDistance</a></td>
+<td>4</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
-<td></td>
-<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_coding.html#VariableDeclarationUsageDistance">VariableDeclarationUsageDistance</a></td>
-<td>5</td>
+<td>imports</td>
+<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_imports.html#AvoidStarImport">AvoidStarImport</a></td>
+<td>1</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
-<td>imports</td>
+<td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_imports.html#CustomImportOrder">CustomImportOrder</a>
 <ul>
 <li>sortImportsInGroupAlphabetically: <tt>&quot;true&quot;</tt></li>
 <li>customImportOrderRules: <tt>&quot;STATIC###SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE###STANDARD_JAVA_PACKAGE&quot;</tt></li>
 <li>specialImportsRegExp: <tt>&quot;com.google&quot;</tt></li></ul></td>
-<td>370</td>
+<td>215</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td>indentation</td>
@@ -1045,7 +995,7 @@
 <li>throwsIndent: <tt>&quot;4&quot;</tt></li>
 <li>basicOffset: <tt>&quot;4&quot;</tt></li>
 <li>braceAdjustment: <tt>&quot;0&quot;</tt></li></ul></td>
-<td>55</td>
+<td>13</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td>javadoc</td>
@@ -1058,29 +1008,29 @@
 <li>allowMissingReturnTag: <tt>&quot;true&quot;</tt></li>
 <li>minLineCount: <tt>&quot;2&quot;</tt></li>
 <li>allowMissingThrowsTags: <tt>&quot;true&quot;</tt></li></ul></td>
-<td>76</td>
+<td>70</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocParagraph">JavadocParagraph</a></td>
-<td>49</td>
+<td>48</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a></td>
-<td>19</td>
+<td>12</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>8</td>
+<td>5</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#SummaryJavadoc">SummaryJavadoc</a>
 <ul>
 <li>forbiddenSummaryFragments: <tt>&quot;^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )&quot;</tt></li></ul></td>
-<td>82</td>
+<td>76</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td>misc</td>
@@ -1090,7 +1040,7 @@
 <tr class="b">
 <td>modifier</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_modifier.html#ModifierOrder">ModifierOrder</a></td>
-<td>29</td>
+<td>27</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td>naming</td>
@@ -1098,7 +1048,7 @@
 <ul>
 <li>allowedAbbreviationLength: <tt>&quot;4&quot;</tt></li>
 <li>ignoreFinal: <tt>&quot;false&quot;</tt></li></ul></td>
-<td>2</td>
+<td>1</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td></td>
@@ -1107,7 +1057,7 @@
 <li>allowOneCharVarInForLoop: <tt>&quot;true&quot;</tt></li>
 <li>tokens: <tt>&quot;VARIABLE_DEF&quot;</tt></li>
 <li>format: <tt>&quot;^[a-z][a-z0-9][a-zA-Z0-9]*$&quot;</tt></li></ul></td>
-<td>63</td>
+<td>53</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td></td>
@@ -1121,19 +1071,19 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_naming.html#MethodName">MethodName</a>
 <ul>
 <li>format: <tt>&quot;^[a-z][a-z0-9][a-zA-Z0-9_]*$&quot;</tt></li></ul></td>
-<td>3</td>
+<td>1</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_naming.html#ParameterName">ParameterName</a>
 <ul>
 <li>format: <tt>&quot;^[a-z][a-z0-9][a-zA-Z0-9]*$&quot;</tt></li></ul></td>
-<td>174</td>
+<td>141</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_naming.html#TypeName">TypeName</a></td>
-<td>2</td>
+<td>1</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td>sizes</td>
@@ -1141,14 +1091,14 @@
 <ul>
 <li>max: <tt>&quot;120&quot;</tt></li>
 <li>ignorePattern: <tt>&quot;^package.*|^import.*|a href|href|http://|https://|ftp://&quot;</tt></li></ul></td>
-<td>112</td>
+<td>67</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="b">
 <td>whitespace</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_whitespace.html#EmptyLineSeparator">EmptyLineSeparator</a>
 <ul>
 <li>allowNoEmptyLineBetweenFields: <tt>&quot;true&quot;</tt></li></ul></td>
-<td>159</td>
+<td>143</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td></td>
@@ -1163,7 +1113,7 @@
 <ul>
 <li>tokens: <tt>&quot;BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR &quot;</tt></li>
 <li>option: <tt>&quot;NL&quot;</tt></li></ul></td>
-<td>13</td>
+<td>5</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
 <tr class="a">
 <td></td>
@@ -1173,12 +1123,12 @@
 <li>allowEmptyTypes: <tt>&quot;true&quot;</tt></li>
 <li>allowEmptyMethods: <tt>&quot;true&quot;</tt></li>
 <li>allowEmptyConstructors: <tt>&quot;true&quot;</tt></li></ul></td>
-<td>16</td>
+<td>7</td>
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr></table></div>
 <div class="section">
 <h2><a name="Details"></a>Details</h2>
 <div class="section">
-<h3 id="org.apache.hadoop.hbase.coprocessor.BaseRegionObserver.java">org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java</h3>
+<h3 id="org.apache.hadoop.hbase.regionserver.ScannerContext.java">org/apache/hadoop/hbase/regionserver/ScannerContext.java</h3>
 <table border="0" class="table table-striped">
 <tr class="b">
 <th>Severity</th>
@@ -1191,21 +1141,9 @@
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#L18">18</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>'java.io.IOException' should be separated from previous import group.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#L25">25</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>naming</td>
-<td>ParameterName</td>
-<td>Parameter name 'c' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html#L30">30</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/regionserver/ScannerContext.html#L18">18</a></td></tr></table></div>
 <div class="section">
-<h3 id="org.apache.hadoop.hbase.regionserver.CompactorScanner.java">org/apache/hadoop/hbase/regionserver/CompactorScanner.java</h3>
+<h3 id="org.apache.omid.HBaseConfigModule.java">org/apache/omid/HBaseConfigModule.java</h3>
 <table border="0" class="table table-striped">
 <tr class="b">
 <th>Severity</th>
@@ -1218,460 +1156,337 @@
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L18">18</a></td></tr>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L18">18</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
-<td>'org.apache.omid.HBaseShims' should be separated from previous import group.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L24">24</a></td></tr>
+<td>'org.apache.omid.tools.hbase.HBaseLogin' should be separated from previous import group.</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L22">22</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.omid.transaction.CellInfo' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L29">29</a></td></tr>
+<td>Wrong lexicographical order for 'org.apache.hadoop.conf.Configuration' import. Should be before 'org.apache.omid.tools.hbase.SecureHBaseConfig'.</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L24">24</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.Cell' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L30">30</a></td></tr>
+<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.HBaseConfiguration' import. Should be before 'org.apache.omid.tools.hbase.SecureHBaseConfig'.</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L25">25</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.CellUtil' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L31">31</a></td></tr>
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L43">43</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.KeyValue' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L32">32</a></td></tr>
+<td>coding</td>
+<td>VariableDeclarationUsageDistance</td>
+<td>Distance between variable 'configuration' declaration and its first usage is 4, but allowed 3.  Consider to make that variable as final if you still need to store its value in advance (before method calls that might do side effect on original value).</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L45">45</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.client.Get' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L33">33</a></td></tr>
+<td>naming</td>
+<td>ParameterName</td>
+<td>Parameter name 'o' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L61">61</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.client.Result' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L34">34</a></td></tr>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L63">63</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.coprocessor.ObserverContext' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L35">35</a></td></tr>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L65">65</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L36">36</a></td></tr>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L69">69</a></td></tr></table></div>
+<div class="section">
+<h3 id="org.apache.omid.HBaseShims.java">org/apache/omid/HBaseShims.java</h3>
+<table border="0" class="table table-striped">
 <tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.util.Bytes' import. Should be before 'org.apache.omid.transaction.CellUtils'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L37">37</a></td></tr>
+<th>Severity</th>
+<th>Category</th>
+<th>Rule</th>
+<th>Message</th>
+<th>Line</th></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Import statement for 'org.apache.omid.committable.CommitTable.CommitTimestamp.Location.SHADOW_CELL' is in the wrong order. Should be in the 'STATIC' group, expecting not assigned imports on this line.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L51">51</a></td></tr>
+<td>whitespace</td>
+<td>EmptyLineSeparator</td>
+<td>'package' should be separated from previous statement.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L18">18</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>naming</td>
-<td>MemberName</td>
-<td>Member name 'hRegion' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L62">62</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L67">67</a></td></tr>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L34">34</a></td></tr>
+<tr class="b">
+<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L34">34</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>naming</td>
-<td>ParameterName</td>
-<td>Parameter name 'e' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L67">67</a></td></tr>
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L40">40</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L40">40</a></td></tr>
+<tr class="a">
+<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L95">95</a></td></tr>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L46">46</a></td></tr>
+<tr class="b">
+<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L46">46</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L192">192</a></td></tr>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L54">54</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>naming</td>
-<td>LocalVariableName</td>
-<td>Local variable name 'g' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L236">236</a></td></tr>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L54">54</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>naming</td>
-<td>LocalVariableName</td>
-<td>Local variable name 'r' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/CompactorScanner.html#L243">243</a></td></tr></table></div>
-<div class="section">
-<h3 id="org.apache.hadoop.hbase.regionserver.RegionAccessWrapper.java">org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.java</h3>
-<table border="0" class="table table-striped">
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L60">60</a></td></tr>
 <tr class="b">
-<th>Severity</th>
-<th>Category</th>
-<th>Rule</th>
-<th>Message</th>
-<th>Line</th></tr>
+<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L60">60</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html#L18">18</a></td></tr>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L18">18</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Import statement for 'org.apache.hadoop.hbase.client.Get' is in the wrong order. Should be in the 'THIRD_PARTY_PACKAGE' group, expecting not assigned imports on this line.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html#L24">24</a></td></tr>
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L33">33</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Import statement for 'org.apache.hadoop.hbase.client.Put' is in the wrong order. Should be in the 'THIRD_PARTY_PACKAGE' group, expecting not assigned imports on this line.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html#L25">25</a></td></tr>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L33">33</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Import statement for 'org.apache.hadoop.hbase.client.Result' is in the wrong order. Should be in the 'THIRD_PARTY_PACKAGE' group, expecting not assigned imports on this line.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html#L26">26</a></td></tr>
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L39">39</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Import statement for 'org.apache.hadoop.hbase.client.ResultScanner' is in the wrong order. Should be in the 'THIRD_PARTY_PACKAGE' group, expecting not assigned imports on this line.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html#L27">27</a></td></tr>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L39">39</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Import statement for 'org.apache.hadoop.hbase.client.Scan' is in the wrong order. Should be in the 'THIRD_PARTY_PACKAGE' group, expecting not assigned imports on this line.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html#L28">28</a></td></tr>
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L45">45</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Import statement for 'org.apache.omid.transaction.TableAccessWrapper' is in the wrong order. Should be in the 'THIRD_PARTY_PACKAGE' group, expecting not assigned imports on this line.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html#L29">29</a></td></tr>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L45">45</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>naming</td>
-<td>LocalVariableName</td>
-<td>Local variable name 'i' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html#L44">44</a></td></tr></table></div>
-<div class="section">
-<h3 id="org.apache.omid.HBaseConfigModule.java">org/apache/omid/HBaseConfigModule.java</h3>
-<table border="0" class="table table-striped">
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L53">53</a></td></tr>
 <tr class="a">
-<th>Severity</th>
-<th>Category</th>
-<th>Rule</th>
-<th>Message</th>
-<th>Line</th></tr>
-<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>whitespace</td>
-<td>EmptyLineSeparator</td>
-<td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L18">18</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>'org.apache.omid.tools.hbase.HBaseLogin' should be separated from previous import group.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L22">22</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.conf.Configuration' import. Should be before 'org.apache.omid.tools.hbase.SecureHBaseConfig'.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L24">24</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>imports</td>
-<td>CustomImportOrder</td>
-<td>Wrong lexicographical order for 'org.apache.hadoop.hbase.HBaseConfiguration' import. Should be before 'org.apache.omid.tools.hbase.SecureHBaseConfig'.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L25">25</a></td></tr>
+<td>modifier</td>
+<td>ModifierOrder</td>
+<td>'public' modifier out of order with the JLS suggestions.</td>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L53">53</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L43">43</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>coding</td>
-<td>VariableDeclarationUsageDistance</td>
-<td>Distance between variable 'configuration' declaration and its first usage is 4, but allowed 3.  Consider to make that variable as final if you still need to store its value in advance (before method calls that might do side effect on original value).</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L45">45</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>naming</td>
-<td>ParameterName</td>
-<td>Parameter name 'o' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L61">61</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L63">63</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L65">65</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/omid/HBaseConfigModule.html#L69">69</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/HBaseShims.html#L59">59</a></td></tr></table></div>
 <div class="section">
-<h3 id="org.apache.omid.HBaseShims.java">org/apache/omid/HBaseShims.java</h3>
+<h3 id="org.apache.omid.NetworkUtils.java">org/apache/omid/NetworkUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L18">18</a></td></tr>
-<tr class="b">
+<td><a href="./xref/org/apache/omid/NetworkUtils.html#L18">18</a></td></tr>
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L40">40</a></td></tr>
+<td><a href="./xref/org/apache/omid/NetworkUtils.html#L35">35</a></td></tr>
+<tr class="b">
+<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
+<td>sizes</td>
+<td>LineLength</td>
+<td>Line is longer than 120 characters (found 148).</td>
+<td><a href="./xref/org/apache/omid/NetworkUtils.html#L43">43</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>modifier</td>
-<td>ModifierOrder</td>
-<td>'public' modifier out of order with the JLS suggestions.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L40">40</a></td></tr>
+<td>whitespace</td>
+<td>OperatorWrap</td>
+<td>'||' should be on a new line.</td>
+<td><a href="./xref/org/apache/omid/NetworkUtils.html#L44">44</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>javadoc</td>
-<td>JavadocMethod</td>
-<td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L46">46</a></td></tr>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'if' child have incorrect indentation level 18, expected level should be 20.</td>
+<td><a href="./xref/org/apache/omid/NetworkUtils.html#L46">46</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>modifier</td>
-<td>ModifierOrder</td>
-<td>'public' modifier out of order with the JLS suggestions.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L46">46</a></td></tr>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'if rcurly' have incorrect indentation level 14, expected level should be 16.</td>
+<td><a href="./xref/org/apache/omid/NetworkUtils.html#L47">47</a></td></tr></table></div>
+<div class="section">
+<h3 id="org.apache.omid.ReflectionHelper.java">org/apache/omid/ReflectionHelper.java</h3>
+<table border="0" class="table table-striped">
 <tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>javadoc</td>
-<td>JavadocMethod</td>
-<td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L52">52</a></td></tr>
+<th>Severity</th>
+<th>Category</th>
+<th>Rule</th>
+<th>Message</th>
+<th>Line</th></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>modifier</td>
-<td>ModifierOrder</td>
-<td>'public' modifier out of order with the JLS suggestions.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L52">52</a></td></tr>
+<td>whitespace</td>
+<td>EmptyLineSeparator</td>
+<td>'package' should be separated from previous statement.</td>
+<td><a href="./xref/org/apache/omid/ReflectionHelper.html#L18">18</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L60">60</a></td></tr>
+<td><a href="./xref/org/apache/omid/ReflectionHelper.html#L25">25</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>modifier</td>
 <td>ModifierOrder</td>
 <td>'public' modifier out of order with the JLS suggestions.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L60">60</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>javadoc</td>
-<td>JavadocMethod</td>
-<td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L70">70</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>naming</td>
-<td>MethodName</td>
-<td>Method name 'OmidCompactionEnabled' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9_]*$'.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L70">70</a></td></tr>
+<td><a href="./xref/org/apache/omid/ReflectionHelper.html#L25">25</a></td></tr></table></div>
+<div class="section">
+<h3 id="org.apache.omid.RegionWrapper.java">org/apache/omid/RegionWrapper.java</h3>
+<table border="0" class="table table-striped">
 <tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>javadoc</td>
-<td>JavadocMethod</td>
-<td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L80">80</a></td></tr>
+<th>Severity</th>
+<th>Category</th>
+<th>Rule</th>
+<th>Message</th>
+<th>Line</th></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
-<td>WhitespaceAround</td>
-<td>WhitespaceAround: 'try' is not followed by whitespace. Empty blocks may only be represented as {} when not part of a multi-block statement (4.1.3)</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L82">82</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L18">18</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>javadoc</td>
-<td>JavadocMethod</td>
-<td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L43">43</a></td></tr>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L18">18</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>modifier</td>
-<td>ModifierOrder</td>
-<td>'public' modifier out of order with the JLS suggestions.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L43">43</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L49">49</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>modifier</td>
-<td>ModifierOrder</td>
-<td>'public' modifier out of order with the JLS suggestions.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L49">49</a></td></tr>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L34">34</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L55">55</a></td></tr>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L40">40</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>modifier</td>
-<td>ModifierOrder</td>
-<td>'public' modifier out of order with the JLS suggestions.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L55">55</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L64">64</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>modifier</td>
-<td>ModifierOrder</td>
-<td>'public' modifier out of order with the JLS suggestions.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L64">64</a></td></tr>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L46">46</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>javadoc</td>
-<td>JavadocMethod</td>
-<td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L74">74</a></td></tr>
+<td>whitespace</td>
+<td>EmptyLineSeparator</td>
+<td>'package' should be separated from previous statement.</td>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L18">18</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>naming</td>
-<td>MethodName</td>
-<td>Method name 'OmidCompactionEnabled' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9_]*$'.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L74">74</a></td></tr>
+<td>MemberName</td>
+<td>Member name 'hRegion' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L32">32</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L82">82</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>whitespace</td>
-<td>WhitespaceAround</td>
-<td>WhitespaceAround: 'try' is not followed by whitespace. Empty blocks may only be represented as {} when not part of a multi-block statement (4.1.3)</td>
-<td><a href="./xref/org/apache/omid/HBaseShims.html#L84">84</a></td></tr></table></div>
-<div class="section">
-<h3 id="org.apache.omid.NetworkUtils.java">org/apache/omid/NetworkUtils.java</h3>
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>Severity</th>
-<th>Category</th>
-<th>Rule</th>
-<th>Message</th>
-<th>Line</th></tr>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L34">34</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>whitespace</td>
-<td>EmptyLineSeparator</td>
-<td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/omid/NetworkUtils.html#L18">18</a></td></tr>
+<td>naming</td>
+<td>ParameterName</td>
+<td>Parameter name 'hRegion' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L34">34</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/NetworkUtils.html#L34">34</a></td></tr></table></div>
-<div class="section">
-<h3 id="org.apache.omid.OmidFilterBase.java">org/apache/omid/OmidFilterBase.java</h3>
-<table border="0" class="table table-striped">
-<tr class="b">
-<th>Severity</th>
-<th>Category</th>
-<th>Rule</th>
-<th>Message</th>
-<th>Line</th></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>whitespace</td>
-<td>EmptyLineSeparator</td>
-<td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/omid/OmidFilterBase.html#L18">18</a></td></tr>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L40">40</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/OmidFilterBase.html#L28">28</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>whitespace</td>
-<td>EmptyLineSeparator</td>
-<td>'package' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/omid/OmidFilterBase.html#L18">18</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
-<td>whitespace</td>
-<td>EmptyLineSeparator</td>
-<td>'import' should be separated from previous statement.</td>
-<td><a href="./xref/org/apache/omid/OmidFilterBase.html#L19">19</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/RegionWrapper.html#L46">46</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.omid.YAMLUtils.java">org/apache/omid/YAMLUtils.java</h3>
 <table border="0" class="table table-striped">
@@ -1698,59 +1513,77 @@
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/YAMLUtils.html#L37">37</a></td></tr>
+<td><a href="./xref/org/apache/omid/YAMLUtils.html#L38">38</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
-<td><a href="./xref/org/apache/omid/YAMLUtils.html#L46">46</a></td></tr>
+<td><a href="./xref/org/apache/omid/YAMLUtils.html#L47">47</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/YAMLUtils.html#L56">56</a></td></tr>
+<tr class="a">
+<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 120 characters (found 139).</td>
-<td><a href="./xref/org/apache/omid/YAMLUtils.html#L58">58</a></td></tr></table></div>
+<td><a href="./xref/org/apache/omid/YAMLUtils.html#L59">59</a></td></tr>
+<tr class="b">
+<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/YAMLUtils.html#L67">67</a></td></tr>
+<tr class="a">
+<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
+<td>javadoc</td>
+<td>JavadocMethod</td>
+<td>Missing a Javadoc comment.</td>
+<td><a href="./xref/org/apache/omid/YAMLUtils.html#L78">78</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.omid.benchmarks.hbase.HBaseCommitTableTester.java">org/apache/omid/benchmarks/hbase/HBaseCommitTableTester.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/hbase/HBaseCommitTableTester.html#L18">18</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>Wrong lexicographical order for 'org.apache.hadoop.conf.Configuration' import. Should be before 'org.apache.omid.tools.hbase.SecureHBaseConfig'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/hbase/HBaseCommitTableTester.html#L40">40</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>Wrong lexicographical order for 'org.apache.hadoop.hbase.HBaseConfiguration' import. Should be before 'org.apache.omid.tools.hbase.SecureHBaseConfig'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/hbase/HBaseCommitTableTester.html#L41">41</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
 <td>Missing a Javadoc comment.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/hbase/HBaseCommitTableTester.html#L72">72</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/hbase/HBaseCommitTableTester.html#L101">101</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>naming</td>
 <td>LocalVariableName</td>
@@ -1759,79 +1592,79 @@
 <div class="section">
 <h3 id="org.apache.omid.benchmarks.tso.RawTxRunner.java">org/apache/omid/benchmarks/tso/RawTxRunner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L18">18</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>'org.apache.omid.benchmarks.utils.IntegerGenerator' should be separated from previous import group.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L26">26</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>Wrong lexicographical order for 'org.apache.omid.tso.client.AbortException' import. Should be before 'org.apache.omid.tso.util.DummyCellIdImpl'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L32">32</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>Wrong lexicographical order for 'org.apache.omid.tso.client.CellId' import. Should be before 'org.apache.omid.tso.util.DummyCellIdImpl'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L33">33</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>Wrong lexicographical order for 'org.apache.omid.tso.client.OmidClientConfiguration' import. Should be before 'org.apache.omid.tso.util.DummyCellIdImpl'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L34">34</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>Wrong lexicographical order for 'org.apache.omid.tso.client.TSOClient' import. Should be before 'org.apache.omid.tso.util.DummyCellIdImpl'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L35">35</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>Wrong lexicographical order for 'org.apache.omid.tso.client.TSOFuture' import. Should be before 'org.apache.omid.tso.util.DummyCellIdImpl'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L36">36</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>Import statement for 'com.codahale.metrics.MetricRegistry.name' is in the wrong order. Should be in the 'STATIC' group, expecting not assigned imports on this line.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L52">52</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>naming</td>
 <td>ParameterName</td>
 <td>Parameter name 't' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L79">79</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>naming</td>
 <td>ParameterName</td>
 <td>Parameter name 'e' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L79">79</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>coding</td>
 <td>VariableDeclarationUsageDistance</td>
 <td>Distance between variable 'injector' declaration and its first usage is 13, but allowed 3.  Consider to make that variable as final if you still need to store its value in advance (before method calls that might do side effect on original value).</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/RawTxRunner.html#L107">107</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -1840,43 +1673,43 @@
 <div class="section">
 <h3 id="org.apache.omid.benchmarks.tso.TSOServerBenchmark.java">org/apache/omid/benchmarks/tso/TSOServerBenchmark.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/TSOServerBenchmark.html#L18">18</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
 <td>'org.slf4j.Logger' should be separated from previous import group.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/TSOServerBenchmark.html#L21">21</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>SummaryJavadoc</td>
 <td>First sentence of Javadoc is incomplete (period is missing) or not present.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/TSOServerBenchmark.html#L32">32</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>naming</td>
 <td>ParameterName</td>
 <td>Parameter name 't' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/TSOServerBenchmark.html#L54">54</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>naming</td>
 <td>ParameterName</td>
 <td>Parameter name 'e' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/TSOServerBenchmark.html#L54">54</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocMethod</td>
@@ -1885,19 +1718,19 @@
 <div class="section">
 <h3 id="org.apache.omid.benchmarks.tso.TSOServerBenchmarkConfig.java">org/apache/omid/benchmarks/tso/TSOServerBenchmarkConfig.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/tso/TSOServerBenchmarkConfig.html#L18">18</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>imports</td>
 <td>CustomImportOrder</td>
@@ -1906,37 +1739,37 @@
 <div class="section">
 <h3 id="org.apache.omid.benchmarks.utils.Generator.java">org/apache/omid/benchmarks/utils/Generator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocParagraph</td>
 <td>Empty line should be followed by &lt;p&gt; tag on the next line.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/Generator.html#L3">3</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocParagraph</td>
 <td>Empty line should be followed by &lt;p&gt; tag on the next line.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/Generator.html#L5">5</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/Generator.html#L12">12</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 120 characters (found 125).</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/Generator.html#L15">15</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>SummaryJavadoc</td>
@@ -1945,79 +1778,79 @@
 <div class="section">
 <h3 id="org.apache.omid.benchmarks.utils.IntegerGenerator.java">org/apache/omid/benchmarks/utils/IntegerGenerator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 120 characters (found 179).</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L2">2</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocParagraph</td>
 <td>Empty line should be followed by &lt;p&gt; tag on the next line.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L3">3</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocParagraph</td>
 <td>Empty line should be followed by &lt;p&gt; tag on the next line.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L5">5</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L12">12</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>SummaryJavadoc</td>
 <td>First sentence of Javadoc is incomplete (period is missing) or not present.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L14">14</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>SummaryJavadoc</td>
 <td>Forbidden summary fragment.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L45">45</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L47">47</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L48">48</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>SummaryJavadoc</td>
 <td>Forbidden summary fragment.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L55">55</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 120 characters (found 126).</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L56">56</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/IntegerGenerator.html#L57">57</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>SummaryJavadoc</td>
@@ -2026,175 +1859,175 @@
 <div class="section">
 <h3 id="org.apache.omid.benchmarks.utils.ScrambledZipfianGenerator.java">org/apache/omid/benchmarks/utils/ScrambledZipfianGenerator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocParagraph</td>
 <td>Empty line should be followed by &lt;p&gt; tag on the next line.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/ScrambledZipfianGenerator.html#L3">3</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>javadoc</td>
 <td>JavadocParagraph</td>
 <td>Empty line should be followed by &lt;p&gt; tag on the next line.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/ScrambledZipfianGenerator.html#L5">5</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
 <td>whitespace</td>
 <td>EmptyLineSeparator</td>
 <td>'package' should be separated from previous statement.</td>
 <td><a href="./xref/org/apache/omid/benchmarks/utils/ScrambledZipfianGenerator.html#L12">12</a></td

<TRUNCATED>


[34/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestHBaseTransactionClient.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestHBaseTransactionClient.html b/xref-test/org/apache/omid/transaction/TestHBaseTransactionClient.html
index 4b46d5c..18fc9de 100644
--- a/xref-test/org/apache/omid/transaction/TestHBaseTransactionClient.html
+++ b/xref-test/org/apache/omid/transaction/TestHBaseTransactionClient.html
@@ -27,326 +27,326 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.CACHE;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.COMMIT_TABLE;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.NOT_PRESENT;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.SHADOW_CELL;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doThrow;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager.CommitTimestampLocatorImpl;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Maps;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestHBaseTransactionClient.html">TestHBaseTransactionClient</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"test-is-committed1"</span>);
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row2 = Bytes.toBytes(<span class="jxr_string">"test-is-committed2"</span>);
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>      @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsCommitted(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="60" href="#60">60</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="61" href="#61">61</a>          TTable table = spy(<strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE, ((AbstractTransactionManager)tm).getCommitTableClient()));
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Maps;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager.CommitTimestampLocatorImpl;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.CACHE;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.COMMIT_TABLE;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.NOT_PRESENT;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.SHADOW_CELL;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doThrow;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestHBaseTransactionClient.html">TestHBaseTransactionClient</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"test-is-committed1"</span>);
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row2 = Bytes.toBytes(<span class="jxr_string">"test-is-committed2"</span>);
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
+<a class="jxr_linenumber" name="55" href="#55">55</a>  
+<a class="jxr_linenumber" name="56" href="#56">56</a>      @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testIsCommitted(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="58" href="#58">58</a>          TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="59" href="#59">59</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>          HBaseTransaction t1 = (HBaseTransaction) tm.begin();
 <a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>          HBaseTransaction t1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="66" href="#66">66</a>          put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="67" href="#67">67</a>          table.put(t1, put);
-<a class="jxr_linenumber" name="68" href="#68">68</a>          tm.commit(t1);
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>          HBaseTransaction t2 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="71" href="#71">71</a>          put = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="72" href="#72">72</a>          put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="73" href="#73">73</a>          table.put(t2, put);
-<a class="jxr_linenumber" name="74" href="#74">74</a>          table.flushCommits();
-<a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          HBaseTransaction t3 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="77" href="#77">77</a>          put = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="78" href="#78">78</a>          put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="79" href="#79">79</a>          table.put(t3, put);
-<a class="jxr_linenumber" name="80" href="#80">80</a>          tm.commit(t3);
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>          HBaseCellId hBaseCellId1 = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier, t1.getStartTimestamp());
-<a class="jxr_linenumber" name="83" href="#83">83</a>          HBaseCellId hBaseCellId2 = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row2, family, qualifier, t2.getStartTimestamp());
-<a class="jxr_linenumber" name="84" href="#84">84</a>          HBaseCellId hBaseCellId3 = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row2, family, qualifier, t3.getStartTimestamp());
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>          HBaseTransactionClient hbaseTm = (HBaseTransactionClient) newTransactionManager(context);
-<a class="jxr_linenumber" name="87" href="#87">87</a>          assertTrue(table.isCommitted(hBaseCellId1, 0), <span class="jxr_string">"row1 should be committed"</span>);
-<a class="jxr_linenumber" name="88" href="#88">88</a>          assertFalse(table.isCommitted(hBaseCellId2, 0), <span class="jxr_string">"row2 should not be committed for kv2"</span>);
-<a class="jxr_linenumber" name="89" href="#89">89</a>          assertTrue(table.isCommitted(hBaseCellId3, 0), <span class="jxr_string">"row2 should be committed for kv3"</span>);
-<a class="jxr_linenumber" name="90" href="#90">90</a>      }
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>      @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCrashAfterCommit(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="94" href="#94">94</a>          PostCommitActions syncPostCommitter =
-<a class="jxr_linenumber" name="95" href="#95">95</a>                  spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), getCommitTable(context).getClient()));
-<a class="jxr_linenumber" name="96" href="#96">96</a>          AbstractTransactionManager tm = (AbstractTransactionManager) newTransactionManager(context, syncPostCommitter);
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
-<a class="jxr_linenumber" name="98" href="#98">98</a>          doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>         TTable table = spy(<strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE, tm.getCommitTableClient()));
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>         HBaseTransaction t1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>         <em class="jxr_comment">// Test shadow cell are created properly</em>
-<a class="jxr_linenumber" name="105" href="#105">105</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="106" href="#106">106</a>         put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="107" href="#107">107</a>         table.put(t1, put);
-<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="109" href="#109">109</a>             tm.commit(t1);
-<a class="jxr_linenumber" name="110" href="#110">110</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
-<a class="jxr_linenumber" name="111" href="#111">111</a>             <em class="jxr_comment">// Do nothing</em>
-<a class="jxr_linenumber" name="112" href="#112">112</a>         }
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>         assertTrue(CellUtils.hasCell(row1, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="115" href="#115">115</a>                    <span class="jxr_string">"Cell should be there"</span>);
-<a class="jxr_linenumber" name="116" href="#116">116</a>         assertFalse(CellUtils.hasShadowCell(row1, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
-<a class="jxr_linenumber" name="117" href="#117">117</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>         HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier, t1.getStartTimestamp());
+<a class="jxr_linenumber" name="63" href="#63">63</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="64" href="#64">64</a>          put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="65" href="#65">65</a>          table.put(t1, put);
+<a class="jxr_linenumber" name="66" href="#66">66</a>          tm.commit(t1);
+<a class="jxr_linenumber" name="67" href="#67">67</a>  
+<a class="jxr_linenumber" name="68" href="#68">68</a>          HBaseTransaction t2 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="69" href="#69">69</a>          put = <strong class="jxr_keyword">new</strong> Put(row2);
+<a class="jxr_linenumber" name="70" href="#70">70</a>          put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="71" href="#71">71</a>          table.put(t2, put);
+<a class="jxr_linenumber" name="72" href="#72">72</a>          table.getHTable().flushCommits();
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>          HBaseTransaction t3 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="75" href="#75">75</a>          put = <strong class="jxr_keyword">new</strong> Put(row2);
+<a class="jxr_linenumber" name="76" href="#76">76</a>          put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="77" href="#77">77</a>          table.put(t3, put);
+<a class="jxr_linenumber" name="78" href="#78">78</a>          tm.commit(t3);
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>          HTable htable = <strong class="jxr_keyword">new</strong> HTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="81" href="#81">81</a>          HBaseCellId hBaseCellId1 = <strong class="jxr_keyword">new</strong> HBaseCellId(htable, row1, family, qualifier, t1.getStartTimestamp());
+<a class="jxr_linenumber" name="82" href="#82">82</a>          HBaseCellId hBaseCellId2 = <strong class="jxr_keyword">new</strong> HBaseCellId(htable, row2, family, qualifier, t2.getStartTimestamp());
+<a class="jxr_linenumber" name="83" href="#83">83</a>          HBaseCellId hBaseCellId3 = <strong class="jxr_keyword">new</strong> HBaseCellId(htable, row2, family, qualifier, t3.getStartTimestamp());
+<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="85" href="#85">85</a>          HBaseTransactionClient hbaseTm = (HBaseTransactionClient) newTransactionManager(context);
+<a class="jxr_linenumber" name="86" href="#86">86</a>          assertTrue(hbaseTm.isCommitted(hBaseCellId1), <span class="jxr_string">"row1 should be committed"</span>);
+<a class="jxr_linenumber" name="87" href="#87">87</a>          assertFalse(hbaseTm.isCommitted(hBaseCellId2), <span class="jxr_string">"row2 should not be committed for kv2"</span>);
+<a class="jxr_linenumber" name="88" href="#88">88</a>          assertTrue(hbaseTm.isCommitted(hBaseCellId3), <span class="jxr_string">"row2 should be committed for kv3"</span>);
+<a class="jxr_linenumber" name="89" href="#89">89</a>      }
+<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="91" href="#91">91</a>      @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCrashAfterCommit(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="93" href="#93">93</a>          PostCommitActions syncPostCommitter =
+<a class="jxr_linenumber" name="94" href="#94">94</a>                  spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), getCommitTable(context).getClient()));
+<a class="jxr_linenumber" name="95" href="#95">95</a>          AbstractTransactionManager tm = (AbstractTransactionManager) newTransactionManager(context, syncPostCommitter);
+<a class="jxr_linenumber" name="96" href="#96">96</a>          <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
+<a class="jxr_linenumber" name="97" href="#97">97</a>          doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="98" href="#98">98</a>  
+<a class="jxr_linenumber" name="99" href="#99">99</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>         HBaseTransaction t1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="102" href="#102">102</a> 
+<a class="jxr_linenumber" name="103" href="#103">103</a>         <em class="jxr_comment">// Test shadow cell are created properly</em>
+<a class="jxr_linenumber" name="104" href="#104">104</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="105" href="#105">105</a>         put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="106" href="#106">106</a>         table.put(t1, put);
+<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="108" href="#108">108</a>             tm.commit(t1);
+<a class="jxr_linenumber" name="109" href="#109">109</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a>             <em class="jxr_comment">// Do nothing</em>
+<a class="jxr_linenumber" name="111" href="#111">111</a>         }
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a>         assertTrue(CellUtils.hasCell(row1, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="114" href="#114">114</a>                    <span class="jxr_string">"Cell should be there"</span>);
+<a class="jxr_linenumber" name="115" href="#115">115</a>         assertFalse(CellUtils.hasShadowCell(row1, family, qualifier, t1.getStartTimestamp(), <strong class="jxr_keyword">new</strong> TTableCellGetterAdapter(table)),
+<a class="jxr_linenumber" name="116" href="#116">116</a>                     <span class="jxr_string">"Shadow cell should not be there"</span>);
+<a class="jxr_linenumber" name="117" href="#117">117</a> 
+<a class="jxr_linenumber" name="118" href="#118">118</a>         HTable htable = <strong class="jxr_keyword">new</strong> HTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="119" href="#119">119</a>         HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(htable, row1, family, qualifier, t1.getStartTimestamp());
 <a class="jxr_linenumber" name="120" href="#120">120</a> 
 <a class="jxr_linenumber" name="121" href="#121">121</a>         HBaseTransactionClient hbaseTm = (HBaseTransactionClient) newTransactionManager(context);
-<a class="jxr_linenumber" name="122" href="#122">122</a>         assertTrue(table.isCommitted(hBaseCellId, 0), <span class="jxr_string">"row1 should be committed"</span>);
+<a class="jxr_linenumber" name="122" href="#122">122</a>         assertTrue(hbaseTm.isCommitted(hBaseCellId), <span class="jxr_string">"row1 should be committed"</span>);
 <a class="jxr_linenumber" name="123" href="#123">123</a>     }
 <a class="jxr_linenumber" name="124" href="#124">124</a> 
 <a class="jxr_linenumber" name="125" href="#125">125</a>     @Test(timeOut = 30_000)
 <a class="jxr_linenumber" name="126" href="#126">126</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadCommitTimestampFromCommitTable(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>         <em class="jxr_comment">//connection = ConnectionFactory.createConnection(hbaseConf);</em>
-<a class="jxr_linenumber" name="129" href="#129">129</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> NON_EXISTING_CELL_TS = 1000L;
-<a class="jxr_linenumber" name="130" href="#130">130</a> 
-<a class="jxr_linenumber" name="131" href="#131">131</a>         PostCommitActions syncPostCommitter =
-<a class="jxr_linenumber" name="132" href="#132">132</a>                 spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), getCommitTable(context).getClient()));
-<a class="jxr_linenumber" name="133" href="#133">133</a>         AbstractTransactionManager tm = (AbstractTransactionManager) newTransactionManager(context, syncPostCommitter);
-<a class="jxr_linenumber" name="134" href="#134">134</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
-<a class="jxr_linenumber" name="135" href="#135">135</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="136" href="#136">136</a> 
-<a class="jxr_linenumber" name="137" href="#137">137</a>         <em class="jxr_comment">// Test that a non-existing cell timestamp returns an empty result</em>
-<a class="jxr_linenumber" name="138" href="#138">138</a>         Optional&lt;CommitTimestamp&gt; optionalCT = tm.commitTableClient.getCommitTimestamp(NON_EXISTING_CELL_TS).get();
-<a class="jxr_linenumber" name="139" href="#139">139</a>         assertFalse(optionalCT.isPresent());
-<a class="jxr_linenumber" name="140" href="#140">140</a> 
-<a class="jxr_linenumber" name="141" href="#141">141</a>         <strong class="jxr_keyword">try</strong> (TTable table = spy(<strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE, tm.getCommitTableClient()))) {
-<a class="jxr_linenumber" name="142" href="#142">142</a>             <em class="jxr_comment">// Test that we get an invalidation mark for an invalidated transaction</em>
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
-<a class="jxr_linenumber" name="144" href="#144">144</a>             <em class="jxr_comment">// Start a transaction and invalidate it before commiting it</em>
-<a class="jxr_linenumber" name="145" href="#145">145</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="146" href="#146">146</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="147" href="#147">147</a>             put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="148" href="#148">148</a>             table.put(tx1, put);
-<a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>             assertTrue(tm.commitTableClient.tryInvalidateTransaction(tx1.getStartTimestamp()).get());
-<a class="jxr_linenumber" name="151" href="#151">151</a>             optionalCT = tm.commitTableClient.getCommitTimestamp(tx1.getStartTimestamp()).get();
-<a class="jxr_linenumber" name="152" href="#152">152</a>             assertTrue(optionalCT.isPresent());
-<a class="jxr_linenumber" name="153" href="#153">153</a>             CommitTimestamp ct = optionalCT.get();
-<a class="jxr_linenumber" name="154" href="#154">154</a>             assertFalse(ct.isValid());
-<a class="jxr_linenumber" name="155" href="#155">155</a>             assertEquals(ct.getValue(), CommitTable.INVALID_TRANSACTION_MARKER);
-<a class="jxr_linenumber" name="156" href="#156">156</a>             assertTrue(ct.getLocation().compareTo(COMMIT_TABLE) == 0);
-<a class="jxr_linenumber" name="157" href="#157">157</a> 
-<a class="jxr_linenumber" name="158" href="#158">158</a>             <em class="jxr_comment">// Finally test that we get the right commit timestamp for a committed tx</em>
-<a class="jxr_linenumber" name="159" href="#159">159</a>             <em class="jxr_comment">// that couldn't get</em>
-<a class="jxr_linenumber" name="160" href="#160">160</a>             HBaseTransaction tx2 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="161" href="#161">161</a>             Put otherPut = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="162" href="#162">162</a>             otherPut.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="163" href="#163">163</a>             table.put(tx2, otherPut);
-<a class="jxr_linenumber" name="164" href="#164">164</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="165" href="#165">165</a>                 tm.commit(tx2);
-<a class="jxr_linenumber" name="166" href="#166">166</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
-<a class="jxr_linenumber" name="167" href="#167">167</a>                 <em class="jxr_comment">// Do nothing</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a>             }
-<a class="jxr_linenumber" name="169" href="#169">169</a> 
-<a class="jxr_linenumber" name="170" href="#170">170</a>             optionalCT = tm.commitTableClient.getCommitTimestamp(tx2.getStartTimestamp()).get();
-<a class="jxr_linenumber" name="171" href="#171">171</a>             assertTrue(optionalCT.isPresent());
-<a class="jxr_linenumber" name="172" href="#172">172</a>             ct = optionalCT.get();
-<a class="jxr_linenumber" name="173" href="#173">173</a>             assertTrue(ct.isValid());
-<a class="jxr_linenumber" name="174" href="#174">174</a>             assertEquals(ct.getValue(), tx2.getCommitTimestamp());
-<a class="jxr_linenumber" name="175" href="#175">175</a>             assertTrue(ct.getLocation().compareTo(COMMIT_TABLE) == 0);
-<a class="jxr_linenumber" name="176" href="#176">176</a>         }
-<a class="jxr_linenumber" name="177" href="#177">177</a>     }
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadCommitTimestampFromShadowCell(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> NON_EXISTING_CELL_TS = 1L;
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>         HBaseTransactionManager tm = (HBaseTransactionManager) newTransactionManager(context);
-<a class="jxr_linenumber" name="185" href="#185">185</a> 
-<a class="jxr_linenumber" name="186" href="#186">186</a>         <strong class="jxr_keyword">try</strong> (TTable table = spy(<strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE, tm.getCommitTableClient()))) {
-<a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>             <em class="jxr_comment">// Test first we can not found a non-existent cell ts</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier, NON_EXISTING_CELL_TS);
-<a class="jxr_linenumber" name="190" href="#190">190</a>             <em class="jxr_comment">// Set an empty cache to allow to bypass the checking</em>
-<a class="jxr_linenumber" name="191" href="#191">191</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
-<a class="jxr_linenumber" name="192" href="#192">192</a>                     Maps.&lt;Long, Long&gt;newHashMap());
-<a class="jxr_linenumber" name="193" href="#193">193</a>             Optional&lt;CommitTimestamp&gt; optionalCT = table
-<a class="jxr_linenumber" name="194" href="#194">194</a>                     .readCommitTimestampFromShadowCell(NON_EXISTING_CELL_TS, ctLocator);
-<a class="jxr_linenumber" name="195" href="#195">195</a>             assertFalse(optionalCT.isPresent());
-<a class="jxr_linenumber" name="196" href="#196">196</a> 
-<a class="jxr_linenumber" name="197" href="#197">197</a>             <em class="jxr_comment">// Then test that for a transaction committed, we get the right CT</em>
-<a class="jxr_linenumber" name="198" href="#198">198</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="199" href="#199">199</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="200" href="#200">200</a>             put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="201" href="#201">201</a>             table.put(tx1, put);
-<a class="jxr_linenumber" name="202" href="#202">202</a>             tm.commit(tx1);
-<a class="jxr_linenumber" name="203" href="#203">203</a>             <em class="jxr_comment">// Upon commit, the commit data should be in the shadow cells, so test it</em>
-<a class="jxr_linenumber" name="204" href="#204">204</a>             optionalCT = table.readCommitTimestampFromShadowCell(tx1.getStartTimestamp(), ctLocator);
-<a class="jxr_linenumber" name="205" href="#205">205</a>             assertTrue(optionalCT.isPresent());
-<a class="jxr_linenumber" name="206" href="#206">206</a>             CommitTimestamp ct = optionalCT.get();
-<a class="jxr_linenumber" name="207" href="#207">207</a>             assertTrue(ct.isValid());
-<a class="jxr_linenumber" name="208" href="#208">208</a>             assertEquals(ct.getValue(), tx1.getCommitTimestamp());
-<a class="jxr_linenumber" name="209" href="#209">209</a>             assertTrue(ct.getLocation().compareTo(SHADOW_CELL) == 0);
-<a class="jxr_linenumber" name="210" href="#210">210</a> 
-<a class="jxr_linenumber" name="211" href="#211">211</a>         }
-<a class="jxr_linenumber" name="212" href="#212">212</a> 
-<a class="jxr_linenumber" name="213" href="#213">213</a>     }
-<a class="jxr_linenumber" name="214" href="#214">214</a> 
-<a class="jxr_linenumber" name="215" href="#215">215</a>     <em class="jxr_comment">// Tests step 1 in AbstractTransactionManager.locateCellCommitTimestamp()</em>
-<a class="jxr_linenumber" name="216" href="#216">216</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="217" href="#217">217</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCellCommitTimestampIsLocatedInCache(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> CELL_ST = 1L;
-<a class="jxr_linenumber" name="220" href="#220">220</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> CELL_CT = 2L;
-<a class="jxr_linenumber" name="221" href="#221">221</a> 
-<a class="jxr_linenumber" name="222" href="#222">222</a>         HBaseTransactionManager tm = (HBaseTransactionManager) newTransactionManager(context);
-<a class="jxr_linenumber" name="223" href="#223">223</a> 
-<a class="jxr_linenumber" name="224" href="#224">224</a>         <em class="jxr_comment">// Pre-load the element to look for in the cache</em>
-<a class="jxr_linenumber" name="225" href="#225">225</a>         Table htable = hBaseUtils.getConnection().getTable(TableName.valueOf(TEST_TABLE));
-<a class="jxr_linenumber" name="226" href="#226">226</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(htable);
-<a class="jxr_linenumber" name="227" href="#227">227</a>         HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier, CELL_ST);
-<a class="jxr_linenumber" name="228" href="#228">228</a>         Map&lt;Long, Long&gt; fakeCache = Maps.newHashMap();
-<a class="jxr_linenumber" name="229" href="#229">229</a>         fakeCache.put(CELL_ST, CELL_CT);
-<a class="jxr_linenumber" name="230" href="#230">230</a> 
-<a class="jxr_linenumber" name="231" href="#231">231</a>         <em class="jxr_comment">// Then test that locator finds it in the cache</em>
-<a class="jxr_linenumber" name="232" href="#232">232</a>         CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId, fakeCache);
-<a class="jxr_linenumber" name="233" href="#233">233</a>         CommitTimestamp ct = table.locateCellCommitTimestamp(CELL_ST, tm.tsoClient.getEpoch(), ctLocator);
-<a class="jxr_linenumber" name="234" href="#234">234</a>         assertTrue(ct.isValid());
-<a class="jxr_linenumber" name="235" href="#235">235</a>         assertEquals(ct.getValue(), CELL_CT);
-<a class="jxr_linenumber" name="236" href="#236">236</a>         assertTrue(ct.getLocation().compareTo(CACHE) == 0);
+<a class="jxr_linenumber" name="128" href="#128">128</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> NON_EXISTING_CELL_TS = 1000L;
+<a class="jxr_linenumber" name="129" href="#129">129</a> 
+<a class="jxr_linenumber" name="130" href="#130">130</a>         PostCommitActions syncPostCommitter =
+<a class="jxr_linenumber" name="131" href="#131">131</a>                 spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), getCommitTable(context).getClient()));
+<a class="jxr_linenumber" name="132" href="#132">132</a>         AbstractTransactionManager tm = (AbstractTransactionManager) newTransactionManager(context, syncPostCommitter);
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="135" href="#135">135</a> 
+<a class="jxr_linenumber" name="136" href="#136">136</a>         <em class="jxr_comment">// Test that a non-existing cell timestamp returns an empty result</em>
+<a class="jxr_linenumber" name="137" href="#137">137</a>         Optional&lt;CommitTimestamp&gt; optionalCT = tm.commitTableClient.getCommitTimestamp(NON_EXISTING_CELL_TS).get();
+<a class="jxr_linenumber" name="138" href="#138">138</a>         assertFalse(optionalCT.isPresent());
+<a class="jxr_linenumber" name="139" href="#139">139</a> 
+<a class="jxr_linenumber" name="140" href="#140">140</a>         <strong class="jxr_keyword">try</strong> (TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="141" href="#141">141</a>             <em class="jxr_comment">// Test that we get an invalidation mark for an invalidated transaction</em>
+<a class="jxr_linenumber" name="142" href="#142">142</a> 
+<a class="jxr_linenumber" name="143" href="#143">143</a>             <em class="jxr_comment">// Start a transaction and invalidate it before commiting it</em>
+<a class="jxr_linenumber" name="144" href="#144">144</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="145" href="#145">145</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="146" href="#146">146</a>             put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="147" href="#147">147</a>             table.put(tx1, put);
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>             assertTrue(tm.commitTableClient.tryInvalidateTransaction(tx1.getStartTimestamp()).get());
+<a class="jxr_linenumber" name="150" href="#150">150</a>             optionalCT = tm.commitTableClient.getCommitTimestamp(tx1.getStartTimestamp()).get();
+<a class="jxr_linenumber" name="151" href="#151">151</a>             assertTrue(optionalCT.isPresent());
+<a class="jxr_linenumber" name="152" href="#152">152</a>             CommitTimestamp ct = optionalCT.get();
+<a class="jxr_linenumber" name="153" href="#153">153</a>             assertFalse(ct.isValid());
+<a class="jxr_linenumber" name="154" href="#154">154</a>             assertEquals(ct.getValue(), CommitTable.INVALID_TRANSACTION_MARKER);
+<a class="jxr_linenumber" name="155" href="#155">155</a>             assertTrue(ct.getLocation().compareTo(COMMIT_TABLE) == 0);
+<a class="jxr_linenumber" name="156" href="#156">156</a> 
+<a class="jxr_linenumber" name="157" href="#157">157</a>             <em class="jxr_comment">// Finally test that we get the right commit timestamp for a committed tx</em>
+<a class="jxr_linenumber" name="158" href="#158">158</a>             <em class="jxr_comment">// that couldn't get</em>
+<a class="jxr_linenumber" name="159" href="#159">159</a>             HBaseTransaction tx2 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="160" href="#160">160</a>             Put otherPut = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="161" href="#161">161</a>             otherPut.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="162" href="#162">162</a>             table.put(tx2, otherPut);
+<a class="jxr_linenumber" name="163" href="#163">163</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="164" href="#164">164</a>                 tm.commit(tx2);
+<a class="jxr_linenumber" name="165" href="#165">165</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
+<a class="jxr_linenumber" name="166" href="#166">166</a>                 <em class="jxr_comment">// Do nothing</em>
+<a class="jxr_linenumber" name="167" href="#167">167</a>             }
+<a class="jxr_linenumber" name="168" href="#168">168</a> 
+<a class="jxr_linenumber" name="169" href="#169">169</a>             optionalCT = tm.commitTableClient.getCommitTimestamp(tx2.getStartTimestamp()).get();
+<a class="jxr_linenumber" name="170" href="#170">170</a>             assertTrue(optionalCT.isPresent());
+<a class="jxr_linenumber" name="171" href="#171">171</a>             ct = optionalCT.get();
+<a class="jxr_linenumber" name="172" href="#172">172</a>             assertTrue(ct.isValid());
+<a class="jxr_linenumber" name="173" href="#173">173</a>             assertEquals(ct.getValue(), tx2.getCommitTimestamp());
+<a class="jxr_linenumber" name="174" href="#174">174</a>             assertTrue(ct.getLocation().compareTo(COMMIT_TABLE) == 0);
+<a class="jxr_linenumber" name="175" href="#175">175</a>         }
+<a class="jxr_linenumber" name="176" href="#176">176</a>     }
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="179" href="#179">179</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadCommitTimestampFromShadowCell(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="180" href="#180">180</a> 
+<a class="jxr_linenumber" name="181" href="#181">181</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> NON_EXISTING_CELL_TS = 1L;
+<a class="jxr_linenumber" name="182" href="#182">182</a> 
+<a class="jxr_linenumber" name="183" href="#183">183</a>         HBaseTransactionManager tm = (HBaseTransactionManager) newTransactionManager(context);
+<a class="jxr_linenumber" name="184" href="#184">184</a> 
+<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">try</strong> (TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a>             <em class="jxr_comment">// Test first we can not found a non-existent cell ts</em>
+<a class="jxr_linenumber" name="188" href="#188">188</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table.getHTable(), row1, family, qualifier, NON_EXISTING_CELL_TS);
+<a class="jxr_linenumber" name="189" href="#189">189</a>             <em class="jxr_comment">// Set an empty cache to allow to bypass the checking</em>
+<a class="jxr_linenumber" name="190" href="#190">190</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
+<a class="jxr_linenumber" name="191" href="#191">191</a>                     Maps.&lt;Long, Long&gt;newHashMap());
+<a class="jxr_linenumber" name="192" href="#192">192</a>             Optional&lt;CommitTimestamp&gt; optionalCT = tm
+<a class="jxr_linenumber" name="193" href="#193">193</a>                     .readCommitTimestampFromShadowCell(NON_EXISTING_CELL_TS, ctLocator);
+<a class="jxr_linenumber" name="194" href="#194">194</a>             assertFalse(optionalCT.isPresent());
+<a class="jxr_linenumber" name="195" href="#195">195</a> 
+<a class="jxr_linenumber" name="196" href="#196">196</a>             <em class="jxr_comment">// Then test that for a transaction committed, we get the right CT</em>
+<a class="jxr_linenumber" name="197" href="#197">197</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="198" href="#198">198</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="199" href="#199">199</a>             put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="200" href="#200">200</a>             table.put(tx1, put);
+<a class="jxr_linenumber" name="201" href="#201">201</a>             tm.commit(tx1);
+<a class="jxr_linenumber" name="202" href="#202">202</a>             <em class="jxr_comment">// Upon commit, the commit data should be in the shadow cells, so test it</em>
+<a class="jxr_linenumber" name="203" href="#203">203</a>             optionalCT = tm.readCommitTimestampFromShadowCell(tx1.getStartTimestamp(), ctLocator);
+<a class="jxr_linenumber" name="204" href="#204">204</a>             assertTrue(optionalCT.isPresent());
+<a class="jxr_linenumber" name="205" href="#205">205</a>             CommitTimestamp ct = optionalCT.get();
+<a class="jxr_linenumber" name="206" href="#206">206</a>             assertTrue(ct.isValid());
+<a class="jxr_linenumber" name="207" href="#207">207</a>             assertEquals(ct.getValue(), tx1.getCommitTimestamp());
+<a class="jxr_linenumber" name="208" href="#208">208</a>             assertTrue(ct.getLocation().compareTo(SHADOW_CELL) == 0);
+<a class="jxr_linenumber" name="209" href="#209">209</a> 
+<a class="jxr_linenumber" name="210" href="#210">210</a>         }
+<a class="jxr_linenumber" name="211" href="#211">211</a> 
+<a class="jxr_linenumber" name="212" href="#212">212</a>     }
+<a class="jxr_linenumber" name="213" href="#213">213</a> 
+<a class="jxr_linenumber" name="214" href="#214">214</a>     <em class="jxr_comment">// Tests step 1 in AbstractTransactionManager.locateCellCommitTimestamp()</em>
+<a class="jxr_linenumber" name="215" href="#215">215</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCellCommitTimestampIsLocatedInCache(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="217" href="#217">217</a> 
+<a class="jxr_linenumber" name="218" href="#218">218</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> CELL_ST = 1L;
+<a class="jxr_linenumber" name="219" href="#219">219</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> CELL_CT = 2L;
+<a class="jxr_linenumber" name="220" href="#220">220</a> 
+<a class="jxr_linenumber" name="221" href="#221">221</a>         HBaseTransactionManager tm = (HBaseTransactionManager) newTransactionManager(context);
+<a class="jxr_linenumber" name="222" href="#222">222</a> 
+<a class="jxr_linenumber" name="223" href="#223">223</a>         <em class="jxr_comment">// Pre-load the element to look for in the cache</em>
+<a class="jxr_linenumber" name="224" href="#224">224</a>         HTable table = <strong class="jxr_keyword">new</strong> HTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="225" href="#225">225</a>         HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier, CELL_ST);
+<a class="jxr_linenumber" name="226" href="#226">226</a>         Map&lt;Long, Long&gt; fakeCache = Maps.newHashMap();
+<a class="jxr_linenumber" name="227" href="#227">227</a>         fakeCache.put(CELL_ST, CELL_CT);
+<a class="jxr_linenumber" name="228" href="#228">228</a> 
+<a class="jxr_linenumber" name="229" href="#229">229</a>         <em class="jxr_comment">// Then test that locator finds it in the cache</em>
+<a class="jxr_linenumber" name="230" href="#230">230</a>         CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId, fakeCache);
+<a class="jxr_linenumber" name="231" href="#231">231</a>         CommitTimestamp ct = tm.locateCellCommitTimestamp(CELL_ST, tm.tsoClient.getEpoch(), ctLocator);
+<a class="jxr_linenumber" name="232" href="#232">232</a>         assertTrue(ct.isValid());
+<a class="jxr_linenumber" name="233" href="#233">233</a>         assertEquals(ct.getValue(), CELL_CT);
+<a class="jxr_linenumber" name="234" href="#234">234</a>         assertTrue(ct.getLocation().compareTo(CACHE) == 0);
+<a class="jxr_linenumber" name="235" href="#235">235</a> 
+<a class="jxr_linenumber" name="236" href="#236">236</a>     }
 <a class="jxr_linenumber" name="237" href="#237">237</a> 
-<a class="jxr_linenumber" name="238" href="#238">238</a>     }
-<a class="jxr_linenumber" name="239" href="#239">239</a> 
-<a class="jxr_linenumber" name="240" href="#240">240</a>     <em class="jxr_comment">// Tests step 2 in AbstractTransactionManager.locateCellCommitTimestamp()</em>
-<a class="jxr_linenumber" name="241" href="#241">241</a>     <em class="jxr_comment">// Note: This test is very similar to testCrashAfterCommit() above so</em>
-<a class="jxr_linenumber" name="242" href="#242">242</a>     <em class="jxr_comment">// maybe we should merge them in this test, adding the missing assertions</em>
-<a class="jxr_linenumber" name="243" href="#243">243</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="244" href="#244">244</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCellCommitTimestampIsLocatedInCommitTable(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="245" href="#245">245</a> 
-<a class="jxr_linenumber" name="246" href="#246">246</a>         PostCommitActions syncPostCommitter =
-<a class="jxr_linenumber" name="247" href="#247">247</a>                 spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), getCommitTable(context).getClient()));
-<a class="jxr_linenumber" name="248" href="#248">248</a>         AbstractTransactionManager tm = (AbstractTransactionManager) newTransactionManager(context, syncPostCommitter);
-<a class="jxr_linenumber" name="249" href="#249">249</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
-<a class="jxr_linenumber" name="250" href="#250">250</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="251" href="#251">251</a> 
-<a class="jxr_linenumber" name="252" href="#252">252</a>         <strong class="jxr_keyword">try</strong> (TTable table = spy(<strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE, tm.getCommitTableClient()))) {
-<a class="jxr_linenumber" name="253" href="#253">253</a>             <em class="jxr_comment">// Commit a transaction that is broken on commit to avoid</em>
-<a class="jxr_linenumber" name="254" href="#254">254</a>             <em class="jxr_comment">// write to the shadow cells and avoid cleaning the commit table</em>
-<a class="jxr_linenumber" name="255" href="#255">255</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="256" href="#256">256</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="257" href="#257">257</a>             put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="258" href="#258">258</a>             table.put(tx1, put);
-<a class="jxr_linenumber" name="259" href="#259">259</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="260" href="#260">260</a>                 tm.commit(tx1);
-<a class="jxr_linenumber" name="261" href="#261">261</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
-<a class="jxr_linenumber" name="262" href="#262">262</a>                 <em class="jxr_comment">// Do nothing</em>
-<a class="jxr_linenumber" name="263" href="#263">263</a>             }
-<a class="jxr_linenumber" name="264" href="#264">264</a> 
-<a class="jxr_linenumber" name="265" href="#265">265</a>             <em class="jxr_comment">// Test the locator finds the appropriate data in the commit table</em>
-<a class="jxr_linenumber" name="266" href="#266">266</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier,
-<a class="jxr_linenumber" name="267" href="#267">267</a>                     tx1.getStartTimestamp());
-<a class="jxr_linenumber" name="268" href="#268">268</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
-<a class="jxr_linenumber" name="269" href="#269">269</a>                     Maps.&lt;Long, Long&gt;newHashMap());
-<a class="jxr_linenumber" name="270" href="#270">270</a>             CommitTimestamp ct = table.locateCellCommitTimestamp(tx1.getStartTimestamp(), tm.tsoClient.getEpoch(),
-<a class="jxr_linenumber" name="271" href="#271">271</a>                     ctLocator);
-<a class="jxr_linenumber" name="272" href="#272">272</a>             assertTrue(ct.isValid());
-<a class="jxr_linenumber" name="273" href="#273">273</a>             <strong class="jxr_keyword">long</strong> expectedCommitTS = tx1.getStartTimestamp() + AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="274" href="#274">274</a>             assertEquals(ct.getValue(), expectedCommitTS);
-<a class="jxr_linenumber" name="275" href="#275">275</a>             assertTrue(ct.getLocation().compareTo(COMMIT_TABLE) == 0);
-<a class="jxr_linenumber" name="276" href="#276">276</a>         }
+<a class="jxr_linenumber" name="238" href="#238">238</a>     <em class="jxr_comment">// Tests step 2 in AbstractTransactionManager.locateCellCommitTimestamp()</em>
+<a class="jxr_linenumber" name="239" href="#239">239</a>     <em class="jxr_comment">// Note: This test is very similar to testCrashAfterCommit() above so</em>
+<a class="jxr_linenumber" name="240" href="#240">240</a>     <em class="jxr_comment">// maybe we should merge them in this test, adding the missing assertions</em>
+<a class="jxr_linenumber" name="241" href="#241">241</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="242" href="#242">242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCellCommitTimestampIsLocatedInCommitTable(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="243" href="#243">243</a> 
+<a class="jxr_linenumber" name="244" href="#244">244</a>         PostCommitActions syncPostCommitter =
+<a class="jxr_linenumber" name="245" href="#245">245</a>                 spy(<strong class="jxr_keyword">new</strong> HBaseSyncPostCommitter(<strong class="jxr_keyword">new</strong> NullMetricsProvider(), getCommitTable(context).getClient()));
+<a class="jxr_linenumber" name="246" href="#246">246</a>         AbstractTransactionManager tm = (AbstractTransactionManager) newTransactionManager(context, syncPostCommitter);
+<a class="jxr_linenumber" name="247" href="#247">247</a>         <em class="jxr_comment">// The following line emulates a crash after commit that is observed in (*) below</em>
+<a class="jxr_linenumber" name="248" href="#248">248</a>         doThrow(<strong class="jxr_keyword">new</strong> RuntimeException()).when(syncPostCommitter).updateShadowCells(any(HBaseTransaction.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="249" href="#249">249</a> 
+<a class="jxr_linenumber" name="250" href="#250">250</a>         <strong class="jxr_keyword">try</strong> (TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="251" href="#251">251</a>             <em class="jxr_comment">// Commit a transaction that is broken on commit to avoid</em>
+<a class="jxr_linenumber" name="252" href="#252">252</a>             <em class="jxr_comment">// write to the shadow cells and avoid cleaning the commit table</em>
+<a class="jxr_linenumber" name="253" href="#253">253</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="254" href="#254">254</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="255" href="#255">255</a>             put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="256" href="#256">256</a>             table.put(tx1, put);
+<a class="jxr_linenumber" name="257" href="#257">257</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="258" href="#258">258</a>                 tm.commit(tx1);
+<a class="jxr_linenumber" name="259" href="#259">259</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a>                 <em class="jxr_comment">// Do nothing</em>
+<a class="jxr_linenumber" name="261" href="#261">261</a>             }
+<a class="jxr_linenumber" name="262" href="#262">262</a> 
+<a class="jxr_linenumber" name="263" href="#263">263</a>             <em class="jxr_comment">// Test the locator finds the appropriate data in the commit table</em>
+<a class="jxr_linenumber" name="264" href="#264">264</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table.getHTable(), row1, family, qualifier,
+<a class="jxr_linenumber" name="265" href="#265">265</a>                     tx1.getStartTimestamp());
+<a class="jxr_linenumber" name="266" href="#266">266</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
+<a class="jxr_linenumber" name="267" href="#267">267</a>                     Maps.&lt;Long, Long&gt;newHashMap());
+<a class="jxr_linenumber" name="268" href="#268">268</a>             CommitTimestamp ct = tm.locateCellCommitTimestamp(tx1.getStartTimestamp(), tm.tsoClient.getEpoch(),
+<a class="jxr_linenumber" name="269" href="#269">269</a>                     ctLocator);
+<a class="jxr_linenumber" name="270" href="#270">270</a>             assertTrue(ct.isValid());
+<a class="jxr_linenumber" name="271" href="#271">271</a>             <strong class="jxr_keyword">long</strong> expectedCommitTS = tx1.getStartTimestamp() + 1;
+<a class="jxr_linenumber" name="272" href="#272">272</a>             assertEquals(ct.getValue(), expectedCommitTS);
+<a class="jxr_linenumber" name="273" href="#273">273</a>             assertTrue(ct.getLocation().compareTo(COMMIT_TABLE) == 0);
+<a class="jxr_linenumber" name="274" href="#274">274</a>         }
+<a class="jxr_linenumber" name="275" href="#275">275</a> 
+<a class="jxr_linenumber" name="276" href="#276">276</a>     }
 <a class="jxr_linenumber" name="277" href="#277">277</a> 
-<a class="jxr_linenumber" name="278" href="#278">278</a>     }
-<a class="jxr_linenumber" name="279" href="#279">279</a> 
-<a class="jxr_linenumber" name="280" href="#280">280</a>     <em class="jxr_comment">// Tests step 3 in AbstractTransactionManager.locateCellCommitTimestamp()</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="282" href="#282">282</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCellCommitTimestampIsLocatedInShadowCells(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="278" href="#278">278</a>     <em class="jxr_comment">// Tests step 3 in AbstractTransactionManager.locateCellCommitTimestamp()</em>
+<a class="jxr_linenumber" name="279" href="#279">279</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="280" href="#280">280</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCellCommitTimestampIsLocatedInShadowCells(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="281" href="#281">281</a> 
+<a class="jxr_linenumber" name="282" href="#282">282</a>         HBaseTransactionManager tm = (HBaseTransactionManager) newTransactionManager(context);
 <a class="jxr_linenumber" name="283" href="#283">283</a> 
-<a class="jxr_linenumber" name="284" href="#284">284</a>         HBaseTransactionManager tm = (HBaseTransactionManager) newTransactionManager(context);
-<a class="jxr_linenumber" name="285" href="#285">285</a> 
-<a class="jxr_linenumber" name="286" href="#286">286</a>         <strong class="jxr_keyword">try</strong> (TTable table = spy(<strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE, tm.getCommitTableClient()))) {
-<a class="jxr_linenumber" name="287" href="#287">287</a>             <em class="jxr_comment">// Commit a transaction to addColumn ST/CT in commit table</em>
-<a class="jxr_linenumber" name="288" href="#288">288</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="289" href="#289">289</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="290" href="#290">290</a>             put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="291" href="#291">291</a>             table.put(tx1, put);
-<a class="jxr_linenumber" name="292" href="#292">292</a>             tm.commit(tx1);
-<a class="jxr_linenumber" name="293" href="#293">293</a>             <em class="jxr_comment">// Upon commit, the commit data should be in the shadow cells</em>
-<a class="jxr_linenumber" name="294" href="#294">294</a> 
-<a class="jxr_linenumber" name="295" href="#295">295</a>             <em class="jxr_comment">// Test the locator finds the appropriate data in the shadow cells</em>
-<a class="jxr_linenumber" name="296" href="#296">296</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier,
-<a class="jxr_linenumber" name="297" href="#297">297</a>                     tx1.getStartTimestamp());
-<a class="jxr_linenumber" name="298" href="#298">298</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
-<a class="jxr_linenumber" name="299" href="#299">299</a>                     Maps.&lt;Long, Long&gt;newHashMap());
-<a class="jxr_linenumber" name="300" href="#300">300</a>             CommitTimestamp ct = table.locateCellCommitTimestamp(tx1.getStartTimestamp(), tm.tsoClient.getEpoch(),
-<a class="jxr_linenumber" name="301" href="#301">301</a>                     ctLocator);
-<a class="jxr_linenumber" name="302" href="#302">302</a>             assertTrue(ct.isValid());
-<a class="jxr_linenumber" name="303" href="#303">303</a>             assertEquals(ct.getValue(), tx1.getCommitTimestamp());
-<a class="jxr_linenumber" name="304" href="#304">304</a>             assertTrue(ct.getLocation().compareTo(SHADOW_CELL) == 0);
-<a class="jxr_linenumber" name="305" href="#305">305</a>         }
+<a class="jxr_linenumber" name="284" href="#284">284</a>         <strong class="jxr_keyword">try</strong> (TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="285" href="#285">285</a>             <em class="jxr_comment">// Commit a transaction to add ST/CT in commit table</em>
+<a class="jxr_linenumber" name="286" href="#286">286</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="287" href="#287">287</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="288" href="#288">288</a>             put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="289" href="#289">289</a>             table.put(tx1, put);
+<a class="jxr_linenumber" name="290" href="#290">290</a>             tm.commit(tx1);
+<a class="jxr_linenumber" name="291" href="#291">291</a>             <em class="jxr_comment">// Upon commit, the commit data should be in the shadow cells</em>
+<a class="jxr_linenumber" name="292" href="#292">292</a> 
+<a class="jxr_linenumber" name="293" href="#293">293</a>             <em class="jxr_comment">// Test the locator finds the appropriate data in the shadow cells</em>
+<a class="jxr_linenumber" name="294" href="#294">294</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table.getHTable(), row1, family, qualifier,
+<a class="jxr_linenumber" name="295" href="#295">295</a>                     tx1.getStartTimestamp());
+<a class="jxr_linenumber" name="296" href="#296">296</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
+<a class="jxr_linenumber" name="297" href="#297">297</a>                     Maps.&lt;Long, Long&gt;newHashMap());
+<a class="jxr_linenumber" name="298" href="#298">298</a>             CommitTimestamp ct = tm.locateCellCommitTimestamp(tx1.getStartTimestamp(), tm.tsoClient.getEpoch(),
+<a class="jxr_linenumber" name="299" href="#299">299</a>                     ctLocator);
+<a class="jxr_linenumber" name="300" href="#300">300</a>             assertTrue(ct.isValid());
+<a class="jxr_linenumber" name="301" href="#301">301</a>             assertEquals(ct.getValue(), tx1.getCommitTimestamp());
+<a class="jxr_linenumber" name="302" href="#302">302</a>             assertTrue(ct.getLocation().compareTo(SHADOW_CELL) == 0);
+<a class="jxr_linenumber" name="303" href="#303">303</a>         }
+<a class="jxr_linenumber" name="304" href="#304">304</a> 
+<a class="jxr_linenumber" name="305" href="#305">305</a>     }
 <a class="jxr_linenumber" name="306" href="#306">306</a> 
-<a class="jxr_linenumber" name="307" href="#307">307</a>     }
-<a class="jxr_linenumber" name="308" href="#308">308</a> 
-<a class="jxr_linenumber" name="309" href="#309">309</a>     <em class="jxr_comment">// Tests step 4 in AbstractTransactionManager.locateCellCommitTimestamp()</em>
-<a class="jxr_linenumber" name="310" href="#310">310</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="311" href="#311">311</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCellFromTransactionInPreviousEpochGetsInvalidComitTimestamp(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="307" href="#307">307</a>     <em class="jxr_comment">// Tests step 4 in AbstractTransactionManager.locateCellCommitTimestamp()</em>
+<a class="jxr_linenumber" name="308" href="#308">308</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="309" href="#309">309</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCellFromTransactionInPreviousEpochGetsInvalidComitTimestamp(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="310" href="#310">310</a> 
+<a class="jxr_linenumber" name="311" href="#311">311</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> CURRENT_EPOCH_FAKE = 1000L;
 <a class="jxr_linenumber" name="312" href="#312">312</a> 
-<a class="jxr_linenumber" name="313" href="#313">313</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> CURRENT_EPOCH_FAKE = 1000L * AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="314" href="#314">314</a> 
-<a class="jxr_linenumber" name="315" href="#315">315</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
-<a class="jxr_linenumber" name="316" href="#316">316</a>         AbstractTransactionManager tm = spy((AbstractTransactionManager) newTransactionManager(context, commitTableClient));
-<a class="jxr_linenumber" name="317" href="#317">317</a>         <em class="jxr_comment">// The following lines allow to reach step 4)</em>
-<a class="jxr_linenumber" name="318" href="#318">318</a>         <em class="jxr_comment">// in AbstractTransactionManager.locateCellCommitTimestamp()</em>
-<a class="jxr_linenumber" name="319" href="#319">319</a>         SettableFuture&lt;Optional&lt;CommitTimestamp&gt;&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="320" href="#320">320</a>         f.set(Optional.&lt;CommitTimestamp&gt;absent());
-<a class="jxr_linenumber" name="321" href="#321">321</a>         doReturn(f).when(commitTableClient).getCommitTimestamp(any(Long.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="313" href="#313">313</a>         CommitTable.Client commitTableClient = spy(getCommitTable(context).getClient());
+<a class="jxr_linenumber" name="314" href="#314">314</a>         AbstractTransactionManager tm = spy((AbstractTransactionManager) newTransactionManager(context, commitTableClient));
+<a class="jxr_linenumber" name="315" href="#315">315</a>         <em class="jxr_comment">// The following lines allow to reach step 4)</em>
+<a class="jxr_linenumber" name="316" href="#316">316</a>         <em class="jxr_comment">// in AbstractTransactionManager.locateCellCommitTimestamp()</em>
+<a class="jxr_linenumber" name="317" href="#317">317</a>         SettableFuture&lt;Optional&lt;CommitTimestamp&gt;&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="318" href="#318">318</a>         f.set(Optional.&lt;CommitTimestamp&gt;absent());
+<a class="jxr_linenumber" name="319" href="#319">319</a>         doReturn(f).when(commitTableClient).getCommitTimestamp(any(Long.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="320" href="#320">320</a>         doReturn(Optional.&lt;CommitTimestamp&gt;absent()).when(tm).readCommitTimestampFromShadowCell(any(Long.<strong class="jxr_keyword">class</strong>),
+<a class="jxr_linenumber" name="321" href="#321">321</a>                 any(CommitTimestampLocator.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="322" href="#322">322</a> 
-<a class="jxr_linenumber" name="323" href="#323">323</a> 
-<a class="jxr_linenumber" name="324" href="#324">324</a>         <strong class="jxr_keyword">try</strong> (TTable table = spy(<strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE, tm.getCommitTableClient()))) {
-<a class="jxr_linenumber" name="325" href="#325">325</a> 
-<a class="jxr_linenumber" name="326" href="#326">326</a>             <em class="jxr_comment">// Commit a transaction to addColumn ST/CT in commit table</em>
-<a class="jxr_linenumber" name="327" href="#327">327</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="328" href="#328">328</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="329" href="#329">329</a>             put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="330" href="#330">330</a>             table.put(tx1, put);
+<a class="jxr_linenumber" name="323" href="#323">323</a>         <strong class="jxr_keyword">try</strong> (TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="324" href="#324">324</a> 
+<a class="jxr_linenumber" name="325" href="#325">325</a>             <em class="jxr_comment">// Commit a transaction to add ST/CT in commit table</em>
+<a class="jxr_linenumber" name="326" href="#326">326</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="327" href="#327">327</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="328" href="#328">328</a>             put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="329" href="#329">329</a>             table.put(tx1, put);
+<a class="jxr_linenumber" name="330" href="#330">330</a>             tm.commit(tx1);
 <a class="jxr_linenumber" name="331" href="#331">331</a>             <em class="jxr_comment">// Upon commit, the commit data should be in the shadow cells</em>
 <a class="jxr_linenumber" name="332" href="#332">332</a> 
 <a class="jxr_linenumber" name="333" href="#333">333</a>             <em class="jxr_comment">// Test a transaction in the previous epoch gets an InvalidCommitTimestamp class</em>
-<a class="jxr_linenumber" name="334" href="#334">334</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier,
+<a class="jxr_linenumber" name="334" href="#334">334</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table.getHTable(), row1, family, qualifier,
 <a class="jxr_linenumber" name="335" href="#335">335</a>                     tx1.getStartTimestamp());
 <a class="jxr_linenumber" name="336" href="#336">336</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
 <a class="jxr_linenumber" name="337" href="#337">337</a>                     Maps.&lt;Long, Long&gt;newHashMap());
 <a class="jxr_linenumber" name="338" href="#338">338</a>             <em class="jxr_comment">// Fake the current epoch to simulate a newer TSO</em>
-<a class="jxr_linenumber" name="339" href="#339">339</a>             CommitTimestamp ct = table.locateCellCommitTimestamp(tx1.getStartTimestamp(), CURRENT_EPOCH_FAKE, ctLocator);
+<a class="jxr_linenumber" name="339" href="#339">339</a>             CommitTimestamp ct = tm.locateCellCommitTimestamp(tx1.getStartTimestamp(), CURRENT_EPOCH_FAKE, ctLocator);
 <a class="jxr_linenumber" name="340" href="#340">340</a>             assertFalse(ct.isValid());
 <a class="jxr_linenumber" name="341" href="#341">341</a>             assertEquals(ct.getValue(), CommitTable.INVALID_TRANSACTION_MARKER);
 <a class="jxr_linenumber" name="342" href="#342">342</a>             assertTrue(ct.getLocation().compareTo(COMMIT_TABLE) == 0);
@@ -369,97 +369,103 @@
 <a class="jxr_linenumber" name="359" href="#359">359</a>         SettableFuture&lt;Optional&lt;CommitTimestamp&gt;&gt; f = SettableFuture.create();
 <a class="jxr_linenumber" name="360" href="#360">360</a>         f.set(Optional.&lt;CommitTimestamp&gt;absent());
 <a class="jxr_linenumber" name="361" href="#361">361</a>         doReturn(f).doCallRealMethod().when(commitTableClient).getCommitTimestamp(any(Long.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="362" href="#362">362</a> 
-<a class="jxr_linenumber" name="363" href="#363">363</a>         <strong class="jxr_keyword">try</strong> (TTable table = spy(<strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE, tm.getCommitTableClient()))) {
+<a class="jxr_linenumber" name="362" href="#362">362</a>         doReturn(Optional.&lt;CommitTimestamp&gt;absent()).when(tm).readCommitTimestampFromShadowCell(any(Long.<strong class="jxr_keyword">class</strong>),
+<a class="jxr_linenumber" name="363" href="#363">363</a>                 any(CommitTimestampLocator.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="364" href="#364">364</a> 
-<a class="jxr_linenumber" name="365" href="#365">365</a>             <em class="jxr_comment">// Commit a transaction that is broken on commit to avoid</em>
-<a class="jxr_linenumber" name="366" href="#366">366</a>             <em class="jxr_comment">// write to the shadow cells and avoid cleaning the commit table</em>
-<a class="jxr_linenumber" name="367" href="#367">367</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="368" href="#368">368</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="369" href="#369">369</a>             put.addColumn(family, qualifier, data1);
-<a class="jxr_linenumber" name="370" href="#370">370</a>             table.put(tx1, put);
-<a class="jxr_linenumber" name="371" href="#371">371</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="372" href="#372">372</a>                 tm.commit(tx1);
-<a class="jxr_linenumber" name="373" href="#373">373</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
-<a class="jxr_linenumber" name="374" href="#374">374</a>                 <em class="jxr_comment">// Do nothing</em>
-<a class="jxr_linenumber" name="375" href="#375">375</a>             }
-<a class="jxr_linenumber" name="376" href="#376">376</a> 
-<a class="jxr_linenumber" name="377" href="#377">377</a>             <em class="jxr_comment">// Test the locator finds the appropriate data in the commit table</em>
-<a class="jxr_linenumber" name="378" href="#378">378</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table, row1, family, qualifier,
-<a class="jxr_linenumber" name="379" href="#379">379</a>                     tx1.getStartTimestamp());
-<a class="jxr_linenumber" name="380" href="#380">380</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
-<a class="jxr_linenumber" name="381" href="#381">381</a>                     Maps.&lt;Long, Long&gt;newHashMap());
-<a class="jxr_linenumber" name="382" href="#382">382</a>             CommitTimestamp ct = table.locateCellCommitTimestamp(tx1.getStartTimestamp(), tm.tsoClient.getEpoch(),
-<a class="jxr_linenumber" name="383" href="#383">383</a>                     ctLocator);
-<a class="jxr_linenumber" name="384" href="#384">384</a>             assertTrue(ct.isValid());
-<a class="jxr_linenumber" name="385" href="#385">385</a>             assertEquals(ct.getValue(), tx1.getCommitTimestamp());
-<a class="jxr_linenumber" name="386" href="#386">386</a>             assertTrue(ct.getLocation().compareTo(COMMIT_TABLE) == 0);
-<a class="jxr_linenumber" name="387" href="#387">387</a>         }
-<a class="jxr_linenumber" name="388" href="#388">388</a> 
-<a class="jxr_linenumber" name="389" href="#389">389</a>     }
+<a class="jxr_linenumber" name="365" href="#365">365</a>         <strong class="jxr_keyword">try</strong> (TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="366" href="#366">366</a> 
+<a class="jxr_linenumber" name="367" href="#367">367</a>             <em class="jxr_comment">// Commit a transaction that is broken on commit to avoid</em>
+<a class="jxr_linenumber" name="368" href="#368">368</a>             <em class="jxr_comment">// write to the shadow cells and avoid cleaning the commit table</em>
+<a class="jxr_linenumber" name="369" href="#369">369</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="370" href="#370">370</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="371" href="#371">371</a>             put.add(family, qualifier, data1);
+<a class="jxr_linenumber" name="372" href="#372">372</a>             table.put(tx1, put);
+<a class="jxr_linenumber" name="373" href="#373">373</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="374" href="#374">374</a>                 tm.commit(tx1);
+<a class="jxr_linenumber" name="375" href="#375">375</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) { <em class="jxr_comment">// (*) crash</em>
+<a class="jxr_linenumber" name="376" href="#376">376</a>                 <em class="jxr_comment">// Do nothing</em>
+<a class="jxr_linenumber" name="377" href="#377">377</a>             }
+<a class="jxr_linenumber" name="378" href="#378">378</a> 
+<a class="jxr_linenumber" name="379" href="#379">379</a>             <em class="jxr_comment">// Test the locator finds the appropriate data in the commit table</em>
+<a class="jxr_linenumber" name="380" href="#380">380</a>             HBaseCellId hBaseCellId = <strong class="jxr_keyword">new</strong> HBaseCellId(table.getHTable(), row1, family, qualifier,
+<a class="jxr_linenumber" name="381" href="#381">381</a>                     tx1.getStartTimestamp());
+<a class="jxr_linenumber" name="382" href="#382">382</a>             CommitTimestampLocator ctLocator = <strong class="jxr_keyword">new</strong> CommitTimestampLocatorImpl(hBaseCellId,
+<a class="jxr_linenumber" name="383" href="#383">383</a>                     Maps.&lt;Long, Long&gt;newHashMap());
+<a class="jxr_linenumber" name="384" href="#384">384</a>             CommitTimestamp ct = tm.locateCellCommitTimestamp(tx1.getStartTimestamp(), tm.tsoClient.getEpoch(),
+<a class="jxr_linenumber" name="385" href="#385">385</a>                     ctLocator);
+<a class="jxr_linenumber" name="386" href="#386">386</a>             assertTrue(ct.isValid());
+<a class="jxr_linenumber" name="387" href="#387">387</a>             assertEquals(ct.getValue(), tx1.getCommitTimestamp()

<TRUNCATED>


[29/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestTxMgrFailover.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestTxMgrFailover.html b/xref-test/org/apache/omid/transaction/TestTxMgrFailover.html
index 239ba59..19d29dd 100644
--- a/xref-test/org/apache/omid/transaction/TestTxMgrFailover.html
+++ b/xref-test/org/apache/omid/transaction/TestTxMgrFailover.html
@@ -27,44 +27,44 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> javax.annotation.Nullable;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.InMemoryCommitTable;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction.Status;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.ProgrammableTSOServer;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestTxMgrFailover.html">TestTxMgrFailover</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTxMgrFailover.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="53" href="#53">53</a>  
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO_SERVER_PORT = 3333;
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_SERVER_HOST = <span class="jxr_string">"localhost"</span>;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TX1_ST = 1L;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.InMemoryCommitTable;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction.Status;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.ProgrammableTSOServer;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.annotation.Nullable;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNull;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  
+<a class="jxr_linenumber" name="48" href="#48">48</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestTxMgrFailover.html">TestTxMgrFailover</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTxMgrFailover.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="52" href="#52">52</a>  
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO_SERVER_PORT = 3333;
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_SERVER_HOST = <span class="jxr_string">"localhost"</span>;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TX1_ST = 1L;
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TX1_CT = 2L;
 <a class="jxr_linenumber" name="58" href="#58">58</a>  
 <a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"test-qual"</span>);
 <a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"row1"</span>);
@@ -113,14 +113,14 @@
 <a class="jxr_linenumber" name="103" href="#103">103</a>         tso.queueResponse(<strong class="jxr_keyword">new</strong> ProgrammableTSOServer.TimestampResponse(TX1_ST));
 <a class="jxr_linenumber" name="104" href="#104">104</a>         tso.queueResponse(<strong class="jxr_keyword">new</strong> ProgrammableTSOServer.AbortResponse(TX1_ST));
 <a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
 <a class="jxr_linenumber" name="107" href="#107">107</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
 <a class="jxr_linenumber" name="108" href="#108">108</a>             assertEquals(tx1.getStartTimestamp(), TX1_ST);
 <a class="jxr_linenumber" name="109" href="#109">109</a>             Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="110" href="#110">110</a>             put.addColumn(TEST_FAMILY.getBytes(), qualifier, data1);
+<a class="jxr_linenumber" name="110" href="#110">110</a>             put.add(TEST_FAMILY.getBytes(), qualifier, data1);
 <a class="jxr_linenumber" name="111" href="#111">111</a>             txTable.put(tx1, put);
-<a class="jxr_linenumber" name="112" href="#112">112</a>             assertEquals(hBaseUtils.countRows(txTable.getHTable()), 1, <span class="jxr_string">"Rows should be 1!"</span>);
-<a class="jxr_linenumber" name="113" href="#113">113</a>             checkOperationSuccessOnCell(txTable.getHTable(), KeyValue.Type.Put, data1, TEST_TABLE.getBytes(), row1, TEST_FAMILY.getBytes(),
+<a class="jxr_linenumber" name="112" href="#112">112</a>             assertEquals(hBaseUtils.countRows(<strong class="jxr_keyword">new</strong> HTable(hbaseConf, TEST_TABLE)), 1, <span class="jxr_string">"Rows should be 1!"</span>);
+<a class="jxr_linenumber" name="113" href="#113">113</a>             checkOperationSuccessOnCell(KeyValue.Type.Put, data1, TEST_TABLE.getBytes(), row1, TEST_FAMILY.getBytes(),
 <a class="jxr_linenumber" name="114" href="#114">114</a>                     qualifier);
 <a class="jxr_linenumber" name="115" href="#115">115</a> 
 <a class="jxr_linenumber" name="116" href="#116">116</a>             <strong class="jxr_keyword">try</strong> {
@@ -135,7 +135,7 @@
 <a class="jxr_linenumber" name="125" href="#125">125</a>             assertEquals(tx1.getStatus(), Status.ROLLEDBACK);
 <a class="jxr_linenumber" name="126" href="#126">126</a>             assertEquals(tx1.getCommitTimestamp(), 0);
 <a class="jxr_linenumber" name="127" href="#127">127</a>             <em class="jxr_comment">// Check the cleanup process did its job and the committed data is NOT there</em>
-<a class="jxr_linenumber" name="128" href="#128">128</a>             checkOperationSuccessOnCell(txTable.getHTable(), KeyValue.Type.Delete, <strong class="jxr_keyword">null</strong>, TEST_TABLE.getBytes(), row1, TEST_FAMILY.getBytes(),
+<a class="jxr_linenumber" name="128" href="#128">128</a>             checkOperationSuccessOnCell(KeyValue.Type.Delete, <strong class="jxr_keyword">null</strong>, TEST_TABLE.getBytes(), row1, TEST_FAMILY.getBytes(),
 <a class="jxr_linenumber" name="129" href="#129">129</a>                     qualifier);
 <a class="jxr_linenumber" name="130" href="#130">130</a>         }
 <a class="jxr_linenumber" name="131" href="#131">131</a> 
@@ -145,46 +145,45 @@
 <a class="jxr_linenumber" name="135" href="#135">135</a>     <em class="jxr_comment">// Helper methods</em>
 <a class="jxr_linenumber" name="136" href="#136">136</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
 <a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkOperationSuccessOnCell(Table table,
-<a class="jxr_linenumber" name="139" href="#139">139</a>                                                KeyValue.Type targetOp,
-<a class="jxr_linenumber" name="140" href="#140">140</a>                                                @Nullable byte[] expectedValue,
-<a class="jxr_linenumber" name="141" href="#141">141</a>                                                byte[] tableName,
-<a class="jxr_linenumber" name="142" href="#142">142</a>                                                byte[] row,
-<a class="jxr_linenumber" name="143" href="#143">143</a>                                                byte[] fam,
-<a class="jxr_linenumber" name="144" href="#144">144</a>                                                byte[] col) {
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="147" href="#147">147</a>             Get get = <strong class="jxr_keyword">new</strong> Get(row).setMaxVersions(1);
-<a class="jxr_linenumber" name="148" href="#148">148</a>             Result result = table.get(get);
-<a class="jxr_linenumber" name="149" href="#149">149</a>             Cell latestCell = result.getColumnLatestCell(fam, col);
-<a class="jxr_linenumber" name="150" href="#150">150</a> 
-<a class="jxr_linenumber" name="151" href="#151">151</a>             <strong class="jxr_keyword">switch</strong> (targetOp) {
-<a class="jxr_linenumber" name="152" href="#152">152</a>                 <strong class="jxr_keyword">case</strong> Put:
-<a class="jxr_linenumber" name="153" href="#153">153</a>                     assertEquals(latestCell.getTypeByte(), targetOp.getCode());
-<a class="jxr_linenumber" name="154" href="#154">154</a>                     assertEquals(CellUtil.cloneValue(latestCell), expectedValue);
-<a class="jxr_linenumber" name="155" href="#155">155</a>                     LOG.trace(<span class="jxr_string">"Value for "</span> + Bytes.toString(tableName) + <span class="jxr_string">":"</span>
-<a class="jxr_linenumber" name="156" href="#156">156</a>                             + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam) + <span class="jxr_string">":"</span>
-<a class="jxr_linenumber" name="157" href="#157">157</a>                             + Bytes.toString(col) + <span class="jxr_string">"=&gt;"</span> + Bytes.toString(CellUtil.cloneValue(latestCell))
-<a class="jxr_linenumber" name="158" href="#158">158</a>                             + <span class="jxr_string">" ("</span> + Bytes.toString(expectedValue) + <span class="jxr_string">" expected)"</span>);
-<a class="jxr_linenumber" name="159" href="#159">159</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="160" href="#160">160</a>                 <strong class="jxr_keyword">case</strong> Delete:
-<a class="jxr_linenumber" name="161" href="#161">161</a>                     LOG.trace(<span class="jxr_string">"Value for "</span> + Bytes.toString(tableName) + <span class="jxr_string">":"</span>
-<a class="jxr_linenumber" name="162" href="#162">162</a>                             + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam)
-<a class="jxr_linenumber" name="163" href="#163">163</a>                             + Bytes.toString(col) + <span class="jxr_string">" deleted"</span>);
-<a class="jxr_linenumber" name="164" href="#164">164</a>                     assertNull(latestCell);
-<a class="jxr_linenumber" name="165" href="#165">165</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="166" href="#166">166</a>                 <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="167" href="#167">167</a>                     fail();
-<a class="jxr_linenumber" name="168" href="#168">168</a>             }
-<a class="jxr_linenumber" name="169" href="#169">169</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="170" href="#170">170</a>             LOG.error(<span class="jxr_string">"Error reading row "</span> + Bytes.toString(tableName) + <span class="jxr_string">":"</span>
-<a class="jxr_linenumber" name="171" href="#171">171</a>                     + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam)
-<a class="jxr_linenumber" name="172" href="#172">172</a>                     + Bytes.toString(col), e);
-<a class="jxr_linenumber" name="173" href="#173">173</a>             fail();
-<a class="jxr_linenumber" name="174" href="#174">174</a>         }
-<a class="jxr_linenumber" name="175" href="#175">175</a>     }
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a> }
+<a class="jxr_linenumber" name="138" href="#138">138</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkOperationSuccessOnCell(KeyValue.Type targetOp,
+<a class="jxr_linenumber" name="139" href="#139">139</a>                                                @Nullable byte[] expectedValue,
+<a class="jxr_linenumber" name="140" href="#140">140</a>                                                byte[] tableName,
+<a class="jxr_linenumber" name="141" href="#141">141</a>                                                byte[] row,
+<a class="jxr_linenumber" name="142" href="#142">142</a>                                                byte[] fam,
+<a class="jxr_linenumber" name="143" href="#143">143</a>                                                byte[] col) {
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>         <strong class="jxr_keyword">try</strong> (HTable table = <strong class="jxr_keyword">new</strong> HTable(hbaseConf, tableName)) {
+<a class="jxr_linenumber" name="146" href="#146">146</a>             Get get = <strong class="jxr_keyword">new</strong> Get(row).setMaxVersions(1);
+<a class="jxr_linenumber" name="147" href="#147">147</a>             Result result = table.get(get);
+<a class="jxr_linenumber" name="148" href="#148">148</a>             Cell latestCell = result.getColumnLatestCell(fam, col);
+<a class="jxr_linenumber" name="149" href="#149">149</a> 
+<a class="jxr_linenumber" name="150" href="#150">150</a>             <strong class="jxr_keyword">switch</strong> (targetOp) {
+<a class="jxr_linenumber" name="151" href="#151">151</a>                 <strong class="jxr_keyword">case</strong> Put:
+<a class="jxr_linenumber" name="152" href="#152">152</a>                     assertEquals(latestCell.getTypeByte(), targetOp.getCode());
+<a class="jxr_linenumber" name="153" href="#153">153</a>                     assertEquals(CellUtil.cloneValue(latestCell), expectedValue);
+<a class="jxr_linenumber" name="154" href="#154">154</a>                     LOG.trace(<span class="jxr_string">"Value for "</span> + Bytes.toString(tableName) + <span class="jxr_string">":"</span>
+<a class="jxr_linenumber" name="155" href="#155">155</a>                             + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam) + <span class="jxr_string">":"</span>
+<a class="jxr_linenumber" name="156" href="#156">156</a>                             + Bytes.toString(col) + <span class="jxr_string">"=&gt;"</span> + Bytes.toString(CellUtil.cloneValue(latestCell))
+<a class="jxr_linenumber" name="157" href="#157">157</a>                             + <span class="jxr_string">" ("</span> + Bytes.toString(expectedValue) + <span class="jxr_string">" expected)"</span>);
+<a class="jxr_linenumber" name="158" href="#158">158</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="159" href="#159">159</a>                 <strong class="jxr_keyword">case</strong> Delete:
+<a class="jxr_linenumber" name="160" href="#160">160</a>                     LOG.trace(<span class="jxr_string">"Value for "</span> + Bytes.toString(tableName) + <span class="jxr_string">":"</span>
+<a class="jxr_linenumber" name="161" href="#161">161</a>                             + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam)
+<a class="jxr_linenumber" name="162" href="#162">162</a>                             + Bytes.toString(col) + <span class="jxr_string">" deleted"</span>);
+<a class="jxr_linenumber" name="163" href="#163">163</a>                     assertNull(latestCell);
+<a class="jxr_linenumber" name="164" href="#164">164</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="165" href="#165">165</a>                 <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="166" href="#166">166</a>                     fail();
+<a class="jxr_linenumber" name="167" href="#167">167</a>             }
+<a class="jxr_linenumber" name="168" href="#168">168</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="169" href="#169">169</a>             LOG.error(<span class="jxr_string">"Error reading row "</span> + Bytes.toString(tableName) + <span class="jxr_string">":"</span>
+<a class="jxr_linenumber" name="170" href="#170">170</a>                     + Bytes.toString(row) + <span class="jxr_string">":"</span> + Bytes.toString(fam)
+<a class="jxr_linenumber" name="171" href="#171">171</a>                     + Bytes.toString(col), e);
+<a class="jxr_linenumber" name="172" href="#172">172</a>             fail();
+<a class="jxr_linenumber" name="173" href="#173">173</a>         }
+<a class="jxr_linenumber" name="174" href="#174">174</a>     }
+<a class="jxr_linenumber" name="175" href="#175">175</a> 
+<a class="jxr_linenumber" name="176" href="#176">176</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestUpdateScan.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestUpdateScan.html b/xref-test/org/apache/omid/transaction/TestUpdateScan.html
index cfbf9ce..8c8d87a 100644
--- a/xref-test/org/apache/omid/transaction/TestUpdateScan.html
+++ b/xref-test/org/apache/omid/transaction/TestUpdateScan.html
@@ -27,25 +27,25 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.BinaryPrefixComparator;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.CompareFilter;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.FilterList;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.RowFilter;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.WhileMatchFilter;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.testng.Assert;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.BinaryPrefixComparator;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.CompareFilter;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.FilterList;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.RowFilter;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.WhileMatchFilter;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.testng.Assert;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
 <a class="jxr_linenumber" name="39" href="#39">39</a>  
 <a class="jxr_linenumber" name="40" href="#40">40</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
 <a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestUpdateScan.html">TestUpdateScan</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
@@ -58,13 +58,13 @@
 <a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGet(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="49" href="#49">49</a>          <strong class="jxr_keyword">try</strong> {
 <a class="jxr_linenumber" name="50" href="#50">50</a>              TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="51" href="#51">51</a>              TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="51" href="#51">51</a>              TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="52" href="#52">52</a>              Transaction t = tm.begin();
 <a class="jxr_linenumber" name="53" href="#53">53</a>              <strong class="jxr_keyword">int</strong>[] lInts = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">int</strong>[]{100, 243, 2342, 22, 1, 5, 43, 56};
 <a class="jxr_linenumber" name="54" href="#54">54</a>              <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; lInts.length; i++) {
 <a class="jxr_linenumber" name="55" href="#55">55</a>                  byte[] data = Bytes.toBytes(lInts[i]);
 <a class="jxr_linenumber" name="56" href="#56">56</a>                  Put put = <strong class="jxr_keyword">new</strong> Put(data);
-<a class="jxr_linenumber" name="57" href="#57">57</a>                  put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
+<a class="jxr_linenumber" name="57" href="#57">57</a>                  put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
 <a class="jxr_linenumber" name="58" href="#58">58</a>                  table.put(t, put);
 <a class="jxr_linenumber" name="59" href="#59">59</a>              }
 <a class="jxr_linenumber" name="60" href="#60">60</a>              <strong class="jxr_keyword">int</strong> startKeyValue = lInts[3];
@@ -115,15 +115,15 @@
 <a class="jxr_linenumber" name="105" href="#105">105</a>     @Test(timeOut = 10_000)
 <a class="jxr_linenumber" name="106" href="#106">106</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScan(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">try</strong> (TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
+<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">try</strong> (TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
 <a class="jxr_linenumber" name="109" href="#109">109</a>             TransactionManager tm = newTransactionManager(context);
 <a class="jxr_linenumber" name="110" href="#110">110</a>             Transaction t = tm.begin();
 <a class="jxr_linenumber" name="111" href="#111">111</a>             <strong class="jxr_keyword">int</strong>[] lInts = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">int</strong>[]{100, 243, 2342, 22, 1, 5, 43, 56};
 <a class="jxr_linenumber" name="112" href="#112">112</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> lInt : lInts) {
 <a class="jxr_linenumber" name="113" href="#113">113</a>                 byte[] data = Bytes.toBytes(lInt);
 <a class="jxr_linenumber" name="114" href="#114">114</a>                 Put put = <strong class="jxr_keyword">new</strong> Put(data);
-<a class="jxr_linenumber" name="115" href="#115">115</a>                 put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
-<a class="jxr_linenumber" name="116" href="#116">116</a>                 put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL_2), data);
+<a class="jxr_linenumber" name="115" href="#115">115</a>                 put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
+<a class="jxr_linenumber" name="116" href="#116">116</a>                 put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL_2), data);
 <a class="jxr_linenumber" name="117" href="#117">117</a>                 table.put(t, put);
 <a class="jxr_linenumber" name="118" href="#118">118</a>             }
 <a class="jxr_linenumber" name="119" href="#119">119</a> 
@@ -164,13 +164,13 @@
 <a class="jxr_linenumber" name="154" href="#154">154</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScanUncommitted(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">try</strong> {
 <a class="jxr_linenumber" name="156" href="#156">156</a>             TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="157" href="#157">157</a>             TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="157" href="#157">157</a>             TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="158" href="#158">158</a>             Transaction t = tm.begin();
 <a class="jxr_linenumber" name="159" href="#159">159</a>             <strong class="jxr_keyword">int</strong>[] lIntsA = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">int</strong>[]{100, 243, 2342, 22, 1, 5, 43, 56};
 <a class="jxr_linenumber" name="160" href="#160">160</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> aLIntsA : lIntsA) {
 <a class="jxr_linenumber" name="161" href="#161">161</a>                 byte[] data = Bytes.toBytes(aLIntsA);
 <a class="jxr_linenumber" name="162" href="#162">162</a>                 Put put = <strong class="jxr_keyword">new</strong> Put(data);
-<a class="jxr_linenumber" name="163" href="#163">163</a>                 put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
+<a class="jxr_linenumber" name="163" href="#163">163</a>                 put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
 <a class="jxr_linenumber" name="164" href="#164">164</a>                 table.put(t, put);
 <a class="jxr_linenumber" name="165" href="#165">165</a>             }
 <a class="jxr_linenumber" name="166" href="#166">166</a>             tm.commit(t);
@@ -180,7 +180,7 @@
 <a class="jxr_linenumber" name="170" href="#170">170</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> aLIntsB : lIntsB) {
 <a class="jxr_linenumber" name="171" href="#171">171</a>                 byte[] data = Bytes.toBytes(aLIntsB);
 <a class="jxr_linenumber" name="172" href="#172">172</a>                 Put put = <strong class="jxr_keyword">new</strong> Put(data);
-<a class="jxr_linenumber" name="173" href="#173">173</a>                 put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
+<a class="jxr_linenumber" name="173" href="#173">173</a>                 put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
 <a class="jxr_linenumber" name="174" href="#174">174</a>                 table.put(tu, put);
 <a class="jxr_linenumber" name="175" href="#175">175</a>             }
 <a class="jxr_linenumber" name="176" href="#176">176</a> 
@@ -189,7 +189,7 @@
 <a class="jxr_linenumber" name="179" href="#179">179</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> aLIntsC : lIntsC) {
 <a class="jxr_linenumber" name="180" href="#180">180</a>                 byte[] data = Bytes.toBytes(aLIntsC);
 <a class="jxr_linenumber" name="181" href="#181">181</a>                 Put put = <strong class="jxr_keyword">new</strong> Put(data);
-<a class="jxr_linenumber" name="182" href="#182">182</a>                 put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
+<a class="jxr_linenumber" name="182" href="#182">182</a>                 put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(TEST_COL), data);
 <a class="jxr_linenumber" name="183" href="#183">183</a>                 table.put(t, put);
 <a class="jxr_linenumber" name="184" href="#184">184</a>             }
 <a class="jxr_linenumber" name="185" href="#185">185</a>             tm.commit(t);

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/package-frame.html b/xref-test/org/apache/omid/transaction/package-frame.html
index 5b1d031..b52d86a 100644
--- a/xref-test/org/apache/omid/transaction/package-frame.html
+++ b/xref-test/org/apache/omid/transaction/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.transaction</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.transaction</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -25,9 +25,6 @@
             	<a href="TSOForHBaseCompactorTestModule.html" target="classFrame">TSOForHBaseCompactorTestModule</a>
           	</li>
           	          	<li>
-            	<a href="TSOForSnapshotFilterTestModule.html" target="classFrame">TSOForSnapshotFilterTestModule</a>
-          	</li>
-          	          	<li>
             	<a href="TestAsynchronousPostCommitter.html" target="classFrame">TestAsynchronousPostCommitter</a>
           	</li>
           	          	<li>
@@ -43,9 +40,6 @@
             	<a href="TestCellUtils.html" target="classFrame">TestCellUtils</a>
           	</li>
           	          	<li>
-            	<a href="TestCheckpoint.html" target="classFrame">TestCheckpoint</a>
-          	</li>
-          	          	<li>
             	<a href="TestColumnIterator.html" target="classFrame">TestColumnIterator</a>
           	</li>
           	          	<li>
@@ -76,9 +70,6 @@
             	<a href="TestHBaseTransactionManager.html" target="classFrame">TestHBaseTransactionManager</a>
           	</li>
           	          	<li>
-            	<a href="TestMarkPutAsCommitted.html" target="classFrame">TestMarkPutAsCommitted</a>
-          	</li>
-          	          	<li>
             	<a href="TestMultiplePut.html" target="classFrame">TestMultiplePut</a>
           	</li>
           	          	<li>
@@ -91,9 +82,6 @@
             	<a href="TestSingleColumnFamily.html" target="classFrame">TestSingleColumnFamily</a>
           	</li>
           	          	<li>
-            	<a href="TestSnapshotFilter.html" target="classFrame">TestSnapshotFilter</a>
-          	</li>
-          	          	<li>
             	<a href="TestTSOModule.html" target="classFrame">TestTSOModule</a>
           	</li>
           	          	<li>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/package-summary.html b/xref-test/org/apache/omid/transaction/package-summary.html
index 21ec263..0c5e4a0 100644
--- a/xref-test/org/apache/omid/transaction/package-summary.html
+++ b/xref-test/org/apache/omid/transaction/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.transaction</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.transaction</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -52,11 +52,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TSOForSnapshotFilterTestModule.html" target="classFrame">TSOForSnapshotFilterTestModule</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="TestAsynchronousPostCommitter.html" target="classFrame">TestAsynchronousPostCommitter</a>
               		</td>
             	</tr>
@@ -82,11 +77,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TestCheckpoint.html" target="classFrame">TestCheckpoint</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="TestColumnIterator.html" target="classFrame">TestColumnIterator</a>
               		</td>
             	</tr>
@@ -137,11 +127,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TestMarkPutAsCommitted.html" target="classFrame">TestMarkPutAsCommitted</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="TestMultiplePut.html" target="classFrame">TestMultiplePut</a>
               		</td>
             	</tr>
@@ -162,11 +147,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TestSnapshotFilter.html" target="classFrame">TestSnapshotFilter</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="TestTSOModule.html" target="classFrame">TestTSOModule</a>
               		</td>
             	</tr>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/TSOMockModule.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/TSOMockModule.html b/xref-test/org/apache/omid/tso/TSOMockModule.html
index 4cc6b4f..004ac59 100644
--- a/xref-test/org/apache/omid/tso/TSOMockModule.html
+++ b/xref-test/org/apache/omid/tso/TSOMockModule.html
@@ -36,72 +36,67 @@
 <a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
 <a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
 <a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.TimestampStorage;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig.TIMESTAMP_TYPE;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TimestampOracleImpl.InMemoryTimestampStorage;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.inject.Named;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.inject.Singleton;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.net.SocketException;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.net.UnknownHostException;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.TSOServer.TSO_HOST_AND_PORT_KEY;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a> <strong class="jxr_keyword">extends</strong> AbstractModule {
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> TSOServerConfig config;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  
-<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(TSOServerConfig config) {
-<a class="jxr_linenumber" name="44" href="#44">44</a>          Preconditions.checkArgument(config.getNumConcurrentCTWriters() &gt;= 2, <span class="jxr_string">"# of Commit Table writers must be &gt;= 2"</span>);
-<a class="jxr_linenumber" name="45" href="#45">45</a>          <strong class="jxr_keyword">this</strong>.config = config;
-<a class="jxr_linenumber" name="46" href="#46">46</a>      }
-<a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>      @Override
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> configure() {
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>          bind(TSOChannelHandler.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="52" href="#52">52</a>          bind(TSOStateManager.<strong class="jxr_keyword">class</strong>).to(TSOStateManagerImpl.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="53" href="#53">53</a>          bind(CommitTable.<strong class="jxr_keyword">class</strong>).to(InMemoryCommitTable.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="54" href="#54">54</a>          bind(TimestampStorage.<strong class="jxr_keyword">class</strong>).to(InMemoryTimestampStorage.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="55" href="#55">55</a>          <strong class="jxr_keyword">if</strong> (config.getTimestampTypeEnum() == TIMESTAMP_TYPE.WORLD_TIME) {
-<a class="jxr_linenumber" name="56" href="#56">56</a>              bind(TimestampOracle.<strong class="jxr_keyword">class</strong>).to(WorldClockOracleImpl.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="57" href="#57">57</a>          } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="58" href="#58">58</a>              bind(TimestampOracle.<strong class="jxr_keyword">class</strong>).to(PausableTimestampOracle.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="59" href="#59">59</a>          }
-<a class="jxr_linenumber" name="60" href="#60">60</a>          bind(Panicker.<strong class="jxr_keyword">class</strong>).to(MockPanicker.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>          install(<strong class="jxr_keyword">new</strong> BatchPoolModule(config));
-<a class="jxr_linenumber" name="63" href="#63">63</a>          install(config.getLeaseModule());
-<a class="jxr_linenumber" name="64" href="#64">64</a>          install(<strong class="jxr_keyword">new</strong> DisruptorModule(config));
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TimestampOracleImpl.InMemoryTimestampStorage;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> javax.inject.Named;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.inject.Singleton;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.net.SocketException;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.net.UnknownHostException;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.TSOServer.TSO_HOST_AND_PORT_KEY;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a> <strong class="jxr_keyword">extends</strong> AbstractModule {
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> TSOServerConfig config;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(TSOServerConfig config) {
+<a class="jxr_linenumber" name="43" href="#43">43</a>          Preconditions.checkArgument(config.getNumConcurrentCTWriters() &gt;= 2, <span class="jxr_string">"# of Commit Table writers must be &gt;= 2"</span>);
+<a class="jxr_linenumber" name="44" href="#44">44</a>          <strong class="jxr_keyword">this</strong>.config = config;
+<a class="jxr_linenumber" name="45" href="#45">45</a>      }
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>      @Override
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> configure() {
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>          bind(TSOChannelHandler.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="51" href="#51">51</a>          bind(TSOStateManager.<strong class="jxr_keyword">class</strong>).to(TSOStateManagerImpl.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="52" href="#52">52</a>          bind(CommitTable.<strong class="jxr_keyword">class</strong>).to(InMemoryCommitTable.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="53" href="#53">53</a>          bind(TimestampStorage.<strong class="jxr_keyword">class</strong>).to(InMemoryTimestampStorage.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="54" href="#54">54</a>          bind(TimestampOracle.<strong class="jxr_keyword">class</strong>).to(PausableTimestampOracle.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="55" href="#55">55</a>          bind(Panicker.<strong class="jxr_keyword">class</strong>).to(MockPanicker.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>          install(<strong class="jxr_keyword">new</strong> BatchPoolModule(config));
+<a class="jxr_linenumber" name="58" href="#58">58</a>          install(config.getLeaseModule());
+<a class="jxr_linenumber" name="59" href="#59">59</a>          install(<strong class="jxr_keyword">new</strong> DisruptorModule(config));
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>      }
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>      @Provides
+<a class="jxr_linenumber" name="64" href="#64">64</a>      TSOServerConfig provideTSOServerConfig() {
+<a class="jxr_linenumber" name="65" href="#65">65</a>          <strong class="jxr_keyword">return</strong> config;
 <a class="jxr_linenumber" name="66" href="#66">66</a>      }
 <a class="jxr_linenumber" name="67" href="#67">67</a>  
 <a class="jxr_linenumber" name="68" href="#68">68</a>      @Provides
-<a class="jxr_linenumber" name="69" href="#69">69</a>      TSOServerConfig provideTSOServerConfig() {
-<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">return</strong> config;
-<a class="jxr_linenumber" name="71" href="#71">71</a>      }
-<a class="jxr_linenumber" name="72" href="#72">72</a>  
-<a class="jxr_linenumber" name="73" href="#73">73</a>      @Provides
-<a class="jxr_linenumber" name="74" href="#74">74</a>      @Singleton
-<a class="jxr_linenumber" name="75" href="#75">75</a>      MetricsRegistry provideMetricsRegistry() {
-<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> NullMetricsProvider();
-<a class="jxr_linenumber" name="77" href="#77">77</a>      }
-<a class="jxr_linenumber" name="78" href="#78">78</a>  
-<a class="jxr_linenumber" name="79" href="#79">79</a>      @Provides
-<a class="jxr_linenumber" name="80" href="#80">80</a>      @Named(TSO_HOST_AND_PORT_KEY)
-<a class="jxr_linenumber" name="81" href="#81">81</a>      String provideTSOHostAndPort() <strong class="jxr_keyword">throws</strong> SocketException, UnknownHostException {
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">return</strong> NetworkInterfaceUtils.getTSOHostAndPort(config);
-<a class="jxr_linenumber" name="83" href="#83">83</a>      }
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>      @Provides
-<a class="jxr_linenumber" name="86" href="#86">86</a>      PersistenceProcessorHandler[] getPersistenceProcessorHandler(Provider&lt;PersistenceProcessorHandler&gt; provider) {
-<a class="jxr_linenumber" name="87" href="#87">87</a>          PersistenceProcessorHandler[] persistenceProcessorHandlers = <strong class="jxr_keyword">new</strong> PersistenceProcessorHandler[config.getNumConcurrentCTWriters()];
-<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; persistenceProcessorHandlers.length; i++) {
-<a class="jxr_linenumber" name="89" href="#89">89</a>              persistenceProcessorHandlers[i] = provider.get();
-<a class="jxr_linenumber" name="90" href="#90">90</a>          }
-<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">return</strong> persistenceProcessorHandlers;
-<a class="jxr_linenumber" name="92" href="#92">92</a>      }
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>  }
+<a class="jxr_linenumber" name="69" href="#69">69</a>      @Singleton
+<a class="jxr_linenumber" name="70" href="#70">70</a>      MetricsRegistry provideMetricsRegistry() {
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> NullMetricsProvider();
+<a class="jxr_linenumber" name="72" href="#72">72</a>      }
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>      @Provides
+<a class="jxr_linenumber" name="75" href="#75">75</a>      @Named(TSO_HOST_AND_PORT_KEY)
+<a class="jxr_linenumber" name="76" href="#76">76</a>      String provideTSOHostAndPort() <strong class="jxr_keyword">throws</strong> SocketException, UnknownHostException {
+<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">return</strong> NetworkInterfaceUtils.getTSOHostAndPort(config);
+<a class="jxr_linenumber" name="78" href="#78">78</a>      }
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>      @Provides
+<a class="jxr_linenumber" name="81" href="#81">81</a>      PersistenceProcessorHandler[] getPersistenceProcessorHandler(Provider&lt;PersistenceProcessorHandler&gt; provider) {
+<a class="jxr_linenumber" name="82" href="#82">82</a>          PersistenceProcessorHandler[] persistenceProcessorHandlers = <strong class="jxr_keyword">new</strong> PersistenceProcessorHandler[config.getNumConcurrentCTWriters()];
+<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; persistenceProcessorHandlers.length; i++) {
+<a class="jxr_linenumber" name="84" href="#84">84</a>              persistenceProcessorHandlers[i] = provider.get();
+<a class="jxr_linenumber" name="85" href="#85">85</a>          }
+<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">return</strong> persistenceProcessorHandlers;
+<a class="jxr_linenumber" name="87" href="#87">87</a>      }
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[15/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/CellUtils.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/CellUtils.html b/xref/org/apache/omid/transaction/CellUtils.html
index 5f0ac9d..f416c60 100644
--- a/xref/org/apache/omid/transaction/CellUtils.html
+++ b/xref/org/apache/omid/transaction/CellUtils.html
@@ -27,441 +27,387 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.SortedMap;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.TreeMap;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Objects;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Objects.ToStringHelper;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Preconditions;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> com.google.common.hash.Hasher;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> com.google.common.hash.Hashing;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellComparator;
 <a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
 <a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HConstants;
 <a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
 <a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
 <a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
 <a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.HBaseShims;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Objects;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Objects.ToStringHelper;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Preconditions;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> com.google.common.hash.Hasher;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> com.google.common.hash.Hashing;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>  @SuppressWarnings(<span class="jxr_string">"all"</span>)
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellUtils</a> {
-<a class="jxr_linenumber" name="49" href="#49">49</a>  
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(CellUtils.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] SHADOW_CELL_SUFFIX = <span class="jxr_string">"\u0080"</span>.getBytes(Charsets.UTF_8); <em class="jxr_comment">// Non printable char (128 ASCII)</em>
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <em class="jxr_comment">//Prefix starts with 0 to apear before other cells in TransactionVisibilityFilter</em>
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] SHADOW_CELL_PREFIX = <span class="jxr_string">"\u0000\u0080"</span>.getBytes(Charsets.UTF_8);
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">static</strong> byte[] DELETE_TOMBSTONE = HConstants.EMPTY_BYTE_ARRAY;
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">static</strong> byte[] LEGACY_DELETE_TOMBSTONE = Bytes.toBytes(<span class="jxr_string">"__OMID_TOMBSTONE__"</span>);
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] FAMILY_DELETE_QUALIFIER = HConstants.EMPTY_BYTE_ARRAY;
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TRANSACTION_ATTRIBUTE = <span class="jxr_string">"__OMID_TRANSACTION__"</span>;
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment">/</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment">    public static final String CLIENT_GET_ATTRIBUTE = "__OMID_CLIENT_GET__";</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment">    public static final String CONFLICT_FREE_MUTATION = "__OMID_CONFLICT_FREE_MUTATION__";</em>
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment">    /**</em>
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * Utility interface to get rid of the dependency on HBase server package</em>
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">interface</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellGetter</a> {
-<a class="jxr_linenumber" name="66" href="#66">66</a>          Result get(Get get) <strong class="jxr_keyword">throws</strong> IOException;
-<a class="jxr_linenumber" name="67" href="#67">67</a>      }
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * Returns true if the particular cell passed exists in the datastore.</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * @param row row</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * @param family column family</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * @param qualifier columnn name</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * @param version version</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @param cellGetter an instance of CellGetter</em>
-<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @return true if the cell specified exists. false otherwise</em>
-<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * @throws IOException</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> hasCell(byte[] row,
-<a class="jxr_linenumber" name="80" href="#80">80</a>                                    byte[] family,
-<a class="jxr_linenumber" name="81" href="#81">81</a>                                    byte[] qualifier,
-<a class="jxr_linenumber" name="82" href="#82">82</a>                                    <strong class="jxr_keyword">long</strong> version,
-<a class="jxr_linenumber" name="83" href="#83">83</a>                                    <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellGetter</a> cellGetter)
-<a class="jxr_linenumber" name="84" href="#84">84</a>              <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="85" href="#85">85</a>          Get get = <strong class="jxr_keyword">new</strong> Get(row);
-<a class="jxr_linenumber" name="86" href="#86">86</a>          get.addColumn(family, qualifier);
-<a class="jxr_linenumber" name="87" href="#87">87</a>          get.setTimeStamp(version);
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>          Result result = cellGetter.get(get);
-<a class="jxr_linenumber" name="90" href="#90">90</a>  
-<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">return</strong> result.containsColumn(family, qualifier);
-<a class="jxr_linenumber" name="92" href="#92">92</a>      }
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * Returns true if the particular cell passed has a corresponding shadow cell in the datastore</em>
-<a class="jxr_linenumber" name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * @param row row</em>
-<a class="jxr_linenumber" name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @param family column family</em>
-<a class="jxr_linenumber" name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     * @param qualifier columnn name</em>
-<a class="jxr_linenumber" name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @param version version</em>
-<a class="jxr_linenumber" name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * @param cellGetter an instance of CellGetter</em>
-<a class="jxr_linenumber" name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * @return true if it has a shadow cell. false otherwise.</em>
-<a class="jxr_linenumber" name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
-<a class="jxr_linenumber" name="103" href="#103">103</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> hasShadowCell(byte[] row,
-<a class="jxr_linenumber" name="105" href="#105">105</a>                                         byte[] family,
-<a class="jxr_linenumber" name="106" href="#106">106</a>                                         byte[] qualifier,
-<a class="jxr_linenumber" name="107" href="#107">107</a>                                         <strong class="jxr_keyword">long</strong> version,
-<a class="jxr_linenumber" name="108" href="#108">108</a>                                         <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellGetter</a> cellGetter) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">return</strong> hasCell(row, family, addShadowCellSuffixPrefix(qualifier),
-<a class="jxr_linenumber" name="110" href="#110">110</a>                 version, cellGetter);
-<a class="jxr_linenumber" name="111" href="#111">111</a>     }
-<a class="jxr_linenumber" name="112" href="#112">112</a> 
-<a class="jxr_linenumber" name="113" href="#113">113</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="114" href="#114">114</a> <em class="jxr_javadoccomment">     * Builds a new qualifier composed of the HBase qualifier passed + the shadow cell suffix.</em>
-<a class="jxr_linenumber" name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * @param qualifierArray the qualifier to be suffixed</em>
-<a class="jxr_linenumber" name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * @param qualOffset the offset where the qualifier starts</em>
-<a class="jxr_linenumber" name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * @param qualLength the qualifier length</em>
-<a class="jxr_linenumber" name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * @return the suffixed qualifier</em>
-<a class="jxr_linenumber" name="119" href="#119">119</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] addShadowCellSuffixPrefix(byte[] qualifierArray, <strong class="jxr_keyword">int</strong> qualOffset, <strong class="jxr_keyword">int</strong> qualLength) {
-<a class="jxr_linenumber" name="121" href="#121">121</a>         byte[] result = <strong class="jxr_keyword">new</strong> byte[qualLength + SHADOW_CELL_SUFFIX.length + SHADOW_CELL_PREFIX.length];
-<a class="jxr_linenumber" name="122" href="#122">122</a>         System.arraycopy(SHADOW_CELL_PREFIX, 0, result,0 , SHADOW_CELL_PREFIX.length);
-<a class="jxr_linenumber" name="123" href="#123">123</a>         System.arraycopy(qualifierArray, qualOffset, result, SHADOW_CELL_PREFIX.length, qualLength);
-<a class="jxr_linenumber" name="124" href="#124">124</a>         System.arraycopy(SHADOW_CELL_SUFFIX, 0, result, qualLength + SHADOW_CELL_PREFIX.length,
-<a class="jxr_linenumber" name="125" href="#125">125</a>                 SHADOW_CELL_SUFFIX.length);
-<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.SortedMap;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.TreeMap;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>  @SuppressWarnings(<span class="jxr_string">"all"</span>)
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellUtils</a> {
+<a class="jxr_linenumber" name="48" href="#48">48</a>  
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(CellUtils.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] SHADOW_CELL_SUFFIX = <span class="jxr_string">"\u0080"</span>.getBytes(Charsets.UTF_8); <em class="jxr_comment">// Non printable char (128 ASCII)</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">static</strong> byte[] DELETE_TOMBSTONE = Bytes.toBytes(<span class="jxr_string">"__OMID_TOMBSTONE__"</span>);
+<a class="jxr_linenumber" name="52" href="#52">52</a>  
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * Utility interface to get rid of the dependency on HBase server package</em>
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">interface</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellGetter</a> {
+<a class="jxr_linenumber" name="57" href="#57">57</a>          Result get(Get get) <strong class="jxr_keyword">throws</strong> IOException;
+<a class="jxr_linenumber" name="58" href="#58">58</a>      }
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * Returns true if the particular cell passed exists in the datastore.</em>
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * @param row row</em>
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * @param family column family</em>
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @param qualifier columnn name</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * @param version version</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * @param cellGetter an instance of CellGetter</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * @return true if the cell specified exists. false otherwise</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * @throws IOException</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> hasCell(byte[] row,
+<a class="jxr_linenumber" name="71" href="#71">71</a>                                    byte[] family,
+<a class="jxr_linenumber" name="72" href="#72">72</a>                                    byte[] qualifier,
+<a class="jxr_linenumber" name="73" href="#73">73</a>                                    <strong class="jxr_keyword">long</strong> version,
+<a class="jxr_linenumber" name="74" href="#74">74</a>                                    <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellGetter</a> cellGetter)
+<a class="jxr_linenumber" name="75" href="#75">75</a>              <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="76" href="#76">76</a>          Get get = <strong class="jxr_keyword">new</strong> Get(row);
+<a class="jxr_linenumber" name="77" href="#77">77</a>          get.addColumn(family, qualifier);
+<a class="jxr_linenumber" name="78" href="#78">78</a>          get.setTimeStamp(version);
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>          Result result = cellGetter.get(get);
+<a class="jxr_linenumber" name="81" href="#81">81</a>  
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">return</strong> result.containsColumn(family, qualifier);
+<a class="jxr_linenumber" name="83" href="#83">83</a>      }
+<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="85" href="#85">85</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * Returns true if the particular cell passed has a corresponding shadow cell in the datastore</em>
+<a class="jxr_linenumber" name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @param row row</em>
+<a class="jxr_linenumber" name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * @param family column family</em>
+<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @param qualifier columnn name</em>
+<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @param version version</em>
+<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     * @param cellGetter an instance of CellGetter</em>
+<a class="jxr_linenumber" name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * @return true if it has a shadow cell. false otherwise.</em>
+<a class="jxr_linenumber" name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * @throws IOException</em>
+<a class="jxr_linenumber" name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="95" href="#95">95</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> hasShadowCell(byte[] row,
+<a class="jxr_linenumber" name="96" href="#96">96</a>                                          byte[] family,
+<a class="jxr_linenumber" name="97" href="#97">97</a>                                          byte[] qualifier,
+<a class="jxr_linenumber" name="98" href="#98">98</a>                                          <strong class="jxr_keyword">long</strong> version,
+<a class="jxr_linenumber" name="99" href="#99">99</a>                                          <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellGetter</a> cellGetter) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">return</strong> hasCell(row, family, addShadowCellSuffix(qualifier),
+<a class="jxr_linenumber" name="101" href="#101">101</a>                 version, cellGetter);
+<a class="jxr_linenumber" name="102" href="#102">102</a>     }
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * Builds a new qualifier composed of the HBase qualifier passed + the shadow cell suffix.</em>
+<a class="jxr_linenumber" name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * @param qualifierArray the qualifier to be suffixed</em>
+<a class="jxr_linenumber" name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * @param qualOffset the offset where the qualifier starts</em>
+<a class="jxr_linenumber" name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @param qualLength the qualifier length</em>
+<a class="jxr_linenumber" name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * @return the suffixed qualifier</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] addShadowCellSuffix(byte[] qualifierArray, <strong class="jxr_keyword">int</strong> qualOffset, <strong class="jxr_keyword">int</strong> qualLength) {
+<a class="jxr_linenumber" name="112" href="#112">112</a>         byte[] result = <strong class="jxr_keyword">new</strong> byte[qualLength + SHADOW_CELL_SUFFIX.length];
+<a class="jxr_linenumber" name="113" href="#113">113</a>         System.arraycopy(qualifierArray, qualOffset, result, 0, qualLength);
+<a class="jxr_linenumber" name="114" href="#114">114</a>         System.arraycopy(SHADOW_CELL_SUFFIX, 0, result, qualLength, SHADOW_CELL_SUFFIX.length);
+<a class="jxr_linenumber" name="115" href="#115">115</a>         <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="116" href="#116">116</a>     }
+<a class="jxr_linenumber" name="117" href="#117">117</a> 
+<a class="jxr_linenumber" name="118" href="#118">118</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * Builds a new qualifier composed of the HBase qualifier passed + the shadow cell suffix.</em>
+<a class="jxr_linenumber" name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * Contains a reduced signature to avoid boilerplate code in client side.</em>
+<a class="jxr_linenumber" name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * @param qualifier</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment">     *            the qualifier to be suffixed</em>
+<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * @return the suffixed qualifier</em>
+<a class="jxr_linenumber" name="124" href="#124">124</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="125" href="#125">125</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] addShadowCellSuffix(byte[] qualifier) {
+<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">return</strong> addShadowCellSuffix(qualifier, 0, qualifier.length);
 <a class="jxr_linenumber" name="127" href="#127">127</a>     }
 <a class="jxr_linenumber" name="128" href="#128">128</a> 
 <a class="jxr_linenumber" name="129" href="#129">129</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * Builds a new qualifier composed of the HBase qualifier passed + the shadow cell suffix.</em>
-<a class="jxr_linenumber" name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * Contains a reduced signature to avoid boilerplate code in client side.</em>
-<a class="jxr_linenumber" name="132" href="#132">132</a> <em class="jxr_javadoccomment">     * @param qualifier</em>
-<a class="jxr_linenumber" name="133" href="#133">133</a> <em class="jxr_javadoccomment">     *            the qualifier to be suffixed</em>
-<a class="jxr_linenumber" name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * @return the suffixed qualifier</em>
-<a class="jxr_linenumber" name="135" href="#135">135</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] addShadowCellSuffixPrefix(byte[] qualifier) {
-<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">return</strong> addShadowCellSuffixPrefix(qualifier, 0, qualifier.length);
-<a class="jxr_linenumber" name="138" href="#138">138</a>     }
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * Builds a new qualifier removing the shadow cell suffix from the</em>
-<a class="jxr_linenumber" name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * passed HBase qualifier.</em>
-<a class="jxr_linenumber" name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * @param qualifier the qualifier to remove the suffix from</em>
-<a class="jxr_linenumber" name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * @param qualOffset the offset where the qualifier starts</em>
-<a class="jxr_linenumber" name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @param qualLength the qualifier length</em>
-<a class="jxr_linenumber" name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @return the new qualifier without the suffix</em>
-<a class="jxr_linenumber" name="147" href="#147">147</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="148" href="#148">148</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] removeShadowCellSuffixPrefix(byte[] qualifier, <strong class="jxr_keyword">int</strong> qualOffset, <strong class="jxr_keyword">int</strong> qualLength) {
-<a class="jxr_linenumber" name="149" href="#149">149</a>         <strong class="jxr_keyword">if</strong> (endsWith(qualifier, qualOffset, qualLength, SHADOW_CELL_SUFFIX)) {
-<a class="jxr_linenumber" name="150" href="#150">150</a>             <strong class="jxr_keyword">if</strong> (startsWith(qualifier, qualOffset,qualLength, SHADOW_CELL_PREFIX)) {
-<a class="jxr_linenumber" name="151" href="#151">151</a>                 <strong class="jxr_keyword">return</strong> Arrays.copyOfRange(qualifier,
-<a class="jxr_linenumber" name="152" href="#152">152</a>                         qualOffset + SHADOW_CELL_PREFIX.length,
-<a class="jxr_linenumber" name="153" href="#153">153</a>                         qualOffset + (qualLength - SHADOW_CELL_SUFFIX.length));
-<a class="jxr_linenumber" name="154" href="#154">154</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="155" href="#155">155</a>                 <em class="jxr_comment">//support backward competatbiliy</em>
-<a class="jxr_linenumber" name="156" href="#156">156</a>                 <strong class="jxr_keyword">return</strong> Arrays.copyOfRange(qualifier,
-<a class="jxr_linenumber" name="157" href="#157">157</a>                         qualOffset,qualOffset + (qualLength - SHADOW_CELL_SUFFIX.length));
-<a class="jxr_linenumber" name="158" href="#158">158</a>             }
+<a class="jxr_linenumber" name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * Builds a new qualifier removing the shadow cell suffix from the</em>
+<a class="jxr_linenumber" name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * passed HBase qualifier.</em>
+<a class="jxr_linenumber" name="132" href="#132">132</a> <em class="jxr_javadoccomment">     * @param qualifier the qualifier to remove the suffix from</em>
+<a class="jxr_linenumber" name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * @param qualOffset the offset where the qualifier starts</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * @param qualLength the qualifier length</em>
+<a class="jxr_linenumber" name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * @return the new qualifier without the suffix</em>
+<a class="jxr_linenumber" name="136" href="#136">136</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] removeShadowCellSuffix(byte[] qualifier, <strong class="jxr_keyword">int</strong> qualOffset, <strong class="jxr_keyword">int</strong> qualLength) {
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>         <strong class="jxr_keyword">if</strong> (endsWith(qualifier, qualOffset, qualLength, SHADOW_CELL_SUFFIX)) {
+<a class="jxr_linenumber" name="140" href="#140">140</a>             <strong class="jxr_keyword">return</strong> Arrays.copyOfRange(qualifier,
+<a class="jxr_linenumber" name="141" href="#141">141</a>                     qualOffset,
+<a class="jxr_linenumber" name="142" href="#142">142</a>                     qualOffset + (qualLength - SHADOW_CELL_SUFFIX.length));
+<a class="jxr_linenumber" name="143" href="#143">143</a>         }
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
+<a class="jxr_linenumber" name="146" href="#146">146</a>                 <span class="jxr_string">"Can't find shadow cell suffix in qualifier "</span>
+<a class="jxr_linenumber" name="147" href="#147">147</a>                         + Bytes.toString(qualifier));
+<a class="jxr_linenumber" name="148" href="#148">148</a>     }
+<a class="jxr_linenumber" name="149" href="#149">149</a> 
+<a class="jxr_linenumber" name="150" href="#150">150</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * Returns the qualifier length removing the shadow cell suffix. In case that que suffix is not found,</em>
+<a class="jxr_linenumber" name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * just returns the length of the qualifier passed.</em>
+<a class="jxr_linenumber" name="153" href="#153">153</a> <em class="jxr_javadoccomment">     * @param qualifier the qualifier to remove the suffix from</em>
+<a class="jxr_linenumber" name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * @param qualOffset the offset where the qualifier starts</em>
+<a class="jxr_linenumber" name="155" href="#155">155</a> <em class="jxr_javadoccomment">     * @param qualLength the qualifier length</em>
+<a class="jxr_linenumber" name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * @return the qualifier length without the suffix</em>
+<a class="jxr_linenumber" name="157" href="#157">157</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> qualifierLengthFromShadowCellQualifier(byte[] qualifier, <strong class="jxr_keyword">int</strong> qualOffset, <strong class="jxr_keyword">int</strong> qualLength) {
 <a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>         }
-<a class="jxr_linenumber" name="161" href="#161">161</a> 
-<a class="jxr_linenumber" name="162" href="#162">162</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
-<a class="jxr_linenumber" name="163" href="#163">163</a>                 <span class="jxr_string">"Can't find shadow cell suffix in qualifier "</span>
-<a class="jxr_linenumber" name="164" href="#164">164</a>                         + Bytes.toString(qualifier));
-<a class="jxr_linenumber" name="165" href="#165">165</a>     }
-<a class="jxr_linenumber" name="166" href="#166">166</a> 
-<a class="jxr_linenumber" name="167" href="#167">167</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * Returns the qualifier length removing the shadow cell suffix and prefix. In case that que suffix is not found,</em>
-<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * just returns the length of the qualifier passed.</em>
-<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * @param qualifier the qualifier to remove the suffix from</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     * @param qualOffset the offset where the qualifier starts</em>
-<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @param qualLength the qualifier length</em>
-<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * @return the qualifier length without the suffix</em>
-<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="175" href="#175">175</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> qualifierLengthFromShadowCellQualifier(byte[] qualifier, <strong class="jxr_keyword">int</strong> qualOffset, <strong class="jxr_keyword">int</strong> qualLength) {
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">if</strong> (endsWith(qualifier, qualOffset, qualLength, SHADOW_CELL_SUFFIX)) {
-<a class="jxr_linenumber" name="178" href="#178">178</a>             <strong class="jxr_keyword">if</strong> (startsWith(qualifier,qualOffset, qualLength, SHADOW_CELL_PREFIX)) {
-<a class="jxr_linenumber" name="179" href="#179">179</a>                 <strong class="jxr_keyword">return</strong> qualLength - SHADOW_CELL_SUFFIX.length - SHADOW_CELL_PREFIX.length;
-<a class="jxr_linenumber" name="180" href="#180">180</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="181" href="#181">181</a>                 <strong class="jxr_keyword">return</strong> qualLength - SHADOW_CELL_SUFFIX.length;
-<a class="jxr_linenumber" name="182" href="#182">182</a>             }
-<a class="jxr_linenumber" name="183" href="#183">183</a>         }
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">return</strong> qualLength;
-<a class="jxr_linenumber" name="185" href="#185">185</a>     }
-<a class="jxr_linenumber" name="186" href="#186">186</a> 
-<a class="jxr_linenumber" name="187" href="#187">187</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * Complement to matchingQualifier() methods in HBase's CellUtil.class</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a> <em class="jxr_javadoccomment">     * @param left the cell to compare the qualifier</em>
-<a class="jxr_linenumber" name="190" href="#190">190</a> <em class="jxr_javadoccomment">     * @param qualArray the explicit qualifier array passed</em>
-<a class="jxr_linenumber" name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * @param qualOffset the explicit qualifier offset passed</em>
-<a class="jxr_linenumber" name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * @param qualLen the explicit qualifier length passed</em>
-<a class="jxr_linenumber" name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * @return whether the qualifiers are equal or not</em>
-<a class="jxr_linenumber" name="194" href="#194">194</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="195" href="#195">195</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> matchingQualifier(<strong class="jxr_keyword">final</strong> Cell left, <strong class="jxr_keyword">final</strong> byte[] qualArray, <strong class="jxr_keyword">int</strong> qualOffset, <strong class="jxr_keyword">int</strong> qualLen) {
-<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">return</strong> Bytes.equals(left.getQualifierArray(), left.getQualifierOffset(), left.getQualifierLength(),
-<a class="jxr_linenumber" name="197" href="#197">197</a>                 qualArray, qualOffset, qualLen);
+<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> (endsWith(qualifier, qualOffset, qualLength, SHADOW_CELL_SUFFIX)) {
+<a class="jxr_linenumber" name="161" href="#161">161</a>             <strong class="jxr_keyword">return</strong> qualLength - SHADOW_CELL_SUFFIX.length;
+<a class="jxr_linenumber" name="162" href="#162">162</a>         }
+<a class="jxr_linenumber" name="163" href="#163">163</a> 
+<a class="jxr_linenumber" name="164" href="#164">164</a>         <strong class="jxr_keyword">return</strong> qualLength;
+<a class="jxr_linenumber" name="165" href="#165">165</a> 
+<a class="jxr_linenumber" name="166" href="#166">166</a>     }
+<a class="jxr_linenumber" name="167" href="#167">167</a> 
+<a class="jxr_linenumber" name="168" href="#168">168</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * Complement to matchingQualifier() methods in HBase's CellUtil.class</em>
+<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * @param left the cell to compare the qualifier</em>
+<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     * @param qualArray the explicit qualifier array passed</em>
+<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @param qualOffset the explicit qualifier offset passed</em>
+<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * @param qualLen the explicit qualifier length passed</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * @return whether the qualifiers are equal or not</em>
+<a class="jxr_linenumber" name="175" href="#175">175</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> matchingQualifier(<strong class="jxr_keyword">final</strong> Cell left, <strong class="jxr_keyword">final</strong> byte[] qualArray, <strong class="jxr_keyword">int</strong> qualOffset, <strong class="jxr_keyword">int</strong> qualLen) {
+<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">return</strong> Bytes.equals(left.getQualifierArray(), left.getQualifierOffset(), left.getQualifierLength(),
+<a class="jxr_linenumber" name="178" href="#178">178</a>                 qualArray, qualOffset, qualLen);
+<a class="jxr_linenumber" name="179" href="#179">179</a>     }
+<a class="jxr_linenumber" name="180" href="#180">180</a> 
+<a class="jxr_linenumber" name="181" href="#181">181</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * Check that the cell passed meets the requirements for a valid cell identifier with Omid. Basically, users can't:</em>
+<a class="jxr_linenumber" name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * 1) specify a timestamp</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * 2) use a particular suffix in the qualifier</em>
+<a class="jxr_linenumber" name="185" href="#185">185</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="186" href="#186">186</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateCell(Cell cell, <strong class="jxr_keyword">long</strong> startTimestamp) {
+<a class="jxr_linenumber" name="187" href="#187">187</a>         <em class="jxr_comment">// Throw exception if timestamp is set by the user</em>
+<a class="jxr_linenumber" name="188" href="#188">188</a>         <strong class="jxr_keyword">if</strong> (cell.getTimestamp() != HConstants.LATEST_TIMESTAMP
+<a class="jxr_linenumber" name="189" href="#189">189</a>                 &amp;&amp; cell.getTimestamp() != startTimestamp) {
+<a class="jxr_linenumber" name="190" href="#190">190</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
+<a class="jxr_linenumber" name="191" href="#191">191</a>                     <span class="jxr_string">"Timestamp not allowed in transactional user operations"</span>);
+<a class="jxr_linenumber" name="192" href="#192">192</a>         }
+<a class="jxr_linenumber" name="193" href="#193">193</a>         <em class="jxr_comment">// Throw exception if using a non-allowed qualifier</em>
+<a class="jxr_linenumber" name="194" href="#194">194</a>         <strong class="jxr_keyword">if</strong> (isShadowCell(cell)) {
+<a class="jxr_linenumber" name="195" href="#195">195</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
+<a class="jxr_linenumber" name="196" href="#196">196</a>                     <span class="jxr_string">"Reserved string used in column qualifier"</span>);
+<a class="jxr_linenumber" name="197" href="#197">197</a>         }
 <a class="jxr_linenumber" name="198" href="#198">198</a>     }
 <a class="jxr_linenumber" name="199" href="#199">199</a> 
 <a class="jxr_linenumber" name="200" href="#200">200</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * Check that the cell passed meets the requirements for a valid cell identifier with Omid. Basically, users can't:</em>
-<a class="jxr_linenumber" name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * 1) specify a timestamp</em>
-<a class="jxr_linenumber" name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * 2) use a particular suffix in the qualifier</em>
-<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="205" href="#205">205</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateCell(Cell cell, <strong class="jxr_keyword">long</strong> startTimestamp) {
-<a class="jxr_linenumber" name="206" href="#206">206</a>         <em class="jxr_comment">// Throw exception if timestamp is set by the user</em>
-<a class="jxr_linenumber" name="207" href="#207">207</a>         <strong class="jxr_keyword">if</strong> (cell.getTimestamp() != HConstants.LATEST_TIMESTAMP
-<a class="jxr_linenumber" name="208" href="#208">208</a>                 &amp;&amp; cell.getTimestamp() != startTimestamp) {
-<a class="jxr_linenumber" name="209" href="#209">209</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
-<a class="jxr_linenumber" name="210" href="#210">210</a>                     <span class="jxr_string">"Timestamp not allowed in transactional user operations"</span>);
-<a class="jxr_linenumber" name="211" href="#211">211</a>         }
-<a class="jxr_linenumber" name="212" href="#212">212</a>         <em class="jxr_comment">// Throw exception if using a non-allowed qualifier</em>
-<a class="jxr_linenumber" name="213" href="#213">213</a>         <strong class="jxr_keyword">if</strong> (isShadowCell(cell)) {
-<a class="jxr_linenumber" name="214" href="#214">214</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
-<a class="jxr_linenumber" name="215" href="#215">215</a>                     <span class="jxr_string">"Reserved string used in column qualifier"</span>);
-<a class="jxr_linenumber" name="216" href="#216">216</a>         }
-<a class="jxr_linenumber" name="217" href="#217">217</a>     }
+<a class="jxr_linenumber" name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * Returns whether a cell contains a qualifier that is a shadow cell</em>
+<a class="jxr_linenumber" name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * column qualifier or not.</em>
+<a class="jxr_linenumber" name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @param cell the cell to check if contains the shadow cell qualifier</em>
+<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @return whether the cell passed contains a shadow cell qualifier or not</em>
+<a class="jxr_linenumber" name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="206" href="#206">206</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isShadowCell(Cell cell) {
+<a class="jxr_linenumber" name="207" href="#207">207</a>         byte[] qualifier = cell.getQualifierArray();
+<a class="jxr_linenumber" name="208" href="#208">208</a>         <strong class="jxr_keyword">int</strong> qualOffset = cell.getQualifierOffset();
+<a class="jxr_linenumber" name="209" href="#209">209</a>         <strong class="jxr_keyword">int</strong> qualLength = cell.getQualifierLength();
+<a class="jxr_linenumber" name="210" href="#210">210</a> 
+<a class="jxr_linenumber" name="211" href="#211">211</a>         <strong class="jxr_keyword">return</strong> endsWith(qualifier, qualOffset, qualLength, SHADOW_CELL_SUFFIX);
+<a class="jxr_linenumber" name="212" href="#212">212</a>     }
+<a class="jxr_linenumber" name="213" href="#213">213</a> 
+<a class="jxr_linenumber" name="214" href="#214">214</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> endsWith(byte[] value, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">int</strong> length, byte[] suffix) {
+<a class="jxr_linenumber" name="215" href="#215">215</a>         <strong class="jxr_keyword">if</strong> (length &lt;= suffix.length) {
+<a class="jxr_linenumber" name="216" href="#216">216</a>             <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="217" href="#217">217</a>         }
 <a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * Returns whether a cell contains a qualifier that is a delete cell</em>
-<a class="jxr_linenumber" name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * column qualifier or not.</em>
-<a class="jxr_linenumber" name="222" href="#222">222</a> <em class="jxr_javadoccomment">     * @param cell the cell to check if contains the delete cell qualifier</em>
-<a class="jxr_linenumber" name="223" href="#223">223</a> <em class="jxr_javadoccomment">     * @return whether the cell passed contains a delete cell qualifier or not</em>
-<a class="jxr_linenumber" name="224" href="#224">224</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="225" href="#225">225</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isFamilyDeleteCell(Cell cell) {
-<a class="jxr_linenumber" name="226" href="#226">226</a>         <strong class="jxr_keyword">return</strong> CellUtil.matchingQualifier(cell, CellUtils.FAMILY_DELETE_QUALIFIER) &amp;&amp;
-<a class="jxr_linenumber" name="227" href="#227">227</a>                 CellUtil.matchingValue(cell, HConstants.EMPTY_BYTE_ARRAY);
-<a class="jxr_linenumber" name="228" href="#228">228</a>     }
-<a class="jxr_linenumber" name="229" href="#229">229</a> 
-<a class="jxr_linenumber" name="230" href="#230">230</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="231" href="#231">231</a> <em class="jxr_javadoccomment">     * Returns whether a cell contains a qualifier that is a shadow cell</em>
-<a class="jxr_linenumber" name="232" href="#232">232</a> <em class="jxr_javadoccomment">     * column qualifier or not.</em>
-<a class="jxr_linenumber" name="233" href="#233">233</a> <em class="jxr_javadoccomment">     * @param cell the cell to check if contains the shadow cell qualifier</em>
-<a class="jxr_linenumber" name="234" href="#234">234</a> <em class="jxr_javadoccomment">     * @return whether the cell passed contains a shadow cell qualifier or not</em>
-<a class="jxr_linenumber" name="235" href="#235">235</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="236" href="#236">236</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isShadowCell(Cell cell) {
-<a class="jxr_linenumber" name="237" href="#237">237</a>         byte[] qualifier = cell.getQualifierArray();
-<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">int</strong> qualOffset = cell.getQualifierOffset();
-<a class="jxr_linenumber" name="239" href="#239">239</a>         <strong class="jxr_keyword">int</strong> qualLength = cell.getQualifierLength();
-<a class="jxr_linenumber" name="240" href="#240">240</a> 
-<a class="jxr_linenumber" name="241" href="#241">241</a>         <strong class="jxr_keyword">return</strong> endsWith(qualifier, qualOffset, qualLength, SHADOW_CELL_SUFFIX);
-<a class="jxr_linenumber" name="242" href="#242">242</a>     }
-<a class="jxr_linenumber" name="243" href="#243">243</a> 
-<a class="jxr_linenumber" name="244" href="#244">244</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> endsWith(byte[] value, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">int</strong> length, byte[] suffix) {
-<a class="jxr_linenumber" name="245" href="#245">245</a>         <strong class="jxr_keyword">if</strong> (length &lt;= suffix.length) {
-<a class="jxr_linenumber" name="246" href="#246">246</a>             <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="247" href="#247">247</a>         }
-<a class="jxr_linenumber" name="248" href="#248">248</a> 
-<a class="jxr_linenumber" name="249" href="#249">249</a>         <strong class="jxr_keyword">int</strong> suffixOffset = offset + length - suffix.length;
-<a class="jxr_linenumber" name="250" href="#250">250</a>         <strong class="jxr_keyword">int</strong> result = Bytes.compareTo(value, suffixOffset, suffix.length,
-<a class="jxr_linenumber" name="251" href="#251">251</a>                 suffix, 0, suffix.length);
-<a class="jxr_linenumber" name="252" href="#252">252</a>         <strong class="jxr_keyword">return</strong> result == 0;
-<a class="jxr_linenumber" name="253" href="#253">253</a>     }
-<a class="jxr_linenumber" name="254" href="#254">254</a> 
-<a class="jxr_linenumber" name="255" href="#255">255</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> startsWith(byte[] value, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">int</strong> length, byte[] prefix) {
-<a class="jxr_linenumber" name="256" href="#256">256</a>         <strong class="jxr_keyword">if</strong> (length &lt;= prefix.length) {
-<a class="jxr_linenumber" name="257" href="#257">257</a>             <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="258" href="#258">258</a>         }
-<a class="jxr_linenumber" name="259" href="#259">259</a> 
-<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">int</strong> result = Bytes.compareTo(value, offset, prefix.length,
-<a class="jxr_linenumber" name="261" href="#261">261</a>                 prefix, 0, prefix.length);
-<a class="jxr_linenumber" name="262" href="#262">262</a>         <strong class="jxr_keyword">return</strong> result == 0;
-<a class="jxr_linenumber" name="263" href="#263">263</a>     }
+<a class="jxr_linenumber" name="219" href="#219">219</a>         <strong class="jxr_keyword">int</strong> suffixOffset = offset + length - suffix.length;
+<a class="jxr_linenumber" name="220" href="#220">220</a>         <strong class="jxr_keyword">int</strong> result = Bytes.compareTo(value, suffixOffset, suffix.length,
+<a class="jxr_linenumber" name="221" href="#221">221</a>                 suffix, 0, suffix.length);
+<a class="jxr_linenumber" name="222" href="#222">222</a>         <strong class="jxr_keyword">return</strong> result == 0;
+<a class="jxr_linenumber" name="223" href="#223">223</a>     }
+<a class="jxr_linenumber" name="224" href="#224">224</a> 
+<a class="jxr_linenumber" name="225" href="#225">225</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="226" href="#226">226</a> <em class="jxr_javadoccomment">     * Returns if a cell is marked as a tombstone.</em>
+<a class="jxr_linenumber" name="227" href="#227">227</a> <em class="jxr_javadoccomment">     * @param cell the cell to check</em>
+<a class="jxr_linenumber" name="228" href="#228">228</a> <em class="jxr_javadoccomment">     * @return whether the cell is marked as a tombstone or not</em>
+<a class="jxr_linenumber" name="229" href="#229">229</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="230" href="#230">230</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isTombstone(Cell cell) {
+<a class="jxr_linenumber" name="231" href="#231">231</a>         <strong class="jxr_keyword">return</strong> CellUtil.matchingValue(cell, DELETE_TOMBSTONE);
+<a class="jxr_linenumber" name="232" href="#232">232</a>     }
+<a class="jxr_linenumber" name="233" href="#233">233</a> 
+<a class="jxr_linenumber" name="234" href="#234">234</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="235" href="#235">235</a> <em class="jxr_javadoccomment">     * Returns a new shadow cell created from a particular cell.</em>
+<a class="jxr_linenumber" name="236" href="#236">236</a> <em class="jxr_javadoccomment">     * @param cell</em>
+<a class="jxr_linenumber" name="237" href="#237">237</a> <em class="jxr_javadoccomment">     *            the cell to reconstruct the shadow cell from.</em>
+<a class="jxr_linenumber" name="238" href="#238">238</a> <em class="jxr_javadoccomment">     * @param shadowCellValue</em>
+<a class="jxr_linenumber" name="239" href="#239">239</a> <em class="jxr_javadoccomment">     *            the value for the new shadow cell created</em>
+<a class="jxr_linenumber" name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * @return the brand-new shadow cell</em>
+<a class="jxr_linenumber" name="241" href="#241">241</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="242" href="#242">242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Cell buildShadowCellFromCell(Cell cell, byte[] shadowCellValue) {
+<a class="jxr_linenumber" name="243" href="#243">243</a>         byte[] shadowCellQualifier = addShadowCellSuffix(cell.getQualifierArray(),
+<a class="jxr_linenumber" name="244" href="#244">244</a>                 cell.getQualifierOffset(),
+<a class="jxr_linenumber" name="245" href="#245">245</a>                 cell.getQualifierLength());
+<a class="jxr_linenumber" name="246" href="#246">246</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> KeyValue(
+<a class="jxr_linenumber" name="247" href="#247">247</a>                 cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),
+<a class="jxr_linenumber" name="248" href="#248">248</a>                 cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength(),
+<a class="jxr_linenumber" name="249" href="#249">249</a>                 shadowCellQualifier, 0, shadowCellQualifier.length,
+<a class="jxr_linenumber" name="250" href="#250">250</a>                 cell.getTimestamp(), KeyValue.Type.codeToType(cell.getTypeByte()),
+<a class="jxr_linenumber" name="251" href="#251">251</a>                 shadowCellValue, 0, shadowCellValue.length);
+<a class="jxr_linenumber" name="252" href="#252">252</a>     }
+<a class="jxr_linenumber" name="253" href="#253">253</a> 
+<a class="jxr_linenumber" name="254" href="#254">254</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="255" href="#255">255</a> <em class="jxr_javadoccomment">     * Analyzes a list of cells, associating the corresponding shadow cell if present.</em>
+<a class="jxr_linenumber" name="256" href="#256">256</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="257" href="#257">257</a> <em class="jxr_javadoccomment">     * @param cells the list of cells to classify</em>
+<a class="jxr_linenumber" name="258" href="#258">258</a> <em class="jxr_javadoccomment">     * @return a sorted map associating each cell with its shadow cell</em>
+<a class="jxr_linenumber" name="259" href="#259">259</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> SortedMap&lt;Cell, Optional&lt;Cell&gt;&gt; mapCellsToShadowCells(List&lt;Cell&gt; cells) {
+<a class="jxr_linenumber" name="261" href="#261">261</a> 
+<a class="jxr_linenumber" name="262" href="#262">262</a>         SortedMap&lt;Cell, Optional&lt;Cell&gt;&gt; cellToShadowCellMap
+<a class="jxr_linenumber" name="263" href="#263">263</a>                 = <strong class="jxr_keyword">new</strong> TreeMap&lt;Cell, Optional&lt;Cell&gt;&gt;(<strong class="jxr_keyword">new</strong> CellComparator());
 <a class="jxr_linenumber" name="264" href="#264">264</a> 
-<a class="jxr_linenumber" name="265" href="#265">265</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="266" href="#266">266</a> <em class="jxr_javadoccomment">     * Returns if a cell is marked as a tombstone.</em>
-<a class="jxr_linenumber" name="267" href="#267">267</a> <em class="jxr_javadoccomment">     * @param cell the cell to check</em>
-<a class="jxr_linenumber" name="268" href="#268">268</a> <em class="jxr_javadoccomment">     * @return whether the cell is marked as a tombstone or not</em>
-<a class="jxr_linenumber" name="269" href="#269">269</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="270" href="#270">270</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isTombstone(Cell cell) {
-<a class="jxr_linenumber" name="271" href="#271">271</a>         <strong class="jxr_keyword">return</strong> CellUtil.matchingValue(cell, DELETE_TOMBSTONE) ||
-<a class="jxr_linenumber" name="272" href="#272">272</a>                 CellUtil.matchingValue(cell, LEGACY_DELETE_TOMBSTONE);
-<a class="jxr_linenumber" name="273" href="#273">273</a>     }
-<a class="jxr_linenumber" name="274" href="#274">274</a> 
-<a class="jxr_linenumber" name="275" href="#275">275</a> 
-<a class="jxr_linenumber" name="276" href="#276">276</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="277" href="#277">277</a> <em class="jxr_javadoccomment">     * Returns a new shadow cell created from a particular cell.</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a> <em class="jxr_javadoccomment">     * @param cell</em>
-<a class="jxr_linenumber" name="279" href="#279">279</a> <em class="jxr_javadoccomment">     *            the cell to reconstruct the shadow cell from.</em>
-<a class="jxr_linenumber" name="280" href="#280">280</a> <em class="jxr_javadoccomment">     * @param shadowCellValue</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a> <em class="jxr_javadoccomment">     *            the value for the new shadow cell created</em>
-<a class="jxr_linenumber" name="282" href="#282">282</a> <em class="jxr_javadoccomment">     * @return the brand-new shadow cell</em>
-<a class="jxr_linenumber" name="283" href="#283">283</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="284" href="#284">284</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Cell buildShadowCellFromCell(Cell cell, byte[] shadowCellValue) {
-<a class="jxr_linenumber" name="285" href="#285">285</a>         byte[] shadowCellQualifier = addShadowCellSuffixPrefix(cell.getQualifierArray(),
-<a class="jxr_linenumber" name="286" href="#286">286</a>                 cell.getQualifierOffset(),
-<a class="jxr_linenumber" name="287" href="#287">287</a>                 cell.getQualifierLength());
-<a class="jxr_linenumber" name="288" href="#288">288</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> KeyValue(
-<a class="jxr_linenumber" name="289" href="#289">289</a>                 cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),
-<a class="jxr_linenumber" name="290" href="#290">290</a>                 cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength(),
-<a class="jxr_linenumber" name="291" href="#291">291</a>                 shadowCellQualifier, 0, shadowCellQualifier.length,
-<a class="jxr_linenumber" name="292" href="#292">292</a>                 cell.getTimestamp(), KeyValue.Type.codeToType(cell.getTypeByte()),
-<a class="jxr_linenumber" name="293" href="#293">293</a>                 shadowCellValue, 0, shadowCellValue.length);
-<a class="jxr_linenumber" name="294" href="#294">294</a>     }
-<a class="jxr_linenumber" name="295" href="#295">295</a> 
-<a class="jxr_linenumber" name="296" href="#296">296</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="297" href="#297">297</a> <em class="jxr_javadoccomment">     * Analyzes a list of cells, associating the corresponding shadow cell if present.</em>
-<a class="jxr_linenumber" name="298" href="#298">298</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="299" href="#299">299</a> <em class="jxr_javadoccomment">     * @param cells the list of cells to classify</em>
-<a class="jxr_linenumber" name="300" href="#300">300</a> <em class="jxr_javadoccomment">     * @return a sorted map associating each cell with its shadow cell</em>
-<a class="jxr_linenumber" name="301" href="#301">301</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="302" href="#302">302</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> SortedMap&lt;Cell, Optional&lt;Cell&gt;&gt; mapCellsToShadowCells(List&lt;Cell&gt; cells) {
-<a class="jxr_linenumber" name="303" href="#303">303</a> 
-<a class="jxr_linenumber" name="304" href="#304">304</a>         <em class="jxr_comment">// Move CellComparator to HBaseSims for 2.0 support</em>
-<a class="jxr_linenumber" name="305" href="#305">305</a>         <em class="jxr_comment">// Need to access through CellComparatorImpl.COMPARATOR</em>
-<a class="jxr_linenumber" name="306" href="#306">306</a>         SortedMap&lt;Cell, Optional&lt;Cell&gt;&gt; cellToShadowCellMap
-<a class="jxr_linenumber" name="307" href="#307">307</a>                 = <strong class="jxr_keyword">new</strong> TreeMap&lt;Cell, Optional&lt;Cell&gt;&gt;(HBaseShims.cellComparatorInstance());
-<a class="jxr_linenumber" name="308" href="#308">308</a> 
-<a class="jxr_linenumber" name="309" href="#309">309</a>         Map&lt;CellId, Cell&gt; cellIdToCellMap = <strong class="jxr_keyword">new</strong> HashMap&lt;CellId, Cell&gt;();
-<a class="jxr_linenumber" name="310" href="#310">310</a>         <strong class="jxr_keyword">for</strong> (Cell cell : cells) {
-<a class="jxr_linenumber" name="311" href="#311">311</a>             <strong class="jxr_keyword">if</strong> (!isShadowCell(cell)) {
-<a class="jxr_linenumber" name="312" href="#312">312</a>                 <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a> key = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a>(cell, false);
-<a class="jxr_linenumber" name="313" href="#313">313</a>                 <strong class="jxr_keyword">if</strong> (cellIdToCellMap.containsKey(key)) {
-<a class="jxr_linenumber" name="314" href="#314">314</a>                     <em class="jxr_comment">// Get the current cell and compare the values</em>
-<a class="jxr_linenumber" name="315" href="#315">315</a>                     Cell storedCell = cellIdToCellMap.get(key);
-<a class="jxr_linenumber" name="316" href="#316">316</a>                     <strong class="jxr_keyword">if</strong> (CellUtil.matchingValue(cell, storedCell)) {
-<a class="jxr_linenumber" name="317" href="#317">317</a>                         <em class="jxr_comment">// TODO: Should we check also here the MVCC and swap if its greater???</em>
-<a class="jxr_linenumber" name="318" href="#318">318</a>                         <em class="jxr_comment">// Values are the same, ignore</em>
-<a class="jxr_linenumber" name="319" href="#319">319</a>                     } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="320" href="#320">320</a>                         <strong class="jxr_keyword">if</strong> (cell.getSequenceId() &gt; storedCell.getSequenceId()) { <em class="jxr_comment">// Swap values</em>
-<a class="jxr_linenumber" name="321" href="#321">321</a>                             Optional&lt;Cell&gt; previousValue = cellToShadowCellMap.remove(storedCell);
-<a class="jxr_linenumber" name="322" href="#322">322</a>                             Preconditions.checkNotNull(previousValue, <span class="jxr_string">"Should contain an Optional&lt;Cell&gt; value"</span>);
-<a class="jxr_linenumber" name="323" href="#323">323</a>                             cellIdToCellMap.put(key, cell);
-<a class="jxr_linenumber" name="324" href="#324">324</a>                             cellToShadowCellMap.put(cell, previousValue);
-<a class="jxr_linenumber" name="325" href="#325">325</a>                         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="326" href="#326">326</a>                             LOG.warn(<span class="jxr_string">"Cell {} with an earlier MVCC found. Ignoring..."</span>, cell);
-<a class="jxr_linenumber" name="327" href="#327">327</a>                         }
-<a class="jxr_linenumber" name="328" href="#328">328</a>                     }
-<a class="jxr_linenumber" name="329" href="#329">329</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="330" href="#330">330</a>                     cellIdToCellMap.put(key, cell);
-<a class="jxr_linenumber" name="331" href="#331">331</a>                     cellToShadowCellMap.put(cell, Optional.&lt;Cell&gt;absent());
-<a class="jxr_linenumber" name="332" href="#332">332</a>                 }
-<a class="jxr_linenumber" name="333" href="#333">333</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="334" href="#334">334</a>                 <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a> key = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a>(cell, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="335" href="#335">335</a>                 <strong class="jxr_keyword">if</strong> (cellIdToCellMap.containsKey(key)) {
-<a class="jxr_linenumber" name="336" href="#336">336</a>                     Cell originalCell = cellIdToCellMap.get(key);
-<a class="jxr_linenumber" name="337" href="#337">337</a>                     cellToShadowCellMap.put(originalCell, Optional.of(cell));
-<a class="jxr_linenumber" name="338" href="#338">338</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="339" href="#339">339</a>                     LOG.trace(<span class="jxr_string">"Map does not contain key {}"</span>, key);
-<a class="jxr_linenumber" name="340" href="#340">340</a>                 }
-<a class="jxr_linenumber" name="341" href="#341">341</a>             }
-<a class="jxr_linenumber" name="342" href="#342">342</a>         }
+<a class="jxr_linenumber" name="265" href="#265">265</a>         Map&lt;CellId, Cell&gt; cellIdToCellMap = <strong class="jxr_keyword">new</strong> HashMap&lt;CellId, Cell&gt;();
+<a class="jxr_linenumber" name="266" href="#266">266</a>         <strong class="jxr_keyword">for</strong> (Cell cell : cells) {
+<a class="jxr_linenumber" name="267" href="#267">267</a>             <strong class="jxr_keyword">if</strong> (!isShadowCell(cell)) {
+<a class="jxr_linenumber" name="268" href="#268">268</a>                 <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a> key = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a>(cell, false);
+<a class="jxr_linenumber" name="269" href="#269">269</a>                 <strong class="jxr_keyword">if</strong> (cellIdToCellMap.containsKey(key)) {
+<a class="jxr_linenumber" name="270" href="#270">270</a>                     <em class="jxr_comment">// Get the current cell and compare the values</em>
+<a class="jxr_linenumber" name="271" href="#271">271</a>                     Cell storedCell = cellIdToCellMap.get(key);
+<a class="jxr_linenumber" name="272" href="#272">272</a>                     <strong class="jxr_keyword">if</strong> (CellUtil.matchingValue(cell, storedCell)) {
+<a class="jxr_linenumber" name="273" href="#273">273</a>                         <em class="jxr_comment">// TODO: Should we check also here the MVCC and swap if its greater???</em>
+<a class="jxr_linenumber" name="274" href="#274">274</a>                         <em class="jxr_comment">// Values are the same, ignore</em>
+<a class="jxr_linenumber" name="275" href="#275">275</a>                     } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="276" href="#276">276</a>                         <strong class="jxr_keyword">if</strong> (cell.getMvccVersion() &gt; storedCell.getMvccVersion()) { <em class="jxr_comment">// Swap values</em>
+<a class="jxr_linenumber" name="277" href="#277">277</a>                             Optional&lt;Cell&gt; previousValue = cellToShadowCellMap.remove(storedCell);
+<a class="jxr_linenumber" name="278" href="#278">278</a>                             Preconditions.checkNotNull(previousValue, <span class="jxr_string">"Should contain an Optional&lt;Cell&gt; value"</span>);
+<a class="jxr_linenumber" name="279" href="#279">279</a>                             cellIdToCellMap.put(key, cell);
+<a class="jxr_linenumber" name="280" href="#280">280</a>                             cellToShadowCellMap.put(cell, previousValue);
+<a class="jxr_linenumber" name="281" href="#281">281</a>                         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="282" href="#282">282</a>                             LOG.warn(<span class="jxr_string">"Cell {} with an earlier MVCC found. Ignoring..."</span>, cell);
+<a class="jxr_linenumber" name="283" href="#283">283</a>                         }
+<a class="jxr_linenumber" name="284" href="#284">284</a>                     }
+<a class="jxr_linenumber" name="285" href="#285">285</a>                 } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="286" href="#286">286</a>                     cellIdToCellMap.put(key, cell);
+<a class="jxr_linenumber" name="287" href="#287">287</a>                     cellToShadowCellMap.put(cell, Optional.&lt;Cell&gt;absent());
+<a class="jxr_linenumber" name="288" href="#288">288</a>                 }
+<a class="jxr_linenumber" name="289" href="#289">289</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="290" href="#290">290</a>                 <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a> key = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a>(cell, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="291" href="#291">291</a>                 <strong class="jxr_keyword">if</strong> (cellIdToCellMap.containsKey(key)) {
+<a class="jxr_linenumber" name="292" href="#292">292</a>                     Cell originalCell = cellIdToCellMap.get(key);
+<a class="jxr_linenumber" name="293" href="#293">293</a>                     cellToShadowCellMap.put(originalCell, Optional.of(cell));
+<a class="jxr_linenumber" name="294" href="#294">294</a>                 } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="295" href="#295">295</a>                     LOG.trace(<span class="jxr_string">"Map does not contain key {}"</span>, key);
+<a class="jxr_linenumber" name="296" href="#296">296</a>                 }
+<a class="jxr_linenumber" name="297" href="#297">297</a>             }
+<a class="jxr_linenumber" name="298" href="#298">298</a>         }
+<a class="jxr_linenumber" name="299" href="#299">299</a> 
+<a class="jxr_linenumber" name="300" href="#300">300</a>         <strong class="jxr_keyword">return</strong> cellToShadowCellMap;
+<a class="jxr_linenumber" name="301" href="#301">301</a>     }
+<a class="jxr_linenumber" name="302" href="#302">302</a> 
+<a class="jxr_linenumber" name="303" href="#303">303</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a> {
+<a class="jxr_linenumber" name="304" href="#304">304</a> 
+<a class="jxr_linenumber" name="305" href="#305">305</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> MIN_BITS = 32;
+<a class="jxr_linenumber" name="306" href="#306">306</a> 
+<a class="jxr_linenumber" name="307" href="#307">307</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Cell cell;
+<a class="jxr_linenumber" name="308" href="#308">308</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> isShadowCell;
+<a class="jxr_linenumber" name="309" href="#309">309</a> 
+<a class="jxr_linenumber" name="310" href="#310">310</a>         <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a>(Cell cell, <strong class="jxr_keyword">boolean</strong> isShadowCell) {
+<a class="jxr_linenumber" name="311" href="#311">311</a> 
+<a class="jxr_linenumber" name="312" href="#312">312</a>             <strong class="jxr_keyword">this</strong>.cell = cell;
+<a class="jxr_linenumber" name="313" href="#313">313</a>             <strong class="jxr_keyword">this</strong>.isShadowCell = isShadowCell;
+<a class="jxr_linenumber" name="314" href="#314">314</a> 
+<a class="jxr_linenumber" name="315" href="#315">315</a>         }
+<a class="jxr_linenumber" name="316" href="#316">316</a> 
+<a class="jxr_linenumber" name="317" href="#317">317</a>         Cell getCell() {
+<a class="jxr_linenumber" name="318" href="#318">318</a>             <strong class="jxr_keyword">return</strong> cell;
+<a class="jxr_linenumber" name="319" href="#319">319</a>         }
+<a class="jxr_linenumber" name="320" href="#320">320</a> 
+<a class="jxr_linenumber" name="321" href="#321">321</a>         <strong class="jxr_keyword">boolean</strong> isShadowCell() {
+<a class="jxr_linenumber" name="322" href="#322">322</a>             <strong class="jxr_keyword">return</strong> isShadowCell;
+<a class="jxr_linenumber" name="323" href="#323">323</a>         }
+<a class="jxr_linenumber" name="324" href="#324">324</a> 
+<a class="jxr_linenumber" name="325" href="#325">325</a>         @Override
+<a class="jxr_linenumber" name="326" href="#326">326</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> equals(Object o) {
+<a class="jxr_linenumber" name="327" href="#327">327</a>             <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">this</strong>)
+<a class="jxr_linenumber" name="328" href="#328">328</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="329" href="#329">329</a>             <strong class="jxr_keyword">if</strong> (!(o instanceof CellId))
+<a class="jxr_linenumber" name="330" href="#330">330</a>                 <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="331" href="#331">331</a>             <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a> otherCellId = (CellId) o;
+<a class="jxr_linenumber" name="332" href="#332">332</a>             Cell otherCell = otherCellId.getCell();
+<a class="jxr_linenumber" name="333" href="#333">333</a> 
+<a class="jxr_linenumber" name="334" href="#334">334</a>             <em class="jxr_comment">// Row comparison</em>
+<a class="jxr_linenumber" name="335" href="#335">335</a>             <strong class="jxr_keyword">if</strong> (!CellUtil.matchingRow(otherCell, cell)) {
+<a class="jxr_linenumber" name="336" href="#336">336</a>                 <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="337" href="#337">337</a>             }
+<a class="jxr_linenumber" name="338" href="#338">338</a> 
+<a class="jxr_linenumber" name="339" href="#339">339</a>             <em class="jxr_comment">// Family comparison</em>
+<a class="jxr_linenumber" name="340" href="#340">340</a>             <strong class="jxr_keyword">if</strong> (!CellUtil.matchingFamily(otherCell, cell)) {
+<a class="jxr_linenumber" name="341" href="#341">341</a>                 <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="342" href="#342">342</a>             }
 <a class="jxr_linenumber" name="343" href="#343">343</a> 
-<a class="jxr_linenumber" name="344" href="#344">344</a>         <strong class="jxr_keyword">return</strong> cellToShadowCellMap;
-<a class="jxr_linenumber" name="345" href="#345">345</a>     }
-<a class="jxr_linenumber" name="346" href="#346">346</a> 
-<a class="jxr_linenumber" name="347" href="#347">347</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a> {
-<a class="jxr_linenumber" name="348" href="#348">348</a> 
-<a class="jxr_linenumber" name="349" href="#349">349</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> MIN_BITS = 32;
-<a class="jxr_linenumber" name="350" href="#350">350</a> 
-<a class="jxr_linenumber" name="351" href="#351">351</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Cell cell;
-<a class="jxr_linenumber" name="352" href="#352">352</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> isShadowCell;
-<a class="jxr_linenumber" name="353" href="#353">353</a> 
-<a class="jxr_linenumber" name="354" href="#354">354</a>         <a href="../../../../org/apache/omid/transaction/CellUtils.html">CellId</a>(Cell cell, <strong class="jxr_keyword">boolean</strong> isShadowCell) {
-<a class="jxr_linenumber" name="355" href="#355">355</a> 
-<a class="jxr_linenumber" name="356" href="#356">356</a>             <strong class="jxr_keyword">this</strong>.cell = cell;
-<a class="jxr_linenumber" name="357" href="#357">357</a>             <strong class="jxr_keyword">this</strong>.isShadowCell = isShadowCell;
+<a class="jxr_linenumber" name="344" href="#344">344</a>             <em class="jxr_comment">// Qualifier comparison</em>
+<a class="jxr_linenumber" name="345" href="#345">345</a>             <strong class="jxr_keyword">if</strong> (isShadowCell()) {
+<a class="jxr_linenumber" name="346" href="#346">346</a>                 <strong class="jxr_keyword">int</strong> qualifierLength = qualifierLengthFromShadowCellQualifier(cell.getQualifierArray(),
+<a class="jxr_linenumber" name="347" href="#347">347</a>                         cell.getQualifierOffset(),
+<a class="jxr_linenumber" name="348" href="#348">348</a>                         cell.getQualifierLength());
+<a class="jxr_linenumber" name="349" href="#349">349</a>                 <strong class="jxr_keyword">if</strong> (!matchingQualifier(otherCell,
+<a class="jxr_linenumber" name="350" href="#350">350</a>                         cell.getQualifierArray(), cell.getQualifierOffset(), qualifierLength)) {
+<a class="jxr_linenumber" name="351" href="#351">351</a>                     <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="352" href="#352">352</a>                 }
+<a class="jxr_linenumber" name="353" href="#353">353</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="354" href="#354">354</a>                 <strong class="jxr_keyword">if</strong> (!CellUtil.matchingQualifier(otherCell, cell)) {
+<a class="jxr_linenumber" name="355" href="#355">355</a>                     <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="356" href="#356">356</a>                 }
+<a class="jxr_linenumber" name="357" href="#357">357</a>             }
 <a class="jxr_linenumber" name="358" href="#358">358</a> 
-<a class="jxr_linenumber" name="359" href="#359">359</a>         }
-<a class="jxr_linenumber" name="360" href="#360">360</a> 
-<a class="jxr_linenumber" name="361" href="#361">361</a>         Cell getCell() {
-<a class="jxr_linenumber" name="362" href="#362">362</a>             <strong class="jxr_keyword">return</strong> cell;
-<a class="jxr_linenumber" name="363" href="#363">363</a>         }
-<a class="jxr_linenumber" name="364" href="#364">364</a> 
-<a class="jxr_linenumber" name="365" href="#365">365</a>         <strong class="jxr_keyword">boolean</strong> isShadowCell() {
-<a class="jxr_linenumber" name="366" href="#366">366</a>             <strong class="jxr_keyword">return</strong

<TRUNCATED>


[33/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestHBaseTransactionManager.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestHBaseTransactionManager.html b/xref-test/org/apache/omid/transaction/TestHBaseTransactionManager.html
index e0dc63c..58f473a 100644
--- a/xref-test/org/apache/omid/transaction/TestHBaseTransactionManager.html
+++ b/xref-test/org/apache/omid/transaction/TestHBaseTransactionManager.html
@@ -27,23 +27,23 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyLong;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anySetOf;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.timeout;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.times;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyLong;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anySetOf;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.timeout;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.times;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
 <a class="jxr_linenumber" name="37" href="#37">37</a>  
 <a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_comment">// TODO These tests should be adapted to a future test for AbstractTransactionManager as they should be DB independent</em>
 <a class="jxr_linenumber" name="39" href="#39">39</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
@@ -62,7 +62,7 @@
 <a class="jxr_linenumber" name="52" href="#52">52</a>  
 <a class="jxr_linenumber" name="53" href="#53">53</a>          TSOClient tsoClient = spy(getClient(context));
 <a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>          <strong class="jxr_keyword">long</strong> fakeEpoch = tsoClient.getNewStartTimestamp().get() + (FAKE_EPOCH_INCREMENT * AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN);
+<a class="jxr_linenumber" name="55" href="#55">55</a>          <strong class="jxr_keyword">long</strong> fakeEpoch = tsoClient.getNewStartTimestamp().get() + FAKE_EPOCH_INCREMENT;
 <a class="jxr_linenumber" name="56" href="#56">56</a>  
 <a class="jxr_linenumber" name="57" href="#57">57</a>          <em class="jxr_comment">// Modify the epoch before testing the begin method</em>
 <a class="jxr_linenumber" name="58" href="#58">58</a>          doReturn(fakeEpoch).when(tsoClient).getEpoch();
@@ -84,16 +84,16 @@
 <a class="jxr_linenumber" name="74" href="#74">74</a>          TSOClient tsoClient = spy(getClient(context));
 <a class="jxr_linenumber" name="75" href="#75">75</a>          TransactionManager tm = newTransactionManager(context, tsoClient);
 <a class="jxr_linenumber" name="76" href="#76">76</a>  
-<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
+<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
 <a class="jxr_linenumber" name="78" href="#78">78</a>  
 <a class="jxr_linenumber" name="79" href="#79">79</a>              <em class="jxr_comment">// Add initial data in a transactional context</em>
 <a class="jxr_linenumber" name="80" href="#80">80</a>              Transaction tx1 = tm.begin();
 <a class="jxr_linenumber" name="81" href="#81">81</a>              Put put = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="82" href="#82">82</a>              put.addColumn(testFamily, qualifier, data1);
+<a class="jxr_linenumber" name="82" href="#82">82</a>              put.add(testFamily, qualifier, data1);
 <a class="jxr_linenumber" name="83" href="#83">83</a>              txTable.put(tx1, put);
 <a class="jxr_linenumber" name="84" href="#84">84</a>              tm.commit(tx1);
 <a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>              verify(tsoClient, times(EXPECTED_INVOCATIONS_FOR_COMMIT)).commit(anyLong(), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="86" href="#86">86</a>              verify(tsoClient, times(EXPECTED_INVOCATIONS_FOR_COMMIT)).commit(anyLong(), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="87" href="#87">87</a>  
 <a class="jxr_linenumber" name="88" href="#88">88</a>              <em class="jxr_comment">// Create a read-only tx and verify that commit has not been invoked again in the TSOClient</em>
 <a class="jxr_linenumber" name="89" href="#89">89</a>              AbstractTransaction readOnlyTx = (AbstractTransaction) tm.begin();
@@ -103,7 +103,7 @@
 <a class="jxr_linenumber" name="93" href="#93">93</a>              assertTrue(readOnlyTx.getWriteSet().isEmpty());
 <a class="jxr_linenumber" name="94" href="#94">94</a>              tm.commit(readOnlyTx);
 <a class="jxr_linenumber" name="95" href="#95">95</a>  
-<a class="jxr_linenumber" name="96" href="#96">96</a>              verify(tsoClient, times(EXPECTED_INVOCATIONS_FOR_COMMIT)).commit(anyLong(), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="96" href="#96">96</a>              verify(tsoClient, times(EXPECTED_INVOCATIONS_FOR_COMMIT)).commit(anyLong(), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="97" href="#97">97</a>              assertEquals(readOnlyTx.getStatus(), Transaction.Status.COMMITTED_RO);
 <a class="jxr_linenumber" name="98" href="#98">98</a>          }
 <a class="jxr_linenumber" name="99" href="#99">99</a>  

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestMultiplePut.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestMultiplePut.html b/xref-test/org/apache/omid/transaction/TestMultiplePut.html
index 15f2a7c..adbe467 100644
--- a/xref-test/org/apache/omid/transaction/TestMultiplePut.html
+++ b/xref-test/org/apache/omid/transaction/TestMultiplePut.html
@@ -27,120 +27,121 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
 <a class="jxr_linenumber" name="30" href="#30">30</a>  
 <a class="jxr_linenumber" name="31" href="#31">31</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
 <a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestMultiplePut.html">TestMultiplePut</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
 <a class="jxr_linenumber" name="33" href="#33">33</a>  
 <a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestMultiplePut.<strong class="jxr_keyword">class</strong>);
 <a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] col1 = Bytes.toBytes(<span class="jxr_string">"col1"</span>);
-<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] col2 = Bytes.toBytes(<span class="jxr_string">"col2"</span>);
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data = Bytes.toBytes(<span class="jxr_string">"testData"</span>);
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>      @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultiPutInTwoDifferentColsOfSameRowAreInTheTableAfterCommit(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="45" href="#45">45</a>  
-<a class="jxr_linenumber" name="46" href="#46">46</a>          <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
-<a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>              Transaction tx = tm.begin();
-<a class="jxr_linenumber" name="49" href="#49">49</a>  
-<a class="jxr_linenumber" name="50" href="#50">50</a>              byte[] rowToAdd = Bytes.toBytes(1000);
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>              Put put1 = <strong class="jxr_keyword">new</strong> Put(rowToAdd);
-<a class="jxr_linenumber" name="53" href="#53">53</a>              put1.addColumn(family, col1, data);
-<a class="jxr_linenumber" name="54" href="#54">54</a>              txTable.put(tx, put1);
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>              Put put2 = <strong class="jxr_keyword">new</strong> Put(rowToAdd);
-<a class="jxr_linenumber" name="57" href="#57">57</a>              put2.addColumn(family, col2, data);
-<a class="jxr_linenumber" name="58" href="#58">58</a>              txTable.put(tx, put2);
-<a class="jxr_linenumber" name="59" href="#59">59</a>  
-<a class="jxr_linenumber" name="60" href="#60">60</a>              tm.commit(tx);
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>              assertTrue(verifyValue(txTable.getHTable(), rowToAdd, family, col1, data), <span class="jxr_string">"Invalid value in table"</span>);
-<a class="jxr_linenumber" name="63" href="#63">63</a>              assertTrue(verifyValue(txTable.getHTable(), rowToAdd, family, col2, data), <span class="jxr_string">"Invalid value in table"</span>);
-<a class="jxr_linenumber" name="64" href="#64">64</a>          }
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      }
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>      @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testManyManyPutsInDifferentRowsAreInTheTableAfterCommit(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> NUM_ROWS_TO_ADD = 50;
-<a class="jxr_linenumber" name="72" href="#72">72</a>  
-<a class="jxr_linenumber" name="73" href="#73">73</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>          <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
-<a class="jxr_linenumber" name="76" href="#76">76</a>  
-<a class="jxr_linenumber" name="77" href="#77">77</a>              Transaction tx = tm.begin();
-<a class="jxr_linenumber" name="78" href="#78">78</a>  
-<a class="jxr_linenumber" name="79" href="#79">79</a>              <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt;= NUM_ROWS_TO_ADD; i++) {
-<a class="jxr_linenumber" name="80" href="#80">80</a>                  byte[] rowToAdd = Bytes.toBytes(i);
-<a class="jxr_linenumber" name="81" href="#81">81</a>                  byte[] dataForRowCol = Bytes.toBytes(<span class="jxr_string">"testData"</span> + i);
-<a class="jxr_linenumber" name="82" href="#82">82</a>                  Put put = <strong class="jxr_keyword">new</strong> Put(rowToAdd);
-<a class="jxr_linenumber" name="83" href="#83">83</a>                  put.addColumn(family, col1, dataForRowCol);
-<a class="jxr_linenumber" name="84" href="#84">84</a>                  txTable.put(tx, put);
-<a class="jxr_linenumber" name="85" href="#85">85</a>              }
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>              tm.commit(tx);
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>              <em class="jxr_comment">// Check some of the added values are there in the table</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>              byte[] rowToCheck = Bytes.toBytes(0);
-<a class="jxr_linenumber" name="91" href="#91">91</a>              byte[] dataToCheck = Bytes.toBytes(<span class="jxr_string">"testData"</span> + 0);
-<a class="jxr_linenumber" name="92" href="#92">92</a>              assertTrue(verifyValue(txTable.getHTable(), rowToCheck, family, col1, dataToCheck), <span class="jxr_string">"Invalid value in table"</span>);
-<a class="jxr_linenumber" name="93" href="#93">93</a>              rowToCheck = Bytes.toBytes(NUM_ROWS_TO_ADD / 2);
-<a class="jxr_linenumber" name="94" href="#94">94</a>              dataToCheck = Bytes.toBytes(<span class="jxr_string">"testData"</span> + (NUM_ROWS_TO_ADD / 2));
-<a class="jxr_linenumber" name="95" href="#95">95</a>              assertTrue(verifyValue(txTable.getHTable(), rowToCheck, family, col1, dataToCheck), <span class="jxr_string">"Invalid value in table"</span>);
-<a class="jxr_linenumber" name="96" href="#96">96</a>              rowToCheck = Bytes.toBytes(NUM_ROWS_TO_ADD);
-<a class="jxr_linenumber" name="97" href="#97">97</a>              dataToCheck = Bytes.toBytes(<span class="jxr_string">"testData"</span> + NUM_ROWS_TO_ADD);
-<a class="jxr_linenumber" name="98" href="#98">98</a>              assertTrue(verifyValue(txTable.getHTable(), rowToCheck, family, col1, dataToCheck), <span class="jxr_string">"Invalid value in table"</span>);
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>         }
-<a class="jxr_linenumber" name="101" href="#101">101</a>     }
-<a class="jxr_linenumber" name="102" href="#102">102</a> 
-<a class="jxr_linenumber" name="103" href="#103">103</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetFromNonExistentRowAfterMultiplePutsReturnsNoResult(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> NUM_ROWS_TO_ADD = 10;
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>             Transaction tx = tm.begin();
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; NUM_ROWS_TO_ADD; i++) {
-<a class="jxr_linenumber" name="115" href="#115">115</a>                 byte[] rowToAdd = Bytes.toBytes(i);
-<a class="jxr_linenumber" name="116" href="#116">116</a>                 Put put = <strong class="jxr_keyword">new</strong> Put(rowToAdd);
-<a class="jxr_linenumber" name="117" href="#117">117</a>                 put.addColumn(family, col1, Bytes.toBytes(<span class="jxr_string">"testData"</span> + i));
-<a class="jxr_linenumber" name="118" href="#118">118</a>                 txTable.put(tx, put);
-<a class="jxr_linenumber" name="119" href="#119">119</a>             }
-<a class="jxr_linenumber" name="120" href="#120">120</a> 
-<a class="jxr_linenumber" name="121" href="#121">121</a>             byte[] nonExistentRow = Bytes.toBytes(NUM_ROWS_TO_ADD + 5);
-<a class="jxr_linenumber" name="122" href="#122">122</a>             Get get = <strong class="jxr_keyword">new</strong> Get(nonExistentRow);
-<a class="jxr_linenumber" name="123" href="#123">123</a>             Result result = txTable.get(tx, get);
-<a class="jxr_linenumber" name="124" href="#124">124</a> 
-<a class="jxr_linenumber" name="125" href="#125">125</a>             assertTrue(result.isEmpty(), <span class="jxr_string">"Found a row that should not exist"</span>);
-<a class="jxr_linenumber" name="126" href="#126">126</a> 
-<a class="jxr_linenumber" name="127" href="#127">127</a>             tm.commit(tx);
-<a class="jxr_linenumber" name="128" href="#128">128</a> 
-<a class="jxr_linenumber" name="129" href="#129">129</a>         }
-<a class="jxr_linenumber" name="130" href="#130">130</a> 
-<a class="jxr_linenumber" name="131" href="#131">131</a>     }
-<a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a> }
+<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] testTable = Bytes.toBytes(TEST_TABLE);
+<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] col1 = Bytes.toBytes(<span class="jxr_string">"col1"</span>);
+<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] col2 = Bytes.toBytes(<span class="jxr_string">"col2"</span>);
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data = Bytes.toBytes(<span class="jxr_string">"testData"</span>);
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>      @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultiPutInTwoDifferentColsOfSameRowAreInTheTableAfterCommit(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="44" href="#44">44</a>  
+<a class="jxr_linenumber" name="45" href="#45">45</a>          TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>          <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="48" href="#48">48</a>  
+<a class="jxr_linenumber" name="49" href="#49">49</a>              Transaction tx = tm.begin();
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>              byte[] rowToAdd = Bytes.toBytes(1000);
+<a class="jxr_linenumber" name="52" href="#52">52</a>  
+<a class="jxr_linenumber" name="53" href="#53">53</a>              Put put1 = <strong class="jxr_keyword">new</strong> Put(rowToAdd);
+<a class="jxr_linenumber" name="54" href="#54">54</a>              put1.add(family, col1, data);
+<a class="jxr_linenumber" name="55" href="#55">55</a>              txTable.put(tx, put1);
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>              Put put2 = <strong class="jxr_keyword">new</strong> Put(rowToAdd);
+<a class="jxr_linenumber" name="58" href="#58">58</a>              put2.add(family, col2, data);
+<a class="jxr_linenumber" name="59" href="#59">59</a>              txTable.put(tx, put2);
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>              tm.commit(tx);
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>              assertTrue(verifyValue(testTable, rowToAdd, family, col1, data), <span class="jxr_string">"Invalid value in table"</span>);
+<a class="jxr_linenumber" name="64" href="#64">64</a>              assertTrue(verifyValue(testTable, rowToAdd, family, col2, data), <span class="jxr_string">"Invalid value in table"</span>);
+<a class="jxr_linenumber" name="65" href="#65">65</a>          }
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>      }
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>      @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testManyManyPutsInDifferentRowsAreInTheTableAfterCommit(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="71" href="#71">71</a>  
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> NUM_ROWS_TO_ADD = 50;
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>          TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="75" href="#75">75</a>  
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>              Transaction tx = tm.begin();
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>              <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt;= NUM_ROWS_TO_ADD; i++) {
+<a class="jxr_linenumber" name="81" href="#81">81</a>                  byte[] rowToAdd = Bytes.toBytes(i);
+<a class="jxr_linenumber" name="82" href="#82">82</a>                  byte[] dataForRowCol = Bytes.toBytes(<span class="jxr_string">"testData"</span> + i);
+<a class="jxr_linenumber" name="83" href="#83">83</a>                  Put put = <strong class="jxr_keyword">new</strong> Put(rowToAdd);
+<a class="jxr_linenumber" name="84" href="#84">84</a>                  put.add(family, col1, dataForRowCol);
+<a class="jxr_linenumber" name="85" href="#85">85</a>                  txTable.put(tx, put);
+<a class="jxr_linenumber" name="86" href="#86">86</a>              }
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>              tm.commit(tx);
+<a class="jxr_linenumber" name="89" href="#89">89</a>  
+<a class="jxr_linenumber" name="90" href="#90">90</a>              <em class="jxr_comment">// Check some of the added values are there in the table</em>
+<a class="jxr_linenumber" name="91" href="#91">91</a>              byte[] rowToCheck = Bytes.toBytes(0);
+<a class="jxr_linenumber" name="92" href="#92">92</a>              byte[] dataToCheck = Bytes.toBytes(<span class="jxr_string">"testData"</span> + 0);
+<a class="jxr_linenumber" name="93" href="#93">93</a>              assertTrue(verifyValue(testTable, rowToCheck, family, col1, dataToCheck), <span class="jxr_string">"Invalid value in table"</span>);
+<a class="jxr_linenumber" name="94" href="#94">94</a>              rowToCheck = Bytes.toBytes(NUM_ROWS_TO_ADD / 2);
+<a class="jxr_linenumber" name="95" href="#95">95</a>              dataToCheck = Bytes.toBytes(<span class="jxr_string">"testData"</span> + (NUM_ROWS_TO_ADD / 2));
+<a class="jxr_linenumber" name="96" href="#96">96</a>              assertTrue(verifyValue(testTable, rowToCheck, family, col1, dataToCheck), <span class="jxr_string">"Invalid value in table"</span>);
+<a class="jxr_linenumber" name="97" href="#97">97</a>              rowToCheck = Bytes.toBytes(NUM_ROWS_TO_ADD);
+<a class="jxr_linenumber" name="98" href="#98">98</a>              dataToCheck = Bytes.toBytes(<span class="jxr_string">"testData"</span> + NUM_ROWS_TO_ADD);
+<a class="jxr_linenumber" name="99" href="#99">99</a>              assertTrue(verifyValue(testTable, rowToCheck, family, col1, dataToCheck), <span class="jxr_string">"Invalid value in table"</span>);
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>         }
+<a class="jxr_linenumber" name="102" href="#102">102</a>     }
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetFromNonExistentRowAfterMultiplePutsReturnsNoResult(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> NUM_ROWS_TO_ADD = 10;
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>         TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="110" href="#110">110</a> 
+<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a>             Transaction tx = tm.begin();
+<a class="jxr_linenumber" name="114" href="#114">114</a> 
+<a class="jxr_linenumber" name="115" href="#115">115</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; NUM_ROWS_TO_ADD; i++) {
+<a class="jxr_linenumber" name="116" href="#116">116</a>                 byte[] rowToAdd = Bytes.toBytes(i);
+<a class="jxr_linenumber" name="117" href="#117">117</a>                 Put put = <strong class="jxr_keyword">new</strong> Put(rowToAdd);
+<a class="jxr_linenumber" name="118" href="#118">118</a>                 put.add(family, col1, Bytes.toBytes(<span class="jxr_string">"testData"</span> + i));
+<a class="jxr_linenumber" name="119" href="#119">119</a>                 txTable.put(tx, put);
+<a class="jxr_linenumber" name="120" href="#120">120</a>             }
+<a class="jxr_linenumber" name="121" href="#121">121</a> 
+<a class="jxr_linenumber" name="122" href="#122">122</a>             byte[] nonExistentRow = Bytes.toBytes(NUM_ROWS_TO_ADD + 5);
+<a class="jxr_linenumber" name="123" href="#123">123</a>             Get get = <strong class="jxr_keyword">new</strong> Get(nonExistentRow);
+<a class="jxr_linenumber" name="124" href="#124">124</a>             Result result = txTable.get(tx, get);
+<a class="jxr_linenumber" name="125" href="#125">125</a> 
+<a class="jxr_linenumber" name="126" href="#126">126</a>             assertTrue(result.isEmpty(), <span class="jxr_string">"Found a row that should not exist"</span>);
+<a class="jxr_linenumber" name="127" href="#127">127</a> 
+<a class="jxr_linenumber" name="128" href="#128">128</a>             tm.commit(tx);
+<a class="jxr_linenumber" name="129" href="#129">129</a> 
+<a class="jxr_linenumber" name="130" href="#130">130</a>         }
+<a class="jxr_linenumber" name="131" href="#131">131</a> 
+<a class="jxr_linenumber" name="132" href="#132">132</a>     }
+<a class="jxr_linenumber" name="133" href="#133">133</a> 
+<a class="jxr_linenumber" name="134" href="#134">134</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestReadPath.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestReadPath.html b/xref-test/org/apache/omid/transaction/TestReadPath.html
index 3d920fb..ab3049b 100644
--- a/xref-test/org/apache/omid/transaction/TestReadPath.html
+++ b/xref-test/org/apache/omid/transaction/TestReadPath.html
@@ -27,22 +27,22 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNotNull;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNotNull;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
 <a class="jxr_linenumber" name="36" href="#36">36</a>  
 <a class="jxr_linenumber" name="37" href="#37">37</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
 <a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestReadPath.html">TestReadPath</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
@@ -56,14 +56,14 @@
 <a class="jxr_linenumber" name="46" href="#46">46</a>      @Test(timeOut = 10_000)
 <a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadInterleaved(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="48" href="#48">48</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="49" href="#49">49</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="49" href="#49">49</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="50" href="#50">50</a>  
 <a class="jxr_linenumber" name="51" href="#51">51</a>          <em class="jxr_comment">// Put some data on the DB</em>
 <a class="jxr_linenumber" name="52" href="#52">52</a>          Transaction t1 = tm.begin();
 <a class="jxr_linenumber" name="53" href="#53">53</a>          Transaction t2 = tm.begin();
 <a class="jxr_linenumber" name="54" href="#54">54</a>  
 <a class="jxr_linenumber" name="55" href="#55">55</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="56" href="#56">56</a>          put.addColumn(family, col, data);
+<a class="jxr_linenumber" name="56" href="#56">56</a>          put.add(family, col, data);
 <a class="jxr_linenumber" name="57" href="#57">57</a>          table.put(t1, put);
 <a class="jxr_linenumber" name="58" href="#58">58</a>          tm.commit(t1);
 <a class="jxr_linenumber" name="59" href="#59">59</a>  
@@ -75,12 +75,12 @@
 <a class="jxr_linenumber" name="65" href="#65">65</a>      @Test(timeOut = 10_000)
 <a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadWithSeveralUncommitted(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="67" href="#67">67</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="68" href="#68">68</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="68" href="#68">68</a>          TTable table = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="69" href="#69">69</a>  
 <a class="jxr_linenumber" name="70" href="#70">70</a>          <em class="jxr_comment">// Put some data on the DB</em>
 <a class="jxr_linenumber" name="71" href="#71">71</a>          Transaction t = tm.begin();
 <a class="jxr_linenumber" name="72" href="#72">72</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="73" href="#73">73</a>          put.addColumn(family, col, data);
+<a class="jxr_linenumber" name="73" href="#73">73</a>          put.add(family, col, data);
 <a class="jxr_linenumber" name="74" href="#74">74</a>          table.put(t, put);
 <a class="jxr_linenumber" name="75" href="#75">75</a>          tm.commit(t);
 <a class="jxr_linenumber" name="76" href="#76">76</a>          List&lt;Transaction&gt; running = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
@@ -89,7 +89,7 @@
 <a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 10; ++i) {
 <a class="jxr_linenumber" name="80" href="#80">80</a>              t = tm.begin();
 <a class="jxr_linenumber" name="81" href="#81">81</a>              put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="82" href="#82">82</a>              put.addColumn(family, col, uncommitted);
+<a class="jxr_linenumber" name="82" href="#82">82</a>              put.add(family, col, uncommitted);
 <a class="jxr_linenumber" name="83" href="#83">83</a>              table.put(t, put);
 <a class="jxr_linenumber" name="84" href="#84">84</a>              running.add(t);
 <a class="jxr_linenumber" name="85" href="#85">85</a>          }



[16/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/AbstractTransactionManager.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/AbstractTransactionManager.html b/xref/org/apache/omid/transaction/AbstractTransactionManager.html
index 2255128..b42bfca 100644
--- a/xref/org/apache/omid/transaction/AbstractTransactionManager.html
+++ b/xref/org/apache/omid/transaction/AbstractTransactionManager.html
@@ -29,434 +29,501 @@
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Function;
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.hash.Hashing;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.Futures;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Counter;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Timer;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction.Status;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.AbortException;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.ConnectionException;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.ServiceUnavailableException;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  
-<a class="jxr_linenumber" name="42" href="#42">42</a>  
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.metrics.MetricsUtils.name;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * Omid's base abstract implementation of the {@link TransactionManager} interface.</em>
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * Provides extra methods to allow transaction manager developers to perform</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * different actions before/after the methods exposed by the {@link TransactionManager} interface.</em>
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * So, this abstract class must be extended by particular implementations of</em>
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * transaction managers related to different storage systems (HBase...)</em>
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/TransactionManager.html">TransactionManager</a> {
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(AbstractTransactionManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> MAX_CHECKPOINTS_PER_TXN = 50;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> TransactionFactory&lt;T <strong class="jxr_keyword">extends</strong> CellId&gt; {
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>          AbstractTransaction&lt;T&gt; createTransaction(<strong class="jxr_keyword">long</strong> transactionId, <strong class="jxr_keyword">long</strong> epoch, <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> tm);
-<a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>      }
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter;
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> tsoClient;
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> CommitTable.Client commitTableClient;
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> TransactionFactory&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transactionFactory;
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <em class="jxr_comment">// Metrics</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> startTimestampTimer;
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> commitTimer;
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> fenceTimer;
-<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Counter.html">Counter</a> committedTxsCounter;
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Counter.html">Counter</a> rolledbackTxsCounter;
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Counter.html">Counter</a> errorTxsCounter;
-<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Counter.html">Counter</a> invalidatedTxsCounter;
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * Base constructor</em>
-<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     * @param metrics</em>
-<a class="jxr_linenumber" name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     *            instrumentation metrics</em>
-<a class="jxr_linenumber" name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     * @param postCommitter</em>
-<a class="jxr_linenumber" name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     *            post commit action executor</em>
-<a class="jxr_linenumber" name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @param tsoClient</em>
-<a class="jxr_linenumber" name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     *            a client for accessing functionality of the status oracle</em>
-<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @param commitTableClient</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     *            a client for accessing functionality of the commit table</em>
-<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     * @param transactionFactory</em>
-<a class="jxr_linenumber" name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     *            a transaction factory to create the specific transaction</em>
-<a class="jxr_linenumber" name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     *            objects required by the transaction manager being implemented.</em>
-<a class="jxr_linenumber" name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="95" href="#95">95</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics,
-<a class="jxr_linenumber" name="96" href="#96">96</a>                                        <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter,
-<a class="jxr_linenumber" name="97" href="#97">97</a>                                        <a href="../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> tsoClient,
-<a class="jxr_linenumber" name="98" href="#98">98</a>                                        CommitTable.Client commitTableClient,
-<a class="jxr_linenumber" name="99" href="#99">99</a>                                        TransactionFactory&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transactionFactory) {
-<a class="jxr_linenumber" name="100" href="#100">100</a> 
-<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">this</strong>.tsoClient = tsoClient;
-<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">this</strong>.postCommitter = postCommitter;
-<a class="jxr_linenumber" name="103" href="#103">103</a>         <strong class="jxr_keyword">this</strong>.commitTableClient = commitTableClient;
-<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">this</strong>.transactionFactory = transactionFactory;
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         <em class="jxr_comment">// Metrics configuration</em>
-<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">this</strong>.startTimestampTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"startTimestamp"</span>, <span class="jxr_string">"latency"</span>));
-<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">this</strong>.commitTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"commit"</span>, <span class="jxr_string">"latency"</span>));
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">this</strong>.fenceTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"fence"</span>, <span class="jxr_string">"latency"</span>));
-<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">this</strong>.committedTxsCounter = metrics.counter(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"committedTxs"</span>));
-<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">this</strong>.rolledbackTxsCounter = metrics.counter(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"rolledbackTxs"</span>));
-<a class="jxr_linenumber" name="112" href="#112">112</a>         <strong class="jxr_keyword">this</strong>.errorTxsCounter = metrics.counter(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"erroredTxs"</span>));
-<a class="jxr_linenumber" name="113" href="#113">113</a>         <strong class="jxr_keyword">this</strong>.invalidatedTxsCounter = metrics.counter(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"invalidatedTxs"</span>));
-<a class="jxr_linenumber" name="114" href="#114">114</a> 
-<a class="jxr_linenumber" name="115" href="#115">115</a>     }
-<a class="jxr_linenumber" name="116" href="#116">116</a> 
-<a class="jxr_linenumber" name="117" href="#117">117</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions before creating a transaction.</em>
-<a class="jxr_linenumber" name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException in case of any issues</em>
-<a class="jxr_linenumber" name="120" href="#120">120</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="121" href="#121">121</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preBegin() <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
-<a class="jxr_linenumber" name="122" href="#122">122</a> 
-<a class="jxr_linenumber" name="123" href="#123">123</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.TransactionManager#begin()</em>
-<a class="jxr_linenumber" name="125" href="#125">125</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="126" href="#126">126</a>     @Override
-<a class="jxr_linenumber" name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> begin() <strong class="jxr_keyword">throws</strong> TransactionException {
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.Futures;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Counter;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Timer;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction.Status;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.AbortException;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.ConnectionException;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.ServiceUnavailableException;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOProtocol;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.CACHE;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.COMMIT_TABLE;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.NOT_PRESENT;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.CommitTable.CommitTimestamp.Location.SHADOW_CELL;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.metrics.MetricsUtils.name;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * Omid's base abstract implementation of the {@link TransactionManager} interface.</em>
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * Provides extra methods to allow transaction manager developers to perform</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * different actions before/after the methods exposed by the {@link TransactionManager} interface.</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * So, this abstract class must be extended by particular implementations of</em>
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * transaction managers related to different storage systems (HBase...)</em>
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/TransactionManager.html">TransactionManager</a> {
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(AbstractTransactionManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> TransactionFactory&lt;T <strong class="jxr_keyword">extends</strong> CellId&gt; {
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>          AbstractTransaction&lt;T&gt; createTransaction(<strong class="jxr_keyword">long</strong> transactionId, <strong class="jxr_keyword">long</strong> epoch, <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> tm);
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>      }
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter;
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> tsoClient;
+<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> CommitTable.Client commitTableClient;
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> TransactionFactory&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transactionFactory;
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <em class="jxr_comment">// Metrics</em>
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> startTimestampTimer;
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> commitTimer;
+<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Counter.html">Counter</a> committedTxsCounter;
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Counter.html">Counter</a> rolledbackTxsCounter;
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Counter.html">Counter</a> errorTxsCounter;
+<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Counter.html">Counter</a> invalidatedTxsCounter;
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * Base constructor</em>
+<a class="jxr_linenumber" name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @param metrics</em>
+<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     *            instrumentation metrics</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     * @param postCommitter</em>
+<a class="jxr_linenumber" name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     *            post commit action executor</em>
+<a class="jxr_linenumber" name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     * @param tsoClient</em>
+<a class="jxr_linenumber" name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     *            a client for accessing functionality of the status oracle</em>
+<a class="jxr_linenumber" name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @param commitTableClient</em>
+<a class="jxr_linenumber" name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     *            a client for accessing functionality of the commit table</em>
+<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @param transactionFactory</em>
+<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     *            a transaction factory to create the specific transaction</em>
+<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     *            objects required by the transaction manager being implemented.</em>
+<a class="jxr_linenumber" name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics,
+<a class="jxr_linenumber" name="94" href="#94">94</a>                                        <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter,
+<a class="jxr_linenumber" name="95" href="#95">95</a>                                        <a href="../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> tsoClient,
+<a class="jxr_linenumber" name="96" href="#96">96</a>                                        CommitTable.Client commitTableClient,
+<a class="jxr_linenumber" name="97" href="#97">97</a>                                        TransactionFactory&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transactionFactory) {
+<a class="jxr_linenumber" name="98" href="#98">98</a>  
+<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">this</strong>.tsoClient = tsoClient;
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">this</strong>.postCommitter = postCommitter;
+<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">this</strong>.commitTableClient = commitTableClient;
+<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">this</strong>.transactionFactory = transactionFactory;
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>         <em class="jxr_comment">// Metrics configuration</em>
+<a class="jxr_linenumber" name="105" href="#105">105</a>         <strong class="jxr_keyword">this</strong>.startTimestampTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"startTimestamp"</span>, <span class="jxr_string">"latency"</span>));
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">this</strong>.commitTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"commit"</span>, <span class="jxr_string">"latency"</span>));
+<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">this</strong>.committedTxsCounter = metrics.counter(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"committedTxs"</span>));
+<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">this</strong>.rolledbackTxsCounter = metrics.counter(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"rolledbackTxs"</span>));
+<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">this</strong>.errorTxsCounter = metrics.counter(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"erroredTxs"</span>));
+<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">this</strong>.invalidatedTxsCounter = metrics.counter(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"invalidatedTxs"</span>));
+<a class="jxr_linenumber" name="111" href="#111">111</a> 
+<a class="jxr_linenumber" name="112" href="#112">112</a>     }
+<a class="jxr_linenumber" name="113" href="#113">113</a> 
+<a class="jxr_linenumber" name="114" href="#114">114</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions before creating a transaction.</em>
+<a class="jxr_linenumber" name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException in case of any issues</em>
+<a class="jxr_linenumber" name="117" href="#117">117</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="118" href="#118">118</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preBegin() <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
+<a class="jxr_linenumber" name="119" href="#119">119</a> 
+<a class="jxr_linenumber" name="120" href="#120">120</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.TransactionManager#begin()</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="123" href="#123">123</a>     @Override
+<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> begin() <strong class="jxr_keyword">throws</strong> TransactionException {
+<a class="jxr_linenumber" name="125" href="#125">125</a> 
+<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="127" href="#127">127</a>             preBegin();
 <a class="jxr_linenumber" name="128" href="#128">128</a> 
-<a class="jxr_linenumber" name="129" href="#129">129</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="130" href="#130">130</a>             preBegin();
-<a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>             <strong class="jxr_keyword">long</strong> startTimestamp, epoch;
-<a class="jxr_linenumber" name="133" href="#133">133</a> 
-<a class="jxr_linenumber" name="134" href="#134">134</a>             <em class="jxr_comment">// The loop is required for HA scenarios where we get the timestamp</em>
-<a class="jxr_linenumber" name="135" href="#135">135</a>             <em class="jxr_comment">// but when getting the epoch, the client is connected to a new TSOServer</em>
-<a class="jxr_linenumber" name="136" href="#136">136</a>             <em class="jxr_comment">// When this happen, the epoch will be larger than the startTimestamp,</em>
-<a class="jxr_linenumber" name="137" href="#137">137</a>             <em class="jxr_comment">// so we need to start the transaction again. We use the fact that epoch</em>
-<a class="jxr_linenumber" name="138" href="#138">138</a>             <em class="jxr_comment">// is always smaller or equal to a timestamp, and therefore, we first need</em>
-<a class="jxr_linenumber" name="139" href="#139">139</a>             <em class="jxr_comment">// to get the timestamp and then the epoch.</em>
-<a class="jxr_linenumber" name="140" href="#140">140</a>             startTimestampTimer.start();
-<a class="jxr_linenumber" name="141" href="#141">141</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="142" href="#142">142</a>                 <strong class="jxr_keyword">do</strong> {
-<a class="jxr_linenumber" name="143" href="#143">143</a>                     startTimestamp = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="144" href="#144">144</a>                     epoch = tsoClient.getEpoch();
-<a class="jxr_linenumber" name="145" href="#145">145</a>                 } <strong class="jxr_keyword">while</strong> (epoch &gt; startTimestamp);
-<a class="jxr_linenumber" name="146" href="#146">146</a>             } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="147" href="#147">147</a>                 startTimestampTimer.stop();
-<a class="jxr_linenumber" name="148" href="#148">148</a>             }
-<a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>             AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx = transactionFactory.createTransaction(startTimestamp, epoch, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>             postBegin(tx);
-<a class="jxr_linenumber" name="153" href="#153">153</a> 
-<a class="jxr_linenumber" name="154" href="#154">154</a>             <strong class="jxr_keyword">return</strong> tx;
-<a class="jxr_linenumber" name="155" href="#155">155</a>         } <strong class="jxr_keyword">catch</strong> (TransactionManagerException e) {
-<a class="jxr_linenumber" name="156" href="#156">156</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"An error has occured during PreBegin/PostBegin"</span>, e);
-<a class="jxr_linenumber" name="157" href="#157">157</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
-<a class="jxr_linenumber" name="158" href="#158">158</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Could not get new timestamp"</span>, e);
-<a class="jxr_linenumber" name="159" href="#159">159</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
-<a class="jxr_linenumber" name="160" href="#160">160</a>             Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="161" href="#161">161</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Interrupted getting timestamp"</span>, ie);
-<a class="jxr_linenumber" name="162" href="#162">162</a>         }
-<a class="jxr_linenumber" name="163" href="#163">163</a>     }
-<a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * Generates hash ID for table name, this hash is later-on sent to the TSO and used for fencing</em>
-<a class="jxr_linenumber" name="167" href="#167">167</a> <em class="jxr_javadoccomment">     * @param tableName - the table name</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * @return</em>
-<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="170" href="#170">170</a>     <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getHashForTable(byte[] tableName);
-<a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * Return the commit table client</em>
-<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * @return commitTableClient</em>
+<a class="jxr_linenumber" name="129" href="#129">129</a>             <strong class="jxr_keyword">long</strong> startTimestamp, epoch;
+<a class="jxr_linenumber" name="130" href="#130">130</a> 
+<a class="jxr_linenumber" name="131" href="#131">131</a>             <em class="jxr_comment">// The loop is required for HA scenarios where we get the timestamp</em>
+<a class="jxr_linenumber" name="132" href="#132">132</a>             <em class="jxr_comment">// but when getting the epoch, the client is connected to a new TSOServer</em>
+<a class="jxr_linenumber" name="133" href="#133">133</a>             <em class="jxr_comment">// When this happen, the epoch will be larger than the startTimestamp,</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a>             <em class="jxr_comment">// so we need to start the transaction again. We use the fact that epoch</em>
+<a class="jxr_linenumber" name="135" href="#135">135</a>             <em class="jxr_comment">// is always smaller or equal to a timestamp, and therefore, we first need</em>
+<a class="jxr_linenumber" name="136" href="#136">136</a>             <em class="jxr_comment">// to get the timestamp and then the epoch.</em>
+<a class="jxr_linenumber" name="137" href="#137">137</a>             startTimestampTimer.start();
+<a class="jxr_linenumber" name="138" href="#138">138</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="139" href="#139">139</a>                 <strong class="jxr_keyword">do</strong> {
+<a class="jxr_linenumber" name="140" href="#140">140</a>                     startTimestamp = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="141" href="#141">141</a>                     epoch = tsoClient.getEpoch();
+<a class="jxr_linenumber" name="142" href="#142">142</a>                 } <strong class="jxr_keyword">while</strong> (epoch &gt; startTimestamp);
+<a class="jxr_linenumber" name="143" href="#143">143</a>             } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="144" href="#144">144</a>                 startTimestampTimer.stop();
+<a class="jxr_linenumber" name="145" href="#145">145</a>             }
+<a class="jxr_linenumber" name="146" href="#146">146</a> 
+<a class="jxr_linenumber" name="147" href="#147">147</a>             AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx = transactionFactory.createTransaction(startTimestamp, epoch, <strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>             postBegin(tx);
+<a class="jxr_linenumber" name="150" href="#150">150</a> 
+<a class="jxr_linenumber" name="151" href="#151">151</a>             <strong class="jxr_keyword">return</strong> tx;
+<a class="jxr_linenumber" name="152" href="#152">152</a>         } <strong class="jxr_keyword">catch</strong> (TransactionManagerException e) {
+<a class="jxr_linenumber" name="153" href="#153">153</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"An error has occured during PreBegin/PostBegin"</span>, e);
+<a class="jxr_linenumber" name="154" href="#154">154</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
+<a class="jxr_linenumber" name="155" href="#155">155</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Could not get new timestamp"</span>, e);
+<a class="jxr_linenumber" name="156" href="#156">156</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
+<a class="jxr_linenumber" name="157" href="#157">157</a>             Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="158" href="#158">158</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Interrupted getting timestamp"</span>, ie);
+<a class="jxr_linenumber" name="159" href="#159">159</a>         }
+<a class="jxr_linenumber" name="160" href="#160">160</a>     }
+<a class="jxr_linenumber" name="161" href="#161">161</a> 
+<a class="jxr_linenumber" name="162" href="#162">162</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions after having started a transaction.</em>
+<a class="jxr_linenumber" name="164" href="#164">164</a> <em class="jxr_javadoccomment">     * @param transaction</em>
+<a class="jxr_linenumber" name="165" href="#165">165</a> <em class="jxr_javadoccomment">     *            the transaction that was just created.</em>
+<a class="jxr_linenumber" name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException  in case of any issues</em>
+<a class="jxr_linenumber" name="167" href="#167">167</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="168" href="#168">168</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> postBegin(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
+<a class="jxr_linenumber" name="169" href="#169">169</a> 
+<a class="jxr_linenumber" name="170" href="#170">170</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions before committing a transaction.</em>
+<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @param transaction</em>
+<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     *            the transaction that is going to be committed.</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException  in case of any issues</em>
 <a class="jxr_linenumber" name="175" href="#175">175</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> CommitTable.Client getCommitTableClient() {
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">return</strong> commitTableClient;
-<a class="jxr_linenumber" name="178" href="#178">178</a>     }
-<a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="181" href="#181">181</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.TransactionManager#fence()</em>
-<a class="jxr_linenumber" name="182" href="#182">182</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="183" href="#183">183</a>     @Override
-<a class="jxr_linenumber" name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> fence(byte[] tableName) <strong class="jxr_keyword">throws</strong> TransactionException {
-<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">long</strong> fenceTimestamp;
-<a class="jxr_linenumber" name="186" href="#186">186</a>         <strong class="jxr_keyword">long</strong> tableID = getHashForTable(tableName); Hashing.murmur3_128().newHasher().putBytes(tableName).hash().asLong();
-<a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="189" href="#189">189</a>             fenceTimer.start();
-<a class="jxr_linenumber" name="190" href="#190">190</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="191" href="#191">191</a>                 fenceTimestamp = tsoClient.getFence(tableID).get();
-<a class="jxr_linenumber" name="192" href="#192">192</a>             } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="193" href="#193">193</a>                 fenceTimer.stop();
-<a class="jxr_linenumber" name="194" href="#194">194</a>             }
+<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preCommit(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.TransactionManager#commit(Transaction)</em>
+<a class="jxr_linenumber" name="180" href="#180">180</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="181" href="#181">181</a>     @Override
+<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> commit(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> transaction) <strong class="jxr_keyword">throws</strong> RollbackException, TransactionException {
+<a class="jxr_linenumber" name="183" href="#183">183</a> 
+<a class="jxr_linenumber" name="184" href="#184">184</a>         AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx = enforceAbstractTransactionAsParam(transaction);
+<a class="jxr_linenumber" name="185" href="#185">185</a>         enforceTransactionIsInRunningState(tx);
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a>         <strong class="jxr_keyword">if</strong> (tx.isRollbackOnly()) { <em class="jxr_comment">// Manage explicit user rollback</em>
+<a class="jxr_linenumber" name="188" href="#188">188</a>             rollback(tx);
+<a class="jxr_linenumber" name="189" href="#189">189</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/RollbackException.html">RollbackException</a>(tx + <span class="jxr_string">": Tx was set to rollback explicitly"</span>);
+<a class="jxr_linenumber" name="190" href="#190">190</a>         }
+<a class="jxr_linenumber" name="191" href="#191">191</a> 
+<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="193" href="#193">193</a> 
+<a class="jxr_linenumber" name="194" href="#194">194</a>             preCommit(tx);
 <a class="jxr_linenumber" name="195" href="#195">195</a> 
-<a class="jxr_linenumber" name="196" href="#196">196</a>             AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx = transactionFactory.createTransaction(fenceTimestamp, fenceTimestamp, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="197" href="#197">197</a> 
-<a class="jxr_linenumber" name="198" href="#198">198</a>             <strong class="jxr_keyword">return</strong> tx;
-<a class="jxr_linenumber" name="199" href="#199">199</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
-<a class="jxr_linenumber" name="200" href="#200">200</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Could not get fence"</span>, e);
-<a class="jxr_linenumber" name="201" href="#201">201</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
-<a class="jxr_linenumber" name="202" href="#202">202</a>             Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="203" href="#203">203</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Interrupted creating a fence"</span>, ie);
-<a class="jxr_linenumber" name="204" href="#204">204</a>         }
-<a class="jxr_linenumber" name="205" href="#205">205</a>     }
-<a class="jxr_linenumber" name="206" href="#206">206</a> 
-<a class="jxr_linenumber" name="207" href="#207">207</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions after having started a transaction.</em>
-<a class="jxr_linenumber" name="209" href="#209">209</a> <em class="jxr_javadoccomment">     * @param transaction</em>
-<a class="jxr_linenumber" name="210" href="#210">210</a> <em class="jxr_javadoccomment">     *            the transaction that was just created.</em>
-<a class="jxr_linenumber" name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException  in case of any issues</em>
-<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="213" href="#213">213</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> postBegin(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
-<a class="jxr_linenumber" name="214" href="#214">214</a> 
-<a class="jxr_linenumber" name="215" href="#215">215</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="216" href="#216">216</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions before committing a transaction.</em>
-<a class="jxr_linenumber" name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * @param transaction</em>
-<a class="jxr_linenumber" name="218" href="#218">218</a> <em class="jxr_javadoccomment">     *            the transaction that is going to be committed.</em>
-<a class="jxr_linenumber" name="219" href="#219">219</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException  in case of any issues</em>
-<a class="jxr_linenumber" name="220" href="#220">220</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="221" href="#221">221</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preCommit(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
-<a class="jxr_linenumber" name="222" href="#222">222</a> 
-<a class="jxr_linenumber" name="223" href="#223">223</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="224" href="#224">224</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.TransactionManager#commit(Transaction)</em>
-<a class="jxr_linenumber" name="225" href="#225">225</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="226" href="#226">226</a>     @Override
-<a class="jxr_linenumber" name="227" href="#227">227</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> commit(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> transaction) <strong class="jxr_keyword">throws</strong> RollbackException, TransactionException {
-<a class="jxr_linenumber" name="228" href="#228">228</a> 
-<a class="jxr_linenumber" name="229" href="#229">229</a>         AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx = enforceAbstractTransactionAsParam(transaction);
-<a class="jxr_linenumber" name="230" href="#230">230</a>         enforceTransactionIsInRunningState(tx);
-<a class="jxr_linenumber" name="231" href="#231">231</a> 
-<a class="jxr_linenumber" name="232" href="#232">232</a>         <strong class="jxr_keyword">if</strong> (tx.isRollbackOnly()) { <em class="jxr_comment">// Manage explicit user rollback</em>
-<a class="jxr_linenumber" name="233" href="#233">233</a>             rollback(tx);
-<a class="jxr_linenumber" name="234" href="#234">234</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/RollbackException.html">RollbackException</a>(tx + <span class="jxr_string">": Tx was set to rollback explicitly"</span>);
-<a class="jxr_linenumber" name="235" href="#235">235</a>         }
+<a class="jxr_linenumber" name="196" href="#196">196</a>             commitTimer.start();
+<a class="jxr_linenumber" name="197" href="#197">197</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="198" href="#198">198</a>                 <strong class="jxr_keyword">if</strong> (tx.getWriteSet().isEmpty()) {
+<a class="jxr_linenumber" name="199" href="#199">199</a>                     markReadOnlyTransaction(tx); <em class="jxr_comment">// No need for read-only transactions to contact the TSO Server</em>
+<a class="jxr_linenumber" name="200" href="#200">200</a>                 } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="201" href="#201">201</a>                     commitRegularTransaction(tx);
+<a class="jxr_linenumber" name="202" href="#202">202</a>                 }
+<a class="jxr_linenumber" name="203" href="#203">203</a>                 committedTxsCounter.inc();
+<a class="jxr_linenumber" name="204" href="#204">204</a>             } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="205" href="#205">205</a>                 commitTimer.stop();
+<a class="jxr_linenumber" name="206" href="#206">206</a>             }
+<a class="jxr_linenumber" name="207" href="#207">207</a> 
+<a class="jxr_linenumber" name="208" href="#208">208</a>             postCommit(tx);
+<a class="jxr_linenumber" name="209" href="#209">209</a> 
+<a class="jxr_linenumber" name="210" href="#210">210</a>         } <strong class="jxr_keyword">catch</strong> (TransactionManagerException e) {
+<a class="jxr_linenumber" name="211" href="#211">211</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(e.getMessage(), e);
+<a class="jxr_linenumber" name="212" href="#212">212</a>         }
+<a class="jxr_linenumber" name="213" href="#213">213</a> 
+<a class="jxr_linenumber" name="214" href="#214">214</a>     }
+<a class="jxr_linenumber" name="215" href="#215">215</a> 
+<a class="jxr_linenumber" name="216" href="#216">216</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions after committing a transaction.</em>
+<a class="jxr_linenumber" name="218" href="#218">218</a> <em class="jxr_javadoccomment">     * @param transaction</em>
+<a class="jxr_linenumber" name="219" href="#219">219</a> <em class="jxr_javadoccomment">     *            the transaction that was committed.</em>
+<a class="jxr_linenumber" name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException in case of any issues</em>
+<a class="jxr_linenumber" name="221" href="#221">221</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="222" href="#222">222</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> postCommit(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
+<a class="jxr_linenumber" name="223" href="#223">223</a> 
+<a class="jxr_linenumber" name="224" href="#224">224</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="225" href="#225">225</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions before rolling-back a transaction.</em>
+<a class="jxr_linenumber" name="226" href="#226">226</a> <em class="jxr_javadoccomment">     * @param transaction the transaction that is going to be rolled-back.</em>
+<a class="jxr_linenumber" name="227" href="#227">227</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException in case of any issues</em>
+<a class="jxr_linenumber" name="228" href="#228">228</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="229" href="#229">229</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preRollback(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
+<a class="jxr_linenumber" name="230" href="#230">230</a> 
+<a class="jxr_linenumber" name="231" href="#231">231</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="232" href="#232">232</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.TransactionManager#rollback(Transaction)</em>
+<a class="jxr_linenumber" name="233" href="#233">233</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="234" href="#234">234</a>     @Override
+<a class="jxr_linenumber" name="235" href="#235">235</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> rollback(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> transaction) <strong class="jxr_keyword">throws</strong> TransactionException {
 <a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="238" href="#238">238</a> 
-<a class="jxr_linenumber" name="239" href="#239">239</a>             preCommit(tx);
-<a class="jxr_linenumber" name="240" href="#240">240</a> 
-<a class="jxr_linenumber" name="241" href="#241">241</a>             commitTimer.start();
-<a class="jxr_linenumber" name="242" href="#242">242</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="243" href="#243">243</a>                 <strong class="jxr_keyword">if</strong> (tx.getWriteSet().isEmpty() &amp;&amp; tx.getConflictFreeWriteSet().isEmpty()) {
-<a class="jxr_linenumber" name="244" href="#244">244</a>                     markReadOnlyTransaction(tx); <em class="jxr_comment">// No need for read-only transactions to contact the TSO Server</em>
-<a class="jxr_linenumber" name="245" href="#245">245</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="246" href="#246">246</a>                     commitRegularTransaction(tx);
-<a class="jxr_linenumber" name="247" href="#247">247</a>                 }
-<a class="jxr_linenumber" name="248" href="#248">248</a>                 committedTxsCounter.inc();
-<a class="jxr_linenumber" name="249" href="#249">249</a>             } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="250" href="#250">250</a>                 commitTimer.stop();
-<a class="jxr_linenumber" name="251" href="#251">251</a>             }
-<a class="jxr_linenumber" name="252" href="#252">252</a> 
-<a class="jxr_linenumber" name="253" href="#253">253</a>             postCommit(tx);
-<a class="jxr_linenumber" name="254" href="#254">254</a> 
-<a class="jxr_linenumber" name="255" href="#255">255</a>         } <strong class="jxr_keyword">catch</strong> (TransactionManagerException e) {
-<a class="jxr_linenumber" name="256" href="#256">256</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(e.getMessage(), e);
-<a class="jxr_linenumber" name="257" href="#257">257</a>         }
-<a class="jxr_linenumber" name="258" href="#258">258</a> 
-<a class="jxr_linenumber" name="259" href="#259">259</a>     }
-<a class="jxr_linenumber" name="260" href="#260">260</a> 
-<a class="jxr_linenumber" name="261" href="#261">261</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions after committing a transaction.</em>
-<a class="jxr_linenumber" name="263" href="#263">263</a> <em class="jxr_javadoccomment">     * @param transaction</em>
-<a class="jxr_linenumber" name="264" href="#264">264</a> <em class="jxr_javadoccomment">     *            the transaction that was committed.</em>
-<a class="jxr_linenumber" name="265" href="#265">265</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException in case of any issues</em>
-<a class="jxr_linenumber" name="266" href="#266">266</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="267" href="#267">267</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> postCommit(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
-<a class="jxr_linenumber" name="268" href="#268">268</a> 
-<a class="jxr_linenumber" name="269" href="#269">269</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="270" href="#270">270</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions before rolling-back a transaction.</em>
-<a class="jxr_linenumber" name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * @param transaction the transaction that is going to be rolled-back.</em>
-<a class="jxr_linenumber" name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException in case of any issues</em>
+<a class="jxr_linenumber" name="237" href="#237">237</a>         AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx = enforceAbstractTransactionAsParam(transaction);
+<a class="jxr_linenumber" name="238" href="#238">238</a>         enforceTransactionIsInRunningState(tx);
+<a class="jxr_linenumber" name="239" href="#239">239</a> 
+<a class="jxr_linenumber" name="240" href="#240">240</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="241" href="#241">241</a> 
+<a class="jxr_linenumber" name="242" href="#242">242</a>             preRollback(tx);
+<a class="jxr_linenumber" name="243" href="#243">243</a> 
+<a class="jxr_linenumber" name="244" href="#244">244</a>             <em class="jxr_comment">// Make sure its commit timestamp is 0, so the cleanup does the right job</em>
+<a class="jxr_linenumber" name="245" href="#245">245</a>             tx.setCommitTimestamp(0);
+<a class="jxr_linenumber" name="246" href="#246">246</a>             tx.setStatus(Status.ROLLEDBACK);
+<a class="jxr_linenumber" name="247" href="#247">247</a> 
+<a class="jxr_linenumber" name="248" href="#248">248</a>             postRollback(tx);
+<a class="jxr_linenumber" name="249" href="#249">249</a> 
+<a class="jxr_linenumber" name="250" href="#250">250</a>         } <strong class="jxr_keyword">catch</strong> (TransactionManagerException e) {
+<a class="jxr_linenumber" name="251" href="#251">251</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(e.getMessage(), e);
+<a class="jxr_linenumber" name="252" href="#252">252</a>         } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="253" href="#253">253</a>             tx.cleanup();
+<a class="jxr_linenumber" name="254" href="#254">254</a>         }
+<a class="jxr_linenumber" name="255" href="#255">255</a> 
+<a class="jxr_linenumber" name="256" href="#256">256</a>     }
+<a class="jxr_linenumber" name="257" href="#257">257</a> 
+<a class="jxr_linenumber" name="258" href="#258">258</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="259" href="#259">259</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions after rolling-back a transaction.</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a> <em class="jxr_javadoccomment">     * @param transaction</em>
+<a class="jxr_linenumber" name="261" href="#261">261</a> <em class="jxr_javadoccomment">     *            the transaction that was rolled-back.</em>
+<a class="jxr_linenumber" name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException in case of any issues</em>
+<a class="jxr_linenumber" name="263" href="#263">263</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="264" href="#264">264</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> postRollback(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
+<a class="jxr_linenumber" name="265" href="#265">265</a> 
+<a class="jxr_linenumber" name="266" href="#266">266</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="267" href="#267">267</a> <em class="jxr_javadoccomment">     * Check if the transaction commit data is in the shadow cell</em>
+<a class="jxr_linenumber" name="268" href="#268">268</a> <em class="jxr_javadoccomment">     * @param cellStartTimestamp</em>
+<a class="jxr_linenumber" name="269" href="#269">269</a> <em class="jxr_javadoccomment">     *            the transaction start timestamp</em>
+<a class="jxr_linenumber" name="270" href="#270">270</a> <em class="jxr_javadoccomment">     *        locator</em>
+<a class="jxr_linenumber" name="271" href="#271">271</a> <em class="jxr_javadoccomment">     *            the timestamp locator</em>
+<a class="jxr_linenumber" name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
 <a class="jxr_linenumber" name="273" href="#273">273</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="274" href="#274">274</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preRollback(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
-<a class="jxr_linenumber" name="275" href="#275">275</a> 
-<a class="jxr_linenumber" name="276" href="#276">276</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="277" href="#277">277</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.TransactionManager#rollback(Transaction)</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="279" href="#279">279</a>     @Override
-<a class="jxr_linenumber" name="280" href="#280">280</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> rollback(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> transaction) <strong class="jxr_keyword">throws</strong> TransactionException {
-<a class="jxr_linenumber" name="281" href="#281">281</a> 
-<a class="jxr_linenumber" name="282" href="#282">282</a>         AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx = enforceAbstractTransactionAsParam(transaction);
-<a class="jxr_linenumber" name="283" href="#283">283</a>         enforceTransactionIsInRunningState(tx);
+<a class="jxr_linenumber" name="274" href="#274">274</a>     Optional&lt;CommitTimestamp&gt; readCommitTimestampFromShadowCell(<strong class="jxr_keyword">long</strong> cellStartTimestamp, <a href="../../../../org/apache/omid/transaction/CommitTimestampLocator.html">CommitTimestampLocator</a> locator)
+<a class="jxr_linenumber" name="275" href="#275">275</a>             <strong class="jxr_keyword">throws</strong> IOException
+<a class="jxr_linenumber" name="276" href="#276">276</a>     {
+<a class="jxr_linenumber" name="277" href="#277">277</a> 
+<a class="jxr_linenumber" name="278" href="#278">278</a>         Optional&lt;CommitTimestamp&gt; commitTS = Optional.absent();
+<a class="jxr_linenumber" name="279" href="#279">279</a> 
+<a class="jxr_linenumber" name="280" href="#280">280</a>         Optional&lt;Long&gt; commitTimestamp = locator.readCommitTimestampFromShadowCell(cellStartTimestamp);
+<a class="jxr_linenumber" name="281" href="#281">281</a>         <strong class="jxr_keyword">if</strong> (commitTimestamp.isPresent()) {
+<a class="jxr_linenumber" name="282" href="#282">282</a>             commitTS = Optional.of(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a>(SHADOW_CELL, commitTimestamp.get(), <strong class="jxr_keyword">true</strong>)); <em class="jxr_comment">// Valid commit TS</em>
+<a class="jxr_linenumber" name="283" href="#283">283</a>         }
 <a class="jxr_linenumber" name="284" href="#284">284</a> 
-<a class="jxr_linenumber" name="285" href="#285">285</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="286" href="#286">286</a> 
-<a class="jxr_linenumber" name="287" href="#287">287</a>             preRollback(tx);
-<a class="jxr_linenumber" name="288" href="#288">288</a> 
-<a class="jxr_linenumber" name="289" href="#289">289</a>             <em class="jxr_comment">// Make sure its commit timestamp is 0, so the cleanup does the right job</em>
-<a class="jxr_linenumber" name="290" href="#290">290</a>             tx.setCommitTimestamp(0);
-<a class="jxr_linenumber" name="291" href="#291">291</a>             tx.setStatus(Status.ROLLEDBACK);
-<a class="jxr_linenumber" name="292" href="#292">292</a> 
-<a class="jxr_linenumber" name="293" href="#293">293</a>             postRollback(tx);
-<a class="jxr_linenumber" name="294" href="#294">294</a> 
-<a class="jxr_linenumber" name="295" href="#295">295</a>         } <strong class="jxr_keyword">catch</strong> (TransactionManagerException e) {
-<a class="jxr_linenumber" name="296" href="#296">296</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(e.getMessage(), e);
-<a class="jxr_linenumber" name="297" href="#297">297</a>         } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="298" href="#298">298</a>             tx.cleanup();
-<a class="jxr_linenumber" name="299" href="#299">299</a>         }
-<a class="jxr_linenumber" name="300" href="#300">300</a> 
-<a class="jxr_linenumber" name="301" href="#301">301</a>     }
-<a class="jxr_linenumber" name="302" href="#302">302</a> 
-<a class="jxr_linenumber" name="303" href="#303">303</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="304" href="#304">304</a> <em class="jxr_javadoccomment">     * Allows transaction manager developers to perform actions after rolling-back a transaction.</em>
-<a class="jxr_linenumber" name="305" href="#305">305</a> <em class="jxr_javadoccomment">     * @param transaction</em>
-<a class="jxr_linenumber" name="306" href="#306">306</a> <em class="jxr_javadoccomment">     *            the transaction that was rolled-back.</em>
-<a class="jxr_linenumber" name="307" href="#307">307</a> <em class="jxr_javadoccomment">     * @throws TransactionManagerException in case of any issues</em>
-<a class="jxr_linenumber" name="308" href="#308">308</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="309" href="#309">309</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> postRollback(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {}
-<a class="jxr_linenumber" name="310" href="#310">310</a> 
-<a class="jxr_linenumber" name="311" href="#311">311</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="312" href="#312">312</a> <em class="jxr_javadoccomment">     * @see java.io.Closeable#close()</em>
-<a class="jxr_linenumber" name="313" href="#313">313</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="314" href="#314">314</a>     @Override
-<a class="jxr_linenumber" name="315" href="#315">315</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="316" href="#316">316</a> 
-<a class="jxr_linenumber" name="317" href="#317">317</a>         tsoClient.close();
-<a class="jxr_linenumber" name="318" href="#318">318</a>         commitTableClient.close();
+<a class="jxr_linenumber" name="285" href="#285">285</a>         <strong class="jxr_keyword">return</strong> commitTS;
+<a class="jxr_linenumber" name="286" href="#286">286</a>     }
+<a class="jxr_linenumber" name="287" href="#287">287</a> 
+<a class="jxr_linenumber" name="288" href="#288">288</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="289" href="#289">289</a> <em class="jxr_javadoccomment">     * This function returns the commit timestamp for a particular cell if the transaction was already committed in</em>
+<a class="jxr_linenumber" name="290" href="#290">290</a> <em class="jxr_javadoccomment">     * the system. In case the transaction was not committed and the cell was written by transaction initialized by a</em>
+<a class="jxr_linenumber" name="291" href="#291">291</a> <em class="jxr_javadoccomment">     * previous TSO server, an invalidation try occurs.</em>
+<a class="jxr_linenumber" name="292" href="#292">292</a> <em class="jxr_javadoccomment">     * Otherwise the function returns a value that indicates that the commit timestamp was not found.</em>
+<a class="jxr_linenumber" name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * @param cellStartTimestamp</em>
+<a class="jxr_linenumber" name="294" href="#294">294</a> <em class="jxr_javadoccomment">     *          start timestamp of the cell to locate the commit timestamp for.</em>
+<a class="jxr_linenumber" name="295" href="#295">295</a> <em class="jxr_javadoccomment">     * @param epoch</em>
+<a class="jxr_linenumber" name="296" href="#296">296</a> <em class="jxr_javadoccomment">     *          the epoch of the TSO server the current tso client is working with.</em>
+<a class="jxr_linenumber" name="297" href="#297">297</a> <em class="jxr_javadoccomment">     * @param locator</em>
+<a class="jxr_linenumber" name="298" href="#298">298</a> <em class="jxr_javadoccomment">     *          a locator to find the commit timestamp in the system.</em>
+<a class="jxr_linenumber" name="299" href="#299">299</a> <em class="jxr_javadoccomment">     * @return the commit timestamp joint with the location where it was found</em>
+<a class="jxr_linenumber" name="300" href="#300">300</a> <em class="jxr_javadoccomment">     *         or an object indicating that it was not found in the system</em>
+<a class="jxr_linenumber" name="301" href="#301">301</a> <em class="jxr_javadoccomment">     * @throws IOException  in case of any I/O issues</em>
+<a class="jxr_linenumber" name="302" href="#302">302</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="303" href="#303">303</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a> locateCellCommitTimestamp(<strong class="jxr_keyword">long</strong> cellStartTimestamp, <strong class="jxr_keyword">long</strong> epoch,
+<a class="jxr_linenumber" name="304" href="#304">304</a>                                                      <a href="../../../../org/apache/omid/transaction/CommitTimestampLocator.html">CommitTimestampLocator</a> locator) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="305" href="#305">305</a> 
+<a class="jxr_linenumber" name="306" href="#306">306</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="307" href="#307">307</a>             <em class="jxr_comment">// 1) First check the cache</em>
+<a class="jxr_linenumber" name="308" href="#308">308</a>             Optional&lt;Long&gt; commitTimestamp = locator.readCommitTimestampFromCache(cellStartTimestamp);
+<a class="jxr_linenumber" name="309" href="#309">309</a>             <strong class="jxr_keyword">if</strong> (commitTimestamp.isPresent()) { <em class="jxr_comment">// Valid commit timestamp</em>
+<a class="jxr_linenumber" name="310" href="#310">310</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a>(CACHE, commitTimestamp.get(), <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="311" href="#311">311</a>             }
+<a class="jxr_linenumber" name="312" href="#312">312</a> 
+<a class="jxr_linenumber" name="313" href="#313">313</a>             <em class="jxr_comment">// 2) Then check the commit table</em>
+<a class="jxr_linenumber" name="314" href="#314">314</a>             <em class="jxr_comment">// If the data was written at a previous epoch, check whether the transaction was invalidated</em>
+<a class="jxr_linenumber" name="315" href="#315">315</a>             Optional&lt;CommitTimestamp&gt; commitTimeStamp = commitTableClient.getCommitTimestamp(cellStartTimestamp).get();
+<a class="jxr_linenumber" name="316" href="#316">316</a>             <strong class="jxr_keyword">if</strong> (commitTimeStamp.isPresent()) {
+<a class="jxr_linenumber" name="317" href="#317">317</a>                 <strong class="jxr_keyword">return</strong> commitTimeStamp.get();
+<a class="jxr_linenumber" name="318" href="#318">318</a>             }
 <a class="jxr_linenumber" name="319" href="#319">319</a> 
-<a class="jxr_linenumber" name="320" href="#320">320</a>     }
-<a class="jxr_linenumber" name="321" href="#321">321</a> 
-<a class="jxr_linenumber" name="322" href="#322">322</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="323" href="#323">323</a>     <em class="jxr_comment">// Helper methods</em>
-<a class="jxr_linenumber" name="324" href="#324">324</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="320" href="#320">320</a>             <em class="jxr_comment">// 3) Read from shadow cell</em>
+<a class="jxr_linenumber" name="321" href="#321">321</a>             commitTimeStamp = readCommitTimestampFromShadowCell(cellStartTimestamp, locator);
+<a class="jxr_linenumber" name="322" href="#322">322</a>             <strong class="jxr_keyword">if</strong> (commitTimeStamp.isPresent()) {
+<a class="jxr_linenumber" name="323" href="#323">323</a>                 <strong class="jxr_keyword">return</strong> commitTimeStamp.get();
+<a class="jxr_linenumber" name="324" href="#324">324</a>             }
 <a class="jxr_linenumber" name="325" href="#325">325</a> 
-<a class="jxr_linenumber" name="326" href="#326">326</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> enforceTransactionIsInRunningState(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> transaction) {
-<a class="jxr_linenumber" name="327" href="#327">327</a> 
-<a class="jxr_linenumber" name="328" href="#328">328</a>         <strong class="jxr_keyword">if</strong> (transaction.getStatus() != Status.RUNNING) {
-<a class="jxr_linenumber" name="329" href="#329">329</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Transaction was already "</span> + transaction.getStatus());
-<a class="jxr_linenumber" name="330" href="#330">330</a>         }
-<a class="jxr_linenumber" name="331" href="#331">331</a> 
-<a class="jxr_linenumber" name="332" href="#332">332</a>     }
-<a class="jxr_linenumber" name="333" href="#333">333</a> 
-<a class="jxr_linenumber" name="334" href="#334">334</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="335" href="#335">335</a>     <em class="jxr_comment">// NOTE: We are sure that tx is not parametrized</em>
-<a class="jxr_linenumber" name="336" href="#336">336</a>     <strong class="jxr_keyword">private</strong> AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; enforceAbstractTransactionAsParam(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx) {
-<a class="jxr_linenumber" name="337" href="#337">337</a> 
-<a class="jxr_linenumber" name="338" href="#338">338</a>         <strong class="jxr_keyword">if</strong> (tx instanceof AbstractTransaction) {
-<a class="jxr_linenumber" name="339" href="#339">339</a>             <strong class="jxr_keyword">return</strong> (AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt;) tx;
-<a class="jxr_linenumber" name="340" href="#340">340</a>         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="341" href="#341">341</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
-<a class="jxr_linenumber" name="342" href="#342">342</a>                     <span class="jxr_string">"The transaction object passed is not an instance of AbstractTransaction"</span>);
-<a class="jxr_linenumber" name="343" href="#343">343</a>         }
-<a class="jxr_linenumber" name="344" href="#344">344</a> 
-<a class="jxr_linenumber" name="345" href="#345">345</a>     }
+<a class="jxr_linenumber" name="326" href="#326">326</a>             <em class="jxr_comment">// 4) Check the epoch and invalidate the entry</em>
+<a class="jxr_linenumber" name="327" href="#327">327</a>             <em class="jxr_comment">// if the data was written by a transaction from a previous epoch (previous TSO)</em>
+<a class="jxr_linenumber" name="328" href="#328">328</a>             <strong class="jxr_keyword">if</strong> (cellStartTimestamp &lt; epoch) {
+<a class="jxr_linenumber" name="329" href="#329">329</a>                 <strong class="jxr_keyword">boolean</strong> invalidated = commitTableClient.tryInvalidateTransaction(cellStartTimestamp).get();
+<a class="jxr_linenumber" name="330" href="#330">330</a>                 <strong class="jxr_keyword">if</strong> (invalidated) { <em class="jxr_comment">// Invalid commit timestamp</em>
+<a class="jxr_linenumber" name="331" href="#331">331</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a>(COMMIT_TABLE, CommitTable.INVALID_TRANSACTION_MARKER, false);
+<a class="jxr_linenumber" name="332" href="#332">332</a>   

<TRUNCATED>


[28/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/TestLeaseManager.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/TestLeaseManager.html b/xref-test/org/apache/omid/tso/TestLeaseManager.html
index 196cfa1..abe4747 100644
--- a/xref-test/org/apache/omid/tso/TestLeaseManager.html
+++ b/xref-test/org/apache/omid/tso/TestLeaseManager.html
@@ -27,406 +27,405 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.tso;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.client.TSOClient.DEFAULT_ZK_CLUSTER;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyString;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.reset;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.timeout;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.times;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.when;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFramework;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.test.TestingServer;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.utils.CloseableUtils;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOStateManager.TSOState;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.mockito.ArgumentCaptor;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.mockito.Mock;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterClass;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
 <a class="jxr_linenumber" name="33" href="#33">33</a>  
 <a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
 <a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFramework;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.test.TestingServer;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.utils.CloseableUtils;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOStateManager.TSOState;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.mockito.ArgumentCaptor;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.mockito.Mock;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterClass;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TestLeaseManager.html">TestLeaseManager</a> {
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_EPOCH_1 = 1L;
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_EPOCH_2 = 2L;
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_EPOCH_3 = 3L;
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_LOW_WATERMARK_1 = DUMMY_EPOCH_1;
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_LOW_WATERMARK_2 = DUMMY_EPOCH_2;
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_LOW_WATERMARK_3 = DUMMY_EPOCH_3;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LEASE_MGR_ID_1 = <span class="jxr_string">"LM1"</span>;
-<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LEASE_MGR_ID_2 = <span class="jxr_string">"LM2"</span>;
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INSTANCE_ID_1 = <span class="jxr_string">"LM1"</span> + <span class="jxr_string">"#"</span>;
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INSTANCE_ID_2 = <span class="jxr_string">"LM2"</span> + <span class="jxr_string">"#"</span>;
-<a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestLeaseManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="66" href="#66">66</a>  
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TEST_LEASE_PERIOD_IN_MS = 5000; <em class="jxr_comment">// 5 seconds</em>
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> CuratorFramework zkClient;
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> TestingServer zkServer;
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>      @Mock
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> Panicker panicker;
-<a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a> leaseManager1;
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a> leaseManager2;
-<a class="jxr_linenumber" name="77" href="#77">77</a>  
-<a class="jxr_linenumber" name="78" href="#78">78</a>      @BeforeClass
-<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>          LOG.info(<span class="jxr_string">"Starting ZK Server"</span>);
-<a class="jxr_linenumber" name="82" href="#82">82</a>          zkServer = TestUtils.provideTestingZKServer();
-<a class="jxr_linenumber" name="83" href="#83">83</a>          LOG.info(<span class="jxr_string">"ZK Server Started @ {}"</span>, zkServer.getConnectString());
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>          zkClient = TestUtils.provideConnectedZKClient(DEFAULT_ZK_CLUSTER);
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>      }
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>      @AfterClass
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>          zkClient.close();
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>          CloseableUtils.closeQuietly(zkServer);
-<a class="jxr_linenumber" name="95" href="#95">95</a>          zkServer = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="96" href="#96">96</a>          LOG.info(<span class="jxr_string">"ZK Server Stopped"</span>);
-<a class="jxr_linenumber" name="97" href="#97">97</a>  
-<a class="jxr_linenumber" name="98" href="#98">98</a>      }
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>     @Test(timeOut = 80_000)
-<a class="jxr_linenumber" name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testErrorInitializingTSOStateExitsTheTSO() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="102" href="#102">102</a> 
-<a class="jxr_linenumber" name="103" href="#103">103</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test0_tsolease"</span>;
-<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test0_currenttso"</span>;
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         Panicker panicker = spy(<strong class="jxr_keyword">new</strong> MockPanicker());
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>         TSOChannelHandler tsoChannelHandler = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="109" href="#109">109</a>         TSOStateManager stateManager = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="110" href="#110">110</a>         when(stateManager.initialize()).thenThrow(<strong class="jxr_keyword">new</strong> IOException());
-<a class="jxr_linenumber" name="111" href="#111">111</a>         leaseManager1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
-<a class="jxr_linenumber" name="112" href="#112">112</a>                                                  tsoChannelHandler,
-<a class="jxr_linenumber" name="113" href="#113">113</a>                                                  stateManager,
-<a class="jxr_linenumber" name="114" href="#114">114</a>                                                  TEST_LEASE_PERIOD_IN_MS,
-<a class="jxr_linenumber" name="115" href="#115">115</a>                                                  TEST_TSO_LEASE_PATH,
-<a class="jxr_linenumber" name="116" href="#116">116</a>                                                  TEST_CURRENT_TSO_PATH,
-<a class="jxr_linenumber" name="117" href="#117">117</a>                                                  zkClient,
-<a class="jxr_linenumber" name="118" href="#118">118</a>                                                  panicker);
-<a class="jxr_linenumber" name="119" href="#119">119</a>         leaseManager1.startService();
-<a class="jxr_linenumber" name="120" href="#120">120</a> 
-<a class="jxr_linenumber" name="121" href="#121">121</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
-<a class="jxr_linenumber" name="122" href="#122">122</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="123" href="#123">123</a> 
-<a class="jxr_linenumber" name="124" href="#124">124</a>         verify(panicker, timeout(2000).atLeastOnce()).panic(anyString(), any(IOException.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="125" href="#125">125</a> 
-<a class="jxr_linenumber" name="126" href="#126">126</a>         leaseManager1.stopService();
-<a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>     }
-<a class="jxr_linenumber" name="129" href="#129">129</a> 
-<a class="jxr_linenumber" name="130" href="#130">130</a>     @Test(timeOut = 80_000)
-<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLeaseHolderDoesNotChangeWhenPausedForALongTimeAndTheresNoOtherInstance() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test1_tsolease"</span>;
-<a class="jxr_linenumber" name="134" href="#134">134</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test1_currenttso"</span>;
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>         <em class="jxr_comment">// Launch the instance under test...</em>
-<a class="jxr_linenumber" name="137" href="#137">137</a>         TSOChannelHandler tsoChannelHandler1 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="138" href="#138">138</a>         TSOStateManager stateManager1 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="139" href="#139">139</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_1, DUMMY_EPOCH_1));
-<a class="jxr_linenumber" name="140" href="#140">140</a>         leaseManager1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
-<a class="jxr_linenumber" name="141" href="#141">141</a>                                                  tsoChannelHandler1,
-<a class="jxr_linenumber" name="142" href="#142">142</a>                                                  stateManager1,
-<a class="jxr_linenumber" name="143" href="#143">143</a>                                                  TEST_LEASE_PERIOD_IN_MS,
-<a class="jxr_linenumber" name="144" href="#144">144</a>                                                  TEST_TSO_LEASE_PATH,
-<a class="jxr_linenumber" name="145" href="#145">145</a>                                                  TEST_CURRENT_TSO_PATH,
-<a class="jxr_linenumber" name="146" href="#146">146</a>                                                  zkClient,
-<a class="jxr_linenumber" name="147" href="#147">147</a>                                                  panicker);
-<a class="jxr_linenumber" name="148" href="#148">148</a>         leaseManager1.startService();
-<a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
-<a class="jxr_linenumber" name="151" href="#151">151</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="152" href="#152">152</a> 
-<a class="jxr_linenumber" name="153" href="#153">153</a>         <em class="jxr_comment">// ... check is the lease holder</em>
-<a class="jxr_linenumber" name="154" href="#154">154</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
-<a class="jxr_linenumber" name="155" href="#155">155</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
-<a class="jxr_linenumber" name="156" href="#156">156</a>         assertTrue(leaseManager1.stillInLeasePeriod());
-<a class="jxr_linenumber" name="157" href="#157">157</a> 
-<a class="jxr_linenumber" name="158" href="#158">158</a>         <em class="jxr_comment">// Then, pause instance when trying to renew lease...</em>
-<a class="jxr_linenumber" name="159" href="#159">159</a>         leaseManager1.pausedInTryToRenewLeasePeriod();
-<a class="jxr_linenumber" name="160" href="#160">160</a> 
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <em class="jxr_comment">// ...let the test run for some time...</em>
-<a class="jxr_linenumber" name="162" href="#162">162</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="163" href="#163">163</a> 
-<a class="jxr_linenumber" name="164" href="#164">164</a>         <em class="jxr_comment">// ...check that nothing changed...</em>
-<a class="jxr_linenumber" name="165" href="#165">165</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
-<a class="jxr_linenumber" name="166" href="#166">166</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
-<a class="jxr_linenumber" name="167" href="#167">167</a> 
-<a class="jxr_linenumber" name="168" href="#168">168</a>         <em class="jxr_comment">// Finally, resume the instance...</em>
-<a class="jxr_linenumber" name="169" href="#169">169</a>         leaseManager1.resume();
-<a class="jxr_linenumber" name="170" href="#170">170</a> 
-<a class="jxr_linenumber" name="171" href="#171">171</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
-<a class="jxr_linenumber" name="172" href="#172">172</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="173" href="#173">173</a> 
-<a class="jxr_linenumber" name="174" href="#174">174</a>         <em class="jxr_comment">// ... and check again that nothing changed</em>
-<a class="jxr_linenumber" name="175" href="#175">175</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
-<a class="jxr_linenumber" name="176" href="#176">176</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
-<a class="jxr_linenumber" name="177" href="#177">177</a>         assertFalse(leaseManager1.stillInLeasePeriod()); <em class="jxr_comment">// Must not be master as it should have triggered and exception</em>
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>     }
-<a class="jxr_linenumber" name="180" href="#180">180</a> 
-<a class="jxr_linenumber" name="181" href="#181">181</a>     @Test(timeOut = 80_000)
-<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLeaseHolderDoesNotChangeWhenANewLeaseManagerIsUp() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test2_tsolease"</span>;
-<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test2_currenttso"</span>;
-<a class="jxr_linenumber" name="186" href="#186">186</a> 
-<a class="jxr_linenumber" name="187" href="#187">187</a>         <em class="jxr_comment">// Launch the master instance...</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a>         TSOChannelHandler tsoChannelHandler1 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="189" href="#189">189</a>         TSOStateManager stateManager1 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="190" href="#190">190</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_1, DUMMY_EPOCH_1));
-<a class="jxr_linenumber" name="191" href="#191">191</a>         leaseManager1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
-<a class="jxr_linenumber" name="192" href="#192">192</a>                                                  tsoChannelHandler1,
-<a class="jxr_linenumber" name="193" href="#193">193</a>                                                  stateManager1,
-<a class="jxr_linenumber" name="194" href="#194">194</a>                                                  TEST_LEASE_PERIOD_IN_MS,
-<a class="jxr_linenumber" name="195" href="#195">195</a>                                                  TEST_TSO_LEASE_PATH,
-<a class="jxr_linenumber" name="196" href="#196">196</a>                                                  TEST_CURRENT_TSO_PATH,
-<a class="jxr_linenumber" name="197" href="#197">197</a>                                                  zkClient,
-<a class="jxr_linenumber" name="198" href="#198">198</a>                                                  panicker);
-<a class="jxr_linenumber" name="199" href="#199">199</a> 
-<a class="jxr_linenumber" name="200" href="#200">200</a>         leaseManager1.startService();
-<a class="jxr_linenumber" name="201" href="#201">201</a> 
-<a class="jxr_linenumber" name="202" href="#202">202</a>         <em class="jxr_comment">// ...let the test run for some time...</em>
-<a class="jxr_linenumber" name="203" href="#203">203</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="204" href="#204">204</a> 
-<a class="jxr_linenumber" name="205" href="#205">205</a>         <em class="jxr_comment">// ...so it should be the current holder of the lease</em>
-<a class="jxr_linenumber" name="206" href="#206">206</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
-<a class="jxr_linenumber" name="207" href="#207">207</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
-<a class="jxr_linenumber" name="208" href="#208">208</a>         assertTrue(leaseManager1.stillInLeasePeriod());
-<a class="jxr_linenumber" name="209" href="#209">209</a> 
-<a class="jxr_linenumber" name="210" href="#210">210</a>         <em class="jxr_comment">// Then launch another instance...</em>
-<a class="jxr_linenumber" name="211" href="#211">211</a>         TSOChannelHandler tsoChannelHandler2 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="212" href="#212">212</a>         TSOStateManager stateManager2 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="213" href="#213">213</a>         when(stateManager2.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_2, DUMMY_EPOCH_2));
-<a class="jxr_linenumber" name="214" href="#214">214</a>         leaseManager2 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_2,
-<a class="jxr_linenumber" name="215" href="#215">215</a>                                                  tsoChannelHandler2,
-<a class="jxr_linenumber" name="216" href="#216">216</a>                                                  stateManager2,
-<a class="jxr_linenumber" name="217" href="#217">217</a>                                                  TEST_LEASE_PERIOD_IN_MS,
-<a class="jxr_linenumber" name="218" href="#218">218</a>                                                  TEST_TSO_LEASE_PATH,
-<a class="jxr_linenumber" name="219" href="#219">219</a>                                                  TEST_CURRENT_TSO_PATH,
-<a class="jxr_linenumber" name="220" href="#220">220</a>                                                  zkClient,
-<a class="jxr_linenumber" name="221" href="#221">221</a>                                                  panicker);
-<a class="jxr_linenumber" name="222" href="#222">222</a>         leaseManager2.startService();
-<a class="jxr_linenumber" name="223" href="#223">223</a> 
-<a class="jxr_linenumber" name="224" href="#224">224</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
-<a class="jxr_linenumber" name="225" href="#225">225</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>         <em class="jxr_comment">// ... and after the period, the first instance should be still the holder</em>
-<a class="jxr_linenumber" name="228" href="#228">228</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
-<a class="jxr_linenumber" name="229" href="#229">229</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
-<a class="jxr_linenumber" name="230" href="#230">230</a>         assertTrue(leaseManager1.stillInLeasePeriod());
-<a class="jxr_linenumber" name="231" href="#231">231</a>         assertFalse(leaseManager2.stillInLeasePeriod());
-<a class="jxr_linenumber" name="232" href="#232">232</a>     }
-<a class="jxr_linenumber" name="233" href="#233">233</a> 
-<a class="jxr_linenumber" name="234" href="#234">234</a>     @Test(timeOut = 80_000)
-<a class="jxr_linenumber" name="235" href="#235">235</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLeaseHolderChangesWhenActiveLeaseManagerIsPaused() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test3_tsolease"</span>;
-<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test3_currenttso"</span>;
-<a class="jxr_linenumber" name="239" href="#239">239</a> 
-<a class="jxr_linenumber" name="240" href="#240">240</a>         <em class="jxr_comment">// Launch the master instance...</em>
-<a class="jxr_linenumber" name="241" href="#241">241</a>         TSOChannelHandler tsoChannelHandler1 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="242" href="#242">242</a>         TSOStateManager stateManager1 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="243" href="#243">243</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_1, DUMMY_EPOCH_1));
-<a class="jxr_linenumber" name="244" href="#244">244</a>         leaseManager1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
-<a class="jxr_linenumber" name="245" href="#245">245</a>                                                  tsoChannelHandler1,
-<a class="jxr_linenumber" name="246" href="#246">246</a>                                                  stateManager1,
-<a class="jxr_linenumber" name="247" href="#247">247</a>                                                  TEST_LEASE_PERIOD_IN_MS,
-<a class="jxr_linenumber" name="248" href="#248">248</a>                                                  TEST_TSO_LEASE_PATH,
-<a class="jxr_linenumber" name="249" href="#249">249</a>                                                  TEST_CURRENT_TSO_PATH,
-<a class="jxr_linenumber" name="250" href="#250">250</a>                                                  zkClient,
-<a class="jxr_linenumber" name="251" href="#251">251</a>                                                  panicker);
-<a class="jxr_linenumber" name="252" href="#252">252</a> 
-<a class="jxr_linenumber" name="253" href="#253">253</a>         leaseManager1.startService();
-<a class="jxr_linenumber" name="254" href="#254">254</a> 
-<a class="jxr_linenumber" name="255" href="#255">255</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
-<a class="jxr_linenumber" name="256" href="#256">256</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="257" href="#257">257</a> 
-<a class="jxr_linenumber" name="258" href="#258">258</a>         <em class="jxr_comment">// ... so it should be the current holder of the lease</em>
-<a class="jxr_linenumber" name="259" href="#259">259</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
-<a class="jxr_linenumber" name="260" href="#260">260</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
-<a class="jxr_linenumber" name="261" href="#261">261</a>         assertTrue(leaseManager1.stillInLeasePeriod());
-<a class="jxr_linenumber" name="262" href="#262">262</a> 
-<a class="jxr_linenumber" name="263" href="#263">263</a>         <em class="jxr_comment">// Then launch another instance...</em>
-<a class="jxr_linenumber" name="264" href="#264">264</a>         TSOChannelHandler tsoChannelHandler2 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="265" href="#265">265</a>         TSOStateManager stateManager2 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="266" href="#266">266</a>         when(stateManager2.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_2, DUMMY_EPOCH_2));
-<a class="jxr_linenumber" name="267" href="#267">267</a>         leaseManager2 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_2,
-<a class="jxr_linenumber" name="268" href="#268">268</a>                                                  tsoChannelHandler2,
-<a class="jxr_linenumber" name="269" href="#269">269</a>                                                  stateManager2,
-<a class="jxr_linenumber" name="270" href="#270">270</a>                                                  TEST_LEASE_PERIOD_IN_MS,
-<a class="jxr_linenumber" name="271" href="#271">271</a>                                                  TEST_TSO_LEASE_PATH,
-<a class="jxr_linenumber" name="272" href="#272">272</a>                                                  TEST_CURRENT_TSO_PATH,
-<a class="jxr_linenumber" name="273" href="#273">273</a>                                                  zkClient,
-<a class="jxr_linenumber" name="274" href="#274">274</a>                                                  panicker);
-<a class="jxr_linenumber" name="275" href="#275">275</a>         leaseManager2.startService();
-<a class="jxr_linenumber" name="276" href="#276">276</a> 
-<a class="jxr_linenumber" name="277" href="#277">277</a>         <em class="jxr_comment">// ... and pause active lease manager...</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a>         leaseManager1.pausedInStillInLeasePeriod();
-<a class="jxr_linenumber" name="279" href="#279">279</a> 
-<a class="jxr_linenumber" name="280" href="#280">280</a>         <em class="jxr_comment">// ... and let the test run for some time...</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="282" href="#282">282</a> 
-<a class="jxr_linenumber" name="283" href="#283">283</a>         <em class="jxr_comment">// ... and check that lease owner should have changed to the second instance</em>
-<a class="jxr_linenumber" name="284" href="#284">284</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_2);
-<a class="jxr_linenumber" name="285" href="#285">285</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_2 + <span class="jxr_string">"2"</span>);
-<a class="jxr_linenumber" name="286" href="#286">286</a>         assertTrue(leaseManager2.stillInLeasePeriod());
-<a class="jxr_linenumber" name="287" href="#287">287</a> 
-<a class="jxr_linenumber" name="288" href="#288">288</a>         <em class="jxr_comment">// Now, lets resume the first instance...</em>
-<a class="jxr_linenumber" name="289" href="#289">289</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_3, DUMMY_EPOCH_3));
-<a class="jxr_linenumber" name="290" href="#290">290</a>         leaseManager1.resume();
-<a class="jxr_linenumber" name="291" href="#291">291</a> 
-<a class="jxr_linenumber" name="292" href="#292">292</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
-<a class="jxr_linenumber" name="293" href="#293">293</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="294" href="#294">294</a> 
-<a class="jxr_linenumber" name="295" href="#295">295</a>         <em class="jxr_comment">// and check the lease owner is still the second instance (preserves the lease)</em>
-<a class="jxr_linenumber" name="296" href="#296">296</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_2);
-<a class="jxr_linenumber" name="297" href="#297">297</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_2 + <span class="jxr_string">"2"</span>);
-<a class="jxr_linenumber" name="298" href="#298">298</a>         assertFalse(leaseManager1.stillInLeasePeriod());
-<a class="jxr_linenumber" name="299" href="#299">299</a>         assertTrue(leaseManager2.stillInLeasePeriod());
-<a class="jxr_linenumber" name="300" href="#300">300</a> 
-<a class="jxr_linenumber" name="301" href="#301">301</a>         <em class="jxr_comment">// Finally, pause active lease manager when trying to renew lease...</em>
-<a class="jxr_linenumber" name="302" href="#302">302</a>         leaseManager2.pausedInTryToRenewLeasePeriod();
-<a class="jxr_linenumber" name="303" href="#303">303</a> 
-<a class="jxr_linenumber" name="304" href="#304">304</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
-<a class="jxr_linenumber" name="305" href="#305">305</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="306" href="#306">306</a> 
-<a class="jxr_linenumber" name="307" href="#307">307</a>         <em class="jxr_comment">// ... and check lease owner is has changed again to the first instance</em>
-<a class="jxr_linenumber" name="308" href="#308">308</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
-<a class="jxr_linenumber" name="309" href="#309">309</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"3"</span>);
-<a class="jxr_linenumber" name="310" href="#310">310</a>         assertFalse(leaseManager2.stillInLeasePeriod());
-<a class="jxr_linenumber" name="311" href="#311">311</a>         assertTrue(leaseManager1.stillInLeasePeriod());
-<a class="jxr_linenumber" name="312" href="#312">312</a> 
-<a class="jxr_linenumber" name="313" href="#313">313</a>         <em class="jxr_comment">// Resume the second instance...</em>
-<a class="jxr_linenumber" name="314" href="#314">314</a>         leaseManager2.resume();
-<a class="jxr_linenumber" name="315" href="#315">315</a> 
-<a class="jxr_linenumber" name="316" href="#316">316</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
-<a class="jxr_linenumber" name="317" href="#317">317</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="318" href="#318">318</a> 
-<a class="jxr_linenumber" name="319" href="#319">319</a>         <em class="jxr_comment">// ... but the lease owner should still be the first instance</em>
-<a class="jxr_linenumber" name="320" href="#320">320</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
-<a class="jxr_linenumber" name="321" href="#321">321</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"3"</span>);
-<a class="jxr_linenumber" name="322" href="#322">322</a>         assertFalse(leaseManager2.stillInLeasePeriod());
-<a class="jxr_linenumber" name="323" href="#323">323</a>         assertTrue(leaseManager1.stillInLeasePeriod());
-<a class="jxr_linenumber" name="324" href="#324">324</a> 
-<a class="jxr_linenumber" name="325" href="#325">325</a>     }
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.client.TSOClient.DEFAULT_ZK_CLUSTER;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.any;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.anyString;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.reset;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.timeout;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.times;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.when;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TestLeaseManager.html">TestLeaseManager</a> {
+<a class="jxr_linenumber" name="51" href="#51">51</a>  
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_EPOCH_1 = 1L;
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_EPOCH_2 = 2L;
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_EPOCH_3 = 3L;
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_LOW_WATERMARK_1 = DUMMY_EPOCH_1;
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_LOW_WATERMARK_2 = DUMMY_EPOCH_2;
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> DUMMY_LOW_WATERMARK_3 = DUMMY_EPOCH_3;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LEASE_MGR_ID_1 = <span class="jxr_string">"LM1"</span>;
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LEASE_MGR_ID_2 = <span class="jxr_string">"LM2"</span>;
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INSTANCE_ID_1 = <span class="jxr_string">"LM1"</span> + <span class="jxr_string">"#"</span>;
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INSTANCE_ID_2 = <span class="jxr_string">"LM2"</span> + <span class="jxr_string">"#"</span>;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestLeaseManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="65" href="#65">65</a>  
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TEST_LEASE_PERIOD_IN_MS = 5000; <em class="jxr_comment">// 5 seconds</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>  
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> CuratorFramework zkClient;
+<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> TestingServer zkServer;
+<a class="jxr_linenumber" name="70" href="#70">70</a>  
+<a class="jxr_linenumber" name="71" href="#71">71</a>      @Mock
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> Panicker panicker;
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a> leaseManager1;
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a> leaseManager2;
+<a class="jxr_linenumber" name="76" href="#76">76</a>  
+<a class="jxr_linenumber" name="77" href="#77">77</a>      @BeforeClass
+<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>          LOG.info(<span class="jxr_string">"Starting ZK Server"</span>);
+<a class="jxr_linenumber" name="81" href="#81">81</a>          zkServer = TestUtils.provideTestingZKServer();
+<a class="jxr_linenumber" name="82" href="#82">82</a>          LOG.info(<span class="jxr_string">"ZK Server Started @ {}"</span>, zkServer.getConnectString());
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>          zkClient = TestUtils.provideConnectedZKClient(DEFAULT_ZK_CLUSTER);
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
+<a class="jxr_linenumber" name="86" href="#86">86</a>      }
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>      @AfterClass
+<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="91" href="#91">91</a>          zkClient.close();
+<a class="jxr_linenumber" name="92" href="#92">92</a>  
+<a class="jxr_linenumber" name="93" href="#93">93</a>          CloseableUtils.closeQuietly(zkServer);
+<a class="jxr_linenumber" name="94" href="#94">94</a>          zkServer = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="95" href="#95">95</a>          LOG.info(<span class="jxr_string">"ZK Server Stopped"</span>);
+<a class="jxr_linenumber" name="96" href="#96">96</a>  
+<a class="jxr_linenumber" name="97" href="#97">97</a>      }
+<a class="jxr_linenumber" name="98" href="#98">98</a>  
+<a class="jxr_linenumber" name="99" href="#99">99</a>      @Test(timeOut = 80_000)
+<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testErrorInitializingTSOStateExitsTheTSO() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="101" href="#101">101</a> 
+<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test0_tsolease"</span>;
+<a class="jxr_linenumber" name="103" href="#103">103</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test0_currenttso"</span>;
+<a class="jxr_linenumber" name="104" href="#104">104</a> 
+<a class="jxr_linenumber" name="105" href="#105">105</a>         Panicker panicker = spy(<strong class="jxr_keyword">new</strong> MockPanicker());
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>         TSOChannelHandler tsoChannelHandler = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="108" href="#108">108</a>         TSOStateManager stateManager = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="109" href="#109">109</a>         when(stateManager.initialize()).thenThrow(<strong class="jxr_keyword">new</strong> IOException());
+<a class="jxr_linenumber" name="110" href="#110">110</a>         leaseManager1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
+<a class="jxr_linenumber" name="111" href="#111">111</a>                                                  tsoChannelHandler,
+<a class="jxr_linenumber" name="112" href="#112">112</a>                                                  stateManager,
+<a class="jxr_linenumber" name="113" href="#113">113</a>                                                  TEST_LEASE_PERIOD_IN_MS,
+<a class="jxr_linenumber" name="114" href="#114">114</a>                                                  TEST_TSO_LEASE_PATH,
+<a class="jxr_linenumber" name="115" href="#115">115</a>                                                  TEST_CURRENT_TSO_PATH,
+<a class="jxr_linenumber" name="116" href="#116">116</a>                                                  zkClient,
+<a class="jxr_linenumber" name="117" href="#117">117</a>                                                  panicker);
+<a class="jxr_linenumber" name="118" href="#118">118</a>         leaseManager1.startService();
+<a class="jxr_linenumber" name="119" href="#119">119</a> 
+<a class="jxr_linenumber" name="120" href="#120">120</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
+<a class="jxr_linenumber" name="121" href="#121">121</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="122" href="#122">122</a> 
+<a class="jxr_linenumber" name="123" href="#123">123</a>         verify(panicker, timeout(2000).atLeastOnce()).panic(anyString(), any(IOException.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a>         leaseManager1.stopService();
+<a class="jxr_linenumber" name="126" href="#126">126</a> 
+<a class="jxr_linenumber" name="127" href="#127">127</a>     }
+<a class="jxr_linenumber" name="128" href="#128">128</a> 
+<a class="jxr_linenumber" name="129" href="#129">129</a>     @Test(timeOut = 80_000)
+<a class="jxr_linenumber" name="130" href="#130">130</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLeaseHolderDoesNotChangeWhenPausedForALongTimeAndTheresNoOtherInstance() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="131" href="#131">131</a> 
+<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test1_tsolease"</span>;
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test1_currenttso"</span>;
+<a class="jxr_linenumber" name="134" href="#134">134</a> 
+<a class="jxr_linenumber" name="135" href="#135">135</a>         <em class="jxr_comment">// Launch the instance under test...</em>
+<a class="jxr_linenumber" name="136" href="#136">136</a>         TSOChannelHandler tsoChannelHandler1 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="137" href="#137">137</a>         TSOStateManager stateManager1 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="138" href="#138">138</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_1, DUMMY_EPOCH_1));
+<a class="jxr_linenumber" name="139" href="#139">139</a>         leaseManager1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
+<a class="jxr_linenumber" name="140" href="#140">140</a>                                                  tsoChannelHandler1,
+<a class="jxr_linenumber" name="141" href="#141">141</a>                                                  stateManager1,
+<a class="jxr_linenumber" name="142" href="#142">142</a>                                                  TEST_LEASE_PERIOD_IN_MS,
+<a class="jxr_linenumber" name="143" href="#143">143</a>                                                  TEST_TSO_LEASE_PATH,
+<a class="jxr_linenumber" name="144" href="#144">144</a>                                                  TEST_CURRENT_TSO_PATH,
+<a class="jxr_linenumber" name="145" href="#145">145</a>                                                  zkClient,
+<a class="jxr_linenumber" name="146" href="#146">146</a>                                                  panicker);
+<a class="jxr_linenumber" name="147" href="#147">147</a>         leaseManager1.startService();
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
+<a class="jxr_linenumber" name="150" href="#150">150</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="151" href="#151">151</a> 
+<a class="jxr_linenumber" name="152" href="#152">152</a>         <em class="jxr_comment">// ... check is the lease holder</em>
+<a class="jxr_linenumber" name="153" href="#153">153</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
+<a class="jxr_linenumber" name="154" href="#154">154</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
+<a class="jxr_linenumber" name="155" href="#155">155</a>         assertTrue(leaseManager1.stillInLeasePeriod());
+<a class="jxr_linenumber" name="156" href="#156">156</a> 
+<a class="jxr_linenumber" name="157" href="#157">157</a>         <em class="jxr_comment">// Then, pause instance when trying to renew lease...</em>
+<a class="jxr_linenumber" name="158" href="#158">158</a>         leaseManager1.pausedInTryToRenewLeasePeriod();
+<a class="jxr_linenumber" name="159" href="#159">159</a> 
+<a class="jxr_linenumber" name="160" href="#160">160</a>         <em class="jxr_comment">// ...let the test run for some time...</em>
+<a class="jxr_linenumber" name="161" href="#161">161</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="162" href="#162">162</a> 
+<a class="jxr_linenumber" name="163" href="#163">163</a>         <em class="jxr_comment">// ...check that nothing changed...</em>
+<a class="jxr_linenumber" name="164" href="#164">164</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
+<a class="jxr_linenumber" name="165" href="#165">165</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>         <em class="jxr_comment">// Finally, resume the instance...</em>
+<a class="jxr_linenumber" name="168" href="#168">168</a>         leaseManager1.resume();
+<a class="jxr_linenumber" name="169" href="#169">169</a> 
+<a class="jxr_linenumber" name="170" href="#170">170</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
+<a class="jxr_linenumber" name="171" href="#171">171</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="172" href="#172">172</a> 
+<a class="jxr_linenumber" name="173" href="#173">173</a>         <em class="jxr_comment">// ... and check again that nothing changed</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
+<a class="jxr_linenumber" name="175" href="#175">175</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
+<a class="jxr_linenumber" name="176" href="#176">176</a>         assertFalse(leaseManager1.stillInLeasePeriod()); <em class="jxr_comment">// Must not be master as it should have triggered and exception</em>
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>     }
+<a class="jxr_linenumber" name="179" href="#179">179</a> 
+<a class="jxr_linenumber" name="180" href="#180">180</a>     @Test(timeOut = 80_000)
+<a class="jxr_linenumber" name="181" href="#181">181</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLeaseHolderDoesNotChangeWhenANewLeaseManagerIsUp() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="182" href="#182">182</a> 
+<a class="jxr_linenumber" name="183" href="#183">183</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test2_tsolease"</span>;
+<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test2_currenttso"</span>;
+<a class="jxr_linenumber" name="185" href="#185">185</a> 
+<a class="jxr_linenumber" name="186" href="#186">186</a>         <em class="jxr_comment">// Launch the master instance...</em>
+<a class="jxr_linenumber" name="187" href="#187">187</a>         TSOChannelHandler tsoChannelHandler1 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="188" href="#188">188</a>         TSOStateManager stateManager1 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="189" href="#189">189</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_1, DUMMY_EPOCH_1));
+<a class="jxr_linenumber" name="190" href="#190">190</a>         leaseManager1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
+<a class="jxr_linenumber" name="191" href="#191">191</a>                                                  tsoChannelHandler1,
+<a class="jxr_linenumber" name="192" href="#192">192</a>                                                  stateManager1,
+<a class="jxr_linenumber" name="193" href="#193">193</a>                                                  TEST_LEASE_PERIOD_IN_MS,
+<a class="jxr_linenumber" name="194" href="#194">194</a>                                                  TEST_TSO_LEASE_PATH,
+<a class="jxr_linenumber" name="195" href="#195">195</a>                                                  TEST_CURRENT_TSO_PATH,
+<a class="jxr_linenumber" name="196" href="#196">196</a>                                                  zkClient,
+<a class="jxr_linenumber" name="197" href="#197">197</a>                                                  panicker);
+<a class="jxr_linenumber" name="198" href="#198">198</a> 
+<a class="jxr_linenumber" name="199" href="#199">199</a>         leaseManager1.startService();
+<a class="jxr_linenumber" name="200" href="#200">200</a> 
+<a class="jxr_linenumber" name="201" href="#201">201</a>         <em class="jxr_comment">// ...let the test run for some time...</em>
+<a class="jxr_linenumber" name="202" href="#202">202</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="203" href="#203">203</a> 
+<a class="jxr_linenumber" name="204" href="#204">204</a>         <em class="jxr_comment">// ...so it should be the current holder of the lease</em>
+<a class="jxr_linenumber" name="205" href="#205">205</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
+<a class="jxr_linenumber" name="206" href="#206">206</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
+<a class="jxr_linenumber" name="207" href="#207">207</a>         assertTrue(leaseManager1.stillInLeasePeriod());
+<a class="jxr_linenumber" name="208" href="#208">208</a> 
+<a class="jxr_linenumber" name="209" href="#209">209</a>         <em class="jxr_comment">// Then launch another instance...</em>
+<a class="jxr_linenumber" name="210" href="#210">210</a>         TSOChannelHandler tsoChannelHandler2 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="211" href="#211">211</a>         TSOStateManager stateManager2 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="212" href="#212">212</a>         when(stateManager2.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_2, DUMMY_EPOCH_2));
+<a class="jxr_linenumber" name="213" href="#213">213</a>         leaseManager2 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_2,
+<a class="jxr_linenumber" name="214" href="#214">214</a>                                                  tsoChannelHandler2,
+<a class="jxr_linenumber" name="215" href="#215">215</a>                                                  stateManager2,
+<a class="jxr_linenumber" name="216" href="#216">216</a>                                                  TEST_LEASE_PERIOD_IN_MS,
+<a class="jxr_linenumber" name="217" href="#217">217</a>                                                  TEST_TSO_LEASE_PATH,
+<a class="jxr_linenumber" name="218" href="#218">218</a>                                                  TEST_CURRENT_TSO_PATH,
+<a class="jxr_linenumber" name="219" href="#219">219</a>                                                  zkClient,
+<a class="jxr_linenumber" name="220" href="#220">220</a>                                                  panicker);
+<a class="jxr_linenumber" name="221" href="#221">221</a>         leaseManager2.startService();
+<a class="jxr_linenumber" name="222" href="#222">222</a> 
+<a class="jxr_linenumber" name="223" href="#223">223</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
+<a class="jxr_linenumber" name="224" href="#224">224</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="225" href="#225">225</a> 
+<a class="jxr_linenumber" name="226" href="#226">226</a>         <em class="jxr_comment">// ... and after the period, the first instance should be still the holder</em>
+<a class="jxr_linenumber" name="227" href="#227">227</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
+<a class="jxr_linenumber" name="228" href="#228">228</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
+<a class="jxr_linenumber" name="229" href="#229">229</a>         assertTrue(leaseManager1.stillInLeasePeriod());
+<a class="jxr_linenumber" name="230" href="#230">230</a>         assertFalse(leaseManager2.stillInLeasePeriod());
+<a class="jxr_linenumber" name="231" href="#231">231</a>     }
+<a class="jxr_linenumber" name="232" href="#232">232</a> 
+<a class="jxr_linenumber" name="233" href="#233">233</a>     @Test(timeOut = 80_000)
+<a class="jxr_linenumber" name="234" href="#234">234</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLeaseHolderChangesWhenActiveLeaseManagerIsPaused() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="235" href="#235">235</a> 
+<a class="jxr_linenumber" name="236" href="#236">236</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test3_tsolease"</span>;
+<a class="jxr_linenumber" name="237" href="#237">237</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test3_currenttso"</span>;
+<a class="jxr_linenumber" name="238" href="#238">238</a> 
+<a class="jxr_linenumber" name="239" href="#239">239</a>         <em class="jxr_comment">// Launch the master instance...</em>
+<a class="jxr_linenumber" name="240" href="#240">240</a>         TSOChannelHandler tsoChannelHandler1 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="241" href="#241">241</a>         TSOStateManager stateManager1 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="242" href="#242">242</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_1, DUMMY_EPOCH_1));
+<a class="jxr_linenumber" name="243" href="#243">243</a>         leaseManager1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
+<a class="jxr_linenumber" name="244" href="#244">244</a>                                                  tsoChannelHandler1,
+<a class="jxr_linenumber" name="245" href="#245">245</a>                                                  stateManager1,
+<a class="jxr_linenumber" name="246" href="#246">246</a>                                                  TEST_LEASE_PERIOD_IN_MS,
+<a class="jxr_linenumber" name="247" href="#247">247</a>                                                  TEST_TSO_LEASE_PATH,
+<a class="jxr_linenumber" name="248" href="#248">248</a>                                                  TEST_CURRENT_TSO_PATH,
+<a class="jxr_linenumber" name="249" href="#249">249</a>                                                  zkClient,
+<a class="jxr_linenumber" name="250" href="#250">250</a>                                                  panicker);
+<a class="jxr_linenumber" name="251" href="#251">251</a> 
+<a class="jxr_linenumber" name="252" href="#252">252</a>         leaseManager1.startService();
+<a class="jxr_linenumber" name="253" href="#253">253</a> 
+<a class="jxr_linenumber" name="254" href="#254">254</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
+<a class="jxr_linenumber" name="255" href="#255">255</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="256" href="#256">256</a> 
+<a class="jxr_linenumber" name="257" href="#257">257</a>         <em class="jxr_comment">// ... so it should be the current holder of the lease</em>
+<a class="jxr_linenumber" name="258" href="#258">258</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
+<a class="jxr_linenumber" name="259" href="#259">259</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"1"</span>);
+<a class="jxr_linenumber" name="260" href="#260">260</a>         assertTrue(leaseManager1.stillInLeasePeriod());
+<a class="jxr_linenumber" name="261" href="#261">261</a> 
+<a class="jxr_linenumber" name="262" href="#262">262</a>         <em class="jxr_comment">// Then launch another instance...</em>
+<a class="jxr_linenumber" name="263" href="#263">263</a>         TSOChannelHandler tsoChannelHandler2 = mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="264" href="#264">264</a>         TSOStateManager stateManager2 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="265" href="#265">265</a>         when(stateManager2.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_2, DUMMY_EPOCH_2));
+<a class="jxr_linenumber" name="266" href="#266">266</a>         leaseManager2 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_2,
+<a class="jxr_linenumber" name="267" href="#267">267</a>                                                  tsoChannelHandler2,
+<a class="jxr_linenumber" name="268" href="#268">268</a>                                                  stateManager2,
+<a class="jxr_linenumber" name="269" href="#269">269</a>                                                  TEST_LEASE_PERIOD_IN_MS,
+<a class="jxr_linenumber" name="270" href="#270">270</a>                                                  TEST_TSO_LEASE_PATH,
+<a class="jxr_linenumber" name="271" href="#271">271</a>                                                  TEST_CURRENT_TSO_PATH,
+<a class="jxr_linenumber" name="272" href="#272">272</a>                                                  zkClient,
+<a class="jxr_linenumber" name="273" href="#273">273</a>                                                  panicker);
+<a class="jxr_linenumber" name="274" href="#274">274</a>         leaseManager2.startService();
+<a class="jxr_linenumber" name="275" href="#275">275</a> 
+<a class="jxr_linenumber" name="276" href="#276">276</a>         <em class="jxr_comment">// ... and pause active lease manager...</em>
+<a class="jxr_linenumber" name="277" href="#277">277</a>         leaseManager1.pausedInStillInLeasePeriod();
+<a class="jxr_linenumber" name="278" href="#278">278</a> 
+<a class="jxr_linenumber" name="279" href="#279">279</a>         <em class="jxr_comment">// ... and let the test run for some time...</em>
+<a class="jxr_linenumber" name="280" href="#280">280</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="281" href="#281">281</a> 
+<a class="jxr_linenumber" name="282" href="#282">282</a>         <em class="jxr_comment">// ... and check that lease owner should have changed to the second instance</em>
+<a class="jxr_linenumber" name="283" href="#283">283</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_2);
+<a class="jxr_linenumber" name="284" href="#284">284</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_2 + <span class="jxr_string">"2"</span>);
+<a class="jxr_linenumber" name="285" href="#285">285</a>         assertTrue(leaseManager2.stillInLeasePeriod());
+<a class="jxr_linenumber" name="286" href="#286">286</a> 
+<a class="jxr_linenumber" name="287" href="#287">287</a>         <em class="jxr_comment">// Now, lets resume the first instance...</em>
+<a class="jxr_linenumber" name="288" href="#288">288</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_3, DUMMY_EPOCH_3));
+<a class="jxr_linenumber" name="289" href="#289">289</a>         leaseManager1.resume();
+<a class="jxr_linenumber" name="290" href="#290">290</a> 
+<a class="jxr_linenumber" name="291" href="#291">291</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
+<a class="jxr_linenumber" name="292" href="#292">292</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="293" href="#293">293</a> 
+<a class="jxr_linenumber" name="294" href="#294">294</a>         <em class="jxr_comment">// and check the lease owner is still the second instance (preserves the lease)</em>
+<a class="jxr_linenumber" name="295" href="#295">295</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_2);
+<a class="jxr_linenumber" name="296" href="#296">296</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_2 + <span class="jxr_string">"2"</span>);
+<a class="jxr_linenumber" name="297" href="#297">297</a>         assertFalse(leaseManager1.stillInLeasePeriod());
+<a class="jxr_linenumber" name="298" href="#298">298</a>         assertTrue(leaseManager2.stillInLeasePeriod());
+<a class="jxr_linenumber" name="299" href="#299">299</a> 
+<a class="jxr_linenumber" name="300" href="#300">300</a>         <em class="jxr_comment">// Finally, pause active lease manager when trying to renew lease...</em>
+<a class="jxr_linenumber" name="301" href="#301">301</a>         leaseManager2.pausedInTryToRenewLeasePeriod();
+<a class="jxr_linenumber" name="302" href="#302">302</a> 
+<a class="jxr_linenumber" name="303" href="#303">303</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
+<a class="jxr_linenumber" name="304" href="#304">304</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="305" href="#305">305</a> 
+<a class="jxr_linenumber" name="306" href="#306">306</a>         <em class="jxr_comment">// ... and check lease owner is has changed again to the first instance</em>
+<a class="jxr_linenumber" name="307" href="#307">307</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
+<a class="jxr_linenumber" name="308" href="#308">308</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"3"</span>);
+<a class="jxr_linenumber" name="309" href="#309">309</a>         assertFalse(leaseManager2.stillInLeasePeriod());
+<a class="jxr_linenumber" name="310" href="#310">310</a>         assertTrue(leaseManager1.stillInLeasePeriod());
+<a class="jxr_linenumber" name="311" href="#311">311</a> 
+<a class="jxr_linenumber" name="312" href="#312">312</a>         <em class="jxr_comment">// Resume the second instance...</em>
+<a class="jxr_linenumber" name="313" href="#313">313</a>         leaseManager2.resume();
+<a class="jxr_linenumber" name="314" href="#314">314</a> 
+<a class="jxr_linenumber" name="315" href="#315">315</a>         <em class="jxr_comment">// ... let the test run for some time...</em>
+<a class="jxr_linenumber" name="316" href="#316">316</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
+<a class="jxr_linenumber" name="317" href="#317">317</a> 
+<a class="jxr_linenumber" name="318" href="#318">318</a>         <em class="jxr_comment">// ... but the lease owner should still be the first instance</em>
+<a class="jxr_linenumber" name="319" href="#319">319</a>         checkLeaseHolder(TEST_TSO_LEASE_PATH, LEASE_MGR_ID_1);
+<a class="jxr_linenumber" name="320" href="#320">320</a>         checkInstanceId(TEST_CURRENT_TSO_PATH, INSTANCE_ID_1 + <span class="jxr_string">"3"</span>);
+<a class="jxr_linenumber" name="321" href="#321">321</a>         assertFalse(leaseManager2.stillInLeasePeriod());
+<a class="jxr_linenumber" name="322" href="#322">322</a>         assertTrue(leaseManager1.stillInLeasePeriod());
+<a class="jxr_linenumber" name="323" href="#323">323</a> 
+<a class="jxr_linenumber" name="324" href="#324">324</a>     }
+<a class="jxr_linenumber" name="325" href="#325">325</a> 
 <a class="jxr_linenumber" name="326" href="#326">326</a> 
-<a class="jxr_linenumber" name="327" href="#327">327</a> 
-<a class="jxr_linenumber" name="328" href="#328">328</a>     @Test(timeOut = 80_000)
-<a class="jxr_linenumber" name="329" href="#329">329</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLeaseManagerPanicsWhenUnexpectedInfoIsFoundInCurrentTSOZnode() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="330" href="#330">330</a> 
-<a class="jxr_linenumber" name="331" href="#331">331</a>         <strong class="jxr_keyword">final</strong> String TEST_TSO_LEASE_PATH = <span class="jxr_string">"/test_wronginfo_tsolease"</span>;
-<a class="jxr_linenumber" name="332" href="#332">332</a>         <strong class="jxr_keyword">final</strong> String TEST_CURRENT_TSO_PATH = <span class="jxr_string">"/test_wronginfo_currenttso"</span>;
-<a class="jxr_linenumber" name="333" href="#333">333</a> 
-<a class="jxr_linenumber" name="334" href="#334">334</a>         Panicker panicker = spy(<strong class="jxr_keyword">new</strong> MockPanicker());
-<a class="jxr_linenumber" name="335" href="#335">335</a> 
-<a class="jxr_linenumber" name="336" href="#336">336</a>         <em class="jxr_comment">// Launch the master instance...</em>
-<a class="jxr_linenumber" name="337" href="#337">337</a>         TSOStateManager stateManager1 = mock(TSOStateManager.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="338" href="#338">338</a>         when(stateManager1.initialize()).thenReturn(<strong class="jxr_keyword">new</strong> TSOState(DUMMY_LOW_WATERMARK_1, DUMMY_EPOCH_1));
-<a class="jxr_linenumber" name="339" href="#339">339</a>         <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a> leaseManager = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a>(LEASE_MGR_ID_1,
-<a class="jxr_linenumber" name="340" href="#340">340</a>                                                                      mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>),
-<a class="jxr_linenumber" name="341" href="#341">341</a>                                                                      stateManager1,
-<a class="jxr_linenumber" name="342" href="#342">342</a>                                                                      TEST_LEASE_PERIOD_IN_MS,
-<a class="jxr_linenumber" name="343" href="#343">343</a>                                                                      TEST_TSO_LEASE_PATH,
-<a class="jxr_linenumber" name="344" href="#344">344</a>                                                                      TEST_CURRENT_TSO_PATH,
-<a class="jxr_linenumber" name="345" href="#345">345</a>                                                                      zkClient,
-<a class="jxr_linenumber" name="346" href="#346">346</a>                                                                      panicker);
-<a class="jxr_linenumber" name="347" href="#347">347</a> 
-<a class="jxr_linenumber" name="348" href="#348">348</a>         leaseManager.startService();
-<a class="jxr_linenumber" name="349" href="#349">349</a>         <em class="jxr_comment">// ...and let the test run for some time...</em>
-<a class="jxr_linenumber" name="350" href="#350">350</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="351" href="#351">351</a> 
-<a class="jxr_linenumber" name="352" href="#352">352</a>         leaseManager.pausedInTryToRenewLeasePeriod();
-<a class="jxr_linenumber" name="353" href="#353">353</a> 
-<a class="jxr_linenumber" name="354" href="#354">354</a>         <em class="jxr_comment">// 1st Panic test) Inject corrupted data in the ZNode, force reelection and test the panicker is exercised</em>
-<a class="jxr_linenumber" name="355" href="#355">355</a>         zkClient.setData().forPath(TEST_CURRENT_TSO_PATH, <span class="jxr_string">"CorruptedData!!!"</span>.getBytes());
-<a class="jxr_linenumber" name="356" href="#356">356</a> 
-<a class="jxr_linenumber" name="357" href="#357">357</a>         <em class="jxr_comment">// ...and let the test run for some time...</em>
-<a class="jxr_linenumber" name="358" href="#358">358</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="359" href="#359">359</a>         leaseManager.resume();
-<a class="jxr_linenumber" name="360" href="#360">360</a>         <em class="jxr_comment">// ...and let the test run for some time...</em>
-<a class="jxr_linenumber" name="361" href="#361">361</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="362" href="#362">362</a> 
-<a class="jxr_linenumber" name="363" href="#363">363</a>         ArgumentCaptor&lt;IllegalArgumentException&gt; trowableIAE = ArgumentCaptor.forClass(IllegalArgumentException.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="364" href="#364">364</a>         verify(panicker, times(2)).panic(anyString(), trowableIAE.capture());
-<a class="jxr_linenumber" name="365" href="#365">365</a>         assertTrue(trowableIAE.getValue() != <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="366" href="#366">366</a>         assertTrue(trowableIAE.getValue().getMessage().contains(<span class="jxr_string">"Incorrect TSO Info found"</span>));
-<a class="jxr_linenumber" name="367" href="#367">367</a> 
-<a class="jxr_linenumber" name="368" href="#368">368</a>         <em class="jxr_comment">// 2nd Panic test) Simulate that a new master appeared in the meantime, force reelection</em>
-<a class="jxr_linenumber" name="369" href="#369">369</a>         <em class="jxr_comment">// and test the panicker is exercised</em>
-<a class="jxr_linenumber" name="370" href="#370">370</a>         reset(panicker);
-<a class="jxr_linenumber" name="371" href="#371">371</a>         zkClient.setData().forPath(TEST_CURRENT_TSO_PATH, <span class="jxr_string">"newTSO:12345#10000"</span>.getBytes());
-<a class="jxr_linenumber" name="372" href="#372">372</a> 
-<a class="jxr_linenumber" name="373" href="#373">373</a>         leaseManager.pausedInTryToRenewLeasePeriod();
-<a class="jxr_linenumber" name="374" href="#374">374</a> 
-<a class="jxr_linenumber" name="375" href="#375">375</a>         <em class="jxr_comment">// ...and let the test run for some time...</em>
-<a class="jxr_linenumber" name="376" href="#376">376</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="377" href="#377">377</a>         leaseManager.resume();
-<a class="jxr_linenumber" name="378" href="#378">378</a>         <em class="jxr_comment">// ...and let the test run for some time...</em>
-<a class="jxr_linenumber" name="379" href="#379">379</a>         Thread.sleep(TEST_LEASE_PERIOD_IN_MS * 2);
-<a class="jxr_linenumber" name="380" href="#380">380</a> 
-<a class="jxr_linenumber" name="381" href="#381">381</a>         ArgumentCaptor&lt;LeaseManagement.LeaseManagementException&gt; trowableLME =
-<a class="jxr_linenumber" name="382" href="#382">382</a>                 ArgumentCaptor.forClass(LeaseManagement.LeaseManagementException.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="383" href="#383">383</a>         verify(panicker, times(2)).panic(anyString(), trowableLME.capture());
-<a class="jxr_linenumber" name="384" href="#384">384</a>         assertTrue(trowableLME.getValue() != <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="385" href="#385">385</a>         assertTrue(trowableLME.getValue().getMessage().contains(<span class="jxr_string">"Another TSO replica was found"</span>));
-<a class="jxr_linenumber" name="386" href="#386">386</a>     }
-<a class="jxr_linenumber" name="387" href="#387">387</a> 
-<a class="jxr_linenumber" name="388" href="#388">388</a>     @Test(timeOut = 1000)
-<a class="jxr_linenumber" name="389" href="#389">389</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNonHALeaseManager() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="390" href="#390">390</a> 
-<a class="jxr_linenumber" name="391" href="#391">391</a>         <em class="jxr_comment">// Launch the instance...</em>
-<a class="jxr_linenumber" name="392" href="#392">392</a>         VoidLeaseManager leaseManager = <strong class="jxr_keyword">new</strong> VoidLeaseManager(mock(TSOChannelHandler.<strong class="jxr_keyword">class</strong>),
-<a class="jxr_linenumber" name="393" href="#393">393</a>                                                              mock(TSOStateManager.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="394" href="#394">394</a> 
-<a class="jxr_linenumber" name="395" href="#395">395</a>         leaseManager.startService();
-<a class="jxr_linenumber" name="396" href="#396">396</a>         assertTrue(leaseManager.stillInLeasePeriod());
-<a class="jxr_linenumber" name="397" href="#397">397</a>         leaseManager.stopService();
-<a class="jxr_linenumber" name="398" href="#398">398</a> 
-<a class="jxr_linenumber" name="399" href="#399">399</a>     }
-<a class="jxr_linenumber" name="400" href="#400">400</a> 
-<a class="jxr_linenumber" name="401" href="#401">401</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="402" href="#402">402</a>     <em class="jxr_comment">// Checkers</em>
-<a class="jxr_linenumber" name="403" href="#403">403</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="404" href="#404">404</a> 
-<a class="jxr_linenumber" name="405" href="#405">405</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkLeaseHolder(String tsoLeasePath, String expectedLeaseHolder) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="406" href="#406">406</a>         byte[] leaseHolderInBytes = zkClient.getData().forPath(tsoLeasePath);
-<a class="jxr_linenumber" name="407" href="#407">407</a>         String leaseHolder = <strong class="jxr_keyword">new</strong> String(leaseHolderInBytes, Charsets.UTF_8);
-<a class="jxr_linenumber" name="408" href="#408">408</a> 
-<a class="jxr_linenumber" name="409" href="#409">409</a>         assertEquals(leaseHolder, expectedLeaseHolder);
-<a class="jxr_linenumber" name="410" href="#410">410</a>     }
-<a class="jxr_linenumber" name="411" href="#411">411</a> 
-<a class="jxr_linenumber" name="412" href="#412">412</a>     <strong cl

<TRUNCATED>


[03/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/client/OmidClientConfiguration.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/client/OmidClientConfiguration.html b/xref/org/apache/omid/tso/client/OmidClientConfiguration.html
index 8b075b3..baa5a37 100644
--- a/xref/org/apache/omid/tso/client/OmidClientConfiguration.html
+++ b/xref/org/apache/omid/tso/client/OmidClientConfiguration.html
@@ -42,161 +42,149 @@
 <a class="jxr_linenumber" name="32" href="#32">32</a>  
 <a class="jxr_linenumber" name="33" href="#33">33</a>      <strong class="jxr_keyword">public</strong> enum <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> {SYNC, ASYNC}
 <a class="jxr_linenumber" name="34" href="#34">34</a>  
-<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">public</strong> enum <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> {CELL, ROW}
+<a class="jxr_linenumber" name="35" href="#35">35</a>      <em class="jxr_comment">// Basic connection related params</em>
 <a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>      <em class="jxr_comment">// Basic connection related params</em>
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConnType</a> connectionType = ConnType.DIRECT;
-<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> String connectionString;
-<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> String zkCurrentTsoPath;
-<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> String zkNamespace;
-<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> zkConnectionTimeoutInSecs;
+<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConnType</a> connectionType = ConnType.DIRECT;
+<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> String connectionString;
+<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">private</strong> String zkCurrentTsoPath;
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> String zkNamespace;
+<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> zkConnectionTimeoutInSecs;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <em class="jxr_comment">// Communication protocol related params</em>
 <a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <em class="jxr_comment">// Communication protocol related params</em>
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> requestMaxRetries;
-<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> requestTimeoutInMs;
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> reconnectionDelayInSecs;
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> retryDelayInMs;
-<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> executorThreads;
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> requestMaxRetries;
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> requestTimeoutInMs;
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> reconnectionDelayInSecs;
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> retryDelayInMs;
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> executorThreads;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <em class="jxr_comment">// Transaction Manager related params</em>
 <a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <em class="jxr_comment">// Transaction Manager related params</em>
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> postCommitMode = PostCommitMode.SYNC;
 <a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> postCommitMode = PostCommitMode.SYNC;
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> conflictAnalysisLevel = ConflictDetectionLevel.CELL;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <em class="jxr_comment">// Instantiation</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a>() {
-<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a>().loadSettings(DEFAULT_CONFIG_FILE_NAME, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="64" href="#64">64</a>      }
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <em class="jxr_comment">// Getters and setters for config params</em>
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConnType</a> getConnectionType() {
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">return</strong> connectionType;
-<a class="jxr_linenumber" name="72" href="#72">72</a>      }
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>      @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="75" href="#75">75</a>      @Named(<span class="jxr_string">"omid.client.connectionType"</span>)
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConnectionType(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConnType</a> connectionType) {
-<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">this</strong>.connectionType = connectionType;
-<a class="jxr_linenumber" name="78" href="#78">78</a>      }
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">public</strong> String getConnectionString() {
-<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">return</strong> connectionString;
-<a class="jxr_linenumber" name="82" href="#82">82</a>      }
-<a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>      @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="85" href="#85">85</a>      @Named(<span class="jxr_string">"omid.client.connectionString"</span>)
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConnectionString(String connectionString) {
-<a class="jxr_linenumber" name="87" href="#87">87</a>          <strong class="jxr_keyword">this</strong>.connectionString = connectionString;
-<a class="jxr_linenumber" name="88" href="#88">88</a>      }
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getZkConnectionTimeoutInSecs() {
-<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">return</strong> zkConnectionTimeoutInSecs;
-<a class="jxr_linenumber" name="92" href="#92">92</a>      }
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>      @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="95" href="#95">95</a>      @Named(<span class="jxr_string">"omid.client.zkConnectionTimeoutInSecs"</span>)
-<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setZkConnectionTimeoutInSecs(<strong class="jxr_keyword">int</strong> zkConnectionTimeoutInSecs) {
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">this</strong>.zkConnectionTimeoutInSecs = zkConnectionTimeoutInSecs;
-<a class="jxr_linenumber" name="98" href="#98">98</a>      }
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRequestMaxRetries() {
-<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">return</strong> requestMaxRetries;
-<a class="jxr_linenumber" name="102" href="#102">102</a>     }
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="105" href="#105">105</a>     @Named(<span class="jxr_string">"omid.client.requestMaxRetries"</span>)
-<a class="jxr_linenumber" name="106" href="#106">106</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRequestMaxRetries(<strong class="jxr_keyword">int</strong> requestMaxRetries) {
-<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">this</strong>.requestMaxRetries = requestMaxRetries;
-<a class="jxr_linenumber" name="108" href="#108">108</a>     }
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRequestTimeoutInMs() {
-<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">return</strong> requestTimeoutInMs;
-<a class="jxr_linenumber" name="112" href="#112">112</a>     }
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="115" href="#115">115</a>     @Named(<span class="jxr_string">"omid.client.requestTimeoutInMs"</span>)
-<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRequestTimeoutInMs(<strong class="jxr_keyword">int</strong> requestTimeoutInMs) {
-<a class="jxr_linenumber" name="117" href="#117">117</a>         <strong class="jxr_keyword">this</strong>.requestTimeoutInMs = requestTimeoutInMs;
-<a class="jxr_linenumber" name="118" href="#118">118</a>     }
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getReconnectionDelayInSecs() {
-<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">return</strong> reconnectionDelayInSecs;
-<a class="jxr_linenumber" name="122" href="#122">122</a>     }
-<a class="jxr_linenumber" name="123" href="#123">123</a> 
-<a class="jxr_linenumber" name="124" href="#124">124</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="125" href="#125">125</a>     @Named(<span class="jxr_string">"omid.client.reconnectionDelayInSecs"</span>)
-<a class="jxr_linenumber" name="126" href="#126">126</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setReconnectionDelayInSecs(<strong class="jxr_keyword">int</strong> reconnectionDelayInSecs) {
-<a class="jxr_linenumber" name="127" href="#127">127</a>         <strong class="jxr_keyword">this</strong>.reconnectionDelayInSecs = reconnectionDelayInSecs;
-<a class="jxr_linenumber" name="128" href="#128">128</a>     }
-<a class="jxr_linenumber" name="129" href="#129">129</a> 
-<a class="jxr_linenumber" name="130" href="#130">130</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRetryDelayInMs() {
-<a class="jxr_linenumber" name="131" href="#131">131</a>         <strong class="jxr_keyword">return</strong> retryDelayInMs;
-<a class="jxr_linenumber" name="132" href="#132">132</a>     }
-<a class="jxr_linenumber" name="133" href="#133">133</a> 
-<a class="jxr_linenumber" name="134" href="#134">134</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="135" href="#135">135</a>     @Named(<span class="jxr_string">"omid.client.retryDelayInMs"</span>)
-<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRetryDelayInMs(<strong class="jxr_keyword">int</strong> retryDelayInMs) {
-<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">this</strong>.retryDelayInMs = retryDelayInMs;
-<a class="jxr_linenumber" name="138" href="#138">138</a>     }
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getExecutorThreads() {
-<a class="jxr_linenumber" name="141" href="#141">141</a>         <strong class="jxr_keyword">return</strong> executorThreads;
-<a class="jxr_linenumber" name="142" href="#142">142</a>     }
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
-<a class="jxr_linenumber" name="144" href="#144">144</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="145" href="#145">145</a>     @Named(<span class="jxr_string">"omid.client.executorThreads"</span>)
-<a class="jxr_linenumber" name="146" href="#146">146</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setExecutorThreads(<strong class="jxr_keyword">int</strong> executorThreads) {
-<a class="jxr_linenumber" name="147" href="#147">147</a>         <strong class="jxr_keyword">this</strong>.executorThreads = executorThreads;
-<a class="jxr_linenumber" name="148" href="#148">148</a>     }
-<a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>     <strong class="jxr_keyword">public</strong> String getZkCurrentTsoPath() {
-<a class="jxr_linenumber" name="151" href="#151">151</a>         <strong class="jxr_keyword">return</strong> zkCurrentTsoPath;
-<a class="jxr_linenumber" name="152" href="#152">152</a>     }
-<a class="jxr_linenumber" name="153" href="#153">153</a> 
-<a class="jxr_linenumber" name="154" href="#154">154</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="155" href="#155">155</a>     @Named(<span class="jxr_string">"omid.ha.zkCurrentTsoPath"</span>)
-<a class="jxr_linenumber" name="156" href="#156">156</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setZkCurrentTsoPath(String zkCurrentTsoPath) {
-<a class="jxr_linenumber" name="157" href="#157">157</a>         <strong class="jxr_keyword">this</strong>.zkCurrentTsoPath = zkCurrentTsoPath;
-<a class="jxr_linenumber" name="158" href="#158">158</a>     }
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> String getZkNamespace() {
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">return</strong> zkNamespace;
-<a class="jxr_linenumber" name="162" href="#162">162</a>     }
-<a class="jxr_linenumber" name="163" href="#163">163</a> 
-<a class="jxr_linenumber" name="164" href="#164">164</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="165" href="#165">165</a>     @Named(<span class="jxr_string">"omid.ha.zkNamespace"</span>)
-<a class="jxr_linenumber" name="166" href="#166">166</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setZkNamespace(String zkNamespace) {
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">this</strong>.zkNamespace = zkNamespace;
-<a class="jxr_linenumber" name="168" href="#168">168</a>     }
-<a class="jxr_linenumber" name="169" href="#169">169</a> 
-<a class="jxr_linenumber" name="170" href="#170">170</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> getPostCommitMode() {
-<a class="jxr_linenumber" name="171" href="#171">171</a>         <strong class="jxr_keyword">return</strong> postCommitMode;
-<a class="jxr_linenumber" name="172" href="#172">172</a>     }
-<a class="jxr_linenumber" name="173" href="#173">173</a> 
-<a class="jxr_linenumber" name="174" href="#174">174</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="175" href="#175">175</a>     @Named(<span class="jxr_string">"omid.tm.postCommitMode"</span>)
-<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPostCommitMode(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> postCommitMode) {
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">this</strong>.postCommitMode = postCommitMode;
-<a class="jxr_linenumber" name="178" href="#178">178</a>     }
-<a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> getConflictAnalysisLevel() {
-<a class="jxr_linenumber" name="181" href="#181">181</a>         <strong class="jxr_keyword">return</strong> conflictAnalysisLevel;
-<a class="jxr_linenumber" name="182" href="#182">182</a>     }
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="185" href="#185">185</a>     @Named(<span class="jxr_string">"omid.tm.conflictAnalysisLevel"</span>)
-<a class="jxr_linenumber" name="186" href="#186">186</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConflictAnalysisLevel(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> conflictAnalysisLevel) {
-<a class="jxr_linenumber" name="187" href="#187">187</a>         <strong class="jxr_keyword">this</strong>.conflictAnalysisLevel = conflictAnalysisLevel;
-<a class="jxr_linenumber" name="188" href="#188">188</a>     }
-<a class="jxr_linenumber" name="189" href="#189">189</a> }
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <em class="jxr_comment">// Instantiation</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">OmidClientConfiguration</a>() {
+<a class="jxr_linenumber" name="60" href="#60">60</a>          <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a>().loadSettings(DEFAULT_CONFIG_FILE_NAME, <strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="61" href="#61">61</a>      }
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <em class="jxr_comment">// Getters and setters for config params</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConnType</a> getConnectionType() {
+<a class="jxr_linenumber" name="68" href="#68">68</a>          <strong class="jxr_keyword">return</strong> connectionType;
+<a class="jxr_linenumber" name="69" href="#69">69</a>      }
+<a class="jxr_linenumber" name="70" href="#70">70</a>  
+<a class="jxr_linenumber" name="71" href="#71">71</a>      @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="72" href="#72">72</a>      @Named(<span class="jxr_string">"omid.client.connectionType"</span>)
+<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConnectionType(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConnType</a> connectionType) {
+<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">this</strong>.connectionType = connectionType;
+<a class="jxr_linenumber" name="75" href="#75">75</a>      }
+<a class="jxr_linenumber" name="76" href="#76">76</a>  
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> String getConnectionString() {
+<a class="jxr_linenumber" name="78" href="#78">78</a>          <strong class="jxr_keyword">return</strong> connectionString;
+<a class="jxr_linenumber" name="79" href="#79">79</a>      }
+<a class="jxr_linenumber" name="80" href="#80">80</a>  
+<a class="jxr_linenumber" name="81" href="#81">81</a>      @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="82" href="#82">82</a>      @Named(<span class="jxr_string">"omid.client.connectionString"</span>)
+<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConnectionString(String connectionString) {
+<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">this</strong>.connectionString = connectionString;
+<a class="jxr_linenumber" name="85" href="#85">85</a>      }
+<a class="jxr_linenumber" name="86" href="#86">86</a>  
+<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getZkConnectionTimeoutInSecs() {
+<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">return</strong> zkConnectionTimeoutInSecs;
+<a class="jxr_linenumber" name="89" href="#89">89</a>      }
+<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="91" href="#91">91</a>      @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="92" href="#92">92</a>      @Named(<span class="jxr_string">"omid.client.zkConnectionTimeoutInSecs"</span>)
+<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setZkConnectionTimeoutInSecs(<strong class="jxr_keyword">int</strong> zkConnectionTimeoutInSecs) {
+<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">this</strong>.zkConnectionTimeoutInSecs = zkConnectionTimeoutInSecs;
+<a class="jxr_linenumber" name="95" href="#95">95</a>      }
+<a class="jxr_linenumber" name="96" href="#96">96</a>  
+<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRequestMaxRetries() {
+<a class="jxr_linenumber" name="98" href="#98">98</a>          <strong class="jxr_keyword">return</strong> requestMaxRetries;
+<a class="jxr_linenumber" name="99" href="#99">99</a>      }
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="102" href="#102">102</a>     @Named(<span class="jxr_string">"omid.client.requestMaxRetries"</span>)
+<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRequestMaxRetries(<strong class="jxr_keyword">int</strong> requestMaxRetries) {
+<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">this</strong>.requestMaxRetries = requestMaxRetries;
+<a class="jxr_linenumber" name="105" href="#105">105</a>     }
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRequestTimeoutInMs() {
+<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">return</strong> requestTimeoutInMs;
+<a class="jxr_linenumber" name="109" href="#109">109</a>     }
+<a class="jxr_linenumber" name="110" href="#110">110</a> 
+<a class="jxr_linenumber" name="111" href="#111">111</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="112" href="#112">112</a>     @Named(<span class="jxr_string">"omid.client.requestTimeoutInMs"</span>)
+<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRequestTimeoutInMs(<strong class="jxr_keyword">int</strong> requestTimeoutInMs) {
+<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">this</strong>.requestTimeoutInMs = requestTimeoutInMs;
+<a class="jxr_linenumber" name="115" href="#115">115</a>     }
+<a class="jxr_linenumber" name="116" href="#116">116</a> 
+<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getReconnectionDelayInSecs() {
+<a class="jxr_linenumber" name="118" href="#118">118</a>         <strong class="jxr_keyword">return</strong> reconnectionDelayInSecs;
+<a class="jxr_linenumber" name="119" href="#119">119</a>     }
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="122" href="#122">122</a>     @Named(<span class="jxr_string">"omid.client.reconnectionDelayInSecs"</span>)
+<a class="jxr_linenumber" name="123" href="#123">123</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setReconnectionDelayInSecs(<strong class="jxr_keyword">int</strong> reconnectionDelayInSecs) {
+<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">this</strong>.reconnectionDelayInSecs = reconnectionDelayInSecs;
+<a class="jxr_linenumber" name="125" href="#125">125</a>     }
+<a class="jxr_linenumber" name="126" href="#126">126</a> 
+<a class="jxr_linenumber" name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getRetryDelayInMs() {
+<a class="jxr_linenumber" name="128" href="#128">128</a>         <strong class="jxr_keyword">return</strong> retryDelayInMs;
+<a class="jxr_linenumber" name="129" href="#129">129</a>     }
+<a class="jxr_linenumber" name="130" href="#130">130</a> 
+<a class="jxr_linenumber" name="131" href="#131">131</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="132" href="#132">132</a>     @Named(<span class="jxr_string">"omid.client.retryDelayInMs"</span>)
+<a class="jxr_linenumber" name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRetryDelayInMs(<strong class="jxr_keyword">int</strong> retryDelayInMs) {
+<a class="jxr_linenumber" name="134" href="#134">134</a>         <strong class="jxr_keyword">this</strong>.retryDelayInMs = retryDelayInMs;
+<a class="jxr_linenumber" name="135" href="#135">135</a>     }
+<a class="jxr_linenumber" name="136" href="#136">136</a> 
+<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getExecutorThreads() {
+<a class="jxr_linenumber" name="138" href="#138">138</a>         <strong class="jxr_keyword">return</strong> executorThreads;
+<a class="jxr_linenumber" name="139" href="#139">139</a>     }
+<a class="jxr_linenumber" name="140" href="#140">140</a> 
+<a class="jxr_linenumber" name="141" href="#141">141</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="142" href="#142">142</a>     @Named(<span class="jxr_string">"omid.client.executorThreads"</span>)
+<a class="jxr_linenumber" name="143" href="#143">143</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setExecutorThreads(<strong class="jxr_keyword">int</strong> executorThreads) {
+<a class="jxr_linenumber" name="144" href="#144">144</a>         <strong class="jxr_keyword">this</strong>.executorThreads = executorThreads;
+<a class="jxr_linenumber" name="145" href="#145">145</a>     }
+<a class="jxr_linenumber" name="146" href="#146">146</a> 
+<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> String getZkCurrentTsoPath() {
+<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">return</strong> zkCurrentTsoPath;
+<a class="jxr_linenumber" name="149" href="#149">149</a>     }
+<a class="jxr_linenumber" name="150" href="#150">150</a> 
+<a class="jxr_linenumber" name="151" href="#151">151</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="152" href="#152">152</a>     @Named(<span class="jxr_string">"omid.ha.zkCurrentTsoPath"</span>)
+<a class="jxr_linenumber" name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setZkCurrentTsoPath(String zkCurrentTsoPath) {
+<a class="jxr_linenumber" name="154" href="#154">154</a>         <strong class="jxr_keyword">this</strong>.zkCurrentTsoPath = zkCurrentTsoPath;
+<a class="jxr_linenumber" name="155" href="#155">155</a>     }
+<a class="jxr_linenumber" name="156" href="#156">156</a> 
+<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">public</strong> String getZkNamespace() {
+<a class="jxr_linenumber" name="158" href="#158">158</a>         <strong class="jxr_keyword">return</strong> zkNamespace;
+<a class="jxr_linenumber" name="159" href="#159">159</a>     }
+<a class="jxr_linenumber" name="160" href="#160">160</a> 
+<a class="jxr_linenumber" name="161" href="#161">161</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="162" href="#162">162</a>     @Named(<span class="jxr_string">"omid.ha.zkNamespace"</span>)
+<a class="jxr_linenumber" name="163" href="#163">163</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setZkNamespace(String zkNamespace) {
+<a class="jxr_linenumber" name="164" href="#164">164</a>         <strong class="jxr_keyword">this</strong>.zkNamespace = zkNamespace;
+<a class="jxr_linenumber" name="165" href="#165">165</a>     }
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> getPostCommitMode() {
+<a class="jxr_linenumber" name="168" href="#168">168</a>         <strong class="jxr_keyword">return</strong> postCommitMode;
+<a class="jxr_linenumber" name="169" href="#169">169</a>     }
+<a class="jxr_linenumber" name="170" href="#170">170</a> 
+<a class="jxr_linenumber" name="171" href="#171">171</a>     @Inject(optional = <strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="172" href="#172">172</a>     @Named(<span class="jxr_string">"omid.tm.postCommitMode"</span>)
+<a class="jxr_linenumber" name="173" href="#173">173</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPostCommitMode(<a href="../../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">PostCommitMode</a> postCommitMode) {
+<a class="jxr_linenumber" name="174" href="#174">174</a>         <strong class="jxr_keyword">this</strong>.postCommitMode = postCommitMode;
+<a class="jxr_linenumber" name="175" href="#175">175</a>     }
+<a class="jxr_linenumber" name="176" href="#176">176</a> 
+<a class="jxr_linenumber" name="177" href="#177">177</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[17/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/AbstractTransaction.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/AbstractTransaction.html b/xref/org/apache/omid/transaction/AbstractTransaction.html
index 40f2eee..2ef6c0a 100644
--- a/xref/org/apache/omid/transaction/AbstractTransaction.html
+++ b/xref/org/apache/omid/transaction/AbstractTransaction.html
@@ -28,372 +28,203 @@
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * Omid's base abstract implementation of the {@link Transaction} interface.</em>
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * Provides extra methods to access other basic transaction state required by</em>
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * {@link TransactionManager} implementations based on snapshot</em>
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * isolation.</em>
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * So, this abstract class must be extended by particular implementations of</em>
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * transaction managers related to different storage systems (HBase...)</em>
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> AbstractTransaction&lt;T <strong class="jxr_keyword">extends</strong> CellId&gt; <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> {
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">public</strong> enum <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">VisibilityLevel</a> {
-<a class="jxr_linenumber" name="42" href="#42">42</a>          <em class="jxr_comment">// Regular snapshot isolation. Returns the last key, either from the snapshot or from the current transaction</em>
-<a class="jxr_linenumber" name="43" href="#43">43</a>          <em class="jxr_comment">// Sets the readTimestamp to be the writeTimestamp</em>
-<a class="jxr_linenumber" name="44" href="#44">44</a>          SNAPSHOT,
-<a class="jxr_linenumber" name="45" href="#45">45</a>          <em class="jxr_comment">// Returns all the written version of a key X that written by the transaction and the key X from the provided snapshot.</em>
-<a class="jxr_linenumber" name="46" href="#46">46</a>          SNAPSHOT_ALL,
-<a class="jxr_linenumber" name="47" href="#47">47</a>          <em class="jxr_comment">// Returns the last key, either from the snapshot or from the current transaction that was written before the last checkpoint.</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>          <em class="jxr_comment">// Sets the readTimestamp to be the writeTimestamp - 1</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>          SNAPSHOT_EXCLUDE_CURRENT;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">VisibilityLevel</a> fromInteger(<strong class="jxr_keyword">int</strong> number) {
-<a class="jxr_linenumber" name="52" href="#52">52</a>              <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">VisibilityLevel</a> visibilityLevel = SNAPSHOT;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  
-<a class="jxr_linenumber" name="54" href="#54">54</a>              <strong class="jxr_keyword">switch</strong> (number) {
-<a class="jxr_linenumber" name="55" href="#55">55</a>              <strong class="jxr_keyword">case</strong> 0:
-<a class="jxr_linenumber" name="56" href="#56">56</a>                  visibilityLevel = VisibilityLevel.SNAPSHOT;
-<a class="jxr_linenumber" name="57" href="#57">57</a>                  <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="58" href="#58">58</a>              <strong class="jxr_keyword">case</strong> 1:
-<a class="jxr_linenumber" name="59" href="#59">59</a>                  visibilityLevel =  VisibilityLevel.SNAPSHOT_ALL;
-<a class="jxr_linenumber" name="60" href="#60">60</a>                  <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="61" href="#61">61</a>              <strong class="jxr_keyword">case</strong> 2:
-<a class="jxr_linenumber" name="62" href="#62">62</a>                  visibilityLevel = VisibilityLevel.SNAPSHOT_EXCLUDE_CURRENT;
-<a class="jxr_linenumber" name="63" href="#63">63</a>                  <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="64" href="#64">64</a>                  <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="65" href="#65">65</a>                      assert(false);
-<a class="jxr_linenumber" name="66" href="#66">66</a>              }
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>              <strong class="jxr_keyword">return</strong> visibilityLevel;
-<a class="jxr_linenumber" name="69" href="#69">69</a>          }
-<a class="jxr_linenumber" name="70" href="#70">70</a>      }
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">transient</strong> Map&lt;String, Object&gt; metadata = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> transactionManager;
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> startTimestamp;
-<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">long</strong> readTimestamp;
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">long</strong> writeTimestamp;
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> epoch;
-<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> commitTimestamp;
-<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isRollbackOnly;
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Set&lt;T&gt; writeSet;
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Set&lt;T&gt; conflictFreeWriteSet;
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Status</a> status = Status.RUNNING;
-<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">VisibilityLevel</a> visibilityLevel;
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * Base constructor</em>
-<a class="jxr_linenumber" name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * @param transactionId</em>
-<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     *            transaction identifier to assign</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @param epoch</em>
-<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     *            epoch of the TSOServer instance that created this transaction</em>
-<a class="jxr_linenumber" name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     *            Used in High Availability to guarantee data consistency</em>
-<a class="jxr_linenumber" name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * @param writeSet</em>
-<a class="jxr_linenumber" name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     *            initial write set for the transaction.</em>
-<a class="jxr_linenumber" name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     *            Should be empty in most cases.</em>
-<a class="jxr_linenumber" name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * @param conflictFreeWriteSet</em>
-<a class="jxr_linenumber" name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     *            initial conflict free write set for the transaction.</em>
-<a class="jxr_linenumber" name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     *            Should be empty in most cases.</em>
-<a class="jxr_linenumber" name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @param transactionManager</em>
-<a class="jxr_linenumber" name="100" href="#100">100</a> <em class="jxr_javadoccomment">     *            transaction manager associated to this transaction.</em>
-<a class="jxr_linenumber" name="101" href="#101">101</a> <em class="jxr_javadoccomment">     *            Usually, should be the one that created the transaction</em>
-<a class="jxr_linenumber" name="102" href="#102">102</a> <em class="jxr_javadoccomment">     *            instance.</em>
-<a class="jxr_linenumber" name="103" href="#103">103</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">AbstractTransaction</a>(<strong class="jxr_keyword">long</strong> transactionId,
-<a class="jxr_linenumber" name="105" href="#105">105</a>                                <strong class="jxr_keyword">long</strong> epoch,
-<a class="jxr_linenumber" name="106" href="#106">106</a>                                Set&lt;T&gt; writeSet,
-<a class="jxr_linenumber" name="107" href="#107">107</a>                                Set&lt;T&gt; conflictFreeWriteSet,
-<a class="jxr_linenumber" name="108" href="#108">108</a>                                <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> transactionManager) {
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">this</strong>(transactionId, transactionId, VisibilityLevel.SNAPSHOT, epoch, writeSet, conflictFreeWriteSet, transactionManager);
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * Omid's base abstract implementation of the {@link Transaction} interface.</em>
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * Provides extra methods to access other basic transaction state required by</em>
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * {@link TransactionManager} implementations based on snapshot</em>
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * isolation.</em>
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * So, this abstract class must be extended by particular implementations of</em>
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * transaction managers related to different storage systems (HBase...)</em>
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> AbstractTransaction&lt;T <strong class="jxr_keyword">extends</strong> CellId&gt; <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> {
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">transient</strong> Map&lt;String, Object&gt; metadata = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
+<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> transactionManager;
+<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> startTimestamp;
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> epoch;
+<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> commitTimestamp;
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isRollbackOnly;
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Set&lt;T&gt; writeSet;
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Status</a> status = Status.RUNNING;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * Base constructor</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * @param transactionId</em>
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     *            transaction identifier to assign</em>
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * @param epoch</em>
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     *            epoch of the TSOServer instance that created this transaction</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     *            Used in High Availability to guarantee data consistency</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @param writeSet</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     *            initial write set for the transaction.</em>
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     *            Should be empty in most cases.</em>
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * @param transactionManager</em>
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     *            transaction manager associated to this transaction.</em>
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     *            Usually, should be the one that created the transaction</em>
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     *            instance.</em>
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">AbstractTransaction</a>(<strong class="jxr_keyword">long</strong> transactionId,
+<a class="jxr_linenumber" name="66" href="#66">66</a>                                 <strong class="jxr_keyword">long</strong> epoch,
+<a class="jxr_linenumber" name="67" href="#67">67</a>                                 Set&lt;T&gt; writeSet,
+<a class="jxr_linenumber" name="68" href="#68">68</a>                                 <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> transactionManager) {
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <strong class="jxr_keyword">this</strong>.startTimestamp = transactionId;
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">this</strong>.epoch = epoch;
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">this</strong>.writeSet = writeSet;
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">this</strong>.transactionManager = transactionManager;
+<a class="jxr_linenumber" name="73" href="#73">73</a>      }
+<a class="jxr_linenumber" name="74" href="#74">74</a>  
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * Allows to define specific clean-up task for transaction implementations</em>
+<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> cleanup();
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.Transaction#getTransactionId()</em>
+<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>      @Override
+<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getTransactionId() {
+<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">return</strong> startTimestamp;
+<a class="jxr_linenumber" name="86" href="#86">86</a>      }
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.Transaction#getEpoch()</em>
+<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="91" href="#91">91</a>      @Override
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getEpoch() {
+<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">return</strong> epoch;
+<a class="jxr_linenumber" name="94" href="#94">94</a>      }
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.Transaction#getStatus()</em>
+<a class="jxr_linenumber" name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="99" href="#99">99</a>      @Override
+<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Status</a> getStatus() {
+<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">return</strong> status;
+<a class="jxr_linenumber" name="102" href="#102">102</a>     }
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * @see Transaction#isRollbackOnly()</em>
+<a class="jxr_linenumber" name="106" href="#106">106</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="107" href="#107">107</a>     @Override
+<a class="jxr_linenumber" name="108" href="#108">108</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRollbackOnly() {
+<a class="jxr_linenumber" name="109" href="#109">109</a>         isRollbackOnly = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="110" href="#110">110</a>     }
 <a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">AbstractTransaction</a>(<strong class="jxr_keyword">long</strong> transactionId,
-<a class="jxr_linenumber" name="113" href="#113">113</a>             <strong class="jxr_keyword">long</strong> readTimestamp,
-<a class="jxr_linenumber" name="114" href="#114">114</a>             <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">VisibilityLevel</a> visibilityLevel,
-<a class="jxr_linenumber" name="115" href="#115">115</a>             <strong class="jxr_keyword">long</strong> epoch,
-<a class="jxr_linenumber" name="116" href="#116">116</a>             Set&lt;T&gt; writeSet,
-<a class="jxr_linenumber" name="117" href="#117">117</a>             Set&lt;T&gt; conflictFreeWriteSet,
-<a class="jxr_linenumber" name="118" href="#118">118</a>             <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> transactionManager) {
-<a class="jxr_linenumber" name="119" href="#119">119</a>         <strong class="jxr_keyword">this</strong>.startTimestamp = <strong class="jxr_keyword">this</strong>.writeTimestamp = transactionId;
-<a class="jxr_linenumber" name="120" href="#120">120</a>         <strong class="jxr_keyword">this</strong>.readTimestamp = readTimestamp;
-<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">this</strong>.epoch = epoch;
-<a class="jxr_linenumber" name="122" href="#122">122</a>         <strong class="jxr_keyword">this</strong>.writeSet = writeSet;
-<a class="jxr_linenumber" name="123" href="#123">123</a>         <strong class="jxr_keyword">this</strong>.conflictFreeWriteSet = conflictFreeWriteSet;
-<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">this</strong>.transactionManager = transactionManager;
-<a class="jxr_linenumber" name="125" href="#125">125</a>         <strong class="jxr_keyword">this</strong>.visibilityLevel = visibilityLevel;
+<a class="jxr_linenumber" name="112" href="#112">112</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.Transaction#isRollbackOnly()</em>
+<a class="jxr_linenumber" name="114" href="#114">114</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="115" href="#115">115</a>     @Override
+<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isRollbackOnly() {
+<a class="jxr_linenumber" name="117" href="#117">117</a>         <strong class="jxr_keyword">return</strong> isRollbackOnly;
+<a class="jxr_linenumber" name="118" href="#118">118</a>     }
+<a class="jxr_linenumber" name="119" href="#119">119</a> 
+<a class="jxr_linenumber" name="120" href="#120">120</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * Returns transaction manager associated to this transaction.</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * @return transaction manager</em>
+<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> getTransactionManager() {
+<a class="jxr_linenumber" name="125" href="#125">125</a>         <strong class="jxr_keyword">return</strong> transactionManager;
 <a class="jxr_linenumber" name="126" href="#126">126</a>     }
 <a class="jxr_linenumber" name="127" href="#127">127</a> 
 <a class="jxr_linenumber" name="128" href="#128">128</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * Base constructor</em>
-<a class="jxr_linenumber" name="130" href="#130">130</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * @param transactionId</em>
-<a class="jxr_linenumber" name="132" href="#132">132</a> <em class="jxr_javadoccomment">     *            transaction identifier to assign</em>
-<a class="jxr_linenumber" name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * @param epoch</em>
-<a class="jxr_linenumber" name="134" href="#134">134</a> <em class="jxr_javadoccomment">     *            epoch of the TSOServer instance that created this transaction</em>
-<a class="jxr_linenumber" name="135" href="#135">135</a> <em class="jxr_javadoccomment">     *            Used in High Availability to guarantee data consistency</em>
-<a class="jxr_linenumber" name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * @param writeSet</em>
-<a class="jxr_linenumber" name="137" href="#137">137</a> <em class="jxr_javadoccomment">     *            initial write set for the transaction.</em>
-<a class="jxr_linenumber" name="138" href="#138">138</a> <em class="jxr_javadoccomment">     *            Should be empty in most cases.</em>
-<a class="jxr_linenumber" name="139" href="#139">139</a> <em class="jxr_javadoccomment">     * @param transactionManager</em>
-<a class="jxr_linenumber" name="140" href="#140">140</a> <em class="jxr_javadoccomment">     *            transaction manager associated to this transaction.</em>
-<a class="jxr_linenumber" name="141" href="#141">141</a> <em class="jxr_javadoccomment">     *            Usually, should be the one that created the transaction</em>
-<a class="jxr_linenumber" name="142" href="#142">142</a> <em class="jxr_javadoccomment">     *            instance.</em>
-<a class="jxr_linenumber" name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * @param readTimestamp</em>
-<a class="jxr_linenumber" name="144" href="#144">144</a> <em class="jxr_javadoccomment">     *            the snapshot to read from</em>
-<a class="jxr_linenumber" name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @param writeTimestamp</em>
-<a class="jxr_linenumber" name="146" href="#146">146</a> <em class="jxr_javadoccomment">     *            the timestamp to write to</em>
-<a class="jxr_linenumber" name="147" href="#147">147</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * Returns the start timestamp for this transaction.</em>
+<a class="jxr_linenumber" name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * @return start timestamp</em>
+<a class="jxr_linenumber" name="131" href="#131">131</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="132" href="#132">132</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getStartTimestamp() {
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">return</strong> startTimestamp;
+<a class="jxr_linenumber" name="134" href="#134">134</a>     }
+<a class="jxr_linenumber" name="135" href="#135">135</a> 
+<a class="jxr_linenumber" name="136" href="#136">136</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * Returns the commit timestamp for this transaction.</em>
+<a class="jxr_linenumber" name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @return commit timestamp</em>
+<a class="jxr_linenumber" name="139" href="#139">139</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getCommitTimestamp() {
+<a class="jxr_linenumber" name="141" href="#141">141</a>         <strong class="jxr_keyword">return</strong> commitTimestamp;
+<a class="jxr_linenumber" name="142" href="#142">142</a>     }
+<a class="jxr_linenumber" name="143" href="#143">143</a> 
+<a class="jxr_linenumber" name="144" href="#144">144</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * Sets the commit timestamp for this transaction.</em>
+<a class="jxr_linenumber" name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @param commitTimestamp</em>
+<a class="jxr_linenumber" name="147" href="#147">147</a> <em class="jxr_javadoccomment">     *            the commit timestamp to set</em>
 <a class="jxr_linenumber" name="148" href="#148">148</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="149" href="#149">149</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">AbstractTransaction</a>(<strong class="jxr_keyword">long</strong> transactionId,
-<a class="jxr_linenumber" name="150" href="#150">150</a>                                <strong class="jxr_keyword">long</strong> epoch,
-<a class="jxr_linenumber" name="151" href="#151">151</a>                                Set&lt;T&gt; writeSet,
-<a class="jxr_linenumber" name="152" href="#152">152</a>                                Set&lt;T&gt; conflictFreeWriteSet,
-<a class="jxr_linenumber" name="153" href="#153">153</a>                                <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> transactionManager,
-<a class="jxr_linenumber" name="154" href="#154">154</a>                                <strong class="jxr_keyword">long</strong> readTimestamp,
-<a class="jxr_linenumber" name="155" href="#155">155</a>                                <strong class="jxr_keyword">long</strong> writeTimestamp) {
-<a class="jxr_linenumber" name="156" href="#156">156</a>         <strong class="jxr_keyword">this</strong>.startTimestamp = transactionId;
-<a class="jxr_linenumber" name="157" href="#157">157</a>         <strong class="jxr_keyword">this</strong>.readTimestamp = readTimestamp;
-<a class="jxr_linenumber" name="158" href="#158">158</a>         <strong class="jxr_keyword">this</strong>.writeTimestamp = writeTimestamp;
-<a class="jxr_linenumber" name="159" href="#159">159</a>         <strong class="jxr_keyword">this</strong>.epoch = epoch;
-<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">this</strong>.writeSet = writeSet;
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">this</strong>.conflictFreeWriteSet = conflictFreeWriteSet;
-<a class="jxr_linenumber" name="162" href="#162">162</a>         <strong class="jxr_keyword">this</strong>.transactionManager = transactionManager;
-<a class="jxr_linenumber" name="163" href="#163">163</a>         <strong class="jxr_keyword">this</strong>.visibilityLevel = VisibilityLevel.SNAPSHOT;
-<a class="jxr_linenumber" name="164" href="#164">164</a>     }
-<a class="jxr_linenumber" name="165" href="#165">165</a> 
-<a class="jxr_linenumber" name="166" href="#166">166</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="167" href="#167">167</a> <em class="jxr_javadoccomment">     * Creates a checkpoint and sets the visibility level to SNAPSHOT_EXCLUDE_CURRENT</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * The number of checkpoints is bounded to NUM_CHECKPOINTS in order to make checkpoint a client side operation</em>
-<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * @return true if a checkpoint was created and false otherwise</em>
-<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * @throws TransactionException</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> checkpoint() <strong class="jxr_keyword">throws</strong> TransactionException {
-<a class="jxr_linenumber" name="173" href="#173">173</a> 
-<a class="jxr_linenumber" name="174" href="#174">174</a>         setVisibilityLevel(VisibilityLevel.SNAPSHOT_EXCLUDE_CURRENT);
-<a class="jxr_linenumber" name="175" href="#175">175</a>         <strong class="jxr_keyword">this</strong>.readTimestamp = <strong class="jxr_keyword">this</strong>.writeTimestamp++;
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.writeTimestamp % AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN == 0) {
-<a class="jxr_linenumber" name="178" href="#178">178</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Error: number of checkpoing cannot exceed "</span> + (AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN - 1));
-<a class="jxr_linenumber" name="179" href="#179">179</a>         }
-<a class="jxr_linenumber" name="180" href="#180">180</a>     }
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * Allows to define specific clean-up task for transaction implementations</em>
-<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> cleanup();
-<a class="jxr_linenumber" name="186" href="#186">186</a> 
-<a class="jxr_linenumber" name="187" href="#187">187</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.Transaction#getTransactionId()</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="149" href="#149">149</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCommitTimestamp(<strong class="jxr_keyword">long</strong> commitTimestamp) {
+<a class="jxr_linenumber" name="150" href="#150">150</a>         <strong class="jxr_keyword">this</strong>.commitTimestamp = commitTimestamp;
+<a class="jxr_linenumber" name="151" href="#151">151</a>     }
+<a class="jxr_linenumber" name="152" href="#152">152</a> 
+<a class="jxr_linenumber" name="153" href="#153">153</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * Sets the status for this transaction.</em>
+<a class="jxr_linenumber" name="155" href="#155">155</a> <em class="jxr_javadoccomment">     * @param status</em>
+<a class="jxr_linenumber" name="156" href="#156">156</a> <em class="jxr_javadoccomment">     *            the {@link Status} to set</em>
+<a class="jxr_linenumber" name="157" href="#157">157</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setStatus(<a href="../../../../org/apache/omid/transaction/Transaction.html">Status</a> status) {
+<a class="jxr_linenumber" name="159" href="#159">159</a>         <strong class="jxr_keyword">this</strong>.status = status;
+<a class="jxr_linenumber" name="160" href="#160">160</a>     }
+<a class="jxr_linenumber" name="161" href="#161">161</a> 
+<a class="jxr_linenumber" name="162" href="#162">162</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * Returns the current write-set for this transaction.</em>
+<a class="jxr_linenumber" name="164" href="#164">164</a> <em class="jxr_javadoccomment">     * @return write set</em>
+<a class="jxr_linenumber" name="165" href="#165">165</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="166" href="#166">166</a>     <strong class="jxr_keyword">public</strong> Set&lt;T&gt; getWriteSet() {
+<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">return</strong> writeSet;
+<a class="jxr_linenumber" name="168" href="#168">168</a>     }
+<a class="jxr_linenumber" name="169" href="#169">169</a> 
+<a class="jxr_linenumber" name="170" href="#170">170</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     * Adds an element to the transaction write-set.</em>
+<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @param element</em>
+<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     *            the element to add</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="175" href="#175">175</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addWriteSetElement(T element) {
+<a class="jxr_linenumber" name="176" href="#176">176</a>         writeSet.add(element);
+<a class="jxr_linenumber" name="177" href="#177">177</a>     }
+<a class="jxr_linenumber" name="178" href="#178">178</a> 
+<a class="jxr_linenumber" name="179" href="#179">179</a>     @Override
+<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> String toString() {
+<a class="jxr_linenumber" name="181" href="#181">181</a>         <strong class="jxr_keyword">return</strong> String.format(<span class="jxr_string">"Tx-%s [%s] (ST=%d, CT=%d, Epoch=%d) WriteSet %s"</span>,
+<a class="jxr_linenumber" name="182" href="#182">182</a>                              Long.toHexString(getTransactionId()),
+<a class="jxr_linenumber" name="183" href="#183">183</a>                              status,
+<a class="jxr_linenumber" name="184" href="#184">184</a>                              startTimestamp,
+<a class="jxr_linenumber" name="185" href="#185">185</a>                              commitTimestamp,
+<a class="jxr_linenumber" name="186" href="#186">186</a>                              epoch,
+<a class="jxr_linenumber" name="187" href="#187">187</a>                              writeSet);
+<a class="jxr_linenumber" name="188" href="#188">188</a>     }
+<a class="jxr_linenumber" name="189" href="#189">189</a> 
 <a class="jxr_linenumber" name="190" href="#190">190</a>     @Override
-<a class="jxr_linenumber" name="191" href="#191">191</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getTransactionId() {
-<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">return</strong> startTimestamp;
+<a class="jxr_linenumber" name="191" href="#191">191</a>     <strong class="jxr_keyword">public</strong> Optional&lt;Object&gt; getMetadata(String key) {
+<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">return</strong> Optional.fromNullable(metadata.get(key));
 <a class="jxr_linenumber" name="193" href="#193">193</a>     }
 <a class="jxr_linenumber" name="194" href="#194">194</a> 
 <a class="jxr_linenumber" name="195" href="#195">195</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.Transaction#getEpoch()</em>
-<a class="jxr_linenumber" name="197" href="#197">197</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="198" href="#198">198</a>     @Override
-<a class="jxr_linenumber" name="199" href="#199">199</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getEpoch() {
-<a class="jxr_linenumber" name="200" href="#200">200</a>         <strong class="jxr_keyword">return</strong> epoch;
-<a class="jxr_linenumber" name="201" href="#201">201</a>     }
-<a class="jxr_linenumber" name="202" href="#202">202</a> 
-<a class="jxr_linenumber" name="203" href="#203">203</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.Transaction#getStatus()</em>
-<a class="jxr_linenumber" name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="206" href="#206">206</a>     @Override
-<a class="jxr_linenumber" name="207" href="#207">207</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/Transaction.html">Status</a> getStatus() {
-<a class="jxr_linenumber" name="208" href="#208">208</a>         <strong class="jxr_keyword">return</strong> status;
-<a class="jxr_linenumber" name="209" href="#209">209</a>     }
-<a class="jxr_linenumber" name="210" href="#210">210</a> 
-<a class="jxr_linenumber" name="211" href="#211">211</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * @see Transaction#isRollbackOnly()</em>
-<a class="jxr_linenumber" name="213" href="#213">213</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="214" href="#214">214</a>     @Override
-<a class="jxr_linenumber" name="215" href="#215">215</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRollbackOnly() {
-<a class="jxr_linenumber" name="216" href="#216">216</a>         isRollbackOnly = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="217" href="#217">217</a>     }
-<a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * @see org.apache.omid.transaction.Transaction#isRollbackOnly()</em>
-<a class="jxr_linenumber" name="221" href="#221">221</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="222" href="#222">222</a>     @Override
-<a class="jxr_linenumber" name="223" href="#223">223</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isRollbackOnly() {
-<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">return</strong> isRollbackOnly;
-<a class="jxr_linenumber" name="225" href="#225">225</a>     }
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="228" href="#228">228</a> <em class="jxr_javadoccomment">     * Returns transaction manager associated to this transaction.</em>
-<a class="jxr_linenumber" name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * @return transaction manager</em>
-<a class="jxr_linenumber" name="230" href="#230">230</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> getTransactionManager() {
-<a class="jxr_linenumber" name="232" href="#232">232</a>         <strong class="jxr_keyword">return</strong> transactionManager;
-<a class="jxr_linenumber" name="233" href="#233">233</a>     }
-<a class="jxr_linenumber" name="234" href="#234">234</a> 
-<a class="jxr_linenumber" name="235" href="#235">235</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="236" href="#236">236</a> <em class="jxr_javadoccomment">     * Returns the start timestamp for this transaction.</em>
-<a class="jxr_linenumber" name="237" href="#237">237</a> <em class="jxr_javadoccomment">     * @return start timestamp</em>
-<a class="jxr_linenumber" name="238" href="#238">238</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="239" href="#239">239</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getStartTimestamp() {
-<a class="jxr_linenumber" name="240" href="#240">240</a>         <strong class="jxr_keyword">return</strong> startTimestamp;
-<a class="jxr_linenumber" name="241" href="#241">241</a>     }
-<a class="jxr_linenumber" name="242" href="#242">242</a> 
-<a class="jxr_linenumber" name="243" href="#243">243</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="244" href="#244">244</a> <em class="jxr_javadoccomment">     * Returns the read timestamp for this transaction.</em>
-<a class="jxr_linenumber" name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * @return read timestamp</em>
-<a class="jxr_linenumber" name="246" href="#246">246</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="247" href="#247">247</a>     @Override
-<a class="jxr_linenumber" name="248" href="#248">248</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getReadTimestamp() {
-<a class="jxr_linenumber" name="249" href="#249">249</a>         <strong class="jxr_keyword">return</strong> readTimestamp;
-<a class="jxr_linenumber" name="250" href="#250">250</a>     }
-<a class="jxr_linenumber" name="251" href="#251">251</a> 
-<a class="jxr_linenumber" name="252" href="#252">252</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * Returns the write timestamp for this transaction.</em>
-<a class="jxr_linenumber" name="254" href="#254">254</a> <em class="jxr_javadoccomment">     * @return write timestamp</em>
-<a class="jxr_linenumber" name="255" href="#255">255</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="256" href="#256">256</a>     @Override
-<a class="jxr_linenumber" name="257" href="#257">257</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getWriteTimestamp() {
-<a class="jxr_linenumber" name="258" href="#258">258</a>         <strong class="jxr_keyword">return</strong> writeTimestamp;
-<a class="jxr_linenumber" name="259" href="#259">259</a>     }
-<a class="jxr_linenumber" name="260" href="#260">260</a> 
-<a class="jxr_linenumber" name="261" href="#261">261</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * Returns the commit timestamp for this transaction.</em>
-<a class="jxr_linenumber" name="263" href="#263">263</a> <em class="jxr_javadoccomment">     * @return commit timestamp</em>
-<a class="jxr_linenumber" name="264" href="#264">264</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="265" href="#265">265</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getCommitTimestamp() {
-<a class="jxr_linenumber" name="266" href="#266">266</a>         <strong class="jxr_keyword">return</strong> commitTimestamp;
-<a class="jxr_linenumber" name="267" href="#267">267</a>     }
-<a class="jxr_linenumber" name="268" href="#268">268</a> 
-<a class="jxr_linenumber" name="269" href="#269">269</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="270" href="#270">270</a> <em class="jxr_javadoccomment">     * Returns the visibility level for this transaction.</em>
-<a class="jxr_linenumber" name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * @return visibility level</em>
-<a class="jxr_linenumber" name="272" href="#272">272</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="273" href="#273">273</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">VisibilityLevel</a> getVisibilityLevel() {
-<a class="jxr_linenumber" name="274" href="#274">274</a>         <strong class="jxr_keyword">return</strong> visibilityLevel;
-<a class="jxr_linenumber" name="275" href="#275">275</a>     }
-<a class="jxr_linenumber" name="276" href="#276">276</a> 
-<a class="jxr_linenumber" name="277" href="#277">277</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a> <em class="jxr_javadoccomment">     * Sets the commit timestamp for this transaction.</em>
-<a class="jxr_linenumber" name="279" href="#279">279</a> <em class="jxr_javadoccomment">     * @param commitTimestamp</em>
-<a class="jxr_linenumber" name="280" href="#280">280</a> <em class="jxr_javadoccomment">     *            the commit timestamp to set</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="282" href="#282">282</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCommitTimestamp(<strong class="jxr_keyword">long</strong> commitTimestamp) {
-<a class="jxr_linenumber" name="283" href="#283">283</a>         <strong class="jxr_keyword">this</strong>.commitTimestamp = commitTimestamp;
-<a class="jxr_linenumber" name="284" href="#284">284</a>     }
-<a class="jxr_linenumber" name="285" href="#285">285</a> 
-<a class="jxr_linenumber" name="286" href="#286">286</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="287" href="#287">287</a> <em class="jxr_javadoccomment">     * Sets the visibility level for this transaction.</em>
-<a class="jxr_linenumber" name="288" href="#288">288</a> <em class="jxr_javadoccomment">     * @param visibilityLevel</em>
-<a class="jxr_linenumber" name="289" href="#289">289</a> <em class="jxr_javadoccomment">     *            the {@link VisibilityLevel} to set</em>
-<a class="jxr_linenumber" name="290" href="#290">290</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="291" href="#291">291</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setVisibilityLevel(<a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">VisibilityLevel</a> visibilityLevel) {
-<a class="jxr_linenumber" name="292" href="#292">292</a>         <strong class="jxr_keyword">this</strong>.visibilityLevel = visibilityLevel;
-<a class="jxr_linenumber" name="293" href="#293">293</a> 
-<a class="jxr_linenumber" name="294" href="#294">294</a>         <em class="jxr_comment">// If we are setting visibility level to either SNAPSHOT or SNAPSHOT_ALL</em>
-<a class="jxr_linenumber" name="295" href="#295">295</a>         <em class="jxr_comment">// then we should let readTimestamp equals to writeTimestamp</em>
-<a class="jxr_linenumber" name="296" href="#296">296</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.visibilityLevel == VisibilityLevel.SNAPSHOT ||
-<a class="jxr_linenumber" name="297" href="#297">297</a>             <strong class="jxr_keyword">this</strong>.visibilityLevel == VisibilityLevel.SNAPSHOT_ALL) {
-<a class="jxr_linenumber" name="298" href="#298">298</a>             <strong class="jxr_keyword">this</strong>.readTimestamp = <strong class="jxr_keyword">this</strong>.writeTimestamp;
-<a class="jxr_linenumber" name="299" href="#299">299</a>         }
-<a class="jxr_linenumber" name="300" href="#300">300</a>     }
-<a class="jxr_linenumber" name="301" href="#301">301</a> 
-<a class="jxr_linenumber" name="302" href="#302">302</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="303" href="#303">303</a> <em class="jxr_javadoccomment">     * Sets the status for this transaction.</em>
-<a class="jxr_linenumber" name="304" href="#304">304</a> <em class="jxr_javadoccomment">     * @param status</em>
-<a class="jxr_linenumber" name="305" href="#305">305</a> <em class="jxr_javadoccomment">     *            the {@link Status} to set</em>
-<a class="jxr_linenumber" name="306" href="#306">306</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="307" href="#307">307</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setStatus(<a href="../../../../org/apache/omid/transaction/Transaction.html">Status</a> status) {
-<a class="jxr_linenumber" name="308" href="#308">308</a>         <strong class="jxr_keyword">this</strong>.status = status;
-<a class="jxr_linenumber" name="309" href="#309">309</a>     }
-<a class="jxr_linenumber" name="310" href="#310">310</a> 
-<a class="jxr_linenumber" name="311" href="#311">311</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="312" href="#312">312</a> <em class="jxr_javadoccomment">     * Returns the current write-set for this transaction.</em>
-<a class="jxr_linenumber" name="313" href="#313">313</a> <em class="jxr_javadoccomment">     * @return write set</em>
-<a class="jxr_linenumber" name="314" href="#314">314</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="315" href="#315">315</a>     <strong class="jxr_keyword">public</strong> Set&lt;T&gt; getWriteSet() {
-<a class="jxr_linenumber" name="316" href="#316">316</a>         <strong class="jxr_keyword">return</strong> writeSet;
-<a class="jxr_linenumber" name="317" href="#317">317</a>     }
-<a class="jxr_linenumber" name="318" href="#318">318</a> 
-<a class="jxr_linenumber" name="319" href="#319">319</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="320" href="#320">320</a> <em class="jxr_javadoccomment">     * Returns the current write-set for this transaction that its elements are not candidates for conflict analysis.</em>
-<a class="jxr_linenumber" name="321" href="#321">321</a> <em class="jxr_javadoccomment">     * @return conflictFreeWriteSet</em>
-<a class="jxr_linenumber" name="322" href="#322">322</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="323" href="#323">323</a>     <strong class="jxr_keyword">public</strong> Set&lt;T&gt; getConflictFreeWriteSet() {
-<a class="jxr_linenumber" name="324" href="#324">324</a>         <strong class="jxr_keyword">return</strong> conflictFreeWriteSet;
-<a class="jxr_linenumber" name="325" href="#325">325</a>     }
-<a class="jxr_linenumber" name="326" href="#326">326</a> 
-<a class="jxr_linenumber" name="327" href="#327">327</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="328" href="#328">328</a> <em class="jxr_javadoccomment">     * Adds an element to the transaction write-set.</em>
-<a class="jxr_linenumber" name="329" href="#329">329</a> <em class="jxr_javadoccomment">     * @param element</em>
-<a class="jxr_linenumber" name="330" href="#330">330</a> <em class="jxr_javadoccomment">     *            the element to add</em>
-<a class="jxr_linenumber" name="331" href="#331">331</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="332" href="#332">332</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addWriteSetElement(T element) {
-<a class="jxr_linenumber" name="333" href="#333">333</a>         writeSet.add(element);
-<a class="jxr_linenumber" name="334" href="#334">334</a>     }
-<a class="jxr_linenumber" name="335" href="#335">335</a> 
-<a class="jxr_linenumber" name="336" href="#336">336</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="337" href="#337">337</a> <em class="jxr_javadoccomment">     * Adds an element to the transaction conflict free write-set.</em>
-<a class="jxr_linenumber" name="338" href="#338">338</a> <em class="jxr_javadoccomment">     * @param element</em>
-<a class="jxr_linenumber" name="339" href="#339">339</a> <em class="jxr_javadoccomment">     *            the element to add</em>
-<a class="jxr_linenumber" name="340" href="#340">340</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="341" href="#341">341</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addConflictFreeWriteSetElement(T element) {
-<a class="jxr_linenumber" name="342" href="#342">342</a>         conflictFreeWriteSet.add(element);
-<a class="jxr_linenumber" name="343" href="#343">343</a>     }
-<a class="jxr_linenumber" name="344" href="#344">344</a> 
-<a class="jxr_linenumber" name="345" href="#345">345</a>     @Override
-<a class="jxr_linenumber" name="346" href="#346">346</a>     <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="347" href="#347">347</a>         <strong class="jxr_keyword">return</strong> String.format(<span class="jxr_string">"Tx-%s [%s] (ST=%d, RT=%d, WT=%d, CT=%d, Epoch=%d) WriteSet %s ConflictFreeWriteSet %s"</span>,
-<a class="jxr_linenumber" name="348" href="#348">348</a>                              Long.toHexString(getTransactionId()),
-<a class="jxr_linenumber" name="349" href="#349">349</a>                              status,
-<a class="jxr_linenumber" name="350" href="#350">350</a>                              startTimestamp,
-<a class="jxr_linenumber" name="351" href="#351">351</a>                              readTimestamp,
-<a class="jxr_linenumber" name="352" href="#352">352</a>                              writeTimestamp,
-<a class="jxr_linenumber" name="353" href="#353">353</a>                              commitTimestamp,
-<a class="jxr_linenumber" name="354" href="#354">354</a>                              epoch,
-<a class="jxr_linenumber" name="355" href="#355">355</a>                              writeSet,
-<a class="jxr_linenumber" name="356" href="#356">356</a>                              conflictFreeWriteSet);
-<a class="jxr_linenumber" name="357" href="#357">357</a>     }
-<a class="jxr_linenumber" name="358" href="#358">358</a> 
-<a class="jxr_linenumber" name="359" href="#359">359</a>     @Override
-<a class="jxr_linenumber" name="360" href="#360">360</a>     <strong class="jxr_keyword">public</strong> Optional&lt;Object&gt; getMetadata(String key) {
-<a class="jxr_linenumber" name="361" href="#361">361</a>         <strong class="jxr_keyword">return</strong> Optional.fromNullable(metadata.get(key));
-<a class="jxr_linenumber" name="362" href="#362">362</a>     }
-<a class="jxr_linenumber" name="363" href="#363">363</a> 
-<a class="jxr_linenumber" name="364" href="#364">364</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="365" href="#365">365</a> <em class="jxr_javadoccomment">     * Expects they metadata stored under key "key" to be of the "Set" type,</em>
-<a class="jxr_linenumber" name="366" href="#366">366</a> <em class="jxr_javadoccomment">     * append "value" to the existing set or creates a new one</em>
-<a class="jxr_linenumber" name="367" href="#367">367</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="368" href="#368">368</a>     @Override
-<a class="jxr_linenumber" name="369" href="#369">369</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="370" href="#370">370</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> appendMetadata(String key, Object value) {
-<a class="jxr_linenumber" name="371" href="#371">371</a>         List existingValue = (List) metadata.get(key);
-<a class="jxr_linenumber" name="372" href="#372">372</a>         <strong class="jxr_keyword">if</strong> (existingValue == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="373" href="#373">373</a>             List&lt;Object&gt; newList = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="374" href="#374">374</a>             newList.add(value);
-<a class="jxr_linenumber" name="375" href="#375">375</a>             metadata.put(key, newList);
-<a class="jxr_linenumber" name="376" href="#376">376</a>         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="377" href="#377">377</a>             existingValue.add(value);
-<a class="jxr_linenumber" name="378" href="#378">378</a>         }
-<a class="jxr_linenumber" name="379" href="#379">379</a>     }
-<a class="jxr_linenumber" name="380" href="#380">380</a> 
-<a class="jxr_linenumber" name="381" href="#381">381</a>     @Override
-<a class="jxr_linenumber" name="382" href="#382">382</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMetadata(String key, Object value) {
-<a class="jxr_linenumber" name="383" href="#383">383</a>         metadata.put(key, value);
-<a class="jxr_linenumber" name="384" href="#384">384</a>     }
-<a class="jxr_linenumber" name="385" href="#385">385</a> 
-<a class="jxr_linenumber" name="386" href="#386">386</a> }
+<a class="jxr_linenumber" name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * Expects they metadata stored under key "key" to be of the "Set" type,</em>
+<a class="jxr_linenumber" name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * append "value" to the existing set or creates a new one</em>
+<a class="jxr_linenumber" name="198" href="#198">198</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="199" href="#199">199</a>     @Override
+<a class="jxr_linenumber" name="200" href="#200">200</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="201" href="#201">201</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> appendMetadata(String key, Object value) {
+<a class="jxr_linenumber" name="202" href="#202">202</a>         List existingValue = (List) metadata.get(key);
+<a class="jxr_linenumber" name="203" href="#203">203</a>         <strong class="jxr_keyword">if</strong> (existingValue == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="204" href="#204">204</a>             List&lt;Object&gt; newList = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="205" href="#205">205</a>             newList.add(value);
+<a class="jxr_linenumber" name="206" href="#206">206</a>             metadata.put(key, newList);
+<a class="jxr_linenumber" name="207" href="#207">207</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="208" href="#208">208</a>             existingValue.add(value);
+<a class="jxr_linenumber" name="209" href="#209">209</a>         }
+<a class="jxr_linenumber" name="210" href="#210">210</a>     }
+<a class="jxr_linenumber" name="211" href="#211">211</a> 
+<a class="jxr_linenumber" name="212" href="#212">212</a>     @Override
+<a class="jxr_linenumber" name="213" href="#213">213</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMetadata(String key, Object value) {
+<a class="jxr_linenumber" name="214" href="#214">214</a>         metadata.put(key, value);
+<a class="jxr_linenumber" name="215" href="#215">215</a>     }
+<a class="jxr_linenumber" name="216" href="#216">216</a> 
+<a class="jxr_linenumber" name="217" href="#217">217</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[08/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/PersistenceProcessorHandler.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/PersistenceProcessorHandler.html b/xref/org/apache/omid/tso/PersistenceProcessorHandler.html
index 38667a3..dc4f6e9 100644
--- a/xref/org/apache/omid/tso/PersistenceProcessorHandler.html
+++ b/xref/org/apache/omid/tso/PersistenceProcessorHandler.html
@@ -27,179 +27,193 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.tso;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.lmax.disruptor.WorkHandler;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Histogram;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Timer;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> com.codahale.metrics.MetricRegistry.name;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.PersistEvent.Type.COMMIT_RETRY;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.annotations.VisibleForTesting;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Objects;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.lmax.disruptor.WorkHandler;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Histogram;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Timer;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicInteger;
 <a class="jxr_linenumber" name="34" href="#34">34</a>  
-<a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a> <strong class="jxr_keyword">implements</strong> WorkHandler&lt;PersistenceProcessorImpl.PersistBatchEvent&gt; {
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> com.codahale.metrics.MetricRegistry.name;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.PersistEvent.Type.*;
 <a class="jxr_linenumber" name="37" href="#37">37</a>  
-<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(PersistenceProcessorHandler.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a> <strong class="jxr_keyword">implements</strong> WorkHandler&lt;PersistenceProcessorImpl.PersistBatchEvent&gt; {
 <a class="jxr_linenumber" name="39" href="#39">39</a>  
-<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String tsoHostAndPort;
-<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/LeaseManagement.html">LeaseManagement</a> leaseManager;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  
-<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/ReplyProcessor.html">ReplyProcessor</a> replyProcessor;
-<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/RetryProcessor.html">RetryProcessor</a> retryProcessor;
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> CommitTable.Writer writer;
-<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> flushTimer;
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Histogram.html">Histogram</a> batchSizeHistogram;
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Histogram.html">Histogram</a> flushedCommitEventsHistogram;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      @Inject
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics,
-<a class="jxr_linenumber" name="54" href="#54">54</a>                                  String tsoHostAndPort,
-<a class="jxr_linenumber" name="55" href="#55">55</a>                                  <a href="../../../../org/apache/omid/tso/LeaseManagement.html">LeaseManagement</a> leaseManager,
-<a class="jxr_linenumber" name="56" href="#56">56</a>                                  <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTable</a> commitTable,
-<a class="jxr_linenumber" name="57" href="#57">57</a>                                  <a href="../../../../org/apache/omid/tso/ReplyProcessor.html">ReplyProcessor</a> replyProcessor,
-<a class="jxr_linenumber" name="58" href="#58">58</a>                                  <a href="../../../../org/apache/omid/tso/RetryProcessor.html">RetryProcessor</a> retryProcessor,
-<a class="jxr_linenumber" name="59" href="#59">59</a>                                  <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker)
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">throws</strong> InterruptedException, ExecutionException, IOException {
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>          <strong class="jxr_keyword">this</strong>.tsoHostAndPort = tsoHostAndPort;
-<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">this</strong>.leaseManager = leaseManager;
-<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">this</strong>.writer = commitTable.getWriter();
-<a class="jxr_linenumber" name="65" href="#65">65</a>          <strong class="jxr_keyword">this</strong>.replyProcessor = replyProcessor;
-<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">this</strong>.retryProcessor = retryProcessor;
-<a class="jxr_linenumber" name="67" href="#67">67</a>          <strong class="jxr_keyword">this</strong>.panicker = panicker;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>          <em class="jxr_comment">// Metrics in this component</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>          flushTimer = metrics.timer(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"persist"</span>, <span class="jxr_string">"flush"</span>, <span class="jxr_string">"latency"</span>));
-<a class="jxr_linenumber" name="71" href="#71">71</a>          flushedCommitEventsHistogram = metrics.histogram(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"persist"</span>, <span class="jxr_string">"flushed"</span>, <span class="jxr_string">"commits"</span>, <span class="jxr_string">"size"</span>));
-<a class="jxr_linenumber" name="72" href="#72">72</a>          batchSizeHistogram = metrics.histogram(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"persist"</span>, <span class="jxr_string">"batch"</span>, <span class="jxr_string">"size"</span>));
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>      }
-<a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>      @Override
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onEvent(PersistenceProcessorImpl.PersistBatchEvent batchEvent) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="78" href="#78">78</a>  
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">int</strong> commitEventsToFlush = 0;
-<a class="jxr_linenumber" name="80" href="#80">80</a>          <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch = batchEvent.getBatch();
-<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">int</strong> numOfBatchedEvents = batch.getNumEvents();
-<a class="jxr_linenumber" name="82" href="#82">82</a>          batchSizeHistogram.update(numOfBatchedEvents);
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=0; i &lt; numOfBatchedEvents; i++) {
-<a class="jxr_linenumber" name="84" href="#84">84</a>              <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> event = batch.get(i);
-<a class="jxr_linenumber" name="85" href="#85">85</a>              <strong class="jxr_keyword">switch</strong> (event.getType()) {
-<a class="jxr_linenumber" name="86" href="#86">86</a>                  <strong class="jxr_keyword">case</strong> TIMESTAMP:
-<a class="jxr_linenumber" name="87" href="#87">87</a>                      event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.timestamp.latency"</span>);
-<a class="jxr_linenumber" name="88" href="#88">88</a>                      <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="89" href="#89">89</a>                  <strong class="jxr_keyword">case</strong> COMMIT:
-<a class="jxr_linenumber" name="90" href="#90">90</a>                      writer.addCommittedTransaction(event.getStartTimestamp(), event.getCommitTimestamp());
-<a class="jxr_linenumber" name="91" href="#91">91</a>                      commitEventsToFlush++;
-<a class="jxr_linenumber" name="92" href="#92">92</a>                      <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="93" href="#93">93</a>                  <strong class="jxr_keyword">case</strong> COMMIT_RETRY:
-<a class="jxr_linenumber" name="94" href="#94">94</a>                      event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.commit-retry.latency"</span>);
-<a class="jxr_linenumber" name="95" href="#95">95</a>                      <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="96" href="#96">96</a>                  <strong class="jxr_keyword">case</strong> ABORT:
-<a class="jxr_linenumber" name="97" href="#97">97</a>                      event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.abort.latency"</span>);
-<a class="jxr_linenumber" name="98" href="#98">98</a>                      <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="99" href="#99">99</a>                  <strong class="jxr_keyword">case</strong> FENCE:
-<a class="jxr_linenumber" name="100" href="#100">100</a>                     <em class="jxr_comment">// Persist the fence by using the fence identifier as both the start and commit timestamp.</em>
-<a class="jxr_linenumber" name="101" href="#101">101</a>                     writer.addCommittedTransaction(event.getCommitTimestamp(), event.getCommitTimestamp());
-<a class="jxr_linenumber" name="102" href="#102">102</a>                     commitEventsToFlush++;
-<a class="jxr_linenumber" name="103" href="#103">103</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="104" href="#104">104</a>                 <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="105" href="#105">105</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Event not allowed in Persistent Processor Handler: "</span> + event);
-<a class="jxr_linenumber" name="106" href="#106">106</a>             }
-<a class="jxr_linenumber" name="107" href="#107">107</a>         }
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <em class="jxr_comment">// Flush and send the responses back to the client. WARNING: Before sending the responses, first we need</em>
-<a class="jxr_linenumber" name="110" href="#110">110</a>         <em class="jxr_comment">// to filter commit retries in the batch to disambiguate them.</em>
-<a class="jxr_linenumber" name="111" href="#111">111</a>         flush(commitEventsToFlush);
-<a class="jxr_linenumber" name="112" href="#112">112</a>         filterAndDissambiguateClientRetries(batch);
-<a class="jxr_linenumber" name="113" href="#113">113</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=0; i &lt; batch.getNumEvents(); i++) { <em class="jxr_comment">// Just for statistics</em>
-<a class="jxr_linenumber" name="114" href="#114">114</a>             <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> event = batch.get(i);
-<a class="jxr_linenumber" name="115" href="#115">115</a>             <strong class="jxr_keyword">switch</strong> (event.getType()) {
-<a class="jxr_linenumber" name="116" href="#116">116</a>                 <strong class="jxr_keyword">case</strong> TIMESTAMP:
-<a class="jxr_linenumber" name="117" href="#117">117</a>                     event.getMonCtx().timerStart(<span class="jxr_string">"reply.processor.timestamp.latency"</span>);
-<a class="jxr_linenumber" name="118" href="#118">118</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="119" href="#119">119</a>                 <strong class="jxr_keyword">case</strong> COMMIT:
-<a class="jxr_linenumber" name="120" href="#120">120</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.commit.latency"</span>);
-<a class="jxr_linenumber" name="121" href="#121">121</a>                     event.getMonCtx().timerStart(<span class="jxr_string">"reply.processor.commit.latency"</span>);
-<a class="jxr_linenumber" name="122" href="#122">122</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="123" href="#123">123</a>                 <strong class="jxr_keyword">case</strong> COMMIT_RETRY:
-<a class="jxr_linenumber" name="124" href="#124">124</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"COMMIT_RETRY events must be filtered before this step: "</span> + event);
-<a class="jxr_linenumber" name="125" href="#125">125</a>                 <strong class="jxr_keyword">case</strong> ABORT:
-<a class="jxr_linenumber" name="126" href="#126">126</a>                     event.getMonCtx().timerStart(<span class="jxr_string">"reply.processor.abort.latency"</span>);
-<a class="jxr_linenumber" name="127" href="#127">127</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="128" href="#128">128</a>                 <strong class="jxr_keyword">case</strong> FENCE:
-<a class="jxr_linenumber" name="129" href="#129">129</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.fence.latency"</span>);
-<a class="jxr_linenumber" name="130" href="#130">130</a>                     event.getMonCtx().timerStart(<span class="jxr_string">"reply.processor.fence.latency"</span>);
-<a class="jxr_linenumber" name="131" href="#131">131</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="132" href="#132">132</a>                 <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="133" href="#133">133</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Event not allowed in Persistent Processor Handler: "</span> + event);
-<a class="jxr_linenumber" name="134" href="#134">134</a>             }
-<a class="jxr_linenumber" name="135" href="#135">135</a>         }
-<a class="jxr_linenumber" name="136" href="#136">136</a>         replyProcessor.manageResponsesBatch(batchEvent.getBatchSequence(), batch);
-<a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>     }
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">void</strong> flush(<strong class="jxr_keyword">int</strong> commitEventsToFlush) {
-<a class="jxr_linenumber" name="141" href="#141">141</a> 
-<a class="jxr_linenumber" name="142" href="#142">142</a>         commitSuicideIfNotMaster();
-<a class="jxr_linenumber" name="143" href="#143">143</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="144" href="#144">144</a>             <strong class="jxr_keyword">long</strong> startFlushTimeInNs = System.nanoTime();
-<a class="jxr_linenumber" name="145" href="#145">145</a>             <strong class="jxr_keyword">if</strong>(commitEventsToFlush &gt; 0) {
-<a class="jxr_linenumber" name="146" href="#146">146</a>                 writer.flush();
-<a class="jxr_linenumber" name="147" href="#147">147</a>             }
-<a class="jxr_linenumber" name="148" href="#148">148</a>             flushTimer.update(System.nanoTime() - startFlushTimeInNs);
-<a class="jxr_linenumber" name="149" href="#149">149</a>             flushedCommitEventsHistogram.update(commitEventsToFlush);
-<a class="jxr_linenumber" name="150" href="#150">150</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="151" href="#151">151</a>             panicker.panic(<span class="jxr_string">"Error persisting commit batch"</span>, e);
-<a class="jxr_linenumber" name="152" href="#152">152</a>         }
-<a class="jxr_linenumber" name="153" href="#153">153</a>         commitSuicideIfNotMaster();
-<a class="jxr_linenumber" name="154" href="#154">154</a> 
-<a class="jxr_linenumber" name="155" href="#155">155</a>     }
-<a class="jxr_linenumber" name="156" href="#156">156</a> 
-<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> commitSuicideIfNotMaster() {
-<a class="jxr_linenumber" name="158" href="#158">158</a>         <strong class="jxr_keyword">if</strong> (!leaseManager.stillInLeasePeriod()) {
-<a class="jxr_linenumber" name="159" href="#159">159</a>             panicker.panic(<span class="jxr_string">"Replica "</span> + tsoHostAndPort + <span class="jxr_string">" lost mastership whilst flushing data. Committing suicide"</span>);
-<a class="jxr_linenumber" name="160" href="#160">160</a>         }
-<a class="jxr_linenumber" name="161" href="#161">161</a>     }
-<a class="jxr_linenumber" name="162" href="#162">162</a> 
-<a class="jxr_linenumber" name="163" href="#163">163</a>     <strong class="jxr_keyword">void</strong> filterAndDissambiguateClientRetries(<a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch) {
-<a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">int</strong> currentEventIdx = 0;
-<a class="jxr_linenumber" name="166" href="#166">166</a>         <strong class="jxr_keyword">while</strong> (currentEventIdx &lt;= batch.getLastEventIdx()) {
-<a class="jxr_linenumber" name="167" href="#167">167</a>             <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> event = batch.get(currentEventIdx);
-<a class="jxr_linenumber" name="168" href="#168">168</a>             <strong class="jxr_keyword">if</strong> (event.getType() == COMMIT_RETRY) {
-<a class="jxr_linenumber" name="169" href="#169">169</a>                 retryProcessor.disambiguateRetryRequestHeuristically(event.getStartTimestamp(), event.getChannel(), event.getMonCtx());
-<a class="jxr_linenumber" name="170" href="#170">170</a>                 <em class="jxr_comment">// Swap the disambiguated event with the last batch event &amp; decrease the # of remaining elems to process</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a>                 swapBatchElements(batch, currentEventIdx, batch.getLastEventIdx());
-<a class="jxr_linenumber" name="172" href="#172">172</a>                 batch.decreaseNumEvents();
-<a class="jxr_linenumber" name="173" href="#173">173</a>                 <strong class="jxr_keyword">if</strong> (batch.isEmpty()) {
-<a class="jxr_linenumber" name="174" href="#174">174</a>                     <strong class="jxr_keyword">break</strong>; <em class="jxr_comment">// We're OK to call now the reply processor</em>
-<a class="jxr_linenumber" name="175" href="#175">175</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="176" href="#176">176</a>                     <strong class="jxr_keyword">continue</strong>; <em class="jxr_comment">// Otherwise we continue checking for retries from the new event in the current position</em>
-<a class="jxr_linenumber" name="177" href="#177">177</a>                 }
-<a class="jxr_linenumber" name="178" href="#178">178</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="179" href="#179">179</a>                 currentEventIdx++; <em class="jxr_comment">// Let's check if the next event was a retry</em>
-<a class="jxr_linenumber" name="180" href="#180">180</a>             }
-<a class="jxr_linenumber" name="181" href="#181">181</a>         }
-<a class="jxr_linenumber" name="182" href="#182">182</a> 
-<a class="jxr_linenumber" name="183" href="#183">183</a>     }
-<a class="jxr_linenumber" name="184" href="#184">184</a> 
-<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> swapBatchElements(<a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch, <strong class="jxr_keyword">int</strong> firstIdx, <strong class="jxr_keyword">int</strong> lastIdx) {
-<a class="jxr_linenumber" name="186" href="#186">186</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> tmpEvent = batch.get(firstIdx);
-<a class="jxr_linenumber" name="187" href="#187">187</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> lastEventInBatch = batch.get(lastIdx);
-<a class="jxr_linenumber" name="188" href="#188">188</a>         batch.set(firstIdx, lastEventInBatch);
-<a class="jxr_linenumber" name="189" href="#189">189</a>         batch.set(lastIdx, tmpEvent);
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(PersistenceProcessorHandler.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>      @VisibleForTesting
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> AtomicInteger consecutiveSequenceCreator = <strong class="jxr_keyword">new</strong> AtomicInteger(0);
+<a class="jxr_linenumber" name="44" href="#44">44</a>  
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String id;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String tsoHostAndPort;
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/LeaseManagement.html">LeaseManagement</a> leaseManager;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/ReplyProcessor.html">ReplyProcessor</a> replyProcessor;
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/RetryProcessor.html">RetryProcessor</a> retryProcessor;
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> CommitTable.Writer writer;
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <em class="jxr_comment">// Metrics in this component</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> flushTimer;
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Histogram.html">Histogram</a> batchSizeHistogram;
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Histogram.html">Histogram</a> flushedCommitEventsHistogram;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      @Inject
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics,
+<a class="jxr_linenumber" name="62" href="#62">62</a>                                  String tsoHostAndPort, <em class="jxr_comment">// TODO This should not be passed here. Should be part of panicker</em>
+<a class="jxr_linenumber" name="63" href="#63">63</a>                                  <a href="../../../../org/apache/omid/tso/LeaseManagement.html">LeaseManagement</a> leaseManager,
+<a class="jxr_linenumber" name="64" href="#64">64</a>                                  <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTable</a> commitTable,
+<a class="jxr_linenumber" name="65" href="#65">65</a>                                  <a href="../../../../org/apache/omid/tso/ReplyProcessor.html">ReplyProcessor</a> replyProcessor,
+<a class="jxr_linenumber" name="66" href="#66">66</a>                                  <a href="../../../../org/apache/omid/tso/RetryProcessor.html">RetryProcessor</a> retryProcessor,
+<a class="jxr_linenumber" name="67" href="#67">67</a>                                  <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker)
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">throws</strong> InterruptedException, ExecutionException, IOException {
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">this</strong>.id = String.valueOf(consecutiveSequenceCreator.getAndIncrement());
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">this</strong>.tsoHostAndPort = tsoHostAndPort;
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">this</strong>.leaseManager = leaseManager;
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">this</strong>.writer = commitTable.getWriter();
+<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">this</strong>.replyProcessor = replyProcessor;
+<a class="jxr_linenumber" name="75" href="#75">75</a>          <strong class="jxr_keyword">this</strong>.retryProcessor = retryProcessor;
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">this</strong>.panicker = panicker;
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>          <em class="jxr_comment">// Metrics setup</em>
+<a class="jxr_linenumber" name="79" href="#79">79</a>          String flushTimerName = name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"persistence-processor-handler"</span>, id, <span class="jxr_string">"flush"</span>, <span class="jxr_string">"latency"</span>);
+<a class="jxr_linenumber" name="80" href="#80">80</a>          flushTimer = metrics.timer(flushTimerName);
+<a class="jxr_linenumber" name="81" href="#81">81</a>          String flushedCommitEventsName = name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"persistence-processor-handler"</span>, id, <span class="jxr_string">"flushed"</span>, <span class="jxr_string">"commits"</span>, <span class="jxr_string">"size"</span>);
+<a class="jxr_linenumber" name="82" href="#82">82</a>          flushedCommitEventsHistogram = metrics.histogram(flushedCommitEventsName);
+<a class="jxr_linenumber" name="83" href="#83">83</a>          String batchSizeMetricsName = name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"persistence-processor-handler"</span>, id, <span class="jxr_string">"batch"</span>, <span class="jxr_string">"size"</span>);
+<a class="jxr_linenumber" name="84" href="#84">84</a>          batchSizeHistogram = metrics.histogram(batchSizeMetricsName);
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
+<a class="jxr_linenumber" name="86" href="#86">86</a>      }
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">public</strong> String getId() {
+<a class="jxr_linenumber" name="89" href="#89">89</a>          <strong class="jxr_keyword">return</strong> id;
+<a class="jxr_linenumber" name="90" href="#90">90</a>      }
+<a class="jxr_linenumber" name="91" href="#91">91</a>  
+<a class="jxr_linenumber" name="92" href="#92">92</a>      @Override
+<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onEvent(PersistenceProcessorImpl.PersistBatchEvent batchEvent) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="94" href="#94">94</a>  
+<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">int</strong> commitEventsToFlush = 0;
+<a class="jxr_linenumber" name="96" href="#96">96</a>          <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch = batchEvent.getBatch();
+<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">int</strong> numOfBatchedEvents = batch.getNumEvents();
+<a class="jxr_linenumber" name="98" href="#98">98</a>          batchSizeHistogram.update(numOfBatchedEvents);
+<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=0; i &lt; numOfBatchedEvents; i++) {
+<a class="jxr_linenumber" name="100" href="#100">100</a>             <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> event = batch.get(i);
+<a class="jxr_linenumber" name="101" href="#101">101</a>             <strong class="jxr_keyword">switch</strong> (event.getType()) {
+<a class="jxr_linenumber" name="102" href="#102">102</a>                 <strong class="jxr_keyword">case</strong> TIMESTAMP:
+<a class="jxr_linenumber" name="103" href="#103">103</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.timestamp.latency"</span>);
+<a class="jxr_linenumber" name="104" href="#104">104</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="105" href="#105">105</a>                 <strong class="jxr_keyword">case</strong> COMMIT:
+<a class="jxr_linenumber" name="106" href="#106">106</a>                     writer.addCommittedTransaction(event.getStartTimestamp(), event.getCommitTimestamp());
+<a class="jxr_linenumber" name="107" href="#107">107</a>                     commitEventsToFlush++;
+<a class="jxr_linenumber" name="108" href="#108">108</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="109" href="#109">109</a>                 <strong class="jxr_keyword">case</strong> COMMIT_RETRY:
+<a class="jxr_linenumber" name="110" href="#110">110</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.commit-retry.latency"</span>);
+<a class="jxr_linenumber" name="111" href="#111">111</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="112" href="#112">112</a>                 <strong class="jxr_keyword">case</strong> ABORT:
+<a class="jxr_linenumber" name="113" href="#113">113</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.abort.latency"</span>);
+<a class="jxr_linenumber" name="114" href="#114">114</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="115" href="#115">115</a>                 <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="116" href="#116">116</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Event not allowed in Persistent Processor Handler: "</span> + event);
+<a class="jxr_linenumber" name="117" href="#117">117</a>             }
+<a class="jxr_linenumber" name="118" href="#118">118</a>         }
+<a class="jxr_linenumber" name="119" href="#119">119</a> 
+<a class="jxr_linenumber" name="120" href="#120">120</a>         <em class="jxr_comment">// Flush and send the responses back to the client. WARNING: Before sending the responses, first we need</em>
+<a class="jxr_linenumber" name="121" href="#121">121</a>         <em class="jxr_comment">// to filter commit retries in the batch to disambiguate them.</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a>         flush(commitEventsToFlush);
+<a class="jxr_linenumber" name="123" href="#123">123</a>         filterAndDissambiguateClientRetries(batch);
+<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=0; i &lt; batch.getNumEvents(); i++) { <em class="jxr_comment">// Just for statistics</em>
+<a class="jxr_linenumber" name="125" href="#125">125</a>             <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> event = batch.get(i);
+<a class="jxr_linenumber" name="126" href="#126">126</a>             <strong class="jxr_keyword">switch</strong> (event.getType()) {
+<a class="jxr_linenumber" name="127" href="#127">127</a>                 <strong class="jxr_keyword">case</strong> TIMESTAMP:
+<a class="jxr_linenumber" name="128" href="#128">128</a>                     event.getMonCtx().timerStart(<span class="jxr_string">"reply.processor.timestamp.latency"</span>);
+<a class="jxr_linenumber" name="129" href="#129">129</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="130" href="#130">130</a>                 <strong class="jxr_keyword">case</strong> COMMIT:
+<a class="jxr_linenumber" name="131" href="#131">131</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"persistence.processor.commit.latency"</span>);
+<a class="jxr_linenumber" name="132" href="#132">132</a>                     event.getMonCtx().timerStart(<span class="jxr_string">"reply.processor.commit.latency"</span>);
+<a class="jxr_linenumber" name="133" href="#133">133</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="134" href="#134">134</a>                 <strong class="jxr_keyword">case</strong> COMMIT_RETRY:
+<a class="jxr_linenumber" name="135" href="#135">135</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"COMMIT_RETRY events must be filtered before this step: "</span> + event);
+<a class="jxr_linenumber" name="136" href="#136">136</a>                 <strong class="jxr_keyword">case</strong> ABORT:
+<a class="jxr_linenumber" name="137" href="#137">137</a>                     event.getMonCtx().timerStart(<span class="jxr_string">"reply.processor.abort.latency"</span>);
+<a class="jxr_linenumber" name="138" href="#138">138</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="139" href="#139">139</a>                 <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="140" href="#140">140</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Event not allowed in Persistent Processor Handler: "</span> + event);
+<a class="jxr_linenumber" name="141" href="#141">141</a>             }
+<a class="jxr_linenumber" name="142" href="#142">142</a>         }
+<a class="jxr_linenumber" name="143" href="#143">143</a>         replyProcessor.manageResponsesBatch(batchEvent.getBatchSequence(), batch);
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>     }
+<a class="jxr_linenumber" name="146" href="#146">146</a> 
+<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">void</strong> flush(<strong class="jxr_keyword">int</strong> commitEventsToFlush) {
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>         commitSuicideIfNotMaster();
+<a class="jxr_linenumber" name="150" href="#150">150</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="151" href="#151">151</a>             <strong class="jxr_keyword">long</strong> startFlushTimeInNs = System.nanoTime();
+<a class="jxr_linenumber" name="152" href="#152">152</a>             <strong class="jxr_keyword">if</strong>(commitEventsToFlush &gt; 0) {
+<a class="jxr_linenumber" name="153" href="#153">153</a>                 writer.flush();
+<a class="jxr_linenumber" name="154" href="#154">154</a>             }
+<a class="jxr_linenumber" name="155" href="#155">155</a>             flushTimer.update(System.nanoTime() - startFlushTimeInNs);
+<a class="jxr_linenumber" name="156" href="#156">156</a>             flushedCommitEventsHistogram.update(commitEventsToFlush);
+<a class="jxr_linenumber" name="157" href="#157">157</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="158" href="#158">158</a>             panicker.panic(<span class="jxr_string">"Error persisting commit batch"</span>, e);
+<a class="jxr_linenumber" name="159" href="#159">159</a>         }
+<a class="jxr_linenumber" name="160" href="#160">160</a>         commitSuicideIfNotMaster();
+<a class="jxr_linenumber" name="161" href="#161">161</a> 
+<a class="jxr_linenumber" name="162" href="#162">162</a>     }
+<a class="jxr_linenumber" name="163" href="#163">163</a> 
+<a class="jxr_linenumber" name="164" href="#164">164</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> commitSuicideIfNotMaster() {
+<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">if</strong> (!leaseManager.stillInLeasePeriod()) {
+<a class="jxr_linenumber" name="166" href="#166">166</a>             panicker.panic(<span class="jxr_string">"Replica "</span> + tsoHostAndPort + <span class="jxr_string">" lost mastership whilst flushing data. Committing suicide"</span>);
+<a class="jxr_linenumber" name="167" href="#167">167</a>         }
+<a class="jxr_linenumber" name="168" href="#168">168</a>     }
+<a class="jxr_linenumber" name="169" href="#169">169</a> 
+<a class="jxr_linenumber" name="170" href="#170">170</a>     <strong class="jxr_keyword">void</strong> filterAndDissambiguateClientRetries(<a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch) {
+<a class="jxr_linenumber" name="171" href="#171">171</a> 
+<a class="jxr_linenumber" name="172" href="#172">172</a>         <strong class="jxr_keyword">int</strong> currentEventIdx = 0;
+<a class="jxr_linenumber" name="173" href="#173">173</a>         <strong class="jxr_keyword">while</strong> (currentEventIdx &lt;= batch.getLastEventIdx()) {
+<a class="jxr_linenumber" name="174" href="#174">174</a>             <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> event = batch.get(currentEventIdx);
+<a class="jxr_linenumber" name="175" href="#175">175</a>             <strong class="jxr_keyword">if</strong> (event.getType() == COMMIT_RETRY) {
+<a class="jxr_linenumber" name="176" href="#176">176</a>                 retryProcessor.disambiguateRetryRequestHeuristically(event.getStartTimestamp(), event.getChannel(), event.getMonCtx());
+<a class="jxr_linenumber" name="177" href="#177">177</a>                 <em class="jxr_comment">// Swap the disambiguated event with the last batch event &amp; decrease the # of remaining elems to process</em>
+<a class="jxr_linenumber" name="178" href="#178">178</a>                 swapBatchElements(batch, currentEventIdx, batch.getLastEventIdx());
+<a class="jxr_linenumber" name="179" href="#179">179</a>                 batch.decreaseNumEvents();
+<a class="jxr_linenumber" name="180" href="#180">180</a>                 <strong class="jxr_keyword">if</strong> (batch.isEmpty()) {
+<a class="jxr_linenumber" name="181" href="#181">181</a>                     <strong class="jxr_keyword">break</strong>; <em class="jxr_comment">// We're OK to call now the reply processor</em>
+<a class="jxr_linenumber" name="182" href="#182">182</a>                 } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="183" href="#183">183</a>                     <strong class="jxr_keyword">continue</strong>; <em class="jxr_comment">// Otherwise we continue checking for retries from the new event in the current position</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a>                 }
+<a class="jxr_linenumber" name="185" href="#185">185</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="186" href="#186">186</a>                 currentEventIdx++; <em class="jxr_comment">// Let's check if the next event was a retry</em>
+<a class="jxr_linenumber" name="187" href="#187">187</a>             }
+<a class="jxr_linenumber" name="188" href="#188">188</a>         }
+<a class="jxr_linenumber" name="189" href="#189">189</a> 
 <a class="jxr_linenumber" name="190" href="#190">190</a>     }
 <a class="jxr_linenumber" name="191" href="#191">191</a> 
-<a class="jxr_linenumber" name="192" href="#192">192</a> }
+<a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> swapBatchElements(<a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch, <strong class="jxr_keyword">int</strong> firstIdx, <strong class="jxr_keyword">int</strong> lastIdx) {
+<a class="jxr_linenumber" name="193" href="#193">193</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> tmpEvent = batch.get(firstIdx);
+<a class="jxr_linenumber" name="194" href="#194">194</a>         <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> lastEventInBatch = batch.get(lastIdx);
+<a class="jxr_linenumber" name="195" href="#195">195</a>         batch.set(firstIdx, lastEventInBatch);
+<a class="jxr_linenumber" name="196" href="#196">196</a>         batch.set(lastIdx, tmpEvent);
+<a class="jxr_linenumber" name="197" href="#197">197</a>     }
+<a class="jxr_linenumber" name="198" href="#198">198</a> 
+<a class="jxr_linenumber" name="199" href="#199">199</a>     @Override
+<a class="jxr_linenumber" name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> String toString() {
+<a class="jxr_linenumber" name="201" href="#201">201</a> 
+<a class="jxr_linenumber" name="202" href="#202">202</a>         <strong class="jxr_keyword">return</strong> Objects.toStringHelper(<strong class="jxr_keyword">this</strong>).add(<span class="jxr_string">"id"</span>, id).toString();
+<a class="jxr_linenumber" name="203" href="#203">203</a> 
+<a class="jxr_linenumber" name="204" href="#204">204</a>     }
+<a class="jxr_linenumber" name="205" href="#205">205</a> 
+<a class="jxr_linenumber" name="206" href="#206">206</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/PersistenceProcessorImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/PersistenceProcessorImpl.html b/xref/org/apache/omid/tso/PersistenceProcessorImpl.html
index c1a62f9..4b614e7 100644
--- a/xref/org/apache/omid/tso/PersistenceProcessorImpl.html
+++ b/xref/org/apache/omid/tso/PersistenceProcessorImpl.html
@@ -156,10 +156,10 @@
 <a class="jxr_linenumber" name="146" href="#146">146</a>     }
 <a class="jxr_linenumber" name="147" href="#147">147</a> 
 <a class="jxr_linenumber" name="148" href="#148">148</a>     @Override
-<a class="jxr_linenumber" name="149" href="#149">149</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAbortToBatch(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx)
+<a class="jxr_linenumber" name="149" href="#149">149</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAbortToBatch(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context)
 <a class="jxr_linenumber" name="150" href="#150">150</a>             <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>         currentBatch.addAbort(startTimestamp, c, monCtx);
+<a class="jxr_linenumber" name="152" href="#152">152</a>         currentBatch.addAbort(startTimestamp, c, context);
 <a class="jxr_linenumber" name="153" href="#153">153</a>         <strong class="jxr_keyword">if</strong> (currentBatch.isFull()) {
 <a class="jxr_linenumber" name="154" href="#154">154</a>             triggerCurrentBatchFlush();
 <a class="jxr_linenumber" name="155" href="#155">155</a>         }
@@ -167,9 +167,9 @@
 <a class="jxr_linenumber" name="157" href="#157">157</a>     }
 <a class="jxr_linenumber" name="158" href="#158">158</a> 
 <a class="jxr_linenumber" name="159" href="#159">159</a>     @Override
-<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addTimestampToBatch(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addTimestampToBatch(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="161" href="#161">161</a> 
-<a class="jxr_linenumber" name="162" href="#162">162</a>         currentBatch.addTimestamp(startTimestamp, c, monCtx);
+<a class="jxr_linenumber" name="162" href="#162">162</a>         currentBatch.addTimestamp(startTimestamp, c, context);
 <a class="jxr_linenumber" name="163" href="#163">163</a>         <strong class="jxr_keyword">if</strong> (currentBatch.isFull()) {
 <a class="jxr_linenumber" name="164" href="#164">164</a>             triggerCurrentBatchFlush();
 <a class="jxr_linenumber" name="165" href="#165">165</a>         }
@@ -177,88 +177,78 @@
 <a class="jxr_linenumber" name="167" href="#167">167</a>     }
 <a class="jxr_linenumber" name="168" href="#168">168</a> 
 <a class="jxr_linenumber" name="169" href="#169">169</a>     @Override
-<a class="jxr_linenumber" name="170" href="#170">170</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addFenceToBatch(<strong class="jxr_keyword">long</strong> tableID, <strong class="jxr_keyword">long</strong> fenceTimestamp, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="170" href="#170">170</a>     <strong class="jxr_keyword">public</strong> Future&lt;Void&gt; persistLowWatermark(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> lowWatermark) {
 <a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>         currentBatch.addFence(tableID, fenceTimestamp, c, monCtx);
-<a class="jxr_linenumber" name="173" href="#173">173</a>         <strong class="jxr_keyword">if</strong> (currentBatch.isFull()) {
-<a class="jxr_linenumber" name="174" href="#174">174</a>             triggerCurrentBatchFlush();
-<a class="jxr_linenumber" name="175" href="#175">175</a>         }
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>     }
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>     @Override
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> Future&lt;Void&gt; persistLowWatermark(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> lowWatermark) {
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>         <strong class="jxr_keyword">return</strong> lowWatermarkWriterExecutor.submit(<strong class="jxr_keyword">new</strong> Callable&lt;Void&gt;() {
-<a class="jxr_linenumber" name="183" href="#183">183</a>             @Override
-<a class="jxr_linenumber" name="184" href="#184">184</a>             <strong class="jxr_keyword">public</strong> Void call() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="185" href="#185">185</a>                 <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="186" href="#186">186</a>                     lwmWriteTimer.start();
-<a class="jxr_linenumber" name="187" href="#187">187</a>                     lowWatermarkWriter.updateLowWatermark(lowWatermark);
-<a class="jxr_linenumber" name="188" href="#188">188</a>                     lowWatermarkWriter.flush();
-<a class="jxr_linenumber" name="189" href="#189">189</a>                 } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="190" href="#190">190</a>                     lwmWriteTimer.stop();
-<a class="jxr_linenumber" name="191" href="#191">191</a>                 }
-<a class="jxr_linenumber" name="192" href="#192">192</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="193" href="#193">193</a>             }
-<a class="jxr_linenumber" name="194" href="#194">194</a>         });
-<a class="jxr_linenumber" name="195" href="#195">195</a> 
-<a class="jxr_linenumber" name="196" href="#196">196</a>     }
-<a class="jxr_linenumber" name="197" href="#197">197</a> 
-<a class="jxr_linenumber" name="198" href="#198">198</a>     @Override
-<a class="jxr_linenumber" name="199" href="#199">199</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="200" href="#200">200</a> 
-<a class="jxr_linenumber" name="201" href="#201">201</a>         LOG.info(<span class="jxr_string">"Terminating Persistence Processor..."</span>);
-<a class="jxr_linenumber" name="202" href="#202">202</a>         disruptor.halt();
-<a class="jxr_linenumber" name="203" href="#203">203</a>         disruptor.shutdown();
-<a class="jxr_linenumber" name="204" href="#204">204</a>         LOG.info(<span class="jxr_string">"\tPersistence Processor Disruptor shutdown"</span>);
-<a class="jxr_linenumber" name="205" href="#205">205</a>         disruptorExec.shutdownNow();
-<a class="jxr_linenumber" name="206" href="#206">206</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="207" href="#207">207</a>             disruptorExec.awaitTermination(3, SECONDS);
-<a class="jxr_linenumber" name="208" href="#208">208</a>             LOG.info(<span class="jxr_string">"\tPersistence Processor Disruptor executor shutdown"</span>);
-<a class="jxr_linenumber" name="209" href="#209">209</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
-<a class="jxr_linenumber" name="210" href="#210">210</a>             LOG.error(<span class="jxr_string">"Interrupted whilst finishing Persistence Processor Disruptor executor"</span>);
-<a class="jxr_linenumber" name="211" href="#211">211</a>             Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="212" href="#212">212</a>         }
-<a class="jxr_linenumber" name="213" href="#213">213</a>         LOG.info(<span class="jxr_string">"Persistence Processor terminated"</span>);
-<a class="jxr_linenumber" name="214" href="#214">214</a> 
-<a class="jxr_linenumber" name="215" href="#215">215</a>     }
+<a class="jxr_linenumber" name="172" href="#172">172</a>         <strong class="jxr_keyword">return</strong> lowWatermarkWriterExecutor.submit(<strong class="jxr_keyword">new</strong> Callable&lt;Void&gt;() {
+<a class="jxr_linenumber" name="173" href="#173">173</a>             @Override
+<a class="jxr_linenumber" name="174" href="#174">174</a>             <strong class="jxr_keyword">public</strong> Void call() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="175" href="#175">175</a>                 <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="176" href="#176">176</a>                     lwmWriteTimer.start();
+<a class="jxr_linenumber" name="177" href="#177">177</a>                     lowWatermarkWriter.updateLowWatermark(lowWatermark);
+<a class="jxr_linenumber" name="178" href="#178">178</a>                     lowWatermarkWriter.flush();
+<a class="jxr_linenumber" name="179" href="#179">179</a>                 } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="180" href="#180">180</a>                     lwmWriteTimer.stop();
+<a class="jxr_linenumber" name="181" href="#181">181</a>                 }
+<a class="jxr_linenumber" name="182" href="#182">182</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="183" href="#183">183</a>             }
+<a class="jxr_linenumber" name="184" href="#184">184</a>         });
+<a class="jxr_linenumber" name="185" href="#185">185</a> 
+<a class="jxr_linenumber" name="186" href="#186">186</a>     }
+<a class="jxr_linenumber" name="187" href="#187">187</a> 
+<a class="jxr_linenumber" name="188" href="#188">188</a>     @Override
+<a class="jxr_linenumber" name="189" href="#189">189</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="190" href="#190">190</a> 
+<a class="jxr_linenumber" name="191" href="#191">191</a>         LOG.info(<span class="jxr_string">"Terminating Persistence Processor..."</span>);
+<a class="jxr_linenumber" name="192" href="#192">192</a>         disruptor.halt();
+<a class="jxr_linenumber" name="193" href="#193">193</a>         disruptor.shutdown();
+<a class="jxr_linenumber" name="194" href="#194">194</a>         LOG.info(<span class="jxr_string">"\tPersistence Processor Disruptor shutdown"</span>);
+<a class="jxr_linenumber" name="195" href="#195">195</a>         disruptorExec.shutdownNow();
+<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="197" href="#197">197</a>             disruptorExec.awaitTermination(3, SECONDS);
+<a class="jxr_linenumber" name="198" href="#198">198</a>             LOG.info(<span class="jxr_string">"\tPersistence Processor Disruptor executor shutdown"</span>);
+<a class="jxr_linenumber" name="199" href="#199">199</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
+<a class="jxr_linenumber" name="200" href="#200">200</a>             LOG.error(<span class="jxr_string">"Interrupted whilst finishing Persistence Processor Disruptor executor"</span>);
+<a class="jxr_linenumber" name="201" href="#201">201</a>             Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="202" href="#202">202</a>         }
+<a class="jxr_linenumber" name="203" href="#203">203</a>         LOG.info(<span class="jxr_string">"Persistence Processor terminated"</span>);
+<a class="jxr_linenumber" name="204" href="#204">204</a> 
+<a class="jxr_linenumber" name="205" href="#205">205</a>     }
+<a class="jxr_linenumber" name="206" href="#206">206</a> 
+<a class="jxr_linenumber" name="207" href="#207">207</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorImpl.html">PersistBatchEvent</a> {
+<a class="jxr_linenumber" name="208" href="#208">208</a> 
+<a class="jxr_linenumber" name="209" href="#209">209</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> batchSequence;
+<a class="jxr_linenumber" name="210" href="#210">210</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch;
+<a class="jxr_linenumber" name="211" href="#211">211</a> 
+<a class="jxr_linenumber" name="212" href="#212">212</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makePersistBatch(<a href="../../../../org/apache/omid/tso/PersistenceProcessorImpl.html">PersistBatchEvent</a> e, <strong class="jxr_keyword">long</strong> batchSequence, <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch) {
+<a class="jxr_linenumber" name="213" href="#213">213</a>             e.batch = batch;
+<a class="jxr_linenumber" name="214" href="#214">214</a>             e.batchSequence = batchSequence;
+<a class="jxr_linenumber" name="215" href="#215">215</a>         }
 <a class="jxr_linenumber" name="216" href="#216">216</a> 
-<a class="jxr_linenumber" name="217" href="#217">217</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorImpl.html">PersistBatchEvent</a> {
-<a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> batchSequence;
-<a class="jxr_linenumber" name="220" href="#220">220</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch;
-<a class="jxr_linenumber" name="221" href="#221">221</a> 
-<a class="jxr_linenumber" name="222" href="#222">222</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makePersistBatch(<a href="../../../../org/apache/omid/tso/PersistenceProcessorImpl.html">PersistBatchEvent</a> e, <strong class="jxr_keyword">long</strong> batchSequence, <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch) {
-<a class="jxr_linenumber" name="223" href="#223">223</a>             e.batch = batch;
-<a class="jxr_linenumber" name="224" href="#224">224</a>             e.batchSequence = batchSequence;
-<a class="jxr_linenumber" name="225" href="#225">225</a>         }
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>         <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> getBatch() {
-<a class="jxr_linenumber" name="228" href="#228">228</a>             <strong class="jxr_keyword">return</strong> batch;
-<a class="jxr_linenumber" name="229" href="#229">229</a>         }
+<a class="jxr_linenumber" name="217" href="#217">217</a>         <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> getBatch() {
+<a class="jxr_linenumber" name="218" href="#218">218</a>             <strong class="jxr_keyword">return</strong> batch;
+<a class="jxr_linenumber" name="219" href="#219">219</a>         }
+<a class="jxr_linenumber" name="220" href="#220">220</a> 
+<a class="jxr_linenumber" name="221" href="#221">221</a>         <strong class="jxr_keyword">long</strong> getBatchSequence() {
+<a class="jxr_linenumber" name="222" href="#222">222</a>             <strong class="jxr_keyword">return</strong> batchSequence;
+<a class="jxr_linenumber" name="223" href="#223">223</a>         }
+<a class="jxr_linenumber" name="224" href="#224">224</a> 
+<a class="jxr_linenumber" name="225" href="#225">225</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> EventFactory&lt;PersistBatchEvent&gt; EVENT_FACTORY = <strong class="jxr_keyword">new</strong> EventFactory&lt;PersistBatchEvent&gt;() {
+<a class="jxr_linenumber" name="226" href="#226">226</a>             <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorImpl.html">PersistBatchEvent</a> newInstance() {
+<a class="jxr_linenumber" name="227" href="#227">227</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorImpl.html">PersistBatchEvent</a>();
+<a class="jxr_linenumber" name="228" href="#228">228</a>             }
+<a class="jxr_linenumber" name="229" href="#229">229</a>         };
 <a class="jxr_linenumber" name="230" href="#230">230</a> 
-<a class="jxr_linenumber" name="231" href="#231">231</a>         <strong class="jxr_keyword">long</strong> getBatchSequence() {
-<a class="jxr_linenumber" name="232" href="#232">232</a>             <strong class="jxr_keyword">return</strong> batchSequence;
-<a class="jxr_linenumber" name="233" href="#233">233</a>         }
-<a class="jxr_linenumber" name="234" href="#234">234</a> 
-<a class="jxr_linenumber" name="235" href="#235">235</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> EventFactory&lt;PersistBatchEvent&gt; EVENT_FACTORY = <strong class="jxr_keyword">new</strong> EventFactory&lt;PersistBatchEvent&gt;() {
-<a class="jxr_linenumber" name="236" href="#236">236</a>             <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorImpl.html">PersistBatchEvent</a> newInstance() {
-<a class="jxr_linenumber" name="237" href="#237">237</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorImpl.html">PersistBatchEvent</a>();
-<a class="jxr_linenumber" name="238" href="#238">238</a>             }
-<a class="jxr_linenumber" name="239" href="#239">239</a>         };
+<a class="jxr_linenumber" name="231" href="#231">231</a>         @Override
+<a class="jxr_linenumber" name="232" href="#232">232</a>         <strong class="jxr_keyword">public</strong> String toString() {
+<a class="jxr_linenumber" name="233" href="#233">233</a>             <strong class="jxr_keyword">return</strong> Objects.toStringHelper(<strong class="jxr_keyword">this</strong>)
+<a class="jxr_linenumber" name="234" href="#234">234</a>                     .add(<span class="jxr_string">"batchSequence"</span>, batchSequence)
+<a class="jxr_linenumber" name="235" href="#235">235</a>                     .add(<span class="jxr_string">"batch"</span>, batch)
+<a class="jxr_linenumber" name="236" href="#236">236</a>                     .toString();
+<a class="jxr_linenumber" name="237" href="#237">237</a>         }
+<a class="jxr_linenumber" name="238" href="#238">238</a> 
+<a class="jxr_linenumber" name="239" href="#239">239</a>     }
 <a class="jxr_linenumber" name="240" href="#240">240</a> 
-<a class="jxr_linenumber" name="241" href="#241">241</a>         @Override
-<a class="jxr_linenumber" name="242" href="#242">242</a>         <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="243" href="#243">243</a>             <strong class="jxr_keyword">return</strong> Objects.toStringHelper(<strong class="jxr_keyword">this</strong>)
-<a class="jxr_linenumber" name="244" href="#244">244</a>                     .add(<span class="jxr_string">"batchSequence"</span>, batchSequence)
-<a class="jxr_linenumber" name="245" href="#245">245</a>                     .add(<span class="jxr_string">"batch"</span>, batch)
-<a class="jxr_linenumber" name="246" href="#246">246</a>                     .toString();
-<a class="jxr_linenumber" name="247" href="#247">247</a>         }
-<a class="jxr_linenumber" name="248" href="#248">248</a> 
-<a class="jxr_linenumber" name="249" href="#249">249</a>     }
-<a class="jxr_linenumber" name="250" href="#250">250</a> 
-<a class="jxr_linenumber" name="251" href="#251">251</a> }
+<a class="jxr_linenumber" name="241" href="#241">241</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/ReplyProcessor.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/ReplyProcessor.html b/xref/org/apache/omid/tso/ReplyProcessor.html
index 6b4b083..937cb49 100644
--- a/xref/org/apache/omid/tso/ReplyProcessor.html
+++ b/xref/org/apache/omid/tso/ReplyProcessor.html
@@ -77,21 +77,8 @@
 <a class="jxr_linenumber" name="67" href="#67">67</a>  
 <a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">void</strong> sendTimestampResponse(<strong class="jxr_keyword">long</strong> startTimestamp, Channel channel);
 <a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * Allow to send a fence response back to the client.</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * @param tableID</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     *            the table we are creating the fence for</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @param fenceTimestamp</em>
-<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     *            the fence timestamp to return</em>
-<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * @param channel</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     *            the channel used to send the response back to the client</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">void</strong> sendFenceResponse(<strong class="jxr_keyword">long</strong> tableID, <strong class="jxr_keyword">long</strong> fenceTimestamp, Channel c);
-<a class="jxr_linenumber" name="82" href="#82">82</a>  
-<a class="jxr_linenumber" name="83" href="#83">83</a>  }
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>  }
+<a class="jxr_linenumber" name="71" href="#71">71</a>  
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[40/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestCellUtils.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestCellUtils.html b/xref-test/org/apache/omid/transaction/TestCellUtils.html
index 601fb5e..a0cb870 100644
--- a/xref-test/org/apache/omid/transaction/TestCellUtils.html
+++ b/xref-test/org/apache/omid/transaction/TestCellUtils.html
@@ -41,203 +41,202 @@
 <a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.List;
 <a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.SortedMap;
 <a class="jxr_linenumber" name="33" href="#33">33</a>  
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.transaction.CellUtils.SHADOW_CELL_PREFIX;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.transaction.CellUtils.SHADOW_CELL_SUFFIX;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>  @Test(groups = <span class="jxr_string">"noHBase"</span>)
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestCellUtils.html">TestCellUtils</a> {
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] row = Bytes.toBytes(<span class="jxr_string">"test-row"</span>);
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(<span class="jxr_string">"test-family"</span>);
-<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"test-qual"</span>);
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] otherQualifier = Bytes.toBytes(<span class="jxr_string">"other-test-qual"</span>);
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>      @DataProvider(name = <span class="jxr_string">"shadow-cell-suffixes"</span>)
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">public</strong> Object[][] createShadowCellSuffixes() {
-<a class="jxr_linenumber" name="51" href="#51">51</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Object[][]{
-<a class="jxr_linenumber" name="52" href="#52">52</a>                  {SHADOW_CELL_SUFFIX},
-<a class="jxr_linenumber" name="53" href="#53">53</a>          };
-<a class="jxr_linenumber" name="54" href="#54">54</a>      }
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>      @Test(dataProvider = <span class="jxr_string">"shadow-cell-suffixes"</span>, timeOut = 10_000)
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellQualifiers(byte[] shadowCellSuffixToTest) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>          <strong class="jxr_keyword">final</strong> byte[] validShadowCellQualifier =
-<a class="jxr_linenumber" name="60" href="#60">60</a>                  com.google.common.primitives.Bytes.concat(qualifier, shadowCellSuffixToTest);
-<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">final</strong> byte[] sandwichValidShadowCellQualifier =
-<a class="jxr_linenumber" name="62" href="#62">62</a>                  com.google.common.primitives.Bytes.concat(shadowCellSuffixToTest, validShadowCellQualifier);
-<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">final</strong> byte[] doubleEndedValidShadowCellQualifier =
-<a class="jxr_linenumber" name="64" href="#64">64</a>                  com.google.common.primitives.Bytes.concat(validShadowCellQualifier, shadowCellSuffixToTest);
-<a class="jxr_linenumber" name="65" href="#65">65</a>          <strong class="jxr_keyword">final</strong> byte[] interleavedValidShadowCellQualifier =
-<a class="jxr_linenumber" name="66" href="#66">66</a>                  com.google.common.primitives.Bytes.concat(validShadowCellQualifier, com.google.common.primitives.Bytes
-<a class="jxr_linenumber" name="67" href="#67">67</a>                          .concat(validShadowCellQualifier, validShadowCellQualifier));
-<a class="jxr_linenumber" name="68" href="#68">68</a>          <strong class="jxr_keyword">final</strong> byte[] value = Bytes.toBytes(<span class="jxr_string">"test-value"</span>);
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>          <em class="jxr_comment">// Test the qualifier passed is a shadow cell</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <em class="jxr_comment">// qualifier because it contains only one suffix</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>          <em class="jxr_comment">// and is placed at the end of the qualifier:</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>          <em class="jxr_comment">// qual_nameSUFFIX</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>          KeyValue kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, validShadowCellQualifier, value);
-<a class="jxr_linenumber" name="75" href="#75">75</a>          assertTrue(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should include a valid shadowCell identifier"</span>);
-<a class="jxr_linenumber" name="76" href="#76">76</a>  
-<a class="jxr_linenumber" name="77" href="#77">77</a>          <em class="jxr_comment">// We also accept this pattern in the qualifier:</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>          <em class="jxr_comment">// SUFFIXqual_nameSUFFIX</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>          kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, sandwichValidShadowCellQualifier, value);
-<a class="jxr_linenumber" name="80" href="#80">80</a>          assertTrue(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should include a valid shadowCell identifier"</span>);
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <em class="jxr_comment">// We also accept this pattern in the qualifier:</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <em class="jxr_comment">// qual_nameSUFFIXSUFFIX</em>
-<a class="jxr_linenumber" name="84" href="#84">84</a>          kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, doubleEndedValidShadowCellQualifier, value);
-<a class="jxr_linenumber" name="85" href="#85">85</a>          assertTrue(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should include a valid shadowCell identifier"</span>);
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>          <em class="jxr_comment">// We also accept this pattern in the qualifier:</em>
-<a class="jxr_linenumber" name="88" href="#88">88</a>          <em class="jxr_comment">// qual_nameSUFFIXqual_nameSUFFIXqual_nameSUFFIX</em>
-<a class="jxr_linenumber" name="89" href="#89">89</a>          kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, interleavedValidShadowCellQualifier, value);
-<a class="jxr_linenumber" name="90" href="#90">90</a>          assertTrue(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should include a valid shadowCell identifier"</span>);
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>          <em class="jxr_comment">// Test the qualifier passed is not a shadow cell</em>
-<a class="jxr_linenumber" name="93" href="#93">93</a>          <em class="jxr_comment">// qualifier if there's nothing else apart from the suffix</em>
-<a class="jxr_linenumber" name="94" href="#94">94</a>          kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, shadowCellSuffixToTest, value);
-<a class="jxr_linenumber" name="95" href="#95">95</a>          assertFalse(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should not include a valid shadowCell identifier"</span>);
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>      }
-<a class="jxr_linenumber" name="98" href="#98">98</a>  
-<a class="jxr_linenumber" name="99" href="#99">99</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCorrectMapingOfCellsToShadowCells() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="101" href="#101">101</a>         <em class="jxr_comment">// Create the required data</em>
-<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">final</strong> byte[] validShadowCellQualifier =
-<a class="jxr_linenumber" name="103" href="#103">103</a>                 com.google.common.primitives.Bytes.concat(SHADOW_CELL_PREFIX, qualifier, SHADOW_CELL_SUFFIX);
-<a class="jxr_linenumber" name="104" href="#104">104</a> 
-<a class="jxr_linenumber" name="105" href="#105">105</a>         <strong class="jxr_keyword">final</strong> byte[] qualifier2 = Bytes.toBytes(<span class="jxr_string">"test-qual2"</span>);
-<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">final</strong> byte[] validShadowCellQualifier2 =
-<a class="jxr_linenumber" name="107" href="#107">107</a>                 com.google.common.primitives.Bytes.concat(SHADOW_CELL_PREFIX, qualifier2, SHADOW_CELL_SUFFIX);
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">final</strong> byte[] qualifier3 = Bytes.toBytes(<span class="jxr_string">"test-qual3"</span>);
-<a class="jxr_linenumber" name="110" href="#110">110</a> 
-<a class="jxr_linenumber" name="111" href="#111">111</a>         Cell cell1 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>)); <em class="jxr_comment">// Default type is Put</em>
-<a class="jxr_linenumber" name="112" href="#112">112</a>         Cell dupCell1 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>)); <em class="jxr_comment">// Default type is Put</em>
-<a class="jxr_linenumber" name="113" href="#113">113</a>         Cell dupCell1WithAnotherValue = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"other-value"</span>));
-<a class="jxr_linenumber" name="114" href="#114">114</a>         Cell delCell1 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Type.Delete, Bytes.toBytes(<span class="jxr_string">"value"</span>));
-<a class="jxr_linenumber" name="115" href="#115">115</a>         Cell shadowCell1 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, validShadowCellQualifier, 1, Bytes.toBytes(<span class="jxr_string">"sc-value"</span>));
-<a class="jxr_linenumber" name="116" href="#116">116</a> 
-<a class="jxr_linenumber" name="117" href="#117">117</a>         Cell cell2 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier2, 1, Bytes.toBytes(<span class="jxr_string">"value2"</span>));
-<a class="jxr_linenumber" name="118" href="#118">118</a>         Cell shadowCell2 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, validShadowCellQualifier2, 1, Bytes.toBytes(<span class="jxr_string">"sc-value2"</span>));
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>         Cell cell3 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier3, 1, Bytes.toBytes(<span class="jxr_string">"value3"</span>));
-<a class="jxr_linenumber" name="121" href="#121">121</a> 
-<a class="jxr_linenumber" name="122" href="#122">122</a>         <em class="jxr_comment">// Check a list of cells with duplicate values</em>
-<a class="jxr_linenumber" name="123" href="#123">123</a>         List&lt;Cell&gt; badListWithDups = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="124" href="#124">124</a>         badListWithDups.add(cell1);
-<a class="jxr_linenumber" name="125" href="#125">125</a>         badListWithDups.add(dupCell1WithAnotherValue);
-<a class="jxr_linenumber" name="126" href="#126">126</a> 
-<a class="jxr_linenumber" name="127" href="#127">127</a>         <em class="jxr_comment">// Check dup shadow cell with same MVCC is ignored</em>
-<a class="jxr_linenumber" name="128" href="#128">128</a>         SortedMap&lt;Cell, Optional&lt;Cell&gt;&gt; cellsToShadowCells = CellUtils.mapCellsToShadowCells(badListWithDups);
-<a class="jxr_linenumber" name="129" href="#129">129</a>         assertEquals(cellsToShadowCells.size(), 1, <span class="jxr_string">"There should be only 1 key-value maps"</span>);
-<a class="jxr_linenumber" name="130" href="#130">130</a>         assertTrue(cellsToShadowCells.containsKey(cell1));
-<a class="jxr_linenumber" name="131" href="#131">131</a>         KeyValue firstKey = (KeyValue) cellsToShadowCells.firstKey();
-<a class="jxr_linenumber" name="132" href="#132">132</a>         KeyValue lastKey = (KeyValue) cellsToShadowCells.lastKey();
-<a class="jxr_linenumber" name="133" href="#133">133</a>         assertTrue(firstKey.equals(lastKey));
-<a class="jxr_linenumber" name="134" href="#134">134</a>         assertTrue(0 == Bytes.compareTo(firstKey.getValueArray(), firstKey.getValueOffset(), firstKey.getValueLength(),
-<a class="jxr_linenumber" name="135" href="#135">135</a>                                         cell1.getValueArray(), cell1.getValueOffset(), cell1.getValueLength()),
-<a class="jxr_linenumber" name="136" href="#136">136</a>                    <span class="jxr_string">"Should be equal"</span>);
-<a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>         <em class="jxr_comment">// Modify dup shadow cell to have a greater MVCC and check that is replaced</em>
-<a class="jxr_linenumber" name="139" href="#139">139</a>         HBaseShims.setKeyValueSequenceId((KeyValue) dupCell1WithAnotherValue, 1);
-<a class="jxr_linenumber" name="140" href="#140">140</a>         cellsToShadowCells = CellUtils.mapCellsToShadowCells(badListWithDups);
-<a class="jxr_linenumber" name="141" href="#141">141</a>         assertEquals(cellsToShadowCells.size(), 1, <span class="jxr_string">"There should be only 1 key-value maps"</span>);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         assertTrue(cellsToShadowCells.containsKey(dupCell1WithAnotherValue));
-<a class="jxr_linenumber" name="143" href="#143">143</a>         firstKey = (KeyValue) cellsToShadowCells.firstKey();
-<a class="jxr_linenumber" name="144" href="#144">144</a>         lastKey = (KeyValue) cellsToShadowCells.lastKey();
-<a class="jxr_linenumber" name="145" href="#145">145</a>         assertTrue(firstKey.equals(lastKey));
-<a class="jxr_linenumber" name="146" href="#146">146</a>         assertTrue(0 == Bytes.compareTo(firstKey.getValueArray(), firstKey.getValueOffset(),
-<a class="jxr_linenumber" name="147" href="#147">147</a>                                         firstKey.getValueLength(), dupCell1WithAnotherValue.getValueArray(),
-<a class="jxr_linenumber" name="148" href="#148">148</a>                                         dupCell1WithAnotherValue.getValueOffset(), dupCell1WithAnotherValue.getValueLength()),
-<a class="jxr_linenumber" name="149" href="#149">149</a>                    <span class="jxr_string">"Should be equal"</span>);
-<a class="jxr_linenumber" name="150" href="#150">150</a>         <em class="jxr_comment">// Check a list of cells with duplicate values</em>
-<a class="jxr_linenumber" name="151" href="#151">151</a>         List&lt;Cell&gt; cellListWithDups = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="152" href="#152">152</a>         cellListWithDups.add(cell1);
-<a class="jxr_linenumber" name="153" href="#153">153</a>         cellListWithDups.add(shadowCell1);
-<a class="jxr_linenumber" name="154" href="#154">154</a>         cellListWithDups.add(dupCell1); <em class="jxr_comment">// Dup cell</em>
-<a class="jxr_linenumber" name="155" href="#155">155</a>         cellListWithDups.add(delCell1); <em class="jxr_comment">// Another Dup cell but with different type</em>
-<a class="jxr_linenumber" name="156" href="#156">156</a>         cellListWithDups.add(cell2);
-<a class="jxr_linenumber" name="157" href="#157">157</a>         cellListWithDups.add(cell3);
-<a class="jxr_linenumber" name="158" href="#158">158</a>         cellListWithDups.add(shadowCell2);
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>         cellsToShadowCells = CellUtils.mapCellsToShadowCells(cellListWithDups);
-<a class="jxr_linenumber" name="161" href="#161">161</a>         assertEquals(cellsToShadowCells.size(), 3, <span class="jxr_string">"There should be only 3 key-value maps"</span>);
-<a class="jxr_linenumber" name="162" href="#162">162</a>         assertTrue(cellsToShadowCells.get(cell1).get().equals(shadowCell1));
-<a class="jxr_linenumber" name="163" href="#163">163</a>         assertTrue(cellsToShadowCells.get(dupCell1).get().equals(shadowCell1));
-<a class="jxr_linenumber" name="164" href="#164">164</a>         assertFalse(cellsToShadowCells.containsKey(delCell1)); <em class="jxr_comment">// TODO This is strange and needs to be solved.</em>
-<a class="jxr_linenumber" name="165" href="#165">165</a>         <em class="jxr_comment">// The current algo avoids to put the delete cell</em>
-<a class="jxr_linenumber" name="166" href="#166">166</a>         <em class="jxr_comment">// as key after the put cell with same value was added</em>
-<a class="jxr_linenumber" name="167" href="#167">167</a>         assertTrue(cellsToShadowCells.get(cell2).get().equals(shadowCell2));
-<a class="jxr_linenumber" name="168" href="#168">168</a>         assertTrue(cellsToShadowCells.get(cell3).equals(Optional.absent()));
-<a class="jxr_linenumber" name="169" href="#169">169</a> 
-<a class="jxr_linenumber" name="170" href="#170">170</a>     }
-<a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="173" href="#173">173</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellSuffixConcatenationToQualifier() {
-<a class="jxr_linenumber" name="174" href="#174">174</a> 
-<a class="jxr_linenumber" name="175" href="#175">175</a>         Cell cell = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>));
-<a class="jxr_linenumber" name="176" href="#176">176</a>         byte[] suffixedQualifier = CellUtils.addShadowCellSuffixPrefix(cell.getQualifierArray(),
-<a class="jxr_linenumber" name="177" href="#177">177</a>                                                                  cell.getQualifierOffset(),
-<a class="jxr_linenumber" name="178" href="#178">178</a>                                                                  cell.getQualifierLength());
-<a class="jxr_linenumber" name="179" href="#179">179</a>         byte[] expectedQualifier = com.google.common.primitives.Bytes.concat(SHADOW_CELL_PREFIX, qualifier, SHADOW_CELL_SUFFIX);
-<a class="jxr_linenumber" name="180" href="#180">180</a>         assertEquals(suffixedQualifier, expectedQualifier);
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>     }
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>     @Test(dataProvider = <span class="jxr_string">"shadow-cell-suffixes"</span>, timeOut = 10_000)
-<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellSuffixRemovalFromQualifier(byte[] shadowCellSuffixToTest) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="186" href="#186">186</a> 
-<a class="jxr_linenumber" name="187" href="#187">187</a>         <em class="jxr_comment">// Test removal from a correclty suffixed qualifier</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a>         byte[] suffixedQualifier = com.google.common.primitives.Bytes.concat(SHADOW_CELL_PREFIX, qualifier, shadowCellSuffixToTest);
-<a class="jxr_linenumber" name="189" href="#189">189</a>         Cell cell = <strong class="jxr_keyword">new</strong> KeyValue(row, family, suffixedQualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>));
-<a class="jxr_linenumber" name="190" href="#190">190</a>         byte[] resultedQualifier = CellUtils.removeShadowCellSuffixPrefix(cell.getQualifierArray(),
-<a class="jxr_linenumber" name="191" href="#191">191</a>                                                                     cell.getQualifierOffset(),
-<a class="jxr_linenumber" name="192" href="#192">192</a>                                                                     cell.getQualifierLength());
-<a class="jxr_linenumber" name="193" href="#193">193</a>         byte[] expectedQualifier = qualifier;
-<a class="jxr_linenumber" name="194" href="#194">194</a>         assertEquals(resultedQualifier, expectedQualifier);
-<a class="jxr_linenumber" name="195" href="#195">195</a> 
-<a class="jxr_linenumber" name="196" href="#196">196</a>         <em class="jxr_comment">// Test removal from a badly suffixed qualifier</em>
-<a class="jxr_linenumber" name="197" href="#197">197</a>         byte[] badlySuffixedQualifier = com.google.common.primitives.Bytes.concat(SHADOW_CELL_PREFIX, qualifier, Bytes.toBytes(<span class="jxr_string">"BAD"</span>));
-<a class="jxr_linenumber" name="198" href="#198">198</a>         Cell badCell = <strong class="jxr_keyword">new</strong> KeyValue(row, family, badlySuffixedQualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>));
-<a class="jxr_linenumber" name="199" href="#199">199</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="200" href="#200">200</a>             CellUtils.removeShadowCellSuffixPrefix(badCell.getQualifierArray(),
-<a class="jxr_linenumber" name="201" href="#201">201</a>                                              badCell.getQualifierOffset(),
-<a class="jxr_linenumber" name="202" href="#202">202</a>                                              badCell.getQualifierLength());
-<a class="jxr_linenumber" name="203" href="#203">203</a>             fail();
-<a class="jxr_linenumber" name="204" href="#204">204</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="205" href="#205">205</a>             <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="206" href="#206">206</a>         }
-<a class="jxr_linenumber" name="207" href="#207">207</a>     }
-<a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMatchingQualifiers() {
-<a class="jxr_linenumber" name="211" href="#211">211</a>         Cell cell = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>));
-<a class="jxr_linenumber" name="212" href="#212">212</a>         assertTrue(CellUtils.matchingQualifier(cell, qualifier, 0, qualifier.length));
-<a class="jxr_linenumber" name="213" href="#213">213</a>         assertFalse(CellUtils.matchingQualifier(cell, otherQualifier, 0, otherQualifier.length));
-<a class="jxr_linenumber" name="214" href="#214">214</a>     }
-<a class="jxr_linenumber" name="215" href="#215">215</a> 
-<a class="jxr_linenumber" name="216" href="#216">216</a>     @Test(dataProvider = <span class="jxr_string">"shadow-cell-suffixes"</span>, timeOut = 10_000)
-<a class="jxr_linenumber" name="217" href="#217">217</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testQualifierLengthFromShadowCellQualifier(byte[] shadowCellSuffixToTest) {
-<a class="jxr_linenumber" name="218" href="#218">218</a>         <em class="jxr_comment">// Test suffixed qualifier</em>
-<a class="jxr_linenumber" name="219" href="#219">219</a>         byte[] suffixedQualifier = com.google.common.primitives.Bytes.concat(SHADOW_CELL_PREFIX, qualifier, shadowCellSuffixToTest);
-<a class="jxr_linenumber" name="220" href="#220">220</a>         <strong class="jxr_keyword">int</strong> originalQualifierLength =
-<a class="jxr_linenumber" name="221" href="#221">221</a>                 CellUtils.qualifierLengthFromShadowCellQualifier(suffixedQualifier, 0, suffixedQualifier.length);
-<a class="jxr_linenumber" name="222" href="#222">222</a>         assertEquals(originalQualifierLength, qualifier.length);
-<a class="jxr_linenumber" name="223" href="#223">223</a> 
-<a class="jxr_linenumber" name="224" href="#224">224</a>         <em class="jxr_comment">// Test passing qualifier without shadow cell suffix</em>
-<a class="jxr_linenumber" name="225" href="#225">225</a>         originalQualifierLength =
-<a class="jxr_linenumber" name="226" href="#226">226</a>                 CellUtils.qualifierLengthFromShadowCellQualifier(qualifier, 0, qualifier.length);
-<a class="jxr_linenumber" name="227" href="#227">227</a>         assertEquals(originalQualifierLength, qualifier.length);
-<a class="jxr_linenumber" name="228" href="#228">228</a>     }
-<a class="jxr_linenumber" name="229" href="#229">229</a> 
-<a class="jxr_linenumber" name="230" href="#230">230</a> }
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.transaction.CellUtils.SHADOW_CELL_SUFFIX;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>  @Test(groups = <span class="jxr_string">"noHBase"</span>)
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestCellUtils.html">TestCellUtils</a> {
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] row = Bytes.toBytes(<span class="jxr_string">"test-row"</span>);
+<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] family = Bytes.toBytes(<span class="jxr_string">"test-family"</span>);
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"test-qual"</span>);
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] otherQualifier = Bytes.toBytes(<span class="jxr_string">"other-test-qual"</span>);
+<a class="jxr_linenumber" name="47" href="#47">47</a>  
+<a class="jxr_linenumber" name="48" href="#48">48</a>      @DataProvider(name = <span class="jxr_string">"shadow-cell-suffixes"</span>)
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">public</strong> Object[][] createShadowCellSuffixes() {
+<a class="jxr_linenumber" name="50" href="#50">50</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Object[][]{
+<a class="jxr_linenumber" name="51" href="#51">51</a>                  {SHADOW_CELL_SUFFIX},
+<a class="jxr_linenumber" name="52" href="#52">52</a>          };
+<a class="jxr_linenumber" name="53" href="#53">53</a>      }
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>      @Test(dataProvider = <span class="jxr_string">"shadow-cell-suffixes"</span>, timeOut = 10_000)
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellQualifiers(byte[] shadowCellSuffixToTest) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="57" href="#57">57</a>  
+<a class="jxr_linenumber" name="58" href="#58">58</a>          <strong class="jxr_keyword">final</strong> byte[] validShadowCellQualifier =
+<a class="jxr_linenumber" name="59" href="#59">59</a>                  com.google.common.primitives.Bytes.concat(qualifier, shadowCellSuffixToTest);
+<a class="jxr_linenumber" name="60" href="#60">60</a>          <strong class="jxr_keyword">final</strong> byte[] sandwichValidShadowCellQualifier =
+<a class="jxr_linenumber" name="61" href="#61">61</a>                  com.google.common.primitives.Bytes.concat(shadowCellSuffixToTest, validShadowCellQualifier);
+<a class="jxr_linenumber" name="62" href="#62">62</a>          <strong class="jxr_keyword">final</strong> byte[] doubleEndedValidShadowCellQualifier =
+<a class="jxr_linenumber" name="63" href="#63">63</a>                  com.google.common.primitives.Bytes.concat(validShadowCellQualifier, shadowCellSuffixToTest);
+<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">final</strong> byte[] interleavedValidShadowCellQualifier =
+<a class="jxr_linenumber" name="65" href="#65">65</a>                  com.google.common.primitives.Bytes.concat(validShadowCellQualifier, com.google.common.primitives.Bytes
+<a class="jxr_linenumber" name="66" href="#66">66</a>                          .concat(validShadowCellQualifier, validShadowCellQualifier));
+<a class="jxr_linenumber" name="67" href="#67">67</a>          <strong class="jxr_keyword">final</strong> byte[] value = Bytes.toBytes(<span class="jxr_string">"test-value"</span>);
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <em class="jxr_comment">// Test the qualifier passed is a shadow cell</em>
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <em class="jxr_comment">// qualifier because it contains only one suffix</em>
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <em class="jxr_comment">// and is placed at the end of the qualifier:</em>
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <em class="jxr_comment">// qual_nameSUFFIX</em>
+<a class="jxr_linenumber" name="73" href="#73">73</a>          KeyValue kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, validShadowCellQualifier, value);
+<a class="jxr_linenumber" name="74" href="#74">74</a>          assertTrue(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should include a valid shadowCell identifier"</span>);
+<a class="jxr_linenumber" name="75" href="#75">75</a>  
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <em class="jxr_comment">// We also accept this pattern in the qualifier:</em>
+<a class="jxr_linenumber" name="77" href="#77">77</a>          <em class="jxr_comment">// SUFFIXqual_nameSUFFIX</em>
+<a class="jxr_linenumber" name="78" href="#78">78</a>          kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, sandwichValidShadowCellQualifier, value);
+<a class="jxr_linenumber" name="79" href="#79">79</a>          assertTrue(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should include a valid shadowCell identifier"</span>);
+<a class="jxr_linenumber" name="80" href="#80">80</a>  
+<a class="jxr_linenumber" name="81" href="#81">81</a>          <em class="jxr_comment">// We also accept this pattern in the qualifier:</em>
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <em class="jxr_comment">// qual_nameSUFFIXSUFFIX</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>          kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, doubleEndedValidShadowCellQualifier, value);
+<a class="jxr_linenumber" name="84" href="#84">84</a>          assertTrue(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should include a valid shadowCell identifier"</span>);
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
+<a class="jxr_linenumber" name="86" href="#86">86</a>          <em class="jxr_comment">// We also accept this pattern in the qualifier:</em>
+<a class="jxr_linenumber" name="87" href="#87">87</a>          <em class="jxr_comment">// qual_nameSUFFIXqual_nameSUFFIXqual_nameSUFFIX</em>
+<a class="jxr_linenumber" name="88" href="#88">88</a>          kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, interleavedValidShadowCellQualifier, value);
+<a class="jxr_linenumber" name="89" href="#89">89</a>          assertTrue(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should include a valid shadowCell identifier"</span>);
+<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="91" href="#91">91</a>          <em class="jxr_comment">// Test the qualifier passed is not a shadow cell</em>
+<a class="jxr_linenumber" name="92" href="#92">92</a>          <em class="jxr_comment">// qualifier if there's nothing else apart from the suffix</em>
+<a class="jxr_linenumber" name="93" href="#93">93</a>          kv = <strong class="jxr_keyword">new</strong> KeyValue(row, family, shadowCellSuffixToTest, value);
+<a class="jxr_linenumber" name="94" href="#94">94</a>          assertFalse(CellUtils.isShadowCell(kv), <span class="jxr_string">"Should not include a valid shadowCell identifier"</span>);
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>      }
+<a class="jxr_linenumber" name="97" href="#97">97</a>  
+<a class="jxr_linenumber" name="98" href="#98">98</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCorrectMapingOfCellsToShadowCells() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <em class="jxr_comment">// Create the required data</em>
+<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">final</strong> byte[] validShadowCellQualifier =
+<a class="jxr_linenumber" name="102" href="#102">102</a>                 com.google.common.primitives.Bytes.concat(qualifier, SHADOW_CELL_SUFFIX);
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">final</strong> byte[] qualifier2 = Bytes.toBytes(<span class="jxr_string">"test-qual2"</span>);
+<a class="jxr_linenumber" name="105" href="#105">105</a>         <strong class="jxr_keyword">final</strong> byte[] validShadowCellQualifier2 =
+<a class="jxr_linenumber" name="106" href="#106">106</a>                 com.google.common.primitives.Bytes.concat(qualifier2, SHADOW_CELL_SUFFIX);
+<a class="jxr_linenumber" name="107" href="#107">107</a> 
+<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">final</strong> byte[] qualifier3 = Bytes.toBytes(<span class="jxr_string">"test-qual3"</span>);
+<a class="jxr_linenumber" name="109" href="#109">109</a> 
+<a class="jxr_linenumber" name="110" href="#110">110</a>         Cell cell1 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>)); <em class="jxr_comment">// Default type is Put</em>
+<a class="jxr_linenumber" name="111" href="#111">111</a>         Cell dupCell1 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>)); <em class="jxr_comment">// Default type is Put</em>
+<a class="jxr_linenumber" name="112" href="#112">112</a>         Cell dupCell1WithAnotherValue = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"other-value"</span>));
+<a class="jxr_linenumber" name="113" href="#113">113</a>         Cell delCell1 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Type.Delete, Bytes.toBytes(<span class="jxr_string">"value"</span>));
+<a class="jxr_linenumber" name="114" href="#114">114</a>         Cell shadowCell1 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, validShadowCellQualifier, 1, Bytes.toBytes(<span class="jxr_string">"sc-value"</span>));
+<a class="jxr_linenumber" name="115" href="#115">115</a> 
+<a class="jxr_linenumber" name="116" href="#116">116</a>         Cell cell2 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier2, 1, Bytes.toBytes(<span class="jxr_string">"value2"</span>));
+<a class="jxr_linenumber" name="117" href="#117">117</a>         Cell shadowCell2 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, validShadowCellQualifier2, 1, Bytes.toBytes(<span class="jxr_string">"sc-value2"</span>));
+<a class="jxr_linenumber" name="118" href="#118">118</a> 
+<a class="jxr_linenumber" name="119" href="#119">119</a>         Cell cell3 = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier3, 1, Bytes.toBytes(<span class="jxr_string">"value3"</span>));
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>         <em class="jxr_comment">// Check a list of cells with duplicate values</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a>         List&lt;Cell&gt; badListWithDups = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="123" href="#123">123</a>         badListWithDups.add(cell1);
+<a class="jxr_linenumber" name="124" href="#124">124</a>         badListWithDups.add(dupCell1WithAnotherValue);
+<a class="jxr_linenumber" name="125" href="#125">125</a> 
+<a class="jxr_linenumber" name="126" href="#126">126</a>         <em class="jxr_comment">// Check dup shadow cell with same MVCC is ignored</em>
+<a class="jxr_linenumber" name="127" href="#127">127</a>         SortedMap&lt;Cell, Optional&lt;Cell&gt;&gt; cellsToShadowCells = CellUtils.mapCellsToShadowCells(badListWithDups);
+<a class="jxr_linenumber" name="128" href="#128">128</a>         assertEquals(cellsToShadowCells.size(), 1, <span class="jxr_string">"There should be only 1 key-value maps"</span>);
+<a class="jxr_linenumber" name="129" href="#129">129</a>         assertTrue(cellsToShadowCells.containsKey(cell1));
+<a class="jxr_linenumber" name="130" href="#130">130</a>         KeyValue firstKey = (KeyValue) cellsToShadowCells.firstKey();
+<a class="jxr_linenumber" name="131" href="#131">131</a>         KeyValue lastKey = (KeyValue) cellsToShadowCells.lastKey();
+<a class="jxr_linenumber" name="132" href="#132">132</a>         assertTrue(firstKey.equals(lastKey));
+<a class="jxr_linenumber" name="133" href="#133">133</a>         assertTrue(0 == Bytes.compareTo(firstKey.getValueArray(), firstKey.getValueOffset(), firstKey.getValueLength(),
+<a class="jxr_linenumber" name="134" href="#134">134</a>                                         cell1.getValueArray(), cell1.getValueOffset(), cell1.getValueLength()),
+<a class="jxr_linenumber" name="135" href="#135">135</a>                    <span class="jxr_string">"Should be equal"</span>);
+<a class="jxr_linenumber" name="136" href="#136">136</a> 
+<a class="jxr_linenumber" name="137" href="#137">137</a>         <em class="jxr_comment">// Modify dup shadow cell to have a greater MVCC and check that is replaced</em>
+<a class="jxr_linenumber" name="138" href="#138">138</a>         HBaseShims.setKeyValueSequenceId((KeyValue) dupCell1WithAnotherValue, 1);
+<a class="jxr_linenumber" name="139" href="#139">139</a>         cellsToShadowCells = CellUtils.mapCellsToShadowCells(badListWithDups);
+<a class="jxr_linenumber" name="140" href="#140">140</a>         assertEquals(cellsToShadowCells.size(), 1, <span class="jxr_string">"There should be only 1 key-value maps"</span>);
+<a class="jxr_linenumber" name="141" href="#141">141</a>         assertTrue(cellsToShadowCells.containsKey(dupCell1WithAnotherValue));
+<a class="jxr_linenumber" name="142" href="#142">142</a>         firstKey = (KeyValue) cellsToShadowCells.firstKey();
+<a class="jxr_linenumber" name="143" href="#143">143</a>         lastKey = (KeyValue) cellsToShadowCells.lastKey();
+<a class="jxr_linenumber" name="144" href="#144">144</a>         assertTrue(firstKey.equals(lastKey));
+<a class="jxr_linenumber" name="145" href="#145">145</a>         assertTrue(0 == Bytes.compareTo(firstKey.getValueArray(), firstKey.getValueOffset(),
+<a class="jxr_linenumber" name="146" href="#146">146</a>                                         firstKey.getValueLength(), dupCell1WithAnotherValue.getValueArray(),
+<a class="jxr_linenumber" name="147" href="#147">147</a>                                         dupCell1WithAnotherValue.getValueOffset(), dupCell1WithAnotherValue.getValueLength()),
+<a class="jxr_linenumber" name="148" href="#148">148</a>                    <span class="jxr_string">"Should be equal"</span>);
+<a class="jxr_linenumber" name="149" href="#149">149</a>         <em class="jxr_comment">// Check a list of cells with duplicate values</em>
+<a class="jxr_linenumber" name="150" href="#150">150</a>         List&lt;Cell&gt; cellListWithDups = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="151" href="#151">151</a>         cellListWithDups.add(cell1);
+<a class="jxr_linenumber" name="152" href="#152">152</a>         cellListWithDups.add(shadowCell1);
+<a class="jxr_linenumber" name="153" href="#153">153</a>         cellListWithDups.add(dupCell1); <em class="jxr_comment">// Dup cell</em>
+<a class="jxr_linenumber" name="154" href="#154">154</a>         cellListWithDups.add(delCell1); <em class="jxr_comment">// Another Dup cell but with different type</em>
+<a class="jxr_linenumber" name="155" href="#155">155</a>         cellListWithDups.add(cell2);
+<a class="jxr_linenumber" name="156" href="#156">156</a>         cellListWithDups.add(cell3);
+<a class="jxr_linenumber" name="157" href="#157">157</a>         cellListWithDups.add(shadowCell2);
+<a class="jxr_linenumber" name="158" href="#158">158</a> 
+<a class="jxr_linenumber" name="159" href="#159">159</a>         cellsToShadowCells = CellUtils.mapCellsToShadowCells(cellListWithDups);
+<a class="jxr_linenumber" name="160" href="#160">160</a>         assertEquals(cellsToShadowCells.size(), 3, <span class="jxr_string">"There should be only 3 key-value maps"</span>);
+<a class="jxr_linenumber" name="161" href="#161">161</a>         assertTrue(cellsToShadowCells.get(cell1).get().equals(shadowCell1));
+<a class="jxr_linenumber" name="162" href="#162">162</a>         assertTrue(cellsToShadowCells.get(dupCell1).get().equals(shadowCell1));
+<a class="jxr_linenumber" name="163" href="#163">163</a>         assertFalse(cellsToShadowCells.containsKey(delCell1)); <em class="jxr_comment">// TODO This is strange and needs to be solved.</em>
+<a class="jxr_linenumber" name="164" href="#164">164</a>         <em class="jxr_comment">// The current algo avoids to put the delete cell</em>
+<a class="jxr_linenumber" name="165" href="#165">165</a>         <em class="jxr_comment">// as key after the put cell with same value was added</em>
+<a class="jxr_linenumber" name="166" href="#166">166</a>         assertTrue(cellsToShadowCells.get(cell2).get().equals(shadowCell2));
+<a class="jxr_linenumber" name="167" href="#167">167</a>         assertTrue(cellsToShadowCells.get(cell3).equals(Optional.absent()));
+<a class="jxr_linenumber" name="168" href="#168">168</a> 
+<a class="jxr_linenumber" name="169" href="#169">169</a>     }
+<a class="jxr_linenumber" name="170" href="#170">170</a> 
+<a class="jxr_linenumber" name="171" href="#171">171</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellSuffixConcatenationToQualifier() {
+<a class="jxr_linenumber" name="173" href="#173">173</a> 
+<a class="jxr_linenumber" name="174" href="#174">174</a>         Cell cell = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>));
+<a class="jxr_linenumber" name="175" href="#175">175</a>         byte[] suffixedQualifier = CellUtils.addShadowCellSuffix(cell.getQualifierArray(),
+<a class="jxr_linenumber" name="176" href="#176">176</a>                                                                  cell.getQualifierOffset(),
+<a class="jxr_linenumber" name="177" href="#177">177</a>                                                                  cell.getQualifierLength());
+<a class="jxr_linenumber" name="178" href="#178">178</a>         byte[] expectedQualifier = com.google.common.primitives.Bytes.concat(qualifier, SHADOW_CELL_SUFFIX);
+<a class="jxr_linenumber" name="179" href="#179">179</a>         assertEquals(suffixedQualifier, expectedQualifier);
+<a class="jxr_linenumber" name="180" href="#180">180</a> 
+<a class="jxr_linenumber" name="181" href="#181">181</a>     }
+<a class="jxr_linenumber" name="182" href="#182">182</a> 
+<a class="jxr_linenumber" name="183" href="#183">183</a>     @Test(dataProvider = <span class="jxr_string">"shadow-cell-suffixes"</span>, timeOut = 10_000)
+<a class="jxr_linenumber" name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShadowCellSuffixRemovalFromQualifier(byte[] shadowCellSuffixToTest) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="185" href="#185">185</a> 
+<a class="jxr_linenumber" name="186" href="#186">186</a>         <em class="jxr_comment">// Test removal from a correclty suffixed qualifier</em>
+<a class="jxr_linenumber" name="187" href="#187">187</a>         byte[] suffixedQualifier = com.google.common.primitives.Bytes.concat(qualifier, shadowCellSuffixToTest);
+<a class="jxr_linenumber" name="188" href="#188">188</a>         Cell cell = <strong class="jxr_keyword">new</strong> KeyValue(row, family, suffixedQualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>));
+<a class="jxr_linenumber" name="189" href="#189">189</a>         byte[] resultedQualifier = CellUtils.removeShadowCellSuffix(cell.getQualifierArray(),
+<a class="jxr_linenumber" name="190" href="#190">190</a>                                                                     cell.getQualifierOffset(),
+<a class="jxr_linenumber" name="191" href="#191">191</a>                                                                     cell.getQualifierLength());
+<a class="jxr_linenumber" name="192" href="#192">192</a>         byte[] expectedQualifier = qualifier;
+<a class="jxr_linenumber" name="193" href="#193">193</a>         assertEquals(resultedQualifier, expectedQualifier);
+<a class="jxr_linenumber" name="194" href="#194">194</a> 
+<a class="jxr_linenumber" name="195" href="#195">195</a>         <em class="jxr_comment">// Test removal from a badly suffixed qualifier</em>
+<a class="jxr_linenumber" name="196" href="#196">196</a>         byte[] badlySuffixedQualifier = com.google.common.primitives.Bytes.concat(qualifier, Bytes.toBytes(<span class="jxr_string">"BAD"</span>));
+<a class="jxr_linenumber" name="197" href="#197">197</a>         Cell badCell = <strong class="jxr_keyword">new</strong> KeyValue(row, family, badlySuffixedQualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>));
+<a class="jxr_linenumber" name="198" href="#198">198</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="199" href="#199">199</a>             CellUtils.removeShadowCellSuffix(badCell.getQualifierArray(),
+<a class="jxr_linenumber" name="200" href="#200">200</a>                                              badCell.getQualifierOffset(),
+<a class="jxr_linenumber" name="201" href="#201">201</a>                                              badCell.getQualifierLength());
+<a class="jxr_linenumber" name="202" href="#202">202</a>             fail();
+<a class="jxr_linenumber" name="203" href="#203">203</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="204" href="#204">204</a>             <em class="jxr_comment">// Expected</em>
+<a class="jxr_linenumber" name="205" href="#205">205</a>         }
+<a class="jxr_linenumber" name="206" href="#206">206</a>     }
+<a class="jxr_linenumber" name="207" href="#207">207</a> 
+<a class="jxr_linenumber" name="208" href="#208">208</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="209" href="#209">209</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMatchingQualifiers() {
+<a class="jxr_linenumber" name="210" href="#210">210</a>         Cell cell = <strong class="jxr_keyword">new</strong> KeyValue(row, family, qualifier, 1, Bytes.toBytes(<span class="jxr_string">"value"</span>));
+<a class="jxr_linenumber" name="211" href="#211">211</a>         assertTrue(CellUtils.matchingQualifier(cell, qualifier, 0, qualifier.length));
+<a class="jxr_linenumber" name="212" href="#212">212</a>         assertFalse(CellUtils.matchingQualifier(cell, otherQualifier, 0, otherQualifier.length));
+<a class="jxr_linenumber" name="213" href="#213">213</a>     }
+<a class="jxr_linenumber" name="214" href="#214">214</a> 
+<a class="jxr_linenumber" name="215" href="#215">215</a>     @Test(dataProvider = <span class="jxr_string">"shadow-cell-suffixes"</span>, timeOut = 10_000)
+<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testQualifierLengthFromShadowCellQualifier(byte[] shadowCellSuffixToTest) {
+<a class="jxr_linenumber" name="217" href="#217">217</a>         <em class="jxr_comment">// Test suffixed qualifier</em>
+<a class="jxr_linenumber" name="218" href="#218">218</a>         byte[] suffixedQualifier = com.google.common.primitives.Bytes.concat(qualifier, shadowCellSuffixToTest);
+<a class="jxr_linenumber" name="219" href="#219">219</a>         <strong class="jxr_keyword">int</strong> originalQualifierLength =
+<a class="jxr_linenumber" name="220" href="#220">220</a>                 CellUtils.qualifierLengthFromShadowCellQualifier(suffixedQualifier, 0, suffixedQualifier.length);
+<a class="jxr_linenumber" name="221" href="#221">221</a>         assertEquals(originalQualifierLength, qualifier.length);
+<a class="jxr_linenumber" name="222" href="#222">222</a> 
+<a class="jxr_linenumber" name="223" href="#223">223</a>         <em class="jxr_comment">// Test passing qualifier without shadow cell suffix</em>
+<a class="jxr_linenumber" name="224" href="#224">224</a>         originalQualifierLength =
+<a class="jxr_linenumber" name="225" href="#225">225</a>                 CellUtils.qualifierLengthFromShadowCellQualifier(qualifier, 0, qualifier.length);
+<a class="jxr_linenumber" name="226" href="#226">226</a>         assertEquals(originalQualifierLength, qualifier.length);
+<a class="jxr_linenumber" name="227" href="#227">227</a>     }
+<a class="jxr_linenumber" name="228" href="#228">228</a> 
+<a class="jxr_linenumber" name="229" href="#229">229</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestColumnIterator.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestColumnIterator.html b/xref-test/org/apache/omid/transaction/TestColumnIterator.html
index bad5ca9..0c4c67a 100644
--- a/xref-test/org/apache/omid/transaction/TestColumnIterator.html
+++ b/xref-test/org/apache/omid/transaction/TestColumnIterator.html
@@ -57,13 +57,13 @@
 <a class="jxr_linenumber" name="47" href="#47">47</a>                      <em class="jxr_comment">// Group 1 (3 elems but grouping should filter shadow cell, so check for 2)</em>
 <a class="jxr_linenumber" name="48" href="#48">48</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family1, qualifier1, 0, data),
 <a class="jxr_linenumber" name="49" href="#49">49</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family1, qualifier1, 1, data),
-<a class="jxr_linenumber" name="50" href="#50">50</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family1, CellUtils.addShadowCellSuffixPrefix(qualifier1), 0, data),
+<a class="jxr_linenumber" name="50" href="#50">50</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family1, CellUtils.addShadowCellSuffix(qualifier1), 0, data),
 <a class="jxr_linenumber" name="51" href="#51">51</a>                      <em class="jxr_comment">// Group 2 (2 elems but grouping should filter shadow cell, so check for 1)</em>
 <a class="jxr_linenumber" name="52" href="#52">52</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family1, qualifier2, 0, data),
-<a class="jxr_linenumber" name="53" href="#53">53</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family1, CellUtils.addShadowCellSuffixPrefix(qualifier2), 0, data),
+<a class="jxr_linenumber" name="53" href="#53">53</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family1, CellUtils.addShadowCellSuffix(qualifier2), 0, data),
 <a class="jxr_linenumber" name="54" href="#54">54</a>                      <em class="jxr_comment">// Group 3 (2 elems but grouping should filter shadow cell, so check for 1)</em>
 <a class="jxr_linenumber" name="55" href="#55">55</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family2, qualifier1, 0, data),
-<a class="jxr_linenumber" name="56" href="#56">56</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family2, CellUtils.addShadowCellSuffixPrefix(qualifier1), 0, data)
+<a class="jxr_linenumber" name="56" href="#56">56</a>                      <strong class="jxr_keyword">new</strong> KeyValue(row, family2, CellUtils.addShadowCellSuffix(qualifier1), 0, data)
 <a class="jxr_linenumber" name="57" href="#57">57</a>              )
 <a class="jxr_linenumber" name="58" href="#58">58</a>      );
 <a class="jxr_linenumber" name="59" href="#59">59</a>  
@@ -71,7 +71,7 @@
 <a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGroupingCellsByColumnFilteringShadowCells() {
 <a class="jxr_linenumber" name="62" href="#62">62</a>  
 <a class="jxr_linenumber" name="63" href="#63">63</a>          ImmutableList&lt;Collection&lt;Cell&gt;&gt; groupedColumnsWithoutShadowCells =
-<a class="jxr_linenumber" name="64" href="#64">64</a>                  SnapshotFilterImpl.groupCellsByColumnFilteringShadowCellsAndFamilyDeletion(cells);
+<a class="jxr_linenumber" name="64" href="#64">64</a>                  TTable.groupCellsByColumnFilteringShadowCells(cells);
 <a class="jxr_linenumber" name="65" href="#65">65</a>          Log.info(<span class="jxr_string">"Column Groups "</span> + groupedColumnsWithoutShadowCells);
 <a class="jxr_linenumber" name="66" href="#66">66</a>          assertEquals(groupedColumnsWithoutShadowCells.size(), 3, <span class="jxr_string">"Should be 3 column groups"</span>);
 <a class="jxr_linenumber" name="67" href="#67">67</a>          <strong class="jxr_keyword">int</strong> group1Counter = 0;


[07/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/ReplyProcessorImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/ReplyProcessorImpl.html b/xref/org/apache/omid/tso/ReplyProcessorImpl.html
index e6685c6..2986dff 100644
--- a/xref/org/apache/omid/tso/ReplyProcessorImpl.html
+++ b/xref/org/apache/omid/tso/ReplyProcessorImpl.html
@@ -77,222 +77,203 @@
 <a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Meter.html">Meter</a> abortMeter;
 <a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Meter.html">Meter</a> commitMeter;
 <a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Meter.html">Meter</a> timestampMeter;
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Meter.html">Meter</a> fenceMeter;
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>      @Inject
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyProcessorImpl</a>(@Named(<span class="jxr_string">"ReplyStrategy"</span>) WaitStrategy strategy,
-<a class="jxr_linenumber" name="74" href="#74">74</a>              <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics, <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker, ObjectPool&lt;Batch&gt; batchPool) {
-<a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="77" href="#77">77</a>          <em class="jxr_comment">// Disruptor initialization</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>          ThreadFactoryBuilder threadFactory = <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"reply-%d"</span>);
-<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">this</strong>.disruptorExec = Executors.newSingleThreadExecutor(threadFactory.build());
-<a class="jxr_linenumber" name="82" href="#82">82</a>  
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">this</strong>.disruptor = <strong class="jxr_keyword">new</strong> Disruptor&lt;&gt;(EVENT_FACTORY, 1 &lt;&lt; 12, disruptorExec, MULTI, strategy);
-<a class="jxr_linenumber" name="84" href="#84">84</a>          disruptor.handleExceptionsWith(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/FatalExceptionHandler.html">FatalExceptionHandler</a>(panicker));
-<a class="jxr_linenumber" name="85" href="#85">85</a>          disruptor.handleEventsWith(<strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">this</strong>.replyRing = disruptor.start();
-<a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="89" href="#89">89</a>          <em class="jxr_comment">// Attribute initialization</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>          <strong class="jxr_keyword">this</strong>.batchPool = batchPool;
-<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">this</strong>.nextIDToHandle.set(0);
-<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">this</strong>.futureEvents = <strong class="jxr_keyword">new</strong> PriorityQueue&lt;&gt;(10, <strong class="jxr_keyword">new</strong> Comparator&lt;ReplyBatchEvent&gt;() {
-<a class="jxr_linenumber" name="95" href="#95">95</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compare(<a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> replyBatchEvent1, <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> replyBatchEvent2) {
-<a class="jxr_linenumber" name="96" href="#96">96</a>                  <strong class="jxr_keyword">return</strong> Long.compare(replyBatchEvent1.getBatchSequence(), replyBatchEvent2.getBatchSequence());
-<a class="jxr_linenumber" name="97" href="#97">97</a>              }
-<a class="jxr_linenumber" name="98" href="#98">98</a>          });
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>         <em class="jxr_comment">// Metrics config</em>
-<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">this</strong>.abortMeter = metrics.meter(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"aborts"</span>));
-<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">this</strong>.commitMeter = metrics.meter(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"commits"</span>));
-<a class="jxr_linenumber" name="103" href="#103">103</a>         <strong class="jxr_keyword">this</strong>.timestampMeter = metrics.meter(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"timestampAllocation"</span>));
-<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">this</strong>.fenceMeter = metrics.meter(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"fences"</span>));
+<a class="jxr_linenumber" name="70" href="#70">70</a>  
+<a class="jxr_linenumber" name="71" href="#71">71</a>      @Inject
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyProcessorImpl</a>(@Named(<span class="jxr_string">"ReplyStrategy"</span>) WaitStrategy strategy,
+<a class="jxr_linenumber" name="73" href="#73">73</a>              <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics, <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker, ObjectPool&lt;Batch&gt; batchPool) {
+<a class="jxr_linenumber" name="74" href="#74">74</a>  
+<a class="jxr_linenumber" name="75" href="#75">75</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <em class="jxr_comment">// Disruptor initialization</em>
+<a class="jxr_linenumber" name="77" href="#77">77</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>          ThreadFactoryBuilder threadFactory = <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"reply-%d"</span>);
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">this</strong>.disruptorExec = Executors.newSingleThreadExecutor(threadFactory.build());
+<a class="jxr_linenumber" name="81" href="#81">81</a>  
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">this</strong>.disruptor = <strong class="jxr_keyword">new</strong> Disruptor&lt;&gt;(EVENT_FACTORY, 1 &lt;&lt; 12, disruptorExec, MULTI, strategy);
+<a class="jxr_linenumber" name="83" href="#83">83</a>          disruptor.handleExceptionsWith(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/FatalExceptionHandler.html">FatalExceptionHandler</a>(panicker));
+<a class="jxr_linenumber" name="84" href="#84">84</a>          disruptor.handleEventsWith(<strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">this</strong>.replyRing = disruptor.start();
+<a class="jxr_linenumber" name="86" href="#86">86</a>  
+<a class="jxr_linenumber" name="87" href="#87">87</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="88" href="#88">88</a>          <em class="jxr_comment">// Attribute initialization</em>
+<a class="jxr_linenumber" name="89" href="#89">89</a>          <em class="jxr_comment">// ------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">this</strong>.batchPool = batchPool;
+<a class="jxr_linenumber" name="92" href="#92">92</a>          <strong class="jxr_keyword">this</strong>.nextIDToHandle.set(0);
+<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">this</strong>.futureEvents = <strong class="jxr_keyword">new</strong> PriorityQueue&lt;&gt;(10, <strong class="jxr_keyword">new</strong> Comparator&lt;ReplyBatchEvent&gt;() {
+<a class="jxr_linenumber" name="94" href="#94">94</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compare(<a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> replyBatchEvent1, <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> replyBatchEvent2) {
+<a class="jxr_linenumber" name="95" href="#95">95</a>                  <strong class="jxr_keyword">return</strong> Long.compare(replyBatchEvent1.getBatchSequence(), replyBatchEvent2.getBatchSequence());
+<a class="jxr_linenumber" name="96" href="#96">96</a>              }
+<a class="jxr_linenumber" name="97" href="#97">97</a>          });
+<a class="jxr_linenumber" name="98" href="#98">98</a>  
+<a class="jxr_linenumber" name="99" href="#99">99</a>          <em class="jxr_comment">// Metrics config</em>
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">this</strong>.abortMeter = metrics.meter(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"aborts"</span>));
+<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">this</strong>.commitMeter = metrics.meter(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"commits"</span>));
+<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">this</strong>.timestampMeter = metrics.meter(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"timestampAllocation"</span>));
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>         LOG.info(<span class="jxr_string">"ReplyProcessor initialized"</span>);
 <a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         LOG.info(<span class="jxr_string">"ReplyProcessor initialized"</span>);
+<a class="jxr_linenumber" name="106" href="#106">106</a>     }
 <a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     }
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>     @VisibleForTesting
-<a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">void</strong> handleReplyBatchEvent(<a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> replyBatchEvent) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="112" href="#112">112</a> 
-<a class="jxr_linenumber" name="113" href="#113">113</a>         <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch = replyBatchEvent.getBatch();
-<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; batch.getNumEvents(); i++) {
-<a class="jxr_linenumber" name="115" href="#115">115</a>             <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> event = batch.get(i);
-<a class="jxr_linenumber" name="116" href="#116">116</a> 
-<a class="jxr_linenumber" name="117" href="#117">117</a>             <strong class="jxr_keyword">switch</strong> (event.getType()) {
-<a class="jxr_linenumber" name="118" href="#118">118</a>                 <strong class="jxr_keyword">case</strong> COMMIT:
-<a class="jxr_linenumber" name="119" href="#119">119</a>                     sendCommitResponse(event.getStartTimestamp(), event.getCommitTimestamp(), event.getChannel());
-<a class="jxr_linenumber" name="120" href="#120">120</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"reply.processor.commit.latency"</span>);
-<a class="jxr_linenumber" name="121" href="#121">121</a>                     commitMeter.mark();
-<a class="jxr_linenumber" name="122" href="#122">122</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="123" href="#123">123</a>                 <strong class="jxr_keyword">case</strong> ABORT:
-<a class="jxr_linenumber" name="124" href="#124">124</a>                     sendAbortResponse(event.getStartTimestamp(), event.getChannel());
-<a class="jxr_linenumber" name="125" href="#125">125</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"reply.processor.abort.latency"</span>);
-<a class="jxr_linenumber" name="126" href="#126">126</a>                     abortMeter.mark();
-<a class="jxr_linenumber" name="127" href="#127">127</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="128" href="#128">128</a>                 <strong class="jxr_keyword">case</strong> TIMESTAMP:
-<a class="jxr_linenumber" name="129" href="#129">129</a>                     sendTimestampResponse(event.getStartTimestamp(), event.getChannel());
-<a class="jxr_linenumber" name="130" href="#130">130</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"reply.processor.timestamp.latency"</span>);
-<a class="jxr_linenumber" name="131" href="#131">131</a>                     timestampMeter.mark();
-<a class="jxr_linenumber" name="132" href="#132">132</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="133" href="#133">133</a>                 <strong class="jxr_keyword">case</strong> FENCE:
-<a class="jxr_linenumber" name="134" href="#134">134</a>                     sendFenceResponse(event.getStartTimestamp(), event.getCommitTimestamp(), event.getChannel());
-<a class="jxr_linenumber" name="135" href="#135">135</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"reply.processor.fence.latency"</span>);
-<a class="jxr_linenumber" name="136" href="#136">136</a>                     fenceMeter.mark();
-<a class="jxr_linenumber" name="137" href="#137">137</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="138" href="#138">138</a>                 <strong class="jxr_keyword">case</strong> COMMIT_RETRY:
-<a class="jxr_linenumber" name="139" href="#139">139</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"COMMIT_RETRY events must be filtered before this step: "</span> + event);
-<a class="jxr_linenumber" name="140" href="#140">140</a>                 <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="141" href="#141">141</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Event not allowed in Persistent Processor Handler: "</span> + event);
-<a class="jxr_linenumber" name="142" href="#142">142</a>             }
-<a class="jxr_linenumber" name="143" href="#143">143</a>             event.getMonCtx().publish();
-<a class="jxr_linenumber" name="144" href="#144">144</a>         }
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>         batchPool.returnObject(batch);
-<a class="jxr_linenumber" name="147" href="#147">147</a> 
-<a class="jxr_linenumber" name="148" href="#148">148</a>     }
-<a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> processWaitingEvents() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>         <strong class="jxr_keyword">while</strong> (!futureEvents.isEmpty() &amp;&amp; futureEvents.peek().getBatchSequence() == nextIDToHandle.get()) {
-<a class="jxr_linenumber" name="153" href="#153">153</a>             <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> e = futureEvents.poll();
-<a class="jxr_linenumber" name="154" href="#154">154</a>             handleReplyBatchEvent(e);
-<a class="jxr_linenumber" name="155" href="#155">155</a>             nextIDToHandle.incrementAndGet();
-<a class="jxr_linenumber" name="156" href="#156">156</a>         }
-<a class="jxr_linenumber" name="157" href="#157">157</a> 
-<a class="jxr_linenumber" name="158" href="#158">158</a>     }
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onEvent(<a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> event, <strong class="jxr_keyword">long</strong> sequence, <strong class="jxr_keyword">boolean</strong> endOfBatch) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="161" href="#161">161</a> 
-<a class="jxr_linenumber" name="162" href="#162">162</a>         <em class="jxr_comment">// Order of event's reply need to be guaranteed in order to preserve snapshot isolation.</em>
-<a class="jxr_linenumber" name="163" href="#163">163</a>         <em class="jxr_comment">// This is done in order to present a scenario where a start id of N is returned</em>
-<a class="jxr_linenumber" name="164" href="#164">164</a>         <em class="jxr_comment">// while commit smaller than still does not appear in the commit table.</em>
-<a class="jxr_linenumber" name="165" href="#165">165</a> 
-<a class="jxr_linenumber" name="166" href="#166">166</a>         <em class="jxr_comment">// If previous events were not processed yet (events contain smaller id)</em>
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">if</strong> (event.getBatchSequence() &gt; nextIDToHandle.get()) {
-<a class="jxr_linenumber" name="168" href="#168">168</a>             futureEvents.add(event);
-<a class="jxr_linenumber" name="169" href="#169">169</a>             <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="170" href="#170">170</a>         }
+<a class="jxr_linenumber" name="108" href="#108">108</a>     @VisibleForTesting
+<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">void</strong> handleReplyBatchEvent(<a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> replyBatchEvent) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="110" href="#110">110</a> 
+<a class="jxr_linenumber" name="111" href="#111">111</a>         <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch = replyBatchEvent.getBatch();
+<a class="jxr_linenumber" name="112" href="#112">112</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; batch.getNumEvents(); i++) {
+<a class="jxr_linenumber" name="113" href="#113">113</a>             <a href="../../../../org/apache/omid/tso/PersistEvent.html">PersistEvent</a> event = batch.get(i);
+<a class="jxr_linenumber" name="114" href="#114">114</a> 
+<a class="jxr_linenumber" name="115" href="#115">115</a>             <strong class="jxr_keyword">switch</strong> (event.getType()) {
+<a class="jxr_linenumber" name="116" href="#116">116</a>                 <strong class="jxr_keyword">case</strong> COMMIT:
+<a class="jxr_linenumber" name="117" href="#117">117</a>                     sendCommitResponse(event.getStartTimestamp(), event.getCommitTimestamp(), event.getChannel());
+<a class="jxr_linenumber" name="118" href="#118">118</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"reply.processor.commit.latency"</span>);
+<a class="jxr_linenumber" name="119" href="#119">119</a>                     commitMeter.mark();
+<a class="jxr_linenumber" name="120" href="#120">120</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="121" href="#121">121</a>                 <strong class="jxr_keyword">case</strong> ABORT:
+<a class="jxr_linenumber" name="122" href="#122">122</a>                     sendAbortResponse(event.getStartTimestamp(), event.getChannel());
+<a class="jxr_linenumber" name="123" href="#123">123</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"reply.processor.abort.latency"</span>);
+<a class="jxr_linenumber" name="124" href="#124">124</a>                     abortMeter.mark();
+<a class="jxr_linenumber" name="125" href="#125">125</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="126" href="#126">126</a>                 <strong class="jxr_keyword">case</strong> TIMESTAMP:
+<a class="jxr_linenumber" name="127" href="#127">127</a>                     sendTimestampResponse(event.getStartTimestamp(), event.getChannel());
+<a class="jxr_linenumber" name="128" href="#128">128</a>                     event.getMonCtx().timerStop(<span class="jxr_string">"reply.processor.timestamp.latency"</span>);
+<a class="jxr_linenumber" name="129" href="#129">129</a>                     timestampMeter.mark();
+<a class="jxr_linenumber" name="130" href="#130">130</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="131" href="#131">131</a>                 <strong class="jxr_keyword">case</strong> COMMIT_RETRY:
+<a class="jxr_linenumber" name="132" href="#132">132</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"COMMIT_RETRY events must be filtered before this step: "</span> + event);
+<a class="jxr_linenumber" name="133" href="#133">133</a>                 <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="134" href="#134">134</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Event not allowed in Persistent Processor Handler: "</span> + event);
+<a class="jxr_linenumber" name="135" href="#135">135</a>             }
+<a class="jxr_linenumber" name="136" href="#136">136</a>             event.getMonCtx().publish();
+<a class="jxr_linenumber" name="137" href="#137">137</a>         }
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>         batchPool.returnObject(batch);
+<a class="jxr_linenumber" name="140" href="#140">140</a> 
+<a class="jxr_linenumber" name="141" href="#141">141</a>     }
+<a class="jxr_linenumber" name="142" href="#142">142</a> 
+<a class="jxr_linenumber" name="143" href="#143">143</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> processWaitingEvents() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>         <strong class="jxr_keyword">while</strong> (!futureEvents.isEmpty() &amp;&amp; futureEvents.peek().getBatchSequence() == nextIDToHandle.get()) {
+<a class="jxr_linenumber" name="146" href="#146">146</a>             <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> e = futureEvents.poll();
+<a class="jxr_linenumber" name="147" href="#147">147</a>             handleReplyBatchEvent(e);
+<a class="jxr_linenumber" name="148" href="#148">148</a>             nextIDToHandle.incrementAndGet();
+<a class="jxr_linenumber" name="149" href="#149">149</a>         }
+<a class="jxr_linenumber" name="150" href="#150">150</a> 
+<a class="jxr_linenumber" name="151" href="#151">151</a>     }
+<a class="jxr_linenumber" name="152" href="#152">152</a> 
+<a class="jxr_linenumber" name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onEvent(<a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> event, <strong class="jxr_keyword">long</strong> sequence, <strong class="jxr_keyword">boolean</strong> endOfBatch) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="154" href="#154">154</a> 
+<a class="jxr_linenumber" name="155" href="#155">155</a>         <em class="jxr_comment">// Order of event's reply need to be guaranteed in order to preserve snapshot isolation.</em>
+<a class="jxr_linenumber" name="156" href="#156">156</a>         <em class="jxr_comment">// This is done in order to present a scenario where a start id of N is returned</em>
+<a class="jxr_linenumber" name="157" href="#157">157</a>         <em class="jxr_comment">// while commit smaller than still does not appear in the commit table.</em>
+<a class="jxr_linenumber" name="158" href="#158">158</a> 
+<a class="jxr_linenumber" name="159" href="#159">159</a>         <em class="jxr_comment">// If previous events were not processed yet (events contain smaller id)</em>
+<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> (event.getBatchSequence() &gt; nextIDToHandle.get()) {
+<a class="jxr_linenumber" name="161" href="#161">161</a>             futureEvents.add(event);
+<a class="jxr_linenumber" name="162" href="#162">162</a>             <strong class="jxr_keyword">return</strong>;
+<a class="jxr_linenumber" name="163" href="#163">163</a>         }
+<a class="jxr_linenumber" name="164" href="#164">164</a> 
+<a class="jxr_linenumber" name="165" href="#165">165</a>         handleReplyBatchEvent(event);
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>         nextIDToHandle.incrementAndGet();
+<a class="jxr_linenumber" name="168" href="#168">168</a> 
+<a class="jxr_linenumber" name="169" href="#169">169</a>         <em class="jxr_comment">// Process events that arrived before and kept in futureEvents.</em>
+<a class="jxr_linenumber" name="170" href="#170">170</a>         processWaitingEvents();
 <a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>         handleReplyBatchEvent(event);
+<a class="jxr_linenumber" name="172" href="#172">172</a>     }
 <a class="jxr_linenumber" name="173" href="#173">173</a> 
-<a class="jxr_linenumber" name="174" href="#174">174</a>         nextIDToHandle.incrementAndGet();
-<a class="jxr_linenumber" name="175" href="#175">175</a> 
-<a class="jxr_linenumber" name="176" href="#176">176</a>         <em class="jxr_comment">// Process events that arrived before and kept in futureEvents.</em>
-<a class="jxr_linenumber" name="177" href="#177">177</a>         processWaitingEvents();
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>     }
-<a class="jxr_linenumber" name="180" href="#180">180</a> 
-<a class="jxr_linenumber" name="181" href="#181">181</a>     @Override
-<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageResponsesBatch(<strong class="jxr_keyword">long</strong> batchSequence, <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch) {
+<a class="jxr_linenumber" name="174" href="#174">174</a>     @Override
+<a class="jxr_linenumber" name="175" href="#175">175</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageResponsesBatch(<strong class="jxr_keyword">long</strong> batchSequence, <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch) {
+<a class="jxr_linenumber" name="176" href="#176">176</a> 
+<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">long</strong> seq = replyRing.next();
+<a class="jxr_linenumber" name="178" href="#178">178</a>         <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> e = replyRing.get(seq);
+<a class="jxr_linenumber" name="179" href="#179">179</a>         ReplyBatchEvent.makeReplyBatch(e, batch, batchSequence);
+<a class="jxr_linenumber" name="180" href="#180">180</a>         replyRing.publish(seq);
+<a class="jxr_linenumber" name="181" href="#181">181</a> 
+<a class="jxr_linenumber" name="182" href="#182">182</a>     }
 <a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">long</strong> seq = replyRing.next();
-<a class="jxr_linenumber" name="185" href="#185">185</a>         <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> e = replyRing.get(seq);
-<a class="jxr_linenumber" name="186" href="#186">186</a>         ReplyBatchEvent.makeReplyBatch(e, batch, batchSequence);
-<a class="jxr_linenumber" name="187" href="#187">187</a>         replyRing.publish(seq);
-<a class="jxr_linenumber" name="188" href="#188">188</a> 
-<a class="jxr_linenumber" name="189" href="#189">189</a>     }
-<a class="jxr_linenumber" name="190" href="#190">190</a> 
-<a class="jxr_linenumber" name="191" href="#191">191</a>     @Override
-<a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendCommitResponse(<strong class="jxr_keyword">long</strong> startTimestamp, <strong class="jxr_keyword">long</strong> commitTimestamp, Channel c) {
-<a class="jxr_linenumber" name="193" href="#193">193</a> 
-<a class="jxr_linenumber" name="194" href="#194">194</a>         TSOProto.Response.Builder builder = TSOProto.Response.newBuilder();
-<a class="jxr_linenumber" name="195" href="#195">195</a>         TSOProto.CommitResponse.Builder commitBuilder = TSOProto.CommitResponse.newBuilder();
-<a class="jxr_linenumber" name="196" href="#196">196</a>         commitBuilder.setAborted(false)
-<a class="jxr_linenumber" name="197" href="#197">197</a>                 .setStartTimestamp(startTimestamp)
-<a class="jxr_linenumber" name="198" href="#198">198</a>                 .setCommitTimestamp(commitTimestamp);
-<a class="jxr_linenumber" name="199" href="#199">199</a>         builder.setCommitResponse(commitBuilder.build());
-<a class="jxr_linenumber" name="200" href="#200">200</a>         c.write(builder.build());
-<a class="jxr_linenumber" name="201" href="#201">201</a> 
-<a class="jxr_linenumber" name="202" href="#202">202</a>     }
-<a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a>     @Override
-<a class="jxr_linenumber" name="205" href="#205">205</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendAbortResponse(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c) {
+<a class="jxr_linenumber" name="184" href="#184">184</a>     @Override
+<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendCommitResponse(<strong class="jxr_keyword">long</strong> startTimestamp, <strong class="jxr_keyword">long</strong> commitTimestamp, Channel c) {
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a>         TSOProto.Response.Builder builder = TSOProto.Response.newBuilder();
+<a class="jxr_linenumber" name="188" href="#188">188</a>         TSOProto.CommitResponse.Builder commitBuilder = TSOProto.CommitResponse.newBuilder();
+<a class="jxr_linenumber" name="189" href="#189">189</a>         commitBuilder.setAborted(false)
+<a class="jxr_linenumber" name="190" href="#190">190</a>                 .setStartTimestamp(startTimestamp)
+<a class="jxr_linenumber" name="191" href="#191">191</a>                 .setCommitTimestamp(commitTimestamp);
+<a class="jxr_linenumber" name="192" href="#192">192</a>         builder.setCommitResponse(commitBuilder.build());
+<a class="jxr_linenumber" name="193" href="#193">193</a>         c.write(builder.build());
+<a class="jxr_linenumber" name="194" href="#194">194</a> 
+<a class="jxr_linenumber" name="195" href="#195">195</a>     }
+<a class="jxr_linenumber" name="196" href="#196">196</a> 
+<a class="jxr_linenumber" name="197" href="#197">197</a>     @Override
+<a class="jxr_linenumber" name="198" href="#198">198</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendAbortResponse(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c) {
+<a class="jxr_linenumber" name="199" href="#199">199</a> 
+<a class="jxr_linenumber" name="200" href="#200">200</a>         TSOProto.Response.Builder builder = TSOProto.Response.newBuilder();
+<a class="jxr_linenumber" name="201" href="#201">201</a>         TSOProto.CommitResponse.Builder commitBuilder = TSOProto.CommitResponse.newBuilder();
+<a class="jxr_linenumber" name="202" href="#202">202</a>         commitBuilder.setAborted(<strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="203" href="#203">203</a>         commitBuilder.setStartTimestamp(startTimestamp);
+<a class="jxr_linenumber" name="204" href="#204">204</a>         builder.setCommitResponse(commitBuilder.build());
+<a class="jxr_linenumber" name="205" href="#205">205</a>         c.write(builder.build());
 <a class="jxr_linenumber" name="206" href="#206">206</a> 
-<a class="jxr_linenumber" name="207" href="#207">207</a>         TSOProto.Response.Builder builder = TSOProto.Response.newBuilder();
-<a class="jxr_linenumber" name="208" href="#208">208</a>         TSOProto.CommitResponse.Builder commitBuilder = TSOProto.CommitResponse.newBuilder();
-<a class="jxr_linenumber" name="209" href="#209">209</a>         commitBuilder.setAborted(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="210" href="#210">210</a>         commitBuilder.setStartTimestamp(startTimestamp);
-<a class="jxr_linenumber" name="211" href="#211">211</a>         builder.setCommitResponse(commitBuilder.build());
-<a class="jxr_linenumber" name="212" href="#212">212</a>         c.write(builder.build());
-<a class="jxr_linenumber" name="213" href="#213">213</a> 
-<a class="jxr_linenumber" name="214" href="#214">214</a>     }
-<a class="jxr_linenumber" name="215" href="#215">215</a> 
-<a class="jxr_linenumber" name="216" href="#216">216</a>     @Override
-<a class="jxr_linenumber" name="217" href="#217">217</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendTimestampResponse(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c) {
-<a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>         TSOProto.Response.Builder builder = TSOProto.Response.newBuilder();
-<a class="jxr_linenumber" name="220" href="#220">220</a>         TSOProto.TimestampResponse.Builder respBuilder = TSOProto.TimestampResponse.newBuilder();
-<a class="jxr_linenumber" name="221" href="#221">221</a>         respBuilder.setStartTimestamp(startTimestamp);
-<a class="jxr_linenumber" name="222" href="#222">222</a>         builder.setTimestampResponse(respBuilder.build());
-<a class="jxr_linenumber" name="223" href="#223">223</a>         c.write(builder.build());
-<a class="jxr_linenumber" name="224" href="#224">224</a> 
-<a class="jxr_linenumber" name="225" href="#225">225</a>     }
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>     @Override
-<a class="jxr_linenumber" name="228" href="#228">228</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendFenceResponse(<strong class="jxr_keyword">long</strong> tableID, <strong class="jxr_keyword">long</strong> fenceTimestamp, Channel c) {
-<a class="jxr_linenumber" name="229" href="#229">229</a> 
-<a class="jxr_linenumber" name="230" href="#230">230</a>         TSOProto.Response.Builder builder = TSOProto.Response.newBuilder();
-<a class="jxr_linenumber" name="231" href="#231">231</a>         TSOProto.FenceResponse.Builder fenceBuilder = TSOProto.FenceResponse.newBuilder();
-<a class="jxr_linenumber" name="232" href="#232">232</a>         fenceBuilder.setTableId(tableID);
-<a class="jxr_linenumber" name="233" href="#233">233</a>         fenceBuilder.setFenceId(fenceTimestamp);
-<a class="jxr_linenumber" name="234" href="#234">234</a>         builder.setFenceResponse(fenceBuilder.build());
-<a class="jxr_linenumber" name="235" href="#235">235</a>         c.write(builder.build());
+<a class="jxr_linenumber" name="207" href="#207">207</a>     }
+<a class="jxr_linenumber" name="208" href="#208">208</a> 
+<a class="jxr_linenumber" name="209" href="#209">209</a>     @Override
+<a class="jxr_linenumber" name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendTimestampResponse(<strong class="jxr_keyword">long</strong> startTimestamp, Channel c) {
+<a class="jxr_linenumber" name="211" href="#211">211</a> 
+<a class="jxr_linenumber" name="212" href="#212">212</a>         TSOProto.Response.Builder builder = TSOProto.Response.newBuilder();
+<a class="jxr_linenumber" name="213" href="#213">213</a>         TSOProto.TimestampResponse.Builder respBuilder = TSOProto.TimestampResponse.newBuilder();
+<a class="jxr_linenumber" name="214" href="#214">214</a>         respBuilder.setStartTimestamp(startTimestamp);
+<a class="jxr_linenumber" name="215" href="#215">215</a>         builder.setTimestampResponse(respBuilder.build());
+<a class="jxr_linenumber" name="216" href="#216">216</a>         c.write(builder.build());
+<a class="jxr_linenumber" name="217" href="#217">217</a> 
+<a class="jxr_linenumber" name="218" href="#218">218</a>     }
+<a class="jxr_linenumber" name="219" href="#219">219</a> 
+<a class="jxr_linenumber" name="220" href="#220">220</a>     @Override
+<a class="jxr_linenumber" name="221" href="#221">221</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() {
+<a class="jxr_linenumber" name="222" href="#222">222</a> 
+<a class="jxr_linenumber" name="223" href="#223">223</a>         LOG.info(<span class="jxr_string">"Terminating Reply Processor..."</span>);
+<a class="jxr_linenumber" name="224" href="#224">224</a>         disruptor.halt();
+<a class="jxr_linenumber" name="225" href="#225">225</a>         disruptor.shutdown();
+<a class="jxr_linenumber" name="226" href="#226">226</a>         LOG.info(<span class="jxr_string">"\tReply Processor Disruptor shutdown"</span>);
+<a class="jxr_linenumber" name="227" href="#227">227</a>         disruptorExec.shutdownNow();
+<a class="jxr_linenumber" name="228" href="#228">228</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="229" href="#229">229</a>             disruptorExec.awaitTermination(3, SECONDS);
+<a class="jxr_linenumber" name="230" href="#230">230</a>             LOG.info(<span class="jxr_string">"\tReply Processor Disruptor executor shutdown"</span>);
+<a class="jxr_linenumber" name="231" href="#231">231</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
+<a class="jxr_linenumber" name="232" href="#232">232</a>             LOG.error(<span class="jxr_string">"Interrupted whilst finishing Reply Processor Disruptor executor"</span>);
+<a class="jxr_linenumber" name="233" href="#233">233</a>             Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="234" href="#234">234</a>         }
+<a class="jxr_linenumber" name="235" href="#235">235</a>         LOG.info(<span class="jxr_string">"Reply Processor terminated"</span>);
 <a class="jxr_linenumber" name="236" href="#236">236</a> 
 <a class="jxr_linenumber" name="237" href="#237">237</a>     }
 <a class="jxr_linenumber" name="238" href="#238">238</a> 
-<a class="jxr_linenumber" name="239" href="#239">239</a>     @Override
-<a class="jxr_linenumber" name="240" href="#240">240</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() {
-<a class="jxr_linenumber" name="241" href="#241">241</a> 
-<a class="jxr_linenumber" name="242" href="#242">242</a>         LOG.info(<span class="jxr_string">"Terminating Reply Processor..."</span>);
-<a class="jxr_linenumber" name="243" href="#243">243</a>         disruptor.halt();
-<a class="jxr_linenumber" name="244" href="#244">244</a>         disruptor.shutdown();
-<a class="jxr_linenumber" name="245" href="#245">245</a>         LOG.info(<span class="jxr_string">"\tReply Processor Disruptor shutdown"</span>);
-<a class="jxr_linenumber" name="246" href="#246">246</a>         disruptorExec.shutdownNow();
-<a class="jxr_linenumber" name="247" href="#247">247</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="248" href="#248">248</a>             disruptorExec.awaitTermination(3, SECONDS);
-<a class="jxr_linenumber" name="249" href="#249">249</a>             LOG.info(<span class="jxr_string">"\tReply Processor Disruptor executor shutdown"</span>);
-<a class="jxr_linenumber" name="250" href="#250">250</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
-<a class="jxr_linenumber" name="251" href="#251">251</a>             LOG.error(<span class="jxr_string">"Interrupted whilst finishing Reply Processor Disruptor executor"</span>);
-<a class="jxr_linenumber" name="252" href="#252">252</a>             Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="253" href="#253">253</a>         }
-<a class="jxr_linenumber" name="254" href="#254">254</a>         LOG.info(<span class="jxr_string">"Reply Processor terminated"</span>);
-<a class="jxr_linenumber" name="255" href="#255">255</a> 
-<a class="jxr_linenumber" name="256" href="#256">256</a>     }
-<a class="jxr_linenumber" name="257" href="#257">257</a> 
-<a class="jxr_linenumber" name="258" href="#258">258</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> {
-<a class="jxr_linenumber" name="259" href="#259">259</a> 
-<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch;
-<a class="jxr_linenumber" name="261" href="#261">261</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> batchSequence;
+<a class="jxr_linenumber" name="239" href="#239">239</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> {
+<a class="jxr_linenumber" name="240" href="#240">240</a> 
+<a class="jxr_linenumber" name="241" href="#241">241</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch;
+<a class="jxr_linenumber" name="242" href="#242">242</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> batchSequence;
+<a class="jxr_linenumber" name="243" href="#243">243</a> 
+<a class="jxr_linenumber" name="244" href="#244">244</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makeReplyBatch(<a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> e, <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch, <strong class="jxr_keyword">long</strong> batchSequence) {
+<a class="jxr_linenumber" name="245" href="#245">245</a>             e.batch = batch;
+<a class="jxr_linenumber" name="246" href="#246">246</a>             e.batchSequence = batchSequence;
+<a class="jxr_linenumber" name="247" href="#247">247</a>         }
+<a class="jxr_linenumber" name="248" href="#248">248</a> 
+<a class="jxr_linenumber" name="249" href="#249">249</a>         <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> getBatch() {
+<a class="jxr_linenumber" name="250" href="#250">250</a>             <strong class="jxr_keyword">return</strong> batch;
+<a class="jxr_linenumber" name="251" href="#251">251</a>         }
+<a class="jxr_linenumber" name="252" href="#252">252</a> 
+<a class="jxr_linenumber" name="253" href="#253">253</a>         <strong class="jxr_keyword">long</strong> getBatchSequence() {
+<a class="jxr_linenumber" name="254" href="#254">254</a>             <strong class="jxr_keyword">return</strong> batchSequence;
+<a class="jxr_linenumber" name="255" href="#255">255</a>         }
+<a class="jxr_linenumber" name="256" href="#256">256</a> 
+<a class="jxr_linenumber" name="257" href="#257">257</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> EventFactory&lt;ReplyBatchEvent&gt; EVENT_FACTORY = <strong class="jxr_keyword">new</strong> EventFactory&lt;ReplyBatchEvent&gt;() {
+<a class="jxr_linenumber" name="258" href="#258">258</a>             <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> newInstance() {
+<a class="jxr_linenumber" name="259" href="#259">259</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a>();
+<a class="jxr_linenumber" name="260" href="#260">260</a>             }
+<a class="jxr_linenumber" name="261" href="#261">261</a>         };
 <a class="jxr_linenumber" name="262" href="#262">262</a> 
-<a class="jxr_linenumber" name="263" href="#263">263</a>         <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> makeReplyBatch(<a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> e, <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> batch, <strong class="jxr_keyword">long</strong> batchSequence) {
-<a class="jxr_linenumber" name="264" href="#264">264</a>             e.batch = batch;
-<a class="jxr_linenumber" name="265" href="#265">265</a>             e.batchSequence = batchSequence;
-<a class="jxr_linenumber" name="266" href="#266">266</a>         }
-<a class="jxr_linenumber" name="267" href="#267">267</a> 
-<a class="jxr_linenumber" name="268" href="#268">268</a>         <a href="../../../../org/apache/omid/tso/Batch.html">Batch</a> getBatch() {
-<a class="jxr_linenumber" name="269" href="#269">269</a>             <strong class="jxr_keyword">return</strong> batch;
-<a class="jxr_linenumber" name="270" href="#270">270</a>         }
-<a class="jxr_linenumber" name="271" href="#271">271</a> 
-<a class="jxr_linenumber" name="272" href="#272">272</a>         <strong class="jxr_keyword">long</strong> getBatchSequence() {
-<a class="jxr_linenumber" name="273" href="#273">273</a>             <strong class="jxr_keyword">return</strong> batchSequence;
-<a class="jxr_linenumber" name="274" href="#274">274</a>         }
-<a class="jxr_linenumber" name="275" href="#275">275</a> 
-<a class="jxr_linenumber" name="276" href="#276">276</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> EventFactory&lt;ReplyBatchEvent&gt; EVENT_FACTORY = <strong class="jxr_keyword">new</strong> EventFactory&lt;ReplyBatchEvent&gt;() {
-<a class="jxr_linenumber" name="277" href="#277">277</a>             <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a> newInstance() {
-<a class="jxr_linenumber" name="278" href="#278">278</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/ReplyProcessorImpl.html">ReplyBatchEvent</a>();
-<a class="jxr_linenumber" name="279" href="#279">279</a>             }
-<a class="jxr_linenumber" name="280" href="#280">280</a>         };
-<a class="jxr_linenumber" name="281" href="#281">281</a> 
-<a class="jxr_linenumber" name="282" href="#282">282</a>     }
-<a class="jxr_linenumber" name="283" href="#283">283</a> 
-<a class="jxr_linenumber" name="284" href="#284">284</a> }
-<a class="jxr_linenumber" name="285" href="#285">285</a> 
+<a class="jxr_linenumber" name="263" href="#263">263</a>     }
+<a class="jxr_linenumber" name="264" href="#264">264</a> 
+<a class="jxr_linenumber" name="265" href="#265">265</a> }
+<a class="jxr_linenumber" name="266" href="#266">266</a> 
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/RequestProcessor.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/RequestProcessor.html b/xref/org/apache/omid/tso/RequestProcessor.html
index 7288eda..231a703 100644
--- a/xref/org/apache/omid/tso/RequestProcessor.html
+++ b/xref/org/apache/omid/tso/RequestProcessor.html
@@ -37,10 +37,9 @@
 <a class="jxr_linenumber" name="27" href="#27">27</a>  
 <a class="jxr_linenumber" name="28" href="#28">28</a>      <strong class="jxr_keyword">void</strong> timestampRequest(Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx);
 <a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>      <strong class="jxr_keyword">void</strong> commitRequest(<strong class="jxr_keyword">long</strong> startTimestamp, Collection&lt;Long&gt; writeSet, Collection&lt;Long&gt; tableIdSet, <strong class="jxr_keyword">boolean</strong> isRetry, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx);
+<a class="jxr_linenumber" name="30" href="#30">30</a>      <strong class="jxr_keyword">void</strong> commitRequest(<strong class="jxr_keyword">long</strong> startTimestamp, Collection&lt;Long&gt; writeSet, <strong class="jxr_keyword">boolean</strong> isRetry, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx);
 <a class="jxr_linenumber" name="31" href="#31">31</a>  
-<a class="jxr_linenumber" name="32" href="#32">32</a>      <strong class="jxr_keyword">void</strong> fenceRequest(<strong class="jxr_keyword">long</strong> tableID, Channel c, <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a> monCtx);
-<a class="jxr_linenumber" name="33" href="#33">33</a>  }
+<a class="jxr_linenumber" name="32" href="#32">32</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[19/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/examples/SnapshotIsolationExample.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/examples/SnapshotIsolationExample.html b/xref/org/apache/omid/examples/SnapshotIsolationExample.html
index c8372ac..16f8237 100644
--- a/xref/org/apache/omid/examples/SnapshotIsolationExample.html
+++ b/xref/org/apache/omid/examples/SnapshotIsolationExample.html
@@ -27,204 +27,203 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.examples;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.RollbackException;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TTable;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TransactionManager;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Preconditions;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************************</em>
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * Example code which demonstrates the preservation of Snapshot Isolation when writing shared data concurrently</em>
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************************</em>
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * Please @see{BasicExample} first</em>
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * In the code below, two concurrent transactions (Tx1 and Tx2), try to update the same column in HBase. This will</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * result in the rollback of Tx2 -the last one trying to commit- due to conflicts in the writeset with the previously</em>
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * committed transaction Tx1. Also shows how Tx2 reads the right values from its own snapshot in HBase data.</em>
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * After building the package with 'mvn clean package' find the resulting examples-{version}-bin.tar.gz file in the</em>
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * 'examples/target' folder. Copy it to the target host and expand with 'tar -zxvf examples-{version}-bin.tar.gz'.</em>
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * Make sure that 'hbase-site.xml' and 'core-site.xml' are either in classpath (see run.sh) or explicitly referenced via</em>
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * command line arguments. If a secure HBase deployment is needed, use also command line arguments to specify the</em>
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * principal (user) and keytab file.</em>
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * The example requires a user table to perform transactional read/write operations. A table is already specified in the</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * default configuration, and can be created with the following command using the 'hbase shell':</em>
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> * create 'MY_TX_TABLE', {NAME =&amp;gt; 'MY_CF', VERSIONS =&amp;gt; '2147483647', TTL =&amp;gt; '2147483647'}</em>
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * Make sure that the principal/user has RW permissions for the given table using also the 'hbase shell':</em>
-<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> * grant '{principal/user}', 'RW', 'MY_TX_TABLE'</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment"> * Alternatively, a table with a column family already created can be used by specifying the table name and column</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> * family identifiers using the command line arguments (see details also in 'run.sh') If a table namespace is required,</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> * specify it like this: 'namespace:table_name'</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>  <em class="jxr_javadoccomment"> * Finally, run the example using the 'run.sh' script without arguments or specifying the necessary configuration</em>
-<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment"> * parameters if required.</em>
-<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">SnapshotIsolationExample</a> {
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(SnapshotIsolationExample.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier;
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] initialData;
-<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] dataValue1;
-<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] dataValue2;
-<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/examples/RowIdGenerator.html">RowIdGenerator</a> rowIdGenerator = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">StaticRowIdGenerator</a>();
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> String userTableName;
-<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">private</strong> byte[] family;
-<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/TransactionManager.html">TransactionManager</a> tm;
-<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> txTable;
-<a class="jxr_linenumber" name="90" href="#90">90</a>  
-<a class="jxr_linenumber" name="91" href="#91">91</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="92" href="#92">92</a>          <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">SnapshotIsolationExample</a> example = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">SnapshotIsolationExample</a>(args);
-<a class="jxr_linenumber" name="93" href="#93">93</a>          example.execute();
-<a class="jxr_linenumber" name="94" href="#94">94</a>          example.close();
-<a class="jxr_linenumber" name="95" href="#95">95</a>      }
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>      <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">SnapshotIsolationExample</a>(String[] args) <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="98" href="#98">98</a>          LOG.info(<span class="jxr_string">"Parsing the command line arguments"</span>);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          userTableName = <span class="jxr_string">"MY_TX_TABLE"</span>;
-<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 0 &amp;&amp; StringUtils.isNotEmpty(args[0])) {
-<a class="jxr_linenumber" name="101" href="#101">101</a>             userTableName = args[0];
-<a class="jxr_linenumber" name="102" href="#102">102</a>         }
-<a class="jxr_linenumber" name="103" href="#103">103</a>         family = Bytes.toBytes(<span class="jxr_string">"MY_CF"</span>);
-<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 1 &amp;&amp; StringUtils.isNotEmpty(args[1])) {
-<a class="jxr_linenumber" name="105" href="#105">105</a>             family = Bytes.toBytes(args[1]);
-<a class="jxr_linenumber" name="106" href="#106">106</a>         }
-<a class="jxr_linenumber" name="107" href="#107">107</a>         LOG.info(<span class="jxr_string">"Table '{}', column family '{}'"</span>, userTableName, Bytes.toString(family));
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>         qualifier = Bytes.toBytes(<span class="jxr_string">"MY_Q"</span>);
-<a class="jxr_linenumber" name="110" href="#110">110</a>         initialData = Bytes.toBytes(<span class="jxr_string">"initialVal"</span>);
-<a class="jxr_linenumber" name="111" href="#111">111</a>         dataValue1 = Bytes.toBytes(<span class="jxr_string">"val1"</span>);
-<a class="jxr_linenumber" name="112" href="#112">112</a>         dataValue2 = Bytes.toBytes(<span class="jxr_string">"val2"</span>);
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>         LOG.info(<span class="jxr_string">"--------"</span>);
-<a class="jxr_linenumber" name="115" href="#115">115</a>         LOG.info(<span class="jxr_string">"NOTE: All Transactions in the Example access column {}:{}/{}/{} [TABLE:ROW/CF/Q]"</span>,
-<a class="jxr_linenumber" name="116" href="#116">116</a>                  userTableName, Bytes.toString(rowIdGenerator.getRowId()), Bytes.toString(family),
-<a class="jxr_linenumber" name="117" href="#117">117</a>                  Bytes.toString(qualifier));
-<a class="jxr_linenumber" name="118" href="#118">118</a>         LOG.info(<span class="jxr_string">"--------"</span>);
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>         LOG.info(<span class="jxr_string">"Creating access to Omid Transaction Manager &amp; Transactional Table '{}'"</span>, userTableName);
-<a class="jxr_linenumber" name="121" href="#121">121</a>         tm = HBaseTransactionManager.newInstance();
-<a class="jxr_linenumber" name="122" href="#122">122</a>         txTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(ConnectionFactory.createConnection(), userTableName);
-<a class="jxr_linenumber" name="123" href="#123">123</a>     }
-<a class="jxr_linenumber" name="124" href="#124">124</a> 
-<a class="jxr_linenumber" name="125" href="#125">125</a>     <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> IOException, RollbackException {
-<a class="jxr_linenumber" name="126" href="#126">126</a> 
-<a class="jxr_linenumber" name="127" href="#127">127</a>         <em class="jxr_comment">// A transaction Tx0 sets an initial value to a particular column in an specific row</em>
-<a class="jxr_linenumber" name="128" href="#128">128</a>         <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx0 = tm.begin();
-<a class="jxr_linenumber" name="129" href="#129">129</a>         byte[] rowId = rowIdGenerator.getRowId();
-<a class="jxr_linenumber" name="130" href="#130">130</a>         Put initialPut = <strong class="jxr_keyword">new</strong> Put(rowId);
-<a class="jxr_linenumber" name="131" href="#131">131</a>         initialPut.addColumn(family, qualifier, initialData);
-<a class="jxr_linenumber" name="132" href="#132">132</a>         txTable.put(tx0, initialPut);
-<a class="jxr_linenumber" name="133" href="#133">133</a>         tm.commit(tx0);
-<a class="jxr_linenumber" name="134" href="#134">134</a>         LOG.info(<span class="jxr_string">"Initial Transaction {} COMMITTED. Base value written in {}:{}/{}/{} = {}"</span>,
-<a class="jxr_linenumber" name="135" href="#135">135</a>                  tx0, userTableName, Bytes.toString(rowId), Bytes.toString(family),
-<a class="jxr_linenumber" name="136" href="#136">136</a>                  Bytes.toString(qualifier), Bytes.toString(initialData));
-<a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>         <em class="jxr_comment">// Transaction Tx1 starts, creates its own snapshot of the current data in HBase and writes new data</em>
-<a class="jxr_linenumber" name="139" href="#139">139</a>         <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx1 = tm.begin();
-<a class="jxr_linenumber" name="140" href="#140">140</a>         LOG.info(<span class="jxr_string">"Transaction {} STARTED"</span>, tx1);
-<a class="jxr_linenumber" name="141" href="#141">141</a>         Put tx1Put = <strong class="jxr_keyword">new</strong> Put(rowId);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         tx1Put.addColumn(family, qualifier, dataValue1);
-<a class="jxr_linenumber" name="143" href="#143">143</a>         txTable.put(tx1, tx1Put);
-<a class="jxr_linenumber" name="144" href="#144">144</a>         LOG.info(<span class="jxr_string">"Transaction {} updates base value in {}:{}/{}/{} = {} in its own Snapshot"</span>,
-<a class="jxr_linenumber" name="145" href="#145">145</a>                  tx1, userTableName, Bytes.toString(rowId), Bytes.toString(family),
-<a class="jxr_linenumber" name="146" href="#146">146</a>                  Bytes.toString(qualifier), Bytes.toString(dataValue1));
-<a class="jxr_linenumber" name="147" href="#147">147</a> 
-<a class="jxr_linenumber" name="148" href="#148">148</a>         <em class="jxr_comment">// A concurrent transaction Tx2 starts, creates its own snapshot and reads the column value</em>
-<a class="jxr_linenumber" name="149" href="#149">149</a>         <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx2 = tm.begin();
-<a class="jxr_linenumber" name="150" href="#150">150</a>         LOG.info(<span class="jxr_string">"Concurrent Transaction {} STARTED"</span>, tx2);
-<a class="jxr_linenumber" name="151" href="#151">151</a>         Get tx2Get = <strong class="jxr_keyword">new</strong> Get(rowId);
-<a class="jxr_linenumber" name="152" href="#152">152</a>         tx2Get.addColumn(family, qualifier);
-<a class="jxr_linenumber" name="153" href="#153">153</a>         Result tx2GetResult = txTable.get(tx2, tx2Get);
-<a class="jxr_linenumber" name="154" href="#154">154</a>         Preconditions.checkState(Arrays.equals(tx2GetResult.value(), initialData),
-<a class="jxr_linenumber" name="155" href="#155">155</a>                                  <span class="jxr_string">"As Tx1 is not yet committed, Tx2 should read the value set by Tx0 not the value written by Tx1"</span>);
-<a class="jxr_linenumber" name="156" href="#156">156</a>         LOG.info(
-<a class="jxr_linenumber" name="157" href="#157">157</a>             <span class="jxr_string">"Concurrent Transaction {} should read base value in {}:{}/{}/{} from its Snapshot | Value read = {}"</span>,
-<a class="jxr_linenumber" name="158" href="#158">158</a>             tx2, userTableName, Bytes.toString(rowId), Bytes.toString(family),
-<a class="jxr_linenumber" name="159" href="#159">159</a>             Bytes.toString(qualifier), Bytes.toString(tx2GetResult.value()));
-<a class="jxr_linenumber" name="160" href="#160">160</a> 
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <em class="jxr_comment">// Transaction Tx1 tries to commit and as there're no conflicting changes, persists the new value in HBase</em>
-<a class="jxr_linenumber" name="162" href="#162">162</a>         tm.commit(tx1);
-<a class="jxr_linenumber" name="163" href="#163">163</a>         LOG.info(<span class="jxr_string">"Transaction {} COMMITTED. New column value {}:{}/{}/{} = {}"</span>,
-<a class="jxr_linenumber" name="164" href="#164">164</a>                  tx1, userTableName, Bytes.toString(rowId), Bytes.toString(family),
-<a class="jxr_linenumber" name="165" href="#165">165</a>                  Bytes.toString(qualifier), Bytes.toString(dataValue1));
-<a class="jxr_linenumber" name="166" href="#166">166</a> 
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <em class="jxr_comment">// Tx2 reading again after Tx1 commit must read data from its snapshot...</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a>         tx2Get = <strong class="jxr_keyword">new</strong> Get(rowId);
-<a class="jxr_linenumber" name="169" href="#169">169</a>         tx2Get.addColumn(family, qualifier);
-<a class="jxr_linenumber" name="170" href="#170">170</a>         tx2GetResult = txTable.get(tx2, tx2Get);
-<a class="jxr_linenumber" name="171" href="#171">171</a>         <em class="jxr_comment">// ...so it must read the initial value written by Tx0</em>
-<a class="jxr_linenumber" name="172" href="#172">172</a>         LOG.info(
-<a class="jxr_linenumber" name="173" href="#173">173</a>             <span class="jxr_string">"Concurrent Transaction {} should read again base value in {}:{}/{}/{} from its Snapshot | Value read = {}"</span>,
-<a class="jxr_linenumber" name="174" href="#174">174</a>             tx2, userTableName, Bytes.toString(rowId), Bytes.toString(family),
-<a class="jxr_linenumber" name="175" href="#175">175</a>             Bytes.toString(qualifier), Bytes.toString(tx2GetResult.value()));
-<a class="jxr_linenumber" name="176" href="#176">176</a>         Preconditions.checkState(Arrays.equals(tx2GetResult.value(), initialData),
-<a class="jxr_linenumber" name="177" href="#177">177</a>                                  <span class="jxr_string">"Tx2 must read the initial value written by Tx0"</span>);
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>         <em class="jxr_comment">// Tx2 tries to write the column written by the committed concurrent transaction Tx1...</em>
-<a class="jxr_linenumber" name="180" href="#180">180</a>         Put tx2Put = <strong class="jxr_keyword">new</strong> Put(rowId);
-<a class="jxr_linenumber" name="181" href="#181">181</a>         tx2Put.addColumn(family, qualifier, dataValue2);
-<a class="jxr_linenumber" name="182" href="#182">182</a>         txTable.put(tx2, tx2Put);
-<a class="jxr_linenumber" name="183" href="#183">183</a>         LOG.info(
-<a class="jxr_linenumber" name="184" href="#184">184</a>             <span class="jxr_string">"Concurrent Transaction {} updates {}:{}/{}/{} = {} in its own Snapshot (Will conflict with {} at commit time)"</span>,
-<a class="jxr_linenumber" name="185" href="#185">185</a>             tx2, userTableName, Bytes.toString(rowId), Bytes.toString(family),
-<a class="jxr_linenumber" name="186" href="#186">186</a>             Bytes.toString(qualifier), Bytes.toString(dataValue1), tx1);
-<a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>         <em class="jxr_comment">// ... and when committing, Tx2 has to abort due to concurrent conflicts with committed transaction Tx1</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="190" href="#190">190</a>             LOG.info(<span class="jxr_string">"Concurrent Transaction {} TRYING TO COMMIT"</span>, tx2);
-<a class="jxr_linenumber" name="191" href="#191">191</a>             tm.commit(tx2);
-<a class="jxr_linenumber" name="192" href="#192">192</a>             <em class="jxr_comment">// should throw an exception</em>
-<a class="jxr_linenumber" name="193" href="#193">193</a>             Preconditions.checkState(false, <span class="jxr_string">"Should have thrown RollbackException"</span>);
-<a class="jxr_linenumber" name="194" href="#194">194</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="195" href="#195">195</a>             LOG.info(<span class="jxr_string">"Concurrent Transaction {} ROLLED-BACK : {}"</span>, tx2, e.getMessage());
-<a class="jxr_linenumber" name="196" href="#196">196</a>         }
-<a class="jxr_linenumber" name="197" href="#197">197</a>     }
-<a class="jxr_linenumber" name="198" href="#198">198</a> 
-<a class="jxr_linenumber" name="199" href="#199">199</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="200" href="#200">200</a>         tm.close();
-<a class="jxr_linenumber" name="201" href="#201">201</a>         txTable.close();
-<a class="jxr_linenumber" name="202" href="#202">202</a>     }
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Preconditions;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.RollbackException;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TTable;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TransactionManager;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************************</em>
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * Example code which demonstrates the preservation of Snapshot Isolation when writing shared data concurrently</em>
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************************</em>
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * Please @see{BasicExample} first</em>
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * In the code below, two concurrent transactions (Tx1 and Tx2), try to update the same column in HBase. This will</em>
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * result in the rollback of Tx2 -the last one trying to commit- due to conflicts in the writeset with the previously</em>
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * committed transaction Tx1. Also shows how Tx2 reads the right values from its own snapshot in HBase data.</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * After building the package with 'mvn clean package' find the resulting examples-{version}-bin.tar.gz file in the</em>
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * 'examples/target' folder. Copy it to the target host and expand with 'tar -zxvf examples-{version}-bin.tar.gz'.</em>
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * Make sure that 'hbase-site.xml' and 'core-site.xml' are either in classpath (see run.sh) or explicitly referenced via</em>
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * command line arguments. If a secure HBase deployment is needed, use also command line arguments to specify the</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * principal (user) and keytab file.</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * The example requires a user table to perform transactional read/write operations. A table is already specified in the</em>
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * default configuration, and can be created with the following command using the 'hbase shell':</em>
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * create 'MY_TX_TABLE', {NAME =&amp;gt; 'MY_CF', VERSIONS =&amp;gt; '2147483647', TTL =&amp;gt; '2147483647'}</em>
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> * Make sure that the principal/user has RW permissions for the given table using also the 'hbase shell':</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * grant '{principal/user}', 'RW', 'MY_TX_TABLE'</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment"> * Alternatively, a table with a column family already created can be used by specifying the table name and column</em>
+<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment"> * family identifiers using the command line arguments (see details also in 'run.sh') If a table namespace is required,</em>
+<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> * specify it like this: 'namespace:table_name'</em>
+<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment"> * Finally, run the example using the 'run.sh' script without arguments or specifying the necessary configuration</em>
+<a class="jxr_linenumber" name="75" href="#75">75</a>  <em class="jxr_javadoccomment"> * parameters if required.</em>
+<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">SnapshotIsolationExample</a> {
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(SnapshotIsolationExample.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier;
+<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] initialData;
+<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] dataValue1;
+<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] dataValue2;
+<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/examples/RowIdGenerator.html">RowIdGenerator</a> rowIdGenerator = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">StaticRowIdGenerator</a>();
+<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> String userTableName;
+<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> byte[] family;
+<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/TransactionManager.html">TransactionManager</a> tm;
+<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> txTable;
+<a class="jxr_linenumber" name="89" href="#89">89</a>  
+<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="91" href="#91">91</a>          <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">SnapshotIsolationExample</a> example = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">SnapshotIsolationExample</a>(args);
+<a class="jxr_linenumber" name="92" href="#92">92</a>          example.execute();
+<a class="jxr_linenumber" name="93" href="#93">93</a>          example.close();
+<a class="jxr_linenumber" name="94" href="#94">94</a>      }
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>      <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">SnapshotIsolationExample</a>(String[] args) <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
+<a class="jxr_linenumber" name="97" href="#97">97</a>          LOG.info(<span class="jxr_string">"Parsing the command line arguments"</span>);
+<a class="jxr_linenumber" name="98" href="#98">98</a>          userTableName = <span class="jxr_string">"MY_TX_TABLE"</span>;
+<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 0 &amp;&amp; StringUtils.isNotEmpty(args[0])) {
+<a class="jxr_linenumber" name="100" href="#100">100</a>             userTableName = args[0];
+<a class="jxr_linenumber" name="101" href="#101">101</a>         }
+<a class="jxr_linenumber" name="102" href="#102">102</a>         family = Bytes.toBytes(<span class="jxr_string">"MY_CF"</span>);
+<a class="jxr_linenumber" name="103" href="#103">103</a>         <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 1 &amp;&amp; StringUtils.isNotEmpty(args[1])) {
+<a class="jxr_linenumber" name="104" href="#104">104</a>             family = Bytes.toBytes(args[1]);
+<a class="jxr_linenumber" name="105" href="#105">105</a>         }
+<a class="jxr_linenumber" name="106" href="#106">106</a>         LOG.info(<span class="jxr_string">"Table '{}', column family '{}'"</span>, userTableName, Bytes.toString(family));
+<a class="jxr_linenumber" name="107" href="#107">107</a> 
+<a class="jxr_linenumber" name="108" href="#108">108</a>         qualifier = Bytes.toBytes(<span class="jxr_string">"MY_Q"</span>);
+<a class="jxr_linenumber" name="109" href="#109">109</a>         initialData = Bytes.toBytes(<span class="jxr_string">"initialVal"</span>);
+<a class="jxr_linenumber" name="110" href="#110">110</a>         dataValue1 = Bytes.toBytes(<span class="jxr_string">"val1"</span>);
+<a class="jxr_linenumber" name="111" href="#111">111</a>         dataValue2 = Bytes.toBytes(<span class="jxr_string">"val2"</span>);
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a>         LOG.info(<span class="jxr_string">"--------"</span>);
+<a class="jxr_linenumber" name="114" href="#114">114</a>         LOG.info(<span class="jxr_string">"NOTE: All Transactions in the Example access column {}:{}/{}/{} [TABLE:ROW/CF/Q]"</span>,
+<a class="jxr_linenumber" name="115" href="#115">115</a>                  userTableName, Bytes.toString(rowIdGenerator.getRowId()), Bytes.toString(family),
+<a class="jxr_linenumber" name="116" href="#116">116</a>                  Bytes.toString(qualifier));
+<a class="jxr_linenumber" name="117" href="#117">117</a>         LOG.info(<span class="jxr_string">"--------"</span>);
+<a class="jxr_linenumber" name="118" href="#118">118</a> 
+<a class="jxr_linenumber" name="119" href="#119">119</a>         LOG.info(<span class="jxr_string">"Creating access to Omid Transaction Manager &amp; Transactional Table '{}'"</span>, userTableName);
+<a class="jxr_linenumber" name="120" href="#120">120</a>         tm = HBaseTransactionManager.newInstance();
+<a class="jxr_linenumber" name="121" href="#121">121</a>         txTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(userTableName);
+<a class="jxr_linenumber" name="122" href="#122">122</a>     }
+<a class="jxr_linenumber" name="123" href="#123">123</a> 
+<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> IOException, RollbackException {
+<a class="jxr_linenumber" name="125" href="#125">125</a> 
+<a class="jxr_linenumber" name="126" href="#126">126</a>         <em class="jxr_comment">// A transaction Tx0 sets an initial value to a particular column in an specific row</em>
+<a class="jxr_linenumber" name="127" href="#127">127</a>         <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx0 = tm.begin();
+<a class="jxr_linenumber" name="128" href="#128">128</a>         byte[] rowId = rowIdGenerator.getRowId();
+<a class="jxr_linenumber" name="129" href="#129">129</a>         Put initialPut = <strong class="jxr_keyword">new</strong> Put(rowId);
+<a class="jxr_linenumber" name="130" href="#130">130</a>         initialPut.add(family, qualifier, initialData);
+<a class="jxr_linenumber" name="131" href="#131">131</a>         txTable.put(tx0, initialPut);
+<a class="jxr_linenumber" name="132" href="#132">132</a>         tm.commit(tx0);
+<a class="jxr_linenumber" name="133" href="#133">133</a>         LOG.info(<span class="jxr_string">"Initial Transaction {} COMMITTED. Base value written in {}:{}/{}/{} = {}"</span>,
+<a class="jxr_linenumber" name="134" href="#134">134</a>                  tx0, userTableName, Bytes.toString(rowId), Bytes.toString(family),
+<a class="jxr_linenumber" name="135" href="#135">135</a>                  Bytes.toString(qualifier), Bytes.toString(initialData));
+<a class="jxr_linenumber" name="136" href="#136">136</a> 
+<a class="jxr_linenumber" name="137" href="#137">137</a>         <em class="jxr_comment">// Transaction Tx1 starts, creates its own snapshot of the current data in HBase and writes new data</em>
+<a class="jxr_linenumber" name="138" href="#138">138</a>         <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx1 = tm.begin();
+<a class="jxr_linenumber" name="139" href="#139">139</a>         LOG.info(<span class="jxr_string">"Transaction {} STARTED"</span>, tx1);
+<a class="jxr_linenumber" name="140" href="#140">140</a>         Put tx1Put = <strong class="jxr_keyword">new</strong> Put(rowId);
+<a class="jxr_linenumber" name="141" href="#141">141</a>         tx1Put.add(family, qualifier, dataValue1);
+<a class="jxr_linenumber" name="142" href="#142">142</a>         txTable.put(tx1, tx1Put);
+<a class="jxr_linenumber" name="143" href="#143">143</a>         LOG.info(<span class="jxr_string">"Transaction {} updates base value in {}:{}/{}/{} = {} in its own Snapshot"</span>,
+<a class="jxr_linenumber" name="144" href="#144">144</a>                  tx1, userTableName, Bytes.toString(rowId), Bytes.toString(family),
+<a class="jxr_linenumber" name="145" href="#145">145</a>                  Bytes.toString(qualifier), Bytes.toString(dataValue1));
+<a class="jxr_linenumber" name="146" href="#146">146</a> 
+<a class="jxr_linenumber" name="147" href="#147">147</a>         <em class="jxr_comment">// A concurrent transaction Tx2 starts, creates its own snapshot and reads the column value</em>
+<a class="jxr_linenumber" name="148" href="#148">148</a>         <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx2 = tm.begin();
+<a class="jxr_linenumber" name="149" href="#149">149</a>         LOG.info(<span class="jxr_string">"Concurrent Transaction {} STARTED"</span>, tx2);
+<a class="jxr_linenumber" name="150" href="#150">150</a>         Get tx2Get = <strong class="jxr_keyword">new</strong> Get(rowId);
+<a class="jxr_linenumber" name="151" href="#151">151</a>         tx2Get.addColumn(family, qualifier);
+<a class="jxr_linenumber" name="152" href="#152">152</a>         Result tx2GetResult = txTable.get(tx2, tx2Get);
+<a class="jxr_linenumber" name="153" href="#153">153</a>         Preconditions.checkState(Arrays.equals(tx2GetResult.value(), initialData),
+<a class="jxr_linenumber" name="154" href="#154">154</a>                                  <span class="jxr_string">"As Tx1 is not yet committed, Tx2 should read the value set by Tx0 not the value written by Tx1"</span>);
+<a class="jxr_linenumber" name="155" href="#155">155</a>         LOG.info(
+<a class="jxr_linenumber" name="156" href="#156">156</a>             <span class="jxr_string">"Concurrent Transaction {} should read base value in {}:{}/{}/{} from its Snapshot | Value read = {}"</span>,
+<a class="jxr_linenumber" name="157" href="#157">157</a>             tx2, userTableName, Bytes.toString(rowId), Bytes.toString(family),
+<a class="jxr_linenumber" name="158" href="#158">158</a>             Bytes.toString(qualifier), Bytes.toString(tx2GetResult.value()));
+<a class="jxr_linenumber" name="159" href="#159">159</a> 
+<a class="jxr_linenumber" name="160" href="#160">160</a>         <em class="jxr_comment">// Transaction Tx1 tries to commit and as there're no conflicting changes, persists the new value in HBase</em>
+<a class="jxr_linenumber" name="161" href="#161">161</a>         tm.commit(tx1);
+<a class="jxr_linenumber" name="162" href="#162">162</a>         LOG.info(<span class="jxr_string">"Transaction {} COMMITTED. New column value {}:{}/{}/{} = {}"</span>,
+<a class="jxr_linenumber" name="163" href="#163">163</a>                  tx1, userTableName, Bytes.toString(rowId), Bytes.toString(family),
+<a class="jxr_linenumber" name="164" href="#164">164</a>                  Bytes.toString(qualifier), Bytes.toString(dataValue1));
+<a class="jxr_linenumber" name="165" href="#165">165</a> 
+<a class="jxr_linenumber" name="166" href="#166">166</a>         <em class="jxr_comment">// Tx2 reading again after Tx1 commit must read data from its snapshot...</em>
+<a class="jxr_linenumber" name="167" href="#167">167</a>         tx2Get = <strong class="jxr_keyword">new</strong> Get(rowId);
+<a class="jxr_linenumber" name="168" href="#168">168</a>         tx2Get.addColumn(family, qualifier);
+<a class="jxr_linenumber" name="169" href="#169">169</a>         tx2GetResult = txTable.get(tx2, tx2Get);
+<a class="jxr_linenumber" name="170" href="#170">170</a>         <em class="jxr_comment">// ...so it must read the initial value written by Tx0</em>
+<a class="jxr_linenumber" name="171" href="#171">171</a>         LOG.info(
+<a class="jxr_linenumber" name="172" href="#172">172</a>             <span class="jxr_string">"Concurrent Transaction {} should read again base value in {}:{}/{}/{} from its Snapshot | Value read = {}"</span>,
+<a class="jxr_linenumber" name="173" href="#173">173</a>             tx2, userTableName, Bytes.toString(rowId), Bytes.toString(family),
+<a class="jxr_linenumber" name="174" href="#174">174</a>             Bytes.toString(qualifier), Bytes.toString(tx2GetResult.value()));
+<a class="jxr_linenumber" name="175" href="#175">175</a>         Preconditions.checkState(Arrays.equals(tx2GetResult.value(), initialData),
+<a class="jxr_linenumber" name="176" href="#176">176</a>                                  <span class="jxr_string">"Tx2 must read the initial value written by Tx0"</span>);
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>         <em class="jxr_comment">// Tx2 tries to write the column written by the committed concurrent transaction Tx1...</em>
+<a class="jxr_linenumber" name="179" href="#179">179</a>         Put tx2Put = <strong class="jxr_keyword">new</strong> Put(rowId);
+<a class="jxr_linenumber" name="180" href="#180">180</a>         tx2Put.add(family, qualifier, dataValue2);
+<a class="jxr_linenumber" name="181" href="#181">181</a>         txTable.put(tx2, tx2Put);
+<a class="jxr_linenumber" name="182" href="#182">182</a>         LOG.info(
+<a class="jxr_linenumber" name="183" href="#183">183</a>             <span class="jxr_string">"Concurrent Transaction {} updates {}:{}/{}/{} = {} in its own Snapshot (Will conflict with {} at commit time)"</span>,
+<a class="jxr_linenumber" name="184" href="#184">184</a>             tx2, userTableName, Bytes.toString(rowId), Bytes.toString(family),
+<a class="jxr_linenumber" name="185" href="#185">185</a>             Bytes.toString(qualifier), Bytes.toString(dataValue1), tx1);
+<a class="jxr_linenumber" name="186" href="#186">186</a> 
+<a class="jxr_linenumber" name="187" href="#187">187</a>         <em class="jxr_comment">// ... and when committing, Tx2 has to abort due to concurrent conflicts with committed transaction Tx1</em>
+<a class="jxr_linenumber" name="188" href="#188">188</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="189" href="#189">189</a>             LOG.info(<span class="jxr_string">"Concurrent Transaction {} TRYING TO COMMIT"</span>, tx2);
+<a class="jxr_linenumber" name="190" href="#190">190</a>             tm.commit(tx2);
+<a class="jxr_linenumber" name="191" href="#191">191</a>             <em class="jxr_comment">// should throw an exception</em>
+<a class="jxr_linenumber" name="192" href="#192">192</a>             Preconditions.checkState(false, <span class="jxr_string">"Should have thrown RollbackException"</span>);
+<a class="jxr_linenumber" name="193" href="#193">193</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
+<a class="jxr_linenumber" name="194" href="#194">194</a>             LOG.info(<span class="jxr_string">"Concurrent Transaction {} ROLLED-BACK : {}"</span>, tx2, e.getMessage());
+<a class="jxr_linenumber" name="195" href="#195">195</a>         }
+<a class="jxr_linenumber" name="196" href="#196">196</a>     }
+<a class="jxr_linenumber" name="197" href="#197">197</a> 
+<a class="jxr_linenumber" name="198" href="#198">198</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="199" href="#199">199</a>         tm.close();
+<a class="jxr_linenumber" name="200" href="#200">200</a>         txTable.close();
+<a class="jxr_linenumber" name="201" href="#201">201</a>     }
+<a class="jxr_linenumber" name="202" href="#202">202</a> 
 <a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a> 
-<a class="jxr_linenumber" name="205" href="#205">205</a>     <strong class="jxr_keyword">void</strong> setRowIdGenerator(<a href="../../../../org/apache/omid/examples/RowIdGenerator.html">RowIdGenerator</a> rowIdGenerator) {
-<a class="jxr_linenumber" name="206" href="#206">206</a>         <strong class="jxr_keyword">this</strong>.rowIdGenerator = rowIdGenerator;
-<a class="jxr_linenumber" name="207" href="#207">207</a>     }
-<a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">StaticRowIdGenerator</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/examples/RowIdGenerator.html">RowIdGenerator</a> {
-<a class="jxr_linenumber" name="210" href="#210">210</a> 
-<a class="jxr_linenumber" name="211" href="#211">211</a>         @Override
-<a class="jxr_linenumber" name="212" href="#212">212</a>         <strong class="jxr_keyword">public</strong> byte[] getRowId() {
-<a class="jxr_linenumber" name="213" href="#213">213</a>             <strong class="jxr_keyword">return</strong> Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW"</span>);
-<a class="jxr_linenumber" name="214" href="#214">214</a>         }
-<a class="jxr_linenumber" name="215" href="#215">215</a>     }
-<a class="jxr_linenumber" name="216" href="#216">216</a> }
-<a class="jxr_linenumber" name="217" href="#217">217</a> 
+<a class="jxr_linenumber" name="204" href="#204">204</a>     <strong class="jxr_keyword">void</strong> setRowIdGenerator(<a href="../../../../org/apache/omid/examples/RowIdGenerator.html">RowIdGenerator</a> rowIdGenerator) {
+<a class="jxr_linenumber" name="205" href="#205">205</a>         <strong class="jxr_keyword">this</strong>.rowIdGenerator = rowIdGenerator;
+<a class="jxr_linenumber" name="206" href="#206">206</a>     }
+<a class="jxr_linenumber" name="207" href="#207">207</a> 
+<a class="jxr_linenumber" name="208" href="#208">208</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/examples/SnapshotIsolationExample.html">StaticRowIdGenerator</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/examples/RowIdGenerator.html">RowIdGenerator</a> {
+<a class="jxr_linenumber" name="209" href="#209">209</a> 
+<a class="jxr_linenumber" name="210" href="#210">210</a>         @Override
+<a class="jxr_linenumber" name="211" href="#211">211</a>         <strong class="jxr_keyword">public</strong> byte[] getRowId() {
+<a class="jxr_linenumber" name="212" href="#212">212</a>             <strong class="jxr_keyword">return</strong> Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW"</span>);
+<a class="jxr_linenumber" name="213" href="#213">213</a>         }
+<a class="jxr_linenumber" name="214" href="#214">214</a>     }
+<a class="jxr_linenumber" name="215" href="#215">215</a> }
+<a class="jxr_linenumber" name="216" href="#216">216</a> 
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/examples/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/examples/package-frame.html b/xref/org/apache/omid/examples/package-frame.html
index b90ba79..0a5fae2 100644
--- a/xref/org/apache/omid/examples/package-frame.html
+++ b/xref/org/apache/omid/examples/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.examples</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.examples</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/examples/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/examples/package-summary.html b/xref/org/apache/omid/examples/package-summary.html
index 7f95648..f3a5b90 100644
--- a/xref/org/apache/omid/examples/package-summary.html
+++ b/xref/org/apache/omid/examples/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.examples</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.examples</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/metrics/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/metrics/package-frame.html b/xref/org/apache/omid/metrics/package-frame.html
index 8b42882..a88df03 100644
--- a/xref/org/apache/omid/metrics/package-frame.html
+++ b/xref/org/apache/omid/metrics/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.metrics</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.metrics</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/metrics/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/metrics/package-summary.html b/xref/org/apache/omid/metrics/package-summary.html
index e8bafbf..909b4f7 100644
--- a/xref/org/apache/omid/metrics/package-summary.html
+++ b/xref/org/apache/omid/metrics/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.metrics</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.metrics</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/package-frame.html b/xref/org/apache/omid/package-frame.html
index b5d3d76..4be0572 100644
--- a/xref/org/apache/omid/package-frame.html
+++ b/xref/org/apache/omid/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid</title>
 		<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -25,7 +25,10 @@
             	<a href="NetworkUtils.html" target="classFrame">NetworkUtils</a>
           	</li>
           	          	<li>
-            	<a href="OmidFilterBase.html" target="classFrame">OmidFilterBase</a>
+            	<a href="ReflectionHelper.html" target="classFrame">ReflectionHelper</a>
+          	</li>
+          	          	<li>
+            	<a href="RegionWrapper.html" target="classFrame">RegionWrapper</a>
           	</li>
           	          	<li>
             	<a href="YAMLUtils.html" target="classFrame">YAMLUtils</a>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/package-summary.html b/xref/org/apache/omid/package-summary.html
index 41232f7..14147d8 100644
--- a/xref/org/apache/omid/package-summary.html
+++ b/xref/org/apache/omid/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid</title>
 		<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -52,7 +52,12 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="OmidFilterBase.html" target="classFrame">OmidFilterBase</a>
+                		<a href="ReflectionHelper.html" target="classFrame">ReflectionHelper</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="RegionWrapper.html" target="classFrame">RegionWrapper</a>
               		</td>
             	</tr>
 				            	<tr>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/timestamp/storage/HBaseTimestampStorage.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/timestamp/storage/HBaseTimestampStorage.html b/xref/org/apache/omid/timestamp/storage/HBaseTimestampStorage.html
index 4d588b2..d17f76f 100644
--- a/xref/org/apache/omid/timestamp/storage/HBaseTimestampStorage.html
+++ b/xref/org/apache/omid/timestamp/storage/HBaseTimestampStorage.html
@@ -27,81 +27,76 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.timestamp.storage;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> com.google.common.base.Charsets.UTF_8;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * Stores the max timestamp assigned by the TO in HBase.</em>
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * It's always written non-transactionally in the same row and column</em>
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/timestamp/storage/HBaseTimestampStorage.html">HBaseTimestampStorage</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/timestamp/storage/TimestampStorage.html">TimestampStorage</a> {
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> com.google.common.base.Charsets.UTF_8;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * Stores the max timestamp assigned by the TO in HBase.</em>
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * It's always written non-transactionally in the same row and column</em>
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/timestamp/storage/HBaseTimestampStorage.html">HBaseTimestampStorage</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/timestamp/storage/TimestampStorage.html">TimestampStorage</a> {
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> INITIAL_MAX_TS_VALUE = 0;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseTimestampStorage.<strong class="jxr_keyword">class</strong>);
 <a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> INITIAL_MAX_TS_VALUE = 0;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  
-<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseTimestampStorage.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="44" href="#44">44</a>      <em class="jxr_comment">// ROW and COLUMN to write the assigned timestamp</em>
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] TSO_ROW = <span class="jxr_string">"MAX_TIMESTAMP_R"</span>.getBytes(UTF_8);
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] TSO_QUALIFIER = <span class="jxr_string">"MAX_TIMESTAMP_Q"</span>.getBytes(UTF_8);
 <a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>      <em class="jxr_comment">// ROW and COLUMN to write the assigned timestamp</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] TSO_ROW = <span class="jxr_string">"MAX_TIMESTAMP_R"</span>.getBytes(UTF_8);
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] TSO_QUALIFIER = <span class="jxr_string">"MAX_TIMESTAMP_Q"</span>.getBytes(UTF_8);
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Table table;
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] cfName;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      @Inject
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/timestamp/storage/HBaseTimestampStorage.html">HBaseTimestampStorage</a>(Configuration hbaseConfig, <a href="../../../../../org/apache/omid/timestamp/storage/HBaseTimestampStorageConfig.html">HBaseTimestampStorageConfig</a> config) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="57" href="#57">57</a>          Connection conn = ConnectionFactory.createConnection(hbaseConfig);
-<a class="jxr_linenumber" name="58" href="#58">58</a>          <strong class="jxr_keyword">this</strong>.table = conn.getTable(TableName.valueOf(config.getTableName()));
-<a class="jxr_linenumber" name="59" href="#59">59</a>          <strong class="jxr_keyword">this</strong>.cfName = config.getFamilyName().getBytes(UTF_8);
-<a class="jxr_linenumber" name="60" href="#60">60</a>      }
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      @Override
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMaxTimestamp(<strong class="jxr_keyword">long</strong> previousMaxTimestamp, <strong class="jxr_keyword">long</strong> newMaxTimestamp) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">if</strong> (newMaxTimestamp &lt; 0) {
-<a class="jxr_linenumber" name="65" href="#65">65</a>              LOG.error(<span class="jxr_string">"Negative value received for maxTimestamp: {}"</span>, newMaxTimestamp);
-<a class="jxr_linenumber" name="66" href="#66">66</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Negative value received for maxTimestamp"</span> + newMaxTimestamp);
-<a class="jxr_linenumber" name="67" href="#67">67</a>          }
-<a class="jxr_linenumber" name="68" href="#68">68</a>          Put put = <strong class="jxr_keyword">new</strong> Put(TSO_ROW);
-<a class="jxr_linenumber" name="69" href="#69">69</a>          put.addColumn(cfName, TSO_QUALIFIER, Bytes.toBytes(newMaxTimestamp));
-<a class="jxr_linenumber" name="70" href="#70">70</a>          byte[] previousVal = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">if</strong> (previousMaxTimestamp != INITIAL_MAX_TS_VALUE) {
-<a class="jxr_linenumber" name="72" href="#72">72</a>              previousVal = Bytes.toBytes(previousMaxTimestamp);
-<a class="jxr_linenumber" name="73" href="#73">73</a>          }
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">if</strong> (!table.checkAndPut(TSO_ROW, cfName, TSO_QUALIFIER, previousVal, put)) {
-<a class="jxr_linenumber" name="75" href="#75">75</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Previous max timestamp is incorrect"</span>);
-<a class="jxr_linenumber" name="76" href="#76">76</a>          }
-<a class="jxr_linenumber" name="77" href="#77">77</a>      }
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> HTable table;
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> byte[] cfName;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>      @Inject
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/timestamp/storage/HBaseTimestampStorage.html">HBaseTimestampStorage</a>(Configuration hbaseConfig, <a href="../../../../../org/apache/omid/timestamp/storage/HBaseTimestampStorageConfig.html">HBaseTimestampStorageConfig</a> config) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">this</strong>.table = <strong class="jxr_keyword">new</strong> HTable(hbaseConfig, config.getTableName());
+<a class="jxr_linenumber" name="54" href="#54">54</a>          <strong class="jxr_keyword">this</strong>.cfName = config.getFamilyName().getBytes(UTF_8);
+<a class="jxr_linenumber" name="55" href="#55">55</a>      }
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      @Override
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMaxTimestamp(<strong class="jxr_keyword">long</strong> previousMaxTimestamp, <strong class="jxr_keyword">long</strong> newMaxTimestamp) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="59" href="#59">59</a>          <strong class="jxr_keyword">if</strong> (newMaxTimestamp &lt; 0) {
+<a class="jxr_linenumber" name="60" href="#60">60</a>              LOG.error(<span class="jxr_string">"Negative value received for maxTimestamp: {}"</span>, newMaxTimestamp);
+<a class="jxr_linenumber" name="61" href="#61">61</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Negative value received for maxTimestamp"</span> + newMaxTimestamp);
+<a class="jxr_linenumber" name="62" href="#62">62</a>          }
+<a class="jxr_linenumber" name="63" href="#63">63</a>          Put put = <strong class="jxr_keyword">new</strong> Put(TSO_ROW);
+<a class="jxr_linenumber" name="64" href="#64">64</a>          put.add(cfName, TSO_QUALIFIER, Bytes.toBytes(newMaxTimestamp));
+<a class="jxr_linenumber" name="65" href="#65">65</a>          byte[] previousVal = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">if</strong> (previousMaxTimestamp != INITIAL_MAX_TS_VALUE) {
+<a class="jxr_linenumber" name="67" href="#67">67</a>              previousVal = Bytes.toBytes(previousMaxTimestamp);
+<a class="jxr_linenumber" name="68" href="#68">68</a>          }
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <strong class="jxr_keyword">if</strong> (!table.checkAndPut(TSO_ROW, cfName, TSO_QUALIFIER, previousVal, put)) {
+<a class="jxr_linenumber" name="70" href="#70">70</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Previous max timestamp is incorrect"</span>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>          }
+<a class="jxr_linenumber" name="72" href="#72">72</a>      }
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>      @Override
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getMaxTimestamp() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="76" href="#76">76</a>          Get get = <strong class="jxr_keyword">new</strong> Get(TSO_ROW);
+<a class="jxr_linenumber" name="77" href="#77">77</a>          get.addColumn(cfName, TSO_QUALIFIER);
 <a class="jxr_linenumber" name="78" href="#78">78</a>  
-<a class="jxr_linenumber" name="79" href="#79">79</a>      @Override
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getMaxTimestamp() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="81" href="#81">81</a>          Get get = <strong class="jxr_keyword">new</strong> Get(TSO_ROW);
-<a class="jxr_linenumber" name="82" href="#82">82</a>          get.addColumn(cfName, TSO_QUALIFIER);
-<a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>          Result result = table.get(get);
-<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">if</strong> (result.containsColumn(cfName, TSO_QUALIFIER)) {
-<a class="jxr_linenumber" name="86" href="#86">86</a>              <strong class="jxr_keyword">return</strong> Bytes.toLong(result.getValue(cfName, TSO_QUALIFIER));
-<a class="jxr_linenumber" name="87" href="#87">87</a>          } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="88" href="#88">88</a>              <em class="jxr_comment">// This happens for example when a new cluster is created</em>
-<a class="jxr_linenumber" name="89" href="#89">89</a>              <strong class="jxr_keyword">return</strong> INITIAL_MAX_TS_VALUE;
-<a class="jxr_linenumber" name="90" href="#90">90</a>          }
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>      }
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>  }
+<a class="jxr_linenumber" name="79" href="#79">79</a>          Result result = table.get(get);
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">if</strong> (result.containsColumn(cfName, TSO_QUALIFIER)) {
+<a class="jxr_linenumber" name="81" href="#81">81</a>              <strong class="jxr_keyword">return</strong> Bytes.toLong(result.getValue(cfName, TSO_QUALIFIER));
+<a class="jxr_linenumber" name="82" href="#82">82</a>          } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="83" href="#83">83</a>              <em class="jxr_comment">// This happens for example when a new cluster is created</em>
+<a class="jxr_linenumber" name="84" href="#84">84</a>              <strong class="jxr_keyword">return</strong> INITIAL_MAX_TS_VALUE;
+<a class="jxr_linenumber" name="85" href="#85">85</a>          }
+<a class="jxr_linenumber" name="86" href="#86">86</a>  
+<a class="jxr_linenumber" name="87" href="#87">87</a>      }
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/timestamp/storage/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/timestamp/storage/package-frame.html b/xref/org/apache/omid/timestamp/storage/package-frame.html
index 8f36b47..3fa8785 100644
--- a/xref/org/apache/omid/timestamp/storage/package-frame.html
+++ b/xref/org/apache/omid/timestamp/storage/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.timestamp.storage</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.timestamp.storage</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/timestamp/storage/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/timestamp/storage/package-summary.html b/xref/org/apache/omid/timestamp/storage/package-summary.html
index 3fbab49..7bd28df 100644
--- a/xref/org/apache/omid/timestamp/storage/package-summary.html
+++ b/xref/org/apache/omid/timestamp/storage/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.timestamp.storage</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.timestamp.storage</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>


[25/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/TestTimestampOracle.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/TestTimestampOracle.html b/xref-test/org/apache/omid/tso/TestTimestampOracle.html
index e9308dc..57b5464 100644
--- a/xref-test/org/apache/omid/tso/TestTimestampOracle.html
+++ b/xref-test/org/apache/omid/tso/TestTimestampOracle.html
@@ -29,101 +29,98 @@
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.TimestampStorage;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.AbstractTransactionManager;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.mockito.InjectMocks;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.mockito.Mock;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.mockito.MockitoAnnotations;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyLong;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyString;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.atLeastOnce;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TestTimestampOracle.html">TestTimestampOracle</a> {
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTimestampOracle.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>      @Mock
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> MetricsRegistry metrics;
-<a class="jxr_linenumber" name="51" href="#51">51</a>      @Mock
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> Panicker panicker;
-<a class="jxr_linenumber" name="53" href="#53">53</a>      @Mock
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> TimestampStorage timestampStorage;
-<a class="jxr_linenumber" name="55" href="#55">55</a>      @Mock
-<a class="jxr_linenumber" name="56" href="#56">56</a>      TSOServerConfig config;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <em class="jxr_comment">// Component under test</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>      @InjectMocks
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> TimestampOracleImpl timestampOracle;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      @BeforeMethod(alwaysRun = <strong class="jxr_keyword">true</strong>, timeOut = 30_000)
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initMocksAndComponents() {
-<a class="jxr_linenumber" name="64" href="#64">64</a>          MockitoAnnotations.initMocks(<strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="65" href="#65">65</a>      }
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.mockito.InjectMocks;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.mockito.Mock;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.mockito.MockitoAnnotations;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.mockito.invocation.InvocationOnMock;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.mockito.stubbing.Answer;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyLong;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyString;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.atLeastOnce;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doAnswer;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TestTimestampOracle.html">TestTimestampOracle</a> {
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTimestampOracle.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="47" href="#47">47</a>  
+<a class="jxr_linenumber" name="48" href="#48">48</a>      @Mock
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> MetricsRegistry metrics;
+<a class="jxr_linenumber" name="50" href="#50">50</a>      @Mock
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> Panicker panicker;
+<a class="jxr_linenumber" name="52" href="#52">52</a>      @Mock
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> TimestampStorage timestampStorage;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <em class="jxr_comment">// Component under test</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>      @InjectMocks
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> TimestampOracleImpl timestampOracle;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>      @BeforeMethod(alwaysRun = <strong class="jxr_keyword">true</strong>, timeOut = 30_000)
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initMocksAndComponents() {
+<a class="jxr_linenumber" name="61" href="#61">61</a>          MockitoAnnotations.initMocks(<strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="62" href="#62">62</a>      }
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMonotonicTimestampGrowth() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="66" href="#66">66</a>  
-<a class="jxr_linenumber" name="67" href="#67">67</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMonotonicTimestampGrowth() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="67" href="#67">67</a>          <em class="jxr_comment">// Intialize component under test</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>          timestampOracle.initialize();
 <a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>          <em class="jxr_comment">// Intialize component under test</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>          timestampOracle.initialize();
-<a class="jxr_linenumber" name="72" href="#72">72</a>  
-<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">long</strong> last = timestampOracle.next();
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; (3 * TimestampOracleImpl.TIMESTAMP_BATCH); i++) {
-<a class="jxr_linenumber" name="75" href="#75">75</a>              <strong class="jxr_keyword">long</strong> current = timestampOracle.next();
-<a class="jxr_linenumber" name="76" href="#76">76</a>              assertEquals(current, last + AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN, <span class="jxr_string">"Not monotonic growth"</span>);
-<a class="jxr_linenumber" name="77" href="#77">77</a>              last = current;
-<a class="jxr_linenumber" name="78" href="#78">78</a>          }
-<a class="jxr_linenumber" name="79" href="#79">79</a>          assertTrue(timestampOracle.getLast() == last);
-<a class="jxr_linenumber" name="80" href="#80">80</a>          LOG.info(<span class="jxr_string">"Last timestamp: {}"</span>, last);
-<a class="jxr_linenumber" name="81" href="#81">81</a>      }
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">long</strong> last = timestampOracle.next();
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; (3 * TimestampOracleImpl.TIMESTAMP_BATCH); i++) {
+<a class="jxr_linenumber" name="72" href="#72">72</a>              <strong class="jxr_keyword">long</strong> current = timestampOracle.next();
+<a class="jxr_linenumber" name="73" href="#73">73</a>              assertEquals(current, last + 1, <span class="jxr_string">"Not monotonic growth"</span>);
+<a class="jxr_linenumber" name="74" href="#74">74</a>              last = current;
+<a class="jxr_linenumber" name="75" href="#75">75</a>          }
+<a class="jxr_linenumber" name="76" href="#76">76</a>          assertTrue(timestampOracle.getLast() == last);
+<a class="jxr_linenumber" name="77" href="#77">77</a>          LOG.info(<span class="jxr_string">"Last timestamp: {}"</span>, last);
+<a class="jxr_linenumber" name="78" href="#78">78</a>      }
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestampOraclePanicsWhenTheStorageHasProblems() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="82" href="#82">82</a>  
-<a class="jxr_linenumber" name="83" href="#83">83</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestampOraclePanicsWhenTheStorageHasProblems() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="83" href="#83">83</a>          <em class="jxr_comment">// Intialize component under test</em>
+<a class="jxr_linenumber" name="84" href="#84">84</a>          timestampOracle.initialize();
 <a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>          <em class="jxr_comment">// Intialize component under test</em>
-<a class="jxr_linenumber" name="87" href="#87">87</a>          timestampOracle.initialize();
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>          <em class="jxr_comment">// Cause an exception when updating the max timestamp</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>          <strong class="jxr_keyword">final</strong> CountDownLatch updateMaxTimestampMethodCalled = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
-<a class="jxr_linenumber" name="91" href="#91">91</a>          doAnswer(<strong class="jxr_keyword">new</strong> Answer() {
-<a class="jxr_linenumber" name="92" href="#92">92</a>              @Override
-<a class="jxr_linenumber" name="93" href="#93">93</a>              <strong class="jxr_keyword">public</strong> Object answer(InvocationOnMock invocationOnMock) <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="94" href="#94">94</a>                  updateMaxTimestampMethodCalled.countDown();
-<a class="jxr_linenumber" name="95" href="#95">95</a>                  <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Out of memory or something"</span>);
-<a class="jxr_linenumber" name="96" href="#96">96</a>              }
-<a class="jxr_linenumber" name="97" href="#97">97</a>          }).when(timestampStorage).updateMaxTimestamp(anyLong(), anyLong());
-<a class="jxr_linenumber" name="98" href="#98">98</a>  
-<a class="jxr_linenumber" name="99" href="#99">99</a>          <em class="jxr_comment">// Make the previous exception to be thrown</em>
-<a class="jxr_linenumber" name="100" href="#100">100</a>         Thread allocThread = <strong class="jxr_keyword">new</strong> Thread(<span class="jxr_string">"AllocThread"</span>) {
-<a class="jxr_linenumber" name="101" href="#101">101</a>             @Override
-<a class="jxr_linenumber" name="102" href="#102">102</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
-<a class="jxr_linenumber" name="103" href="#103">103</a>                 <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
-<a class="jxr_linenumber" name="104" href="#104">104</a>                     timestampOracle.next();
-<a class="jxr_linenumber" name="105" href="#105">105</a>                 }
-<a class="jxr_linenumber" name="106" href="#106">106</a>             }
-<a class="jxr_linenumber" name="107" href="#107">107</a>         };
-<a class="jxr_linenumber" name="108" href="#108">108</a>         allocThread.start();
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>         updateMaxTimestampMethodCalled.await();
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>         <em class="jxr_comment">// Verify that it has blown up</em>
-<a class="jxr_linenumber" name="113" href="#113">113</a>         verify(panicker, atLeastOnce()).panic(anyString(), any(Throwable.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="114" href="#114">114</a>     }
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a> }
+<a class="jxr_linenumber" name="86" href="#86">86</a>          <em class="jxr_comment">// Cause an exception when updating the max timestamp</em>
+<a class="jxr_linenumber" name="87" href="#87">87</a>          <strong class="jxr_keyword">final</strong> CountDownLatch updateMaxTimestampMethodCalled = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
+<a class="jxr_linenumber" name="88" href="#88">88</a>          doAnswer(<strong class="jxr_keyword">new</strong> Answer() {
+<a class="jxr_linenumber" name="89" href="#89">89</a>              @Override
+<a class="jxr_linenumber" name="90" href="#90">90</a>              <strong class="jxr_keyword">public</strong> Object answer(InvocationOnMock invocationOnMock) <strong class="jxr_keyword">throws</strong> Throwable {
+<a class="jxr_linenumber" name="91" href="#91">91</a>                  updateMaxTimestampMethodCalled.countDown();
+<a class="jxr_linenumber" name="92" href="#92">92</a>                  <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Out of memory or something"</span>);
+<a class="jxr_linenumber" name="93" href="#93">93</a>              }
+<a class="jxr_linenumber" name="94" href="#94">94</a>          }).when(timestampStorage).updateMaxTimestamp(anyLong(), anyLong());
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>          <em class="jxr_comment">// Make the previous exception to be thrown</em>
+<a class="jxr_linenumber" name="97" href="#97">97</a>          Thread allocThread = <strong class="jxr_keyword">new</strong> Thread(<span class="jxr_string">"AllocThread"</span>) {
+<a class="jxr_linenumber" name="98" href="#98">98</a>              @Override
+<a class="jxr_linenumber" name="99" href="#99">99</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
+<a class="jxr_linenumber" name="100" href="#100">100</a>                 <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
+<a class="jxr_linenumber" name="101" href="#101">101</a>                     timestampOracle.next();
+<a class="jxr_linenumber" name="102" href="#102">102</a>                 }
+<a class="jxr_linenumber" name="103" href="#103">103</a>             }
+<a class="jxr_linenumber" name="104" href="#104">104</a>         };
+<a class="jxr_linenumber" name="105" href="#105">105</a>         allocThread.start();
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>         updateMaxTimestampMethodCalled.await();
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>         <em class="jxr_comment">// Verify that it has blown up</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a>         verify(panicker, atLeastOnce()).panic(anyString(), any(Throwable.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="111" href="#111">111</a>     }
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.html b/xref-test/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.html
index 3836cf0..e9ef446 100644
--- a/xref-test/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.html
+++ b/xref-test/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.html
@@ -31,266 +31,216 @@
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Guice;
 <a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Injector;
 <a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Module;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.AbstractTransactionManager;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOMockModule;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.util.DummyCellIdImpl;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.testng.Assert;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterClass;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNotNull;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOMockModule;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.util.DummyCellIdImpl;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.testng.Assert;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterClass;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeClass;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertNotNull;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.html">TestIntegrationOfTSOClientServerBasicFunctionality</a> {
 <a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.html">TestIntegrationOfTSOClientServerBasicFunctionality</a> {
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestIntegrationOfTSOClientServerBasicFunctionality.<strong class="jxr_keyword">class</strong>);
 <a class="jxr_linenumber" name="49" href="#49">49</a>  
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestIntegrationOfTSOClientServerBasicFunctionality.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_SERVER_HOST = <span class="jxr_string">"localhost"</span>;
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> tsoServerPortForTest;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <em class="jxr_comment">// Cells for tests</em>
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> CellId c1 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xdeadbeefL);
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> CellId c2 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xfeedcafeL);
-<a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <em class="jxr_comment">// Required infrastructure for TSO tsoClient-server integration testing</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> TSOServer tsoServer;
-<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> TSOClient tsoClient;
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> TSOClient justAnotherTSOClient;
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> CommitTable.Client commitTableClient;
-<a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>      @BeforeClass
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setup() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_SERVER_HOST = <span class="jxr_string">"localhost"</span>;
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> tsoServerPortForTest;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <em class="jxr_comment">// Cells for tests</em>
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> CellId c1 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xdeadbeefL);
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> CellId c2 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xfeedcafeL);
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <em class="jxr_comment">// Required infrastructure for TSO tsoClient-server integration testing</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> TSOServer tsoServer;
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> TSOClient tsoClient;
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> TSOClient justAnotherTSOClient;
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> CommitTable.Client commitTableClient;
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>      @BeforeClass
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setup() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="65" href="#65">65</a>  
+<a class="jxr_linenumber" name="66" href="#66">66</a>          tsoServerPortForTest = TestUtils.getFreeLocalPort();
 <a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>          tsoServerPortForTest = TestUtils.getFreeLocalPort();
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>          TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="71" href="#71">71</a>          tsoConfig.setConflictMapSize(1000);
-<a class="jxr_linenumber" name="72" href="#72">72</a>          tsoConfig.setPort(tsoServerPortForTest);
-<a class="jxr_linenumber" name="73" href="#73">73</a>          Module tsoServerMockModule = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(tsoConfig);
-<a class="jxr_linenumber" name="74" href="#74">74</a>          Injector injector = Guice.createInjector(tsoServerMockModule);
-<a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          CommitTable commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          commitTableClient = commitTable.getClient();
-<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="68" href="#68">68</a>          TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="69" href="#69">69</a>          tsoConfig.setConflictMapSize(1000);
+<a class="jxr_linenumber" name="70" href="#70">70</a>          tsoConfig.setPort(tsoServerPortForTest);
+<a class="jxr_linenumber" name="71" href="#71">71</a>          Module tsoServerMockModule = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(tsoConfig);
+<a class="jxr_linenumber" name="72" href="#72">72</a>          Injector injector = Guice.createInjector(tsoServerMockModule);
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>          CommitTable commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="75" href="#75">75</a>          commitTableClient = commitTable.getClient();
+<a class="jxr_linenumber" name="76" href="#76">76</a>  
+<a class="jxr_linenumber" name="77" href="#77">77</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
+<a class="jxr_linenumber" name="78" href="#78">78</a>          LOG.info(<span class="jxr_string">"======================================= Init TSO Server =========================================="</span>);
 <a class="jxr_linenumber" name="79" href="#79">79</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="80" href="#80">80</a>          LOG.info(<span class="jxr_string">"======================================= Init TSO Server =========================================="</span>);
-<a class="jxr_linenumber" name="81" href="#81">81</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="82" href="#82">82</a>  
-<a class="jxr_linenumber" name="83" href="#83">83</a>          tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="84" href="#84">84</a>          tsoServer.startAndWait();
-<a class="jxr_linenumber" name="85" href="#85">85</a>          TestUtils.waitForSocketListening(TSO_SERVER_HOST, tsoServerPortForTest, 100);
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>  
+<a class="jxr_linenumber" name="81" href="#81">81</a>          tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="82" href="#82">82</a>          tsoServer.startAndWait();
+<a class="jxr_linenumber" name="83" href="#83">83</a>          TestUtils.waitForSocketListening(TSO_SERVER_HOST, tsoServerPortForTest, 100);
+<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="85" href="#85">85</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
+<a class="jxr_linenumber" name="86" href="#86">86</a>          LOG.info(<span class="jxr_string">"===================================== TSO Server Initialized ====================================="</span>);
 <a class="jxr_linenumber" name="87" href="#87">87</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="88" href="#88">88</a>          LOG.info(<span class="jxr_string">"===================================== TSO Server Initialized ====================================="</span>);
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
 <a class="jxr_linenumber" name="89" href="#89">89</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="90" href="#90">90</a>          LOG.info(<span class="jxr_string">"======================================= Setup TSO Clients ========================================"</span>);
 <a class="jxr_linenumber" name="91" href="#91">91</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="92" href="#92">92</a>          LOG.info(<span class="jxr_string">"======================================= Setup TSO Clients ========================================"</span>);
-<a class="jxr_linenumber" name="93" href="#93">93</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="94" href="#94">94</a>  
-<a class="jxr_linenumber" name="95" href="#95">95</a>          <em class="jxr_comment">// Configure direct connection to the server</em>
-<a class="jxr_linenumber" name="96" href="#96">96</a>          OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="97" href="#97">97</a>          tsoClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + tsoServerPortForTest);
-<a class="jxr_linenumber" name="98" href="#98">98</a>  
-<a class="jxr_linenumber" name="99" href="#99">99</a>          tsoClient = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="100" href="#100">100</a>         justAnotherTSOClient = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
+<a class="jxr_linenumber" name="92" href="#92">92</a>  
+<a class="jxr_linenumber" name="93" href="#93">93</a>          <em class="jxr_comment">// Configure direct connection to the server</em>
+<a class="jxr_linenumber" name="94" href="#94">94</a>          OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="95" href="#95">95</a>          tsoClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + tsoServerPortForTest);
+<a class="jxr_linenumber" name="96" href="#96">96</a>  
+<a class="jxr_linenumber" name="97" href="#97">97</a>          tsoClient = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="98" href="#98">98</a>          justAnotherTSOClient = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="99" href="#99">99</a>  
+<a class="jxr_linenumber" name="100" href="#100">100</a>         LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
+<a class="jxr_linenumber" name="101" href="#101">101</a>         LOG.info(<span class="jxr_string">"===================================== TSO Clients Initialized ===================================="</span>);
 <a class="jxr_linenumber" name="102" href="#102">102</a>         LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="103" href="#103">103</a>         LOG.info(<span class="jxr_string">"===================================== TSO Clients Initialized ===================================="</span>);
-<a class="jxr_linenumber" name="104" href="#104">104</a>         LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>         Thread.currentThread().setName(<span class="jxr_string">"Test Thread"</span>);
 <a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         Thread.currentThread().setName(<span class="jxr_string">"Test Thread"</span>);
+<a class="jxr_linenumber" name="106" href="#106">106</a>     }
 <a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     }
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>     @AfterClass
-<a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="108" href="#108">108</a>     @AfterClass
+<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="110" href="#110">110</a> 
+<a class="jxr_linenumber" name="111" href="#111">111</a>         tsoClient.close().get();
 <a class="jxr_linenumber" name="112" href="#112">112</a> 
-<a class="jxr_linenumber" name="113" href="#113">113</a>         tsoClient.close().get();
-<a class="jxr_linenumber" name="114" href="#114">114</a> 
-<a class="jxr_linenumber" name="115" href="#115">115</a>         tsoServer.stopAndWait();
-<a class="jxr_linenumber" name="116" href="#116">116</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="117" href="#117">117</a>         TestUtils.waitForSocketNotListening(TSO_SERVER_HOST, tsoServerPortForTest, 1000);
+<a class="jxr_linenumber" name="113" href="#113">113</a>         tsoServer.stopAndWait();
+<a class="jxr_linenumber" name="114" href="#114">114</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="115" href="#115">115</a>         TestUtils.waitForSocketNotListening(TSO_SERVER_HOST, tsoServerPortForTest, 1000);
+<a class="jxr_linenumber" name="116" href="#116">116</a> 
+<a class="jxr_linenumber" name="117" href="#117">117</a>     }
 <a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>     }
-<a class="jxr_linenumber" name="120" href="#120">120</a> 
-<a class="jxr_linenumber" name="121" href="#121">121</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="122" href="#122">122</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestampsOrderingGrowMonotonically() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="123" href="#123">123</a>         <strong class="jxr_keyword">long</strong> referenceTimestamp;
-<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="125" href="#125">125</a>         referenceTimestamp = startTsTx1;
-<a class="jxr_linenumber" name="126" href="#126">126</a> 
-<a class="jxr_linenumber" name="127" href="#127">127</a>         <strong class="jxr_keyword">long</strong> startTsTx2 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="128" href="#128">128</a>         referenceTimestamp += AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="129" href="#129">129</a>         assertEquals(startTsTx2, referenceTimestamp, <span class="jxr_string">"Should grow monotonically"</span>);
-<a class="jxr_linenumber" name="130" href="#130">130</a>         assertTrue(startTsTx2 &gt; startTsTx1, <span class="jxr_string">"Two timestamps obtained consecutively should grow"</span>);
+<a class="jxr_linenumber" name="119" href="#119">119</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestampsOrderingGrowMonotonically() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">long</strong> referenceTimestamp;
+<a class="jxr_linenumber" name="122" href="#122">122</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="123" href="#123">123</a>         referenceTimestamp = startTsTx1;
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a>         <strong class="jxr_keyword">long</strong> startTsTx2 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="126" href="#126">126</a>         assertEquals(startTsTx2, ++referenceTimestamp, <span class="jxr_string">"Should grow monotonically"</span>);
+<a class="jxr_linenumber" name="127" href="#127">127</a>         assertTrue(startTsTx2 &gt; startTsTx1, <span class="jxr_string">"Two timestamps obtained consecutively should grow"</span>);
+<a class="jxr_linenumber" name="128" href="#128">128</a> 
+<a class="jxr_linenumber" name="129" href="#129">129</a>         <strong class="jxr_keyword">long</strong> commitTsTx2 = tsoClient.commit(startTsTx2, Sets.newHashSet(c1)).get();
+<a class="jxr_linenumber" name="130" href="#130">130</a>         assertEquals(commitTsTx2, ++referenceTimestamp, <span class="jxr_string">"Should grow monotonically"</span>);
 <a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">long</strong> commitTsTx2 = tsoClient.commit(startTsTx2, Sets.newHashSet(c1)).get();
-<a class="jxr_linenumber" name="133" href="#133">133</a>         referenceTimestamp += AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="134" href="#134">134</a>         assertEquals(commitTsTx2, referenceTimestamp, <span class="jxr_string">"Should grow monotonically"</span>);
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>         <strong class="jxr_keyword">long</strong> commitTsTx1 = tsoClient.commit(startTsTx1, Sets.newHashSet(c2)).get();
-<a class="jxr_linenumber" name="137" href="#137">137</a>         referenceTimestamp += AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="138" href="#138">138</a>         assertEquals(commitTsTx1, referenceTimestamp, <span class="jxr_string">"Should grow monotonically"</span>);
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>         <strong class="jxr_keyword">long</strong> startTsTx3 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="141" href="#141">141</a>         referenceTimestamp += AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="142" href="#142">142</a>         assertEquals(startTsTx3, referenceTimestamp, <span class="jxr_string">"Should grow monotonically"</span>);
-<a class="jxr_linenumber" name="143" href="#143">143</a>     }
-<a class="jxr_linenumber" name="144" href="#144">144</a> 
-<a class="jxr_linenumber" name="145" href="#145">145</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="146" href="#146">146</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleTransactionWithNoWriteSetCanCommit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="147" href="#147">147</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">long</strong> commitTsTx1 = tsoClient.commit(startTsTx1, Sets.&lt;CellId&gt;newHashSet()).get();
-<a class="jxr_linenumber" name="149" href="#149">149</a>         assertTrue(commitTsTx1 &gt; startTsTx1);
-<a class="jxr_linenumber" name="150" href="#150">150</a>     }
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionWithMassiveWriteSetCanCommit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="154" href="#154">154</a>         <strong class="jxr_keyword">long</strong> startTs = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>         Set&lt;CellId&gt; cells = <strong class="jxr_keyword">new</strong> HashSet&lt;&gt;();
-<a class="jxr_linenumber" name="157" href="#157">157</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1_000_000; i++) {
-<a class="jxr_linenumber" name="158" href="#158">158</a>             cells.add(<strong class="jxr_keyword">new</strong> DummyCellIdImpl(i));
-<a class="jxr_linenumber" name="159" href="#159">159</a>         }
-<a class="jxr_linenumber" name="160" href="#160">160</a> 
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">long</strong> commitTs = tsoClient.commit(startTs, cells).get();
-<a class="jxr_linenumber" name="162" href="#162">162</a>         assertTrue(commitTs &gt; startTs, <span class="jxr_string">"Commit TS should be higher than Start TS"</span>);
-<a class="jxr_linenumber" name="163" href="#163">163</a>     }
+<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">long</strong> commitTsTx1 = tsoClient.commit(startTsTx1, Sets.newHashSet(c2)).get();
+<a class="jxr_linenumber" name="133" href="#133">133</a>         assertEquals(commitTsTx1, ++referenceTimestamp, <span class="jxr_string">"Should grow monotonically"</span>);
+<a class="jxr_linenumber" name="134" href="#134">134</a> 
+<a class="jxr_linenumber" name="135" href="#135">135</a>         <strong class="jxr_keyword">long</strong> startTsTx3 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="136" href="#136">136</a>         assertEquals(startTsTx3, ++referenceTimestamp, <span class="jxr_string">"Should grow monotonically"</span>);
+<a class="jxr_linenumber" name="137" href="#137">137</a>     }
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleTransactionWithNoWriteSetCanCommit() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="141" href="#141">141</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="142" href="#142">142</a>         <strong class="jxr_keyword">long</strong> commitTsTx1 = tsoClient.commit(startTsTx1, Sets.&lt;CellId&gt;newHashSet()).get();
+<a class="jxr_linenumber" name="143" href="#143">143</a>         assertTrue(commitTsTx1 &gt; startTsTx1);
+<a class="jxr_linenumber" name="144" href="#144">144</a>     }
+<a class="jxr_linenumber" name="145" href="#145">145</a> 
+<a class="jxr_linenumber" name="146" href="#146">146</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionWithMassiveWriteSetCanCommit() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">long</strong> startTs = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="149" href="#149">149</a> 
+<a class="jxr_linenumber" name="150" href="#150">150</a>         Set&lt;CellId&gt; cells = <strong class="jxr_keyword">new</strong> HashSet&lt;&gt;();
+<a class="jxr_linenumber" name="151" href="#151">151</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1_000_000; i++) {
+<a class="jxr_linenumber" name="152" href="#152">152</a>             cells.add(<strong class="jxr_keyword">new</strong> DummyCellIdImpl(i));
+<a class="jxr_linenumber" name="153" href="#153">153</a>         }
+<a class="jxr_linenumber" name="154" href="#154">154</a> 
+<a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">long</strong> commitTs = tsoClient.commit(startTs, cells).get();
+<a class="jxr_linenumber" name="156" href="#156">156</a>         assertTrue(commitTs &gt; startTs, <span class="jxr_string">"Commit TS should be higher than Start TS"</span>);
+<a class="jxr_linenumber" name="157" href="#157">157</a>     }
+<a class="jxr_linenumber" name="158" href="#158">158</a> 
+<a class="jxr_linenumber" name="159" href="#159">159</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultipleSerialCommitsDoNotConflict() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="162" href="#162">162</a>         <strong class="jxr_keyword">long</strong> commitTsTx1 = tsoClient.commit(startTsTx1, Sets.newHashSet(c1)).get();
+<a class="jxr_linenumber" name="163" href="#163">163</a>         assertTrue(commitTsTx1 &gt; startTsTx1, <span class="jxr_string">"Commit TS must be greater than Start TS"</span>);
 <a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="166" href="#166">166</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultipleSerialCommitsDoNotConflict() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="168" href="#168">168</a>         <strong class="jxr_keyword">long</strong> commitTsTx1 = tsoClient.commit(startTsTx1, Sets.newHashSet(c1)).get();
-<a class="jxr_linenumber" name="169" href="#169">169</a>         assertTrue(commitTsTx1 &gt; startTsTx1, <span class="jxr_string">"Commit TS must be greater than Start TS"</span>);
+<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">long</strong> startTsTx2 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="166" href="#166">166</a>         assertTrue(startTsTx2 &gt; commitTsTx1, <span class="jxr_string">"TS should grow monotonically"</span>);
+<a class="jxr_linenumber" name="167" href="#167">167</a> 
+<a class="jxr_linenumber" name="168" href="#168">168</a>         <strong class="jxr_keyword">long</strong> commitTsTx2 = tsoClient.commit(startTsTx2, Sets.newHashSet(c1, c2)).get();
+<a class="jxr_linenumber" name="169" href="#169">169</a>         assertTrue(commitTsTx2 &gt; startTsTx2, <span class="jxr_string">"Commit TS must be greater than Start TS"</span>);
 <a class="jxr_linenumber" name="170" href="#170">170</a> 
-<a class="jxr_linenumber" name="171" href="#171">171</a>         <strong class="jxr_keyword">long</strong> startTsTx2 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="172" href="#172">172</a>         assertTrue(startTsTx2 &gt; commitTsTx1, <span class="jxr_string">"TS should grow monotonically"</span>);
-<a class="jxr_linenumber" name="173" href="#173">173</a> 
-<a class="jxr_linenumber" name="174" href="#174">174</a>         <strong class="jxr_keyword">long</strong> commitTsTx2 = tsoClient.commit(startTsTx2, Sets.newHashSet(c1, c2)).get();
-<a class="jxr_linenumber" name="175" href="#175">175</a>         assertTrue(commitTsTx2 &gt; startTsTx2, <span class="jxr_string">"Commit TS must be greater than Start TS"</span>);
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">long</strong> startTsTx3 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="178" href="#178">178</a>         <strong class="jxr_keyword">long</strong> commitTsTx3 = tsoClient.commit(startTsTx3, Sets.newHashSet(c2)).get();
-<a class="jxr_linenumber" name="179" href="#179">179</a>         assertTrue(commitTsTx3 &gt; startTsTx3, <span class="jxr_string">"Commit TS must be greater than Start TS"</span>);
-<a class="jxr_linenumber" name="180" href="#180">180</a>     }
+<a class="jxr_linenumber" name="171" href="#171">171</a>         <strong class="jxr_keyword">long</strong> startTsTx3 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="172" href="#172">172</a>         <strong class="jxr_keyword">long</strong> commitTsTx3 = tsoClient.commit(startTsTx3, Sets.newHashSet(c2)).get();
+<a class="jxr_linenumber" name="173" href="#173">173</a>         assertTrue(commitTsTx3 &gt; startTsTx3, <span class="jxr_string">"Commit TS must be greater than Start TS"</span>);
+<a class="jxr_linenumber" name="174" href="#174">174</a>     }
+<a class="jxr_linenumber" name="175" href="#175">175</a> 
+<a class="jxr_linenumber" name="176" href="#176">176</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="177" href="#177">177</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitWritesToCommitTable() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="178" href="#178">178</a>         <strong class="jxr_keyword">long</strong> startTsForTx1 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="179" href="#179">179</a>         <strong class="jxr_keyword">long</strong> startTsForTx2 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="180" href="#180">180</a>         assertTrue(startTsForTx2 &gt; startTsForTx1, <span class="jxr_string">"Start TS should grow"</span>);
 <a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="183" href="#183">183</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitWritesToCommitTable() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">long</strong> startTsForTx1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">long</strong> startTsForTx2 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="186" href="#186">186</a>         assertTrue(startTsForTx2 &gt; startTsForTx1, <span class="jxr_string">"Start TS should grow"</span>);
+<a class="jxr_linenumber" name="182" href="#182">182</a>         assertFalse(commitTableClient.getCommitTimestamp(startTsForTx1).get().isPresent(),
+<a class="jxr_linenumber" name="183" href="#183">183</a>                 <span class="jxr_string">"Commit TS for Tx1 shouldn't appear in Commit Table"</span>);
+<a class="jxr_linenumber" name="184" href="#184">184</a> 
+<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">long</strong> commitTsForTx1 = tsoClient.commit(startTsForTx1, Sets.newHashSet(c1)).get();
+<a class="jxr_linenumber" name="186" href="#186">186</a>         assertTrue(commitTsForTx1 &gt; startTsForTx1, <span class="jxr_string">"Commit TS should be higher than Start TS for the same tx"</span>);
 <a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>         assertFalse(commitTableClient.getCommitTimestamp(startTsForTx1).get().isPresent(),
-<a class="jxr_linenumber" name="189" href="#189">189</a>                 <span class="jxr_string">"Commit TS for Tx1 shouldn't appear in Commit Table"</span>);
-<a class="jxr_linenumber" name="190" href="#190">190</a> 
-<a class="jxr_linenumber" name="191" href="#191">191</a>         <strong class="jxr_keyword">long</strong> commitTsForTx1 = tsoClient.commit(startTsForTx1, Sets.newHashSet(c1)).get();
-<a class="jxr_linenumber" name="192" href="#192">192</a>         assertTrue(commitTsForTx1 &gt; startTsForTx1, <span class="jxr_string">"Commit TS should be higher than Start TS for the same tx"</span>);
-<a class="jxr_linenumber" name="193" href="#193">193</a> 
-<a class="jxr_linenumber" name="194" href="#194">194</a>         Long commitTs1InCommitTable = commitTableClient.getCommitTimestamp(startTsForTx1).get().get().getValue();
-<a class="jxr_linenumber" name="195" href="#195">195</a>         assertNotNull(commitTs1InCommitTable, <span class="jxr_string">"Tx is committed, should return as such from Commit Table"</span>);
-<a class="jxr_linenumber" name="196" href="#196">196</a>         assertEquals(commitTsForTx1, (<strong class="jxr_keyword">long</strong>) commitTs1InCommitTable,
-<a class="jxr_linenumber" name="197" href="#197">197</a>                 <span class="jxr_string">"getCommitTimestamp() &amp; commit() should report same Commit TS value for same tx"</span>);
-<a class="jxr_linenumber" name="198" href="#198">198</a>         assertTrue(commitTs1InCommitTable &gt; startTsForTx2, <span class="jxr_string">"Commit TS should be higher than tx's Start TS"</span>);
-<a class="jxr_linenumber" name="199" href="#199">199</a>     }
+<a class="jxr_linenumber" name="188" href="#188">188</a>         Long commitTs1InCommitTable = commitTableClient.getCommitTimestamp(startTsForTx1).get().get().getValue();
+<a class="jxr_linenumber" name="189" href="#189">189</a>         assertNotNull(commitTs1InCommitTable, <span class="jxr_string">"Tx is committed, should return as such from Commit Table"</span>);
+<a class="jxr_linenumber" name="190" href="#190">190</a>         assertEquals(commitTsForTx1, (<strong class="jxr_keyword">long</strong>) commitTs1InCommitTable,
+<a class="jxr_linenumber" name="191" href="#191">191</a>                 <span class="jxr_string">"getCommitTimestamp() &amp; commit() should report same Commit TS value for same tx"</span>);
+<a class="jxr_linenumber" name="192" href="#192">192</a>         assertTrue(commitTs1InCommitTable &gt; startTsForTx2, <span class="jxr_string">"Commit TS should be higher than tx's Start TS"</span>);
+<a class="jxr_linenumber" name="193" href="#193">193</a>     }
+<a class="jxr_linenumber" name="194" href="#194">194</a> 
+<a class="jxr_linenumber" name="195" href="#195">195</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="196" href="#196">196</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTwoConcurrentTxWithOverlappingWritesetsHaveConflicts() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="197" href="#197">197</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="198" href="#198">198</a>         <strong class="jxr_keyword">long</strong> startTsTx2 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="199" href="#199">199</a>         assertTrue(startTsTx2 &gt; startTsTx1, <span class="jxr_string">"Second TX should have higher TS"</span>);
 <a class="jxr_linenumber" name="200" href="#200">200</a> 
-<a class="jxr_linenumber" name="201" href="#201">201</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="202" href="#202">202</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTwoConcurrentTxWithOverlappingWritesetsHaveConflicts() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="203" href="#203">203</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="204" href="#204">204</a>         <strong class="jxr_keyword">long</strong> startTsTx2 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="205" href="#205">205</a>         assertTrue(startTsTx2 &gt; startTsTx1, <span class="jxr_string">"Second TX should have higher TS"</span>);
-<a class="jxr_linenumber" name="206" href="#206">206</a> 
-<a class="jxr_linenumber" name="207" href="#207">207</a>         <strong class="jxr_keyword">long</strong> commitTsTx1 = tsoClient.commit(startTsTx1, Sets.newHashSet(c1)).get();
-<a class="jxr_linenumber" name="208" href="#208">208</a>         assertTrue(commitTsTx1 &gt; startTsTx1, <span class="jxr_string">"Commit TS must be higher than Start TS for the same tx"</span>);
-<a class="jxr_linenumber" name="209" href="#209">209</a> 
-<a class="jxr_linenumber" name="210" href="#210">210</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="211" href="#211">211</a>             tsoClient.commit(startTsTx2, Sets.newHashSet(c1, c2)).get();
-<a class="jxr_linenumber" name="212" href="#212">212</a>             Assert.fail(<span class="jxr_string">"Second TX should fail on commit"</span>);
-<a class="jxr_linenumber" name="213" href="#213">213</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="214" href="#214">214</a>             assertEquals(AbortException.<strong class="jxr_keyword">class</strong>, ee.getCause().getClass(), <span class="jxr_string">"Should have aborted"</span>);
-<a class="jxr_linenumber" name="215" href="#215">215</a>         }
-<a class="jxr_linenumber" name="216" href="#216">216</a>     }
+<a class="jxr_linenumber" name="201" href="#201">201</a>         <strong class="jxr_keyword">long</strong> commitTsTx1 = tsoClient.commit(startTsTx1, Sets.newHashSet(c1)).get();
+<a class="jxr_linenumber" name="202" href="#202">202</a>         assertTrue(commitTsTx1 &gt; startTsTx1, <span class="jxr_string">"Commit TS must be higher than Start TS for the same tx"</span>);
+<a class="jxr_linenumber" name="203" href="#203">203</a> 
+<a class="jxr_linenumber" name="204" href="#204">204</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="205" href="#205">205</a>             tsoClient.commit(startTsTx2, Sets.newHashSet(c1, c2)).get();
+<a class="jxr_linenumber" name="206" href="#206">206</a>             Assert.fail(<span class="jxr_string">"Second TX should fail on commit"</span>);
+<a class="jxr_linenumber" name="207" href="#207">207</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
+<a class="jxr_linenumber" name="208" href="#208">208</a>             assertEquals(AbortException.<strong class="jxr_keyword">class</strong>, ee.getCause().getClass(), <span class="jxr_string">"Should have aborted"</span>);
+<a class="jxr_linenumber" name="209" href="#209">209</a>         }
+<a class="jxr_linenumber" name="210" href="#210">210</a>     }
+<a class="jxr_linenumber" name="211" href="#211">211</a> 
+<a class="jxr_linenumber" name="212" href="#212">212</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="213" href="#213">213</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConflictsAndMonotonicallyTimestampGrowthWithTwoDifferentTSOClients() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="214" href="#214">214</a>         <strong class="jxr_keyword">long</strong> startTsTx1Client1 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="215" href="#215">215</a>         <strong class="jxr_keyword">long</strong> startTsTx2Client1 = tsoClient.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="216" href="#216">216</a>         <strong class="jxr_keyword">long</strong> startTsTx3Client1 = tsoClient.getNewStartTimestamp().get();
 <a class="jxr_linenumber" name="217" href="#217">217</a> 
-<a class="jxr_linenumber" name="218" href="#218">218</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="219" href="#219">219</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionStartedBeforeFenceAborts() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="220" href="#220">220</a> 
-<a class="jxr_linenumber" name="221" href="#221">221</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="222" href="#222">222</a> 
-<a class="jxr_linenumber" name="223" href="#223">223</a>         <strong class="jxr_keyword">long</strong> fenceID = tsoClient.getFence(c1.getTableId()).get();
-<a class="jxr_linenumber" name="224" href="#224">224</a> 
-<a class="jxr_linenumber" name="225" href="#225">225</a>         assertTrue(fenceID &gt; startTsTx1, <span class="jxr_string">"Fence ID should be higher thank Tx1ID"</span>);
+<a class="jxr_linenumber" name="218" href="#218">218</a>         tsoClient.commit(startTsTx1Client1, Sets.newHashSet(c1)).get();
+<a class="jxr_linenumber" name="219" href="#219">219</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="220" href="#220">220</a>             tsoClient.commit(startTsTx3Client1, Sets.newHashSet(c1, c2)).get();
+<a class="jxr_linenumber" name="221" href="#221">221</a>             Assert.fail(<span class="jxr_string">"Second commit should fail as conflicts with the previous concurrent one"</span>);
+<a class="jxr_linenumber" name="222" href="#222">222</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
+<a class="jxr_linenumber" name="223" href="#223">223</a>             assertEquals(AbortException.<strong class="jxr_keyword">class</strong>, ee.getCause().getClass(), <span class="jxr_string">"Should have aborted"</span>);
+<a class="jxr_linenumber" name="224" href="#224">224</a>         }
+<a class="jxr_linenumber" name="225" href="#225">225</a>         <strong class="jxr_keyword">long</strong> startTsTx4Client2 = justAnotherTSOClient.getNewStartTimestamp().get();
 <a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="228" href="#228">228</a>             tsoClient.commit(startTsTx1, Sets.newHashSet(c1, c2)).get();
-<a class="jxr_linenumber" name="229" href="#229">229</a>             Assert.fail(<span class="jxr_string">"TX should fail on commit"</span>);
-<a class="jxr_linenumber" name="230" href="#230">230</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="231" href="#231">231</a>             assertEquals(AbortException.<strong class="jxr_keyword">class</strong>, ee.getCause().getClass(), <span class="jxr_string">"Should have aborted"</span>);
-<a class="jxr_linenumber" name="232" href="#232">232</a>         }
-<a class="jxr_linenumber" name="233" href="#233">233</a>     }
-<a class="jxr_linenumber" name="234" href="#234">234</a> 
-<a class="jxr_linenumber" name="235" href="#235">235</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="236" href="#236">236</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionStartedBeforeNonOverlapFenceCommits() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="237" href="#237">237</a> 
-<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="239" href="#239">239</a> 
-<a class="jxr_linenumber" name="240" href="#240">240</a>         tsoClient.getFence(7).get();
-<a class="jxr_linenumber" name="241" href="#241">241</a> 
-<a class="jxr_linenumber" name="242" href="#242">242</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="243" href="#243">243</a>             tsoClient.commit(startTsTx1, Sets.newHashSet(c1, c2)).get();
-<a class="jxr_linenumber" name="244" href="#244">244</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="245" href="#245">245</a>             Assert.fail(<span class="jxr_string">"TX should successfully commit"</span>);        }
-<a class="jxr_linenumber" name="246" href="#246">246</a>     }
-<a class="jxr_linenumber" name="247" href="#247">247</a> 
-<a class="jxr_linenumber" name="248" href="#248">248</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="249" href="#249">249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionStartedAfterFenceCommits() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="250" href="#250">250</a> 
-<a class="jxr_linenumber" name="251" href="#251">251</a>         tsoClient.getFence(c1.getTableId()).get();
-<a class="jxr_linenumber" name="252" href="#252">252</a> 
-<a class="jxr_linenumber" name="253" href="#253">253</a>         <strong class="jxr_keyword">long</strong> startTsTx1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="254" href="#254">254</a> 
-<a class="jxr_linenumber" name="255" href="#255">255</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="256" href="#256">256</a>             tsoClient.commit(startTsTx1, Sets.newHashSet(c1, c2)).get();
-<a class="jxr_linenumber" name="257" href="#257">257</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="258" href="#258">258</a>             Assert.fail(<span class="jxr_string">"TX should successfully commit"</span>);
-<a class="jxr_linenumber" name="259" href="#259">259</a>         }
-<a class="jxr_linenumber" name="260" href="#260">260</a>     }
-<a class="jxr_linenumber" name="261" href="#261">261</a> 
-<a class="jxr_linenumber" name="262" href="#262">262</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="263" href="#263">263</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConflictsAndMonotonicallyTimestampGrowthWithTwoDifferentTSOClients() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="264" href="#264">264</a>         <strong class="jxr_keyword">long</strong> startTsTx1Client1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="265" href="#265">265</a>         <strong class="jxr_keyword">long</strong> startTsTx2Client1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="266" href="#266">266</a>         <strong class="jxr_keyword">long</strong> startTsTx3Client1 = tsoClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="267" href="#267">267</a> 
-<a class="jxr_linenumber" name="268" href="#268">268</a>         tsoClient.commit(startTsTx1Client1, Sets.newHashSet(c1)).get();
-<a class="jxr_linenumber" name="269" href="#269">269</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="270" href="#270">270</a>             tsoClient.commit(startTsTx3Client1, Sets.newHashSet(c1, c2)).get();
-<a class="jxr_linenumber" name="271" href="#271">271</a>             Assert.fail(<span class="jxr_string">"Second commit should fail as conflicts with the previous concurrent one"</span>);
-<a class="jxr_linenumber" name="272" href="#272">272</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="273" href="#273">273</a>             assertEquals(AbortException.<strong class="jxr_keyword">class</strong>, ee.getCause().getClass(), <span class="jxr_string">"Should have aborted"</span>);
-<a class="jxr_linenumber" name="274" href="#274">274</a>         }
-<a class="jxr_linenumber" name="275" href="#275">275</a>         <strong class="jxr_keyword">long</strong> startTsTx4Client2 = justAnotherTSOClient.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="276" href="#276">276</a> 
-<a class="jxr_linenumber" name="277" href="#277">277</a>         assertFalse(commitTableClient.getCommitTimestamp(startTsTx3Client1).get().isPresent(), <span class="jxr_string">"Tx3 didn't commit"</span>);
-<a class="jxr_linenumber" name="278" href="#278">278</a>         <strong class="jxr_keyword">long</strong> commitTSTx1 = commitTableClient.getCommitTimestamp(startTsTx1Client1).get().get().getValue();
-<a class="jxr_linenumber" name="279" href="#279">279</a>         assertTrue(commitTSTx1 &gt; startTsTx2Client1, <span class="jxr_string">"Tx1 committed after Tx2 started"</span>);
-<a class="jxr_linenumber" name="280" href="#280">280</a>         assertTrue(commitTSTx1 &lt; startTsTx4Client2, <span class="jxr_string">"Tx1 committed before Tx4 started on the other TSO Client"</span>);
-<a class="jxr_linenumber" name="281" href="#281">281</a>     }
-<a class="jxr_linenumber" name="282" href="#282">282</a> 
-<a class="jxr_linenumber" name="283" href="#283">283</a> }
+<a class="jxr_linenumber" name="227" href="#227">227</a>         assertFalse(commitTableClient.getCommitTimestamp(startTsTx3Client1).get().isPresent(), <span class="jxr_string">"Tx3 didn't commit"</span>);
+<a class="jxr_linenumber" name="228" href="#228">228</a>         <strong class="jxr_keyword">long</strong> commitTSTx1 = commitTableClient.getCommitTimestamp(startTsTx1Client1).get().get().getValue();
+<a class="jxr_linenumber" name="229" href="#229">229</a>         assertTrue(commitTSTx1 &gt; startTsTx2Client1, <span class="jxr_string">"Tx1 committed after Tx2 started"</span>);
+<a class="jxr_linenumber" name="230" href="#230">230</a>         assertTrue(commitTSTx1 &lt; startTsTx4Client2, <span class="jxr_string">"Tx1 committed before Tx4 started on the other TSO Client"</span>);
+<a class="jxr_linenumber" name="231" href="#231">231</a>     }
+<a class="jxr_linenumber" name="232" href="#232">232</a> 
+<a class="jxr_linenumber" name="233" href="#233">233</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[20/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/committable/hbase/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/committable/hbase/package-frame.html b/xref/org/apache/omid/committable/hbase/package-frame.html
index 6ee11e6..3185912 100644
--- a/xref/org/apache/omid/committable/hbase/package-frame.html
+++ b/xref/org/apache/omid/committable/hbase/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.committable.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.committable.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/committable/hbase/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/committable/hbase/package-summary.html b/xref/org/apache/omid/committable/hbase/package-summary.html
index 82e5907..3e91649 100644
--- a/xref/org/apache/omid/committable/hbase/package-summary.html
+++ b/xref/org/apache/omid/committable/hbase/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.committable.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.committable.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/committable/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/committable/package-frame.html b/xref/org/apache/omid/committable/package-frame.html
index 4f25f85..2c89653 100644
--- a/xref/org/apache/omid/committable/package-frame.html
+++ b/xref/org/apache/omid/committable/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.committable</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.committable</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/committable/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/committable/package-summary.html b/xref/org/apache/omid/committable/package-summary.html
index 1705ed3..5fef25a 100644
--- a/xref/org/apache/omid/committable/package-summary.html
+++ b/xref/org/apache/omid/committable/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.committable</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.committable</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/examples/BasicExample.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/examples/BasicExample.html b/xref/org/apache/omid/examples/BasicExample.html
index 1300c14..fb3612b 100644
--- a/xref/org/apache/omid/examples/BasicExample.html
+++ b/xref/org/apache/omid/examples/BasicExample.html
@@ -27,102 +27,99 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.examples;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TTable;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TransactionManager;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************</em>
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TTable;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TransactionManager;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************</em>
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * Example code which demonstrates an atomic write into two different rows in HBase</em>
 <a class="jxr_linenumber" name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * Example code which demonstrates an atomic write into two different rows in HBase</em>
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************</em>
 <a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************</em>
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * After building the package with 'mvn clean package' find the resulting examples-{version}-bin.tar.gz file in the</em>
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * 'examples/target' folder. Copy it to the target host and expand with 'tar -zxvf examples-{version}-bin.tar.gz'.</em>
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * Make sure that 'hbase-site.xml' and 'core-site.xml' are either in classpath (see run.sh) or explicitly referenced in</em>
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * configuration file. If a secure HBase deployment is needed, make sure to specify the principal (user) and keytab file.</em>
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * The example requires a user table to perform transactional read/write operations. A table is already specified in</em>
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * the default configuration, and can be created with the following command using the 'hbase shell':</em>
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * create 'MY_TX_TABLE', {NAME =&amp;gt; 'MY_CF', VERSIONS =&amp;gt; '2147483647', TTL =&amp;gt; '2147483647'}</em>
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * Make sure that the principal/user has RW permissions for the given table using also the 'hbase shell':</em>
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * grant '{principal/user}', 'RW', 'MY_TX_TABLE'</em>
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * Alternatively, a table with a column family already created can be used by specifying the table name and column</em>
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * family identifiers using the command line arguments (see details also in 'run.sh') If a table namespace is required,</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * specify it like this: 'namespace:table_name'</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * Finally, run the example using the 'run.sh' script without arguments or specifying the necessary configuration</em>
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * parameters.</em>
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/examples/BasicExample.html">BasicExample</a> {
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * After building the package with 'mvn clean package' find the resulting examples-{version}-bin.tar.gz file in the</em>
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * 'examples/target' folder. Copy it to the target host and expand with 'tar -zxvf examples-{version}-bin.tar.gz'.</em>
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * Make sure that 'hbase-site.xml' and 'core-site.xml' are either in classpath (see run.sh) or explicitly referenced in</em>
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * configuration file. If a secure HBase deployment is needed, make sure to specify the principal (user) and keytab file.</em>
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * The example requires a user table to perform transactional read/write operations. A table is already specified in</em>
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * the default configuration, and can be created with the following command using the 'hbase shell':</em>
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * create 'MY_TX_TABLE', {NAME =&amp;gt; 'MY_CF', VERSIONS =&amp;gt; '2147483647', TTL =&amp;gt; '2147483647'}</em>
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * Make sure that the principal/user has RW permissions for the given table using also the 'hbase shell':</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * grant '{principal/user}', 'RW', 'MY_TX_TABLE'</em>
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * Alternatively, a table with a column family already created can be used by specifying the table name and column</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * family identifiers using the command line arguments (see details also in 'run.sh') If a table namespace is required,</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * specify it like this: 'namespace:table_name'</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * Finally, run the example using the 'run.sh' script without arguments or specifying the necessary configuration</em>
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * parameters.</em>
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/examples/BasicExample.html">BasicExample</a> {
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(BasicExample.<strong class="jxr_keyword">class</strong>);
 <a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(BasicExample.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>          LOG.info(<span class="jxr_string">"Parsing command line arguments"</span>);
-<a class="jxr_linenumber" name="71" href="#71">71</a>          String userTableName = <span class="jxr_string">"MY_TX_TABLE"</span>;
-<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 0 &amp;&amp; StringUtils.isNotEmpty(args[0])) {
-<a class="jxr_linenumber" name="73" href="#73">73</a>              userTableName = args[0];
-<a class="jxr_linenumber" name="74" href="#74">74</a>          }
-<a class="jxr_linenumber" name="75" href="#75">75</a>          byte[] family = Bytes.toBytes(<span class="jxr_string">"MY_CF"</span>);
-<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 1 &amp;&amp; StringUtils.isNotEmpty(args[1])) {
-<a class="jxr_linenumber" name="77" href="#77">77</a>              family = Bytes.toBytes(args[1]);
-<a class="jxr_linenumber" name="78" href="#78">78</a>          }
-<a class="jxr_linenumber" name="79" href="#79">79</a>          LOG.info(<span class="jxr_string">"Table '{}', column family '{}'"</span>, userTableName, Bytes.toString(family));
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>          byte[] exampleRow1 = Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW1"</span>);
-<a class="jxr_linenumber" name="82" href="#82">82</a>          byte[] exampleRow2 = Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW2"</span>);
-<a class="jxr_linenumber" name="83" href="#83">83</a>          byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"MY_Q"</span>);
-<a class="jxr_linenumber" name="84" href="#84">84</a>          byte[] dataValue1 = Bytes.toBytes(<span class="jxr_string">"val1"</span>);
-<a class="jxr_linenumber" name="85" href="#85">85</a>          byte[] dataValue2 = Bytes.toBytes(<span class="jxr_string">"val2"</span>);
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>          LOG.info(<span class="jxr_string">"Creating access to Omid Transaction Manager &amp; Transactional Table '{}'"</span>, userTableName);
-<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">try</strong> (TransactionManager tm = HBaseTransactionManager.newInstance();
-<a class="jxr_linenumber" name="89" href="#89">89</a>               Connection conn = ConnectionFactory.createConnection();
-<a class="jxr_linenumber" name="90" href="#90">90</a>               <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> txTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(conn, userTableName))
-<a class="jxr_linenumber" name="91" href="#91">91</a>          {
-<a class="jxr_linenumber" name="92" href="#92">92</a>              <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx = tm.begin();
-<a class="jxr_linenumber" name="93" href="#93">93</a>              LOG.info(<span class="jxr_string">"Transaction {} STARTED"</span>, tx);
-<a class="jxr_linenumber" name="94" href="#94">94</a>  
-<a class="jxr_linenumber" name="95" href="#95">95</a>              Put row1 = <strong class="jxr_keyword">new</strong> Put(exampleRow1);
-<a class="jxr_linenumber" name="96" href="#96">96</a>              row1.addColumn(family, qualifier, dataValue1);
-<a class="jxr_linenumber" name="97" href="#97">97</a>              txTable.put(tx, row1);
-<a class="jxr_linenumber" name="98" href="#98">98</a>              LOG.info(<span class="jxr_string">"Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} "</span>,
-<a class="jxr_linenumber" name="99" href="#99">99</a>                       tx, userTableName, Bytes.toString(exampleRow1), Bytes.toString(family),
-<a class="jxr_linenumber" name="100" href="#100">100</a>                      Bytes.toString(qualifier), Bytes.toString(dataValue1));
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>             Put row2 = <strong class="jxr_keyword">new</strong> Put(exampleRow2);
-<a class="jxr_linenumber" name="103" href="#103">103</a>             row2.addColumn(family, qualifier, dataValue2);
-<a class="jxr_linenumber" name="104" href="#104">104</a>             txTable.put(tx, row2);
-<a class="jxr_linenumber" name="105" href="#105">105</a>             LOG.info(<span class="jxr_string">"Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} "</span>,
-<a class="jxr_linenumber" name="106" href="#106">106</a>                      tx, userTableName, Bytes.toString(exampleRow2), Bytes.toString(family),
-<a class="jxr_linenumber" name="107" href="#107">107</a>                      Bytes.toString(qualifier), Bytes.toString(dataValue2));
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>             tm.commit(tx);
-<a class="jxr_linenumber" name="110" href="#110">110</a>             LOG.info(<span class="jxr_string">"Transaction {} COMMITTED"</span>, tx);
-<a class="jxr_linenumber" name="111" href="#111">111</a>         }
-<a class="jxr_linenumber" name="112" href="#112">112</a> 
-<a class="jxr_linenumber" name="113" href="#113">113</a>     }
-<a class="jxr_linenumber" name="114" href="#114">114</a> 
-<a class="jxr_linenumber" name="115" href="#115">115</a> }
+<a class="jxr_linenumber" name="68" href="#68">68</a>          LOG.info(<span class="jxr_string">"Parsing command line arguments"</span>);
+<a class="jxr_linenumber" name="69" href="#69">69</a>          String userTableName = <span class="jxr_string">"MY_TX_TABLE"</span>;
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 0 &amp;&amp; StringUtils.isNotEmpty(args[0])) {
+<a class="jxr_linenumber" name="71" href="#71">71</a>              userTableName = args[0];
+<a class="jxr_linenumber" name="72" href="#72">72</a>          }
+<a class="jxr_linenumber" name="73" href="#73">73</a>          byte[] family = Bytes.toBytes(<span class="jxr_string">"MY_CF"</span>);
+<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 1 &amp;&amp; StringUtils.isNotEmpty(args[1])) {
+<a class="jxr_linenumber" name="75" href="#75">75</a>              family = Bytes.toBytes(args[1]);
+<a class="jxr_linenumber" name="76" href="#76">76</a>          }
+<a class="jxr_linenumber" name="77" href="#77">77</a>          LOG.info(<span class="jxr_string">"Table '{}', column family '{}'"</span>, userTableName, Bytes.toString(family));
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>          byte[] exampleRow1 = Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW1"</span>);
+<a class="jxr_linenumber" name="80" href="#80">80</a>          byte[] exampleRow2 = Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW2"</span>);
+<a class="jxr_linenumber" name="81" href="#81">81</a>          byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"MY_Q"</span>);
+<a class="jxr_linenumber" name="82" href="#82">82</a>          byte[] dataValue1 = Bytes.toBytes(<span class="jxr_string">"val1"</span>);
+<a class="jxr_linenumber" name="83" href="#83">83</a>          byte[] dataValue2 = Bytes.toBytes(<span class="jxr_string">"val2"</span>);
+<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="85" href="#85">85</a>          LOG.info(<span class="jxr_string">"Creating access to Omid Transaction Manager &amp; Transactional Table '{}'"</span>, userTableName);
+<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">try</strong> (TransactionManager tm = HBaseTransactionManager.newInstance();
+<a class="jxr_linenumber" name="87" href="#87">87</a>               <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> txTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(userTableName))
+<a class="jxr_linenumber" name="88" href="#88">88</a>          {
+<a class="jxr_linenumber" name="89" href="#89">89</a>              <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx = tm.begin();
+<a class="jxr_linenumber" name="90" href="#90">90</a>              LOG.info(<span class="jxr_string">"Transaction {} STARTED"</span>, tx);
+<a class="jxr_linenumber" name="91" href="#91">91</a>  
+<a class="jxr_linenumber" name="92" href="#92">92</a>              Put row1 = <strong class="jxr_keyword">new</strong> Put(exampleRow1);
+<a class="jxr_linenumber" name="93" href="#93">93</a>              row1.add(family, qualifier, dataValue1);
+<a class="jxr_linenumber" name="94" href="#94">94</a>              txTable.put(tx, row1);
+<a class="jxr_linenumber" name="95" href="#95">95</a>              LOG.info(<span class="jxr_string">"Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} "</span>,
+<a class="jxr_linenumber" name="96" href="#96">96</a>                       tx, userTableName, Bytes.toString(exampleRow1), Bytes.toString(family),
+<a class="jxr_linenumber" name="97" href="#97">97</a>                       Bytes.toString(qualifier), Bytes.toString(dataValue1));
+<a class="jxr_linenumber" name="98" href="#98">98</a>  
+<a class="jxr_linenumber" name="99" href="#99">99</a>              Put row2 = <strong class="jxr_keyword">new</strong> Put(exampleRow2);
+<a class="jxr_linenumber" name="100" href="#100">100</a>             row2.add(family, qualifier, dataValue2);
+<a class="jxr_linenumber" name="101" href="#101">101</a>             txTable.put(tx, row2);
+<a class="jxr_linenumber" name="102" href="#102">102</a>             LOG.info(<span class="jxr_string">"Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} "</span>,
+<a class="jxr_linenumber" name="103" href="#103">103</a>                      tx, userTableName, Bytes.toString(exampleRow2), Bytes.toString(family),
+<a class="jxr_linenumber" name="104" href="#104">104</a>                      Bytes.toString(qualifier), Bytes.toString(dataValue2));
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>             tm.commit(tx);
+<a class="jxr_linenumber" name="107" href="#107">107</a>             LOG.info(<span class="jxr_string">"Transaction {} COMMITTED"</span>, tx);
+<a class="jxr_linenumber" name="108" href="#108">108</a>         }
+<a class="jxr_linenumber" name="109" href="#109">109</a> 
+<a class="jxr_linenumber" name="110" href="#110">110</a>     }
+<a class="jxr_linenumber" name="111" href="#111">111</a> 
+<a class="jxr_linenumber" name="112" href="#112">112</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/examples/ConfigurationExample.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/examples/ConfigurationExample.html b/xref/org/apache/omid/examples/ConfigurationExample.html
index 2180704..ce22933 100644
--- a/xref/org/apache/omid/examples/ConfigurationExample.html
+++ b/xref/org/apache/omid/examples/ConfigurationExample.html
@@ -27,120 +27,117 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.examples;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConnType.DIRECT;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseOmidClientConfiguration;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.RollbackException;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TTable;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TransactionManager;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
 <a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
 <a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseOmidClientConfiguration;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.RollbackException;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TTable;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.Transaction;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.TransactionManager;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************************</em>
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConnType.DIRECT;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************************</em>
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> *  This example code demonstrates different ways to configure the Omid client settings for HBase</em>
 <a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> *  This example code demonstrates different ways to configure the Omid client settings for HBase</em>
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************************</em>
 <a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * ****************************************************************************************************************</em>
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * Please @see{BasicExample} first on how to use with all default settings</em>
 <a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * Please @see{BasicExample} first on how to use with all default settings</em>
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/examples/ConfigurationExample.html">ConfigurationExample</a> {
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(ConfigurationExample.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/examples/ConfigurationExample.html">ConfigurationExample</a> {
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(ConfigurationExample.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="48" href="#48">48</a>  
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>          LOG.info(<span class="jxr_string">"Parsing command line arguments"</span>);
-<a class="jxr_linenumber" name="54" href="#54">54</a>          String userTableName = <span class="jxr_string">"MY_TX_TABLE"</span>;
-<a class="jxr_linenumber" name="55" href="#55">55</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 0 &amp;&amp; StringUtils.isNotEmpty(args[0])) {
-<a class="jxr_linenumber" name="56" href="#56">56</a>              userTableName = args[0];
-<a class="jxr_linenumber" name="57" href="#57">57</a>          }
-<a class="jxr_linenumber" name="58" href="#58">58</a>          byte[] family = Bytes.toBytes(<span class="jxr_string">"MY_CF"</span>);
-<a class="jxr_linenumber" name="59" href="#59">59</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 1 &amp;&amp; StringUtils.isNotEmpty(args[1])) {
-<a class="jxr_linenumber" name="60" href="#60">60</a>              family = Bytes.toBytes(args[1]);
-<a class="jxr_linenumber" name="61" href="#61">61</a>          }
-<a class="jxr_linenumber" name="62" href="#62">62</a>          LOG.info(<span class="jxr_string">"Table '{}', column family '{}'"</span>, userTableName, Bytes.toString(family));
+<a class="jxr_linenumber" name="51" href="#51">51</a>          LOG.info(<span class="jxr_string">"Parsing command line arguments"</span>);
+<a class="jxr_linenumber" name="52" href="#52">52</a>          String userTableName = <span class="jxr_string">"MY_TX_TABLE"</span>;
+<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 0 &amp;&amp; StringUtils.isNotEmpty(args[0])) {
+<a class="jxr_linenumber" name="54" href="#54">54</a>              userTableName = args[0];
+<a class="jxr_linenumber" name="55" href="#55">55</a>          }
+<a class="jxr_linenumber" name="56" href="#56">56</a>          byte[] family = Bytes.toBytes(<span class="jxr_string">"MY_CF"</span>);
+<a class="jxr_linenumber" name="57" href="#57">57</a>          <strong class="jxr_keyword">if</strong> (args != <strong class="jxr_keyword">null</strong> &amp;&amp; args.length &gt; 1 &amp;&amp; StringUtils.isNotEmpty(args[1])) {
+<a class="jxr_linenumber" name="58" href="#58">58</a>              family = Bytes.toBytes(args[1]);
+<a class="jxr_linenumber" name="59" href="#59">59</a>          }
+<a class="jxr_linenumber" name="60" href="#60">60</a>          LOG.info(<span class="jxr_string">"Table '{}', column family '{}'"</span>, userTableName, Bytes.toString(family));
+<a class="jxr_linenumber" name="61" href="#61">61</a>  
+<a class="jxr_linenumber" name="62" href="#62">62</a>          <a href="../../../../org/apache/omid/examples/ConfigurationExample.html">ConfigurationExample</a> example = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/examples/ConfigurationExample.html">ConfigurationExample</a>();
 <a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>          <a href="../../../../org/apache/omid/examples/ConfigurationExample.html">ConfigurationExample</a> example = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/examples/ConfigurationExample.html">ConfigurationExample</a>();
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>          <em class="jxr_comment">// -----------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>          <em class="jxr_comment">// Omid client settings configuration through the 'hbase-omid-client-config.yml' configuration file</em>
 <a class="jxr_linenumber" name="66" href="#66">66</a>          <em class="jxr_comment">// -----------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="67" href="#67">67</a>          <em class="jxr_comment">// Omid client settings configuration through the 'hbase-omid-client-config.yml' configuration file</em>
-<a class="jxr_linenumber" name="68" href="#68">68</a>          <em class="jxr_comment">// -----------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>          <em class="jxr_comment">// The HBaseOmidClientConfiguration loads defaults from 'default-hbase-omid-client-config.yml'</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>          <em class="jxr_comment">// and then also applies settings from 'hbase-omid-client-config.yml' if it's available in the classpath.</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <em class="jxr_comment">// In the code snippet below, the user settings are loaded from the 'hbase-omid-client-config.yml' file in</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>          <em class="jxr_comment">// the /conf directory that is included in the example classpath (See run.sh.) You can modify the Omid client</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>          <em class="jxr_comment">// settings there or you can place your own 'hbase-omid-client-config.yml' file with all your custom settings</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <em class="jxr_comment">// in the application classpath.</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>          <em class="jxr_comment">// The HBaseOmidClientConfiguration loads defaults from 'default-hbase-omid-client-config.yml'</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>          <em class="jxr_comment">// and then also applies settings from 'hbase-omid-client-config.yml' if it's available in the classpath.</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <em class="jxr_comment">// In the code snippet below, the user settings are loaded from the 'hbase-omid-client-config.yml' file in</em>
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <em class="jxr_comment">// the /conf directory that is included in the example classpath (See run.sh.) You can modify the Omid client</em>
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <em class="jxr_comment">// settings there or you can place your own 'hbase-omid-client-config.yml' file with all your custom settings</em>
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <em class="jxr_comment">// in the application classpath.</em>
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>          example.doWork(userTableName, family, <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>());
 <a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          example.doWork(userTableName, family, <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>());
-<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="76" href="#76">76</a>          <em class="jxr_comment">// -----------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="77" href="#77">77</a>          <em class="jxr_comment">// Omid client settings configuration from application code</em>
 <a class="jxr_linenumber" name="78" href="#78">78</a>          <em class="jxr_comment">// -----------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <em class="jxr_comment">// Omid client settings configuration from application code</em>
-<a class="jxr_linenumber" name="80" href="#80">80</a>          <em class="jxr_comment">// -----------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="81" href="#81">81</a>          <em class="jxr_comment">// You can also configure Omid programmatically from your code. This is useful for example in unit tests.</em>
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <em class="jxr_comment">// The HBaseOmidClientConfiguration still loads defaults from 'default-hbase-omid-client-config.yml' first,</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <em class="jxr_comment">// and then applies settings from 'hbase-omid-client-config.yml' if it's available and then use explicit</em>
-<a class="jxr_linenumber" name="84" href="#84">84</a>          <em class="jxr_comment">// settings in the code. An example of an explicit Omid client configuration in code is shown below.</em>
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>          <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> omidClientConfiguration = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>();
-<a class="jxr_linenumber" name="87" href="#87">87</a>          omidClientConfiguration.setConnectionType(DIRECT);
-<a class="jxr_linenumber" name="88" href="#88">88</a>          omidClientConfiguration.setConnectionString(<span class="jxr_string">"localhost:54758"</span>);
-<a class="jxr_linenumber" name="89" href="#89">89</a>          omidClientConfiguration.setRetryDelayInMs(3000);
-<a class="jxr_linenumber" name="90" href="#90">90</a>  
-<a class="jxr_linenumber" name="91" href="#91">91</a>          example.doWork(userTableName, family, omidClientConfiguration);
-<a class="jxr_linenumber" name="92" href="#92">92</a>      }
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> doWork(String userTableName, byte[] family, <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> configuration)
-<a class="jxr_linenumber" name="95" href="#95">95</a>              <strong class="jxr_keyword">throws</strong> IOException, RollbackException, InterruptedException {
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>          byte[] exampleRow1 = Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW1"</span>);
-<a class="jxr_linenumber" name="98" href="#98">98</a>          byte[] exampleRow2 = Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW2"</span>);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"MY_Q"</span>);
-<a class="jxr_linenumber" name="100" href="#100">100</a>         byte[] dataValue1 = Bytes.toBytes(<span class="jxr_string">"val1"</span>);
-<a class="jxr_linenumber" name="101" href="#101">101</a>         byte[] dataValue2 = Bytes.toBytes(<span class="jxr_string">"val2"</span>);
-<a class="jxr_linenumber" name="102" href="#102">102</a> 
-<a class="jxr_linenumber" name="103" href="#103">103</a>         LOG.info(<span class="jxr_string">"Creating access to Omid Transaction Manager &amp; Transactional Table '{}'"</span>, userTableName);
-<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">try</strong> (TransactionManager tm = HBaseTransactionManager.newInstance(configuration);
-<a class="jxr_linenumber" name="105" href="#105">105</a>              Connection conn = ConnectionFactory.createConnection();
-<a class="jxr_linenumber" name="106" href="#106">106</a>              <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> txTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(conn, userTableName))
-<a class="jxr_linenumber" name="107" href="#107">107</a>         {
-<a class="jxr_linenumber" name="108" href="#108">108</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 100; i++) {
-<a class="jxr_linenumber" name="109" href="#109">109</a>                 <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx = tm.begin();
-<a class="jxr_linenumber" name="110" href="#110">110</a>                 LOG.info(<span class="jxr_string">"Transaction #{} {} STARTED"</span>, i, tx);
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>                 Put row1 = <strong class="jxr_keyword">new</strong> Put(exampleRow1);
-<a class="jxr_linenumber" name="113" href="#113">113</a>                 row1.addColumn(family, qualifier, dataValue1);
-<a class="jxr_linenumber" name="114" href="#114">114</a>                 txTable.put(tx, row1);
-<a class="jxr_linenumber" name="115" href="#115">115</a>                 LOG.info(<span class="jxr_string">"Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} "</span>,
-<a class="jxr_linenumber" name="116" href="#116">116</a>                          tx, userTableName, Bytes.toString(exampleRow1), Bytes.toString(family),
-<a class="jxr_linenumber" name="117" href="#117">117</a>                          Bytes.toString(qualifier), Bytes.toString(dataValue1));
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>                 Put row2 = <strong class="jxr_keyword">new</strong> Put(exampleRow2);
-<a class="jxr_linenumber" name="120" href="#120">120</a>                 row2.addColumn(family, qualifier, dataValue2);
-<a class="jxr_linenumber" name="121" href="#121">121</a>                 txTable.put(tx, row2);
-<a class="jxr_linenumber" name="122" href="#122">122</a>                 LOG.info(<span class="jxr_string">"Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} "</span>,
-<a class="jxr_linenumber" name="123" href="#123">123</a>                          tx, userTableName, Bytes.toString(exampleRow2), Bytes.toString(family),
-<a class="jxr_linenumber" name="124" href="#124">124</a>                          Bytes.toString(qualifier), Bytes.toString(dataValue2));
-<a class="jxr_linenumber" name="125" href="#125">125</a> 
-<a class="jxr_linenumber" name="126" href="#126">126</a>                 tm.commit(tx);
-<a class="jxr_linenumber" name="127" href="#127">127</a>                 LOG.info(<span class="jxr_string">"Transaction #{} {} COMMITTED"</span>, i, tx);
-<a class="jxr_linenumber" name="128" href="#128">128</a>             }
-<a class="jxr_linenumber" name="129" href="#129">129</a>         }
-<a class="jxr_linenumber" name="130" href="#130">130</a> 
-<a class="jxr_linenumber" name="131" href="#131">131</a>     }
-<a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a> }
+<a class="jxr_linenumber" name="79" href="#79">79</a>          <em class="jxr_comment">// You can also configure Omid programmatically from your code. This is useful for example in unit tests.</em>
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <em class="jxr_comment">// The HBaseOmidClientConfiguration still loads defaults from 'default-hbase-omid-client-config.yml' first,</em>
+<a class="jxr_linenumber" name="81" href="#81">81</a>          <em class="jxr_comment">// and then applies settings from 'hbase-omid-client-config.yml' if it's available and then use explicit</em>
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <em class="jxr_comment">// settings in the code. An example of an explicit Omid client configuration in code is shown below.</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>          <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> omidClientConfiguration = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>();
+<a class="jxr_linenumber" name="85" href="#85">85</a>          omidClientConfiguration.setConnectionType(DIRECT);
+<a class="jxr_linenumber" name="86" href="#86">86</a>          omidClientConfiguration.setConnectionString(<span class="jxr_string">"localhost:54758"</span>);
+<a class="jxr_linenumber" name="87" href="#87">87</a>          omidClientConfiguration.setRetryDelayInMs(3000);
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>          example.doWork(userTableName, family, omidClientConfiguration);
+<a class="jxr_linenumber" name="90" href="#90">90</a>      }
+<a class="jxr_linenumber" name="91" href="#91">91</a>  
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> doWork(String userTableName, byte[] family, <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> configuration)
+<a class="jxr_linenumber" name="93" href="#93">93</a>              <strong class="jxr_keyword">throws</strong> IOException, RollbackException, InterruptedException {
+<a class="jxr_linenumber" name="94" href="#94">94</a>  
+<a class="jxr_linenumber" name="95" href="#95">95</a>          byte[] exampleRow1 = Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW1"</span>);
+<a class="jxr_linenumber" name="96" href="#96">96</a>          byte[] exampleRow2 = Bytes.toBytes(<span class="jxr_string">"EXAMPLE_ROW2"</span>);
+<a class="jxr_linenumber" name="97" href="#97">97</a>          byte[] qualifier = Bytes.toBytes(<span class="jxr_string">"MY_Q"</span>);
+<a class="jxr_linenumber" name="98" href="#98">98</a>          byte[] dataValue1 = Bytes.toBytes(<span class="jxr_string">"val1"</span>);
+<a class="jxr_linenumber" name="99" href="#99">99</a>          byte[] dataValue2 = Bytes.toBytes(<span class="jxr_string">"val2"</span>);
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>         LOG.info(<span class="jxr_string">"Creating access to Omid Transaction Manager &amp; Transactional Table '{}'"</span>, userTableName);
+<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">try</strong> (TransactionManager tm = HBaseTransactionManager.newInstance(configuration);
+<a class="jxr_linenumber" name="103" href="#103">103</a>              <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> txTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(userTableName))
+<a class="jxr_linenumber" name="104" href="#104">104</a>         {
+<a class="jxr_linenumber" name="105" href="#105">105</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 100; i++) {
+<a class="jxr_linenumber" name="106" href="#106">106</a>                 <a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx = tm.begin();
+<a class="jxr_linenumber" name="107" href="#107">107</a>                 LOG.info(<span class="jxr_string">"Transaction #{} {} STARTED"</span>, i, tx);
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>                 Put row1 = <strong class="jxr_keyword">new</strong> Put(exampleRow1);
+<a class="jxr_linenumber" name="110" href="#110">110</a>                 row1.add(family, qualifier, dataValue1);
+<a class="jxr_linenumber" name="111" href="#111">111</a>                 txTable.put(tx, row1);
+<a class="jxr_linenumber" name="112" href="#112">112</a>                 LOG.info(<span class="jxr_string">"Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} "</span>,
+<a class="jxr_linenumber" name="113" href="#113">113</a>                          tx, userTableName, Bytes.toString(exampleRow1), Bytes.toString(family),
+<a class="jxr_linenumber" name="114" href="#114">114</a>                          Bytes.toString(qualifier), Bytes.toString(dataValue1));
+<a class="jxr_linenumber" name="115" href="#115">115</a> 
+<a class="jxr_linenumber" name="116" href="#116">116</a>                 Put row2 = <strong class="jxr_keyword">new</strong> Put(exampleRow2);
+<a class="jxr_linenumber" name="117" href="#117">117</a>                 row2.add(family, qualifier, dataValue2);
+<a class="jxr_linenumber" name="118" href="#118">118</a>                 txTable.put(tx, row2);
+<a class="jxr_linenumber" name="119" href="#119">119</a>                 LOG.info(<span class="jxr_string">"Transaction {} trying to write a new value in [TABLE:ROW/CF/Q] =&gt; {}:{}/{}/{} = {} "</span>,
+<a class="jxr_linenumber" name="120" href="#120">120</a>                          tx, userTableName, Bytes.toString(exampleRow2), Bytes.toString(family),
+<a class="jxr_linenumber" name="121" href="#121">121</a>                          Bytes.toString(qualifier), Bytes.toString(dataValue2));
+<a class="jxr_linenumber" name="122" href="#122">122</a> 
+<a class="jxr_linenumber" name="123" href="#123">123</a>                 tm.commit(tx);
+<a class="jxr_linenumber" name="124" href="#124">124</a>                 LOG.info(<span class="jxr_string">"Transaction #{} {} COMMITTED"</span>, i, tx);
+<a class="jxr_linenumber" name="125" href="#125">125</a>             }
+<a class="jxr_linenumber" name="126" href="#126">126</a>         }
+<a class="jxr_linenumber" name="127" href="#127">127</a> 
+<a class="jxr_linenumber" name="128" href="#128">128</a>     }
+<a class="jxr_linenumber" name="129" href="#129">129</a> 
+<a class="jxr_linenumber" name="130" href="#130">130</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[04/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/TimestampOracleImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/TimestampOracleImpl.html b/xref/org/apache/omid/tso/TimestampOracleImpl.html
index 73db360..8c2bef0 100644
--- a/xref/org/apache/omid/tso/TimestampOracleImpl.html
+++ b/xref/org/apache/omid/tso/TimestampOracleImpl.html
@@ -29,159 +29,153 @@
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.annotations.VisibleForTesting;
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ThreadFactoryBuilder;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Gauge;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.TimestampStorage;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.AbstractTransactionManager;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> javax.inject.Singleton;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executor;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.metrics.MetricsUtils.name;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * The Timestamp Oracle that gives monotonically increasing timestamps.</em>
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="42" href="#42">42</a>  @Singleton
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">TimestampOracleImpl</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/tso/TimestampOracle.html">TimestampOracle</a> {
-<a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TimestampOracleImpl.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Gauge;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.TimestampStorage;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> javax.inject.Singleton;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executor;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.metrics.MetricsUtils.name;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * The Timestamp Oracle that gives monotonically increasing timestamps.</em>
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="39" href="#39">39</a>  @Singleton
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">TimestampOracleImpl</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/tso/TimestampOracle.html">TimestampOracle</a> {
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TimestampOracleImpl.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="43" href="#43">43</a>  
+<a class="jxr_linenumber" name="44" href="#44">44</a>      @VisibleForTesting
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">InMemoryTimestampStorage</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/timestamp/storage/TimestampStorage.html">TimestampStorage</a> {
 <a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      @VisibleForTesting
-<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">InMemoryTimestampStorage</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/timestamp/storage/TimestampStorage.html">TimestampStorage</a> {
-<a class="jxr_linenumber" name="49" href="#49">49</a>  
-<a class="jxr_linenumber" name="50" href="#50">50</a>          <strong class="jxr_keyword">long</strong> maxTimestamp = 0;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>          @Override
-<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMaxTimestamp(<strong class="jxr_keyword">long</strong> previousMaxTimestamp, <strong class="jxr_keyword">long</strong> nextMaxTimestamp) {
-<a class="jxr_linenumber" name="54" href="#54">54</a>              maxTimestamp = nextMaxTimestamp;
-<a class="jxr_linenumber" name="55" href="#55">55</a>              LOG.info(<span class="jxr_string">"Updating max timestamp: (previous:{}, new:{})"</span>, previousMaxTimestamp, nextMaxTimestamp);
-<a class="jxr_linenumber" name="56" href="#56">56</a>          }
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>          @Override
-<a class="jxr_linenumber" name="59" href="#59">59</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getMaxTimestamp() {
-<a class="jxr_linenumber" name="60" href="#60">60</a>              <strong class="jxr_keyword">return</strong> maxTimestamp;
-<a class="jxr_linenumber" name="61" href="#61">61</a>          }
-<a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>      }
+<a class="jxr_linenumber" name="47" href="#47">47</a>          <strong class="jxr_keyword">long</strong> maxTimestamp = 0;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  
+<a class="jxr_linenumber" name="49" href="#49">49</a>          @Override
+<a class="jxr_linenumber" name="50" href="#50">50</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMaxTimestamp(<strong class="jxr_keyword">long</strong> previousMaxTimestamp, <strong class="jxr_keyword">long</strong> nextMaxTimestamp) {
+<a class="jxr_linenumber" name="51" href="#51">51</a>              maxTimestamp = nextMaxTimestamp;
+<a class="jxr_linenumber" name="52" href="#52">52</a>              LOG.info(<span class="jxr_string">"Updating max timestamp: (previous:{}, new:{})"</span>, previousMaxTimestamp, nextMaxTimestamp);
+<a class="jxr_linenumber" name="53" href="#53">53</a>          }
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>          @Override
+<a class="jxr_linenumber" name="56" href="#56">56</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getMaxTimestamp() {
+<a class="jxr_linenumber" name="57" href="#57">57</a>              <strong class="jxr_keyword">return</strong> maxTimestamp;
+<a class="jxr_linenumber" name="58" href="#58">58</a>          }
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      }
+<a class="jxr_linenumber" name="61" href="#61">61</a>  
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">AllocateTimestampBatchTask</a> <strong class="jxr_keyword">implements</strong> Runnable {
+<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">long</strong> previousMaxTimestamp;
 <a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">AllocateTimestampBatchTask</a> <strong class="jxr_keyword">implements</strong> Runnable {
-<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">long</strong> previousMaxTimestamp;
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>          <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">AllocateTimestampBatchTask</a>(<strong class="jxr_keyword">long</strong> previousMaxTimestamp) {
-<a class="jxr_linenumber" name="69" href="#69">69</a>              <strong class="jxr_keyword">this</strong>.previousMaxTimestamp = previousMaxTimestamp;
-<a class="jxr_linenumber" name="70" href="#70">70</a>          }
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>          @Override
-<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
-<a class="jxr_linenumber" name="74" href="#74">74</a>              <strong class="jxr_keyword">long</strong> newMaxTimestamp = previousMaxTimestamp + TIMESTAMP_BATCH;
-<a class="jxr_linenumber" name="75" href="#75">75</a>              <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="76" href="#76">76</a>                  storage.updateMaxTimestamp(previousMaxTimestamp, newMaxTimestamp);
-<a class="jxr_linenumber" name="77" href="#77">77</a>                  maxAllocatedTimestamp = newMaxTimestamp;
-<a class="jxr_linenumber" name="78" href="#78">78</a>                  previousMaxTimestamp = newMaxTimestamp;
-<a class="jxr_linenumber" name="79" href="#79">79</a>              } <strong class="jxr_keyword">catch</strong> (Throwable e) {
-<a class="jxr_linenumber" name="80" href="#80">80</a>                  panicker.panic(<span class="jxr_string">"Can't store the new max timestamp"</span>, e);
-<a class="jxr_linenumber" name="81" href="#81">81</a>              }
-<a class="jxr_linenumber" name="82" href="#82">82</a>          }
-<a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>      }
+<a class="jxr_linenumber" name="65" href="#65">65</a>          <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">AllocateTimestampBatchTask</a>(<strong class="jxr_keyword">long</strong> previousMaxTimestamp) {
+<a class="jxr_linenumber" name="66" href="#66">66</a>              <strong class="jxr_keyword">this</strong>.previousMaxTimestamp = previousMaxTimestamp;
+<a class="jxr_linenumber" name="67" href="#67">67</a>          }
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>          @Override
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
+<a class="jxr_linenumber" name="71" href="#71">71</a>              <strong class="jxr_keyword">long</strong> newMaxTimestamp = previousMaxTimestamp + TIMESTAMP_BATCH;
+<a class="jxr_linenumber" name="72" href="#72">72</a>              <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="73" href="#73">73</a>                  storage.updateMaxTimestamp(previousMaxTimestamp, newMaxTimestamp);
+<a class="jxr_linenumber" name="74" href="#74">74</a>                  maxAllocatedTimestamp = newMaxTimestamp;
+<a class="jxr_linenumber" name="75" href="#75">75</a>                  previousMaxTimestamp = newMaxTimestamp;
+<a class="jxr_linenumber" name="76" href="#76">76</a>              } <strong class="jxr_keyword">catch</strong> (Throwable e) {
+<a class="jxr_linenumber" name="77" href="#77">77</a>                  panicker.panic(<span class="jxr_string">"Can't store the new max timestamp"</span>, e);
+<a class="jxr_linenumber" name="78" href="#78">78</a>              }
+<a class="jxr_linenumber" name="79" href="#79">79</a>          }
+<a class="jxr_linenumber" name="80" href="#80">80</a>  
+<a class="jxr_linenumber" name="81" href="#81">81</a>      }
+<a class="jxr_linenumber" name="82" href="#82">82</a>  
+<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TIMESTAMP_BATCH = 10_000_000; <em class="jxr_comment">// 10 million</em>
+<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TIMESTAMP_REMAINING_THRESHOLD = 1_000_000; <em class="jxr_comment">// 1 million</em>
 <a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TIMESTAMP_BATCH = 10_000_000; <em class="jxr_comment">// 10 million</em>
-<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TIMESTAMP_REMAINING_THRESHOLD = 1_000_000; <em class="jxr_comment">// 1 million</em>
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> lastTimestamp;
-<a class="jxr_linenumber" name="90" href="#90">90</a>  
-<a class="jxr_linenumber" name="91" href="#91">91</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> maxTimestamp;
+<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> lastTimestamp;
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> maxTimestamp;
+<a class="jxr_linenumber" name="89" href="#89">89</a>  
+<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/timestamp/storage/TimestampStorage.html">TimestampStorage</a> storage;
+<a class="jxr_linenumber" name="91" href="#91">91</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker;
 <a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/timestamp/storage/TimestampStorage.html">TimestampStorage</a> storage;
-<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker;
+<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> nextAllocationThreshold;
+<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">long</strong> maxAllocatedTimestamp;
 <a class="jxr_linenumber" name="95" href="#95">95</a>  
-<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> nextAllocationThreshold;
-<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">long</strong> maxAllocatedTimestamp;
+<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> Executor executor = Executors.newSingleThreadExecutor(
+<a class="jxr_linenumber" name="97" href="#97">97</a>              <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"ts-persist-%d"</span>).build());
 <a class="jxr_linenumber" name="98" href="#98">98</a>  
-<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> Executor executor = Executors.newSingleThreadExecutor(
-<a class="jxr_linenumber" name="100" href="#100">100</a>             <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"ts-persist-%d"</span>).build());
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>     <strong class="jxr_keyword">private</strong> Runnable allocateTimestampsBatchTask;
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>     @Inject
-<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">TimestampOracleImpl</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics,
-<a class="jxr_linenumber" name="106" href="#106">106</a>                                <a href="../../../../org/apache/omid/timestamp/storage/TimestampStorage.html">TimestampStorage</a> tsStorage,
-<a class="jxr_linenumber" name="107" href="#107">107</a>                                <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> Runnable allocateTimestampsBatchTask;
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>     @Inject
+<a class="jxr_linenumber" name="102" href="#102">102</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">TimestampOracleImpl</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics,
+<a class="jxr_linenumber" name="103" href="#103">103</a>                                <a href="../../../../org/apache/omid/timestamp/storage/TimestampStorage.html">TimestampStorage</a> tsStorage,
+<a class="jxr_linenumber" name="104" href="#104">104</a>                                <a href="../../../../org/apache/omid/tso/Panicker.html">Panicker</a> panicker) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">this</strong>.storage = tsStorage;
+<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">this</strong>.panicker = panicker;
 <a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">this</strong>.storage = tsStorage;
-<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">this</strong>.panicker = panicker;
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>         metrics.gauge(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"maxTimestamp"</span>), <strong class="jxr_keyword">new</strong> Gauge&lt;Long&gt;() {
-<a class="jxr_linenumber" name="113" href="#113">113</a>             @Override
-<a class="jxr_linenumber" name="114" href="#114">114</a>             <strong class="jxr_keyword">public</strong> Long getValue() {
-<a class="jxr_linenumber" name="115" href="#115">115</a>                 <strong class="jxr_keyword">return</strong> maxTimestamp;
-<a class="jxr_linenumber" name="116" href="#116">116</a>             }
-<a class="jxr_linenumber" name="117" href="#117">117</a>         });
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>     }
+<a class="jxr_linenumber" name="109" href="#109">109</a>         metrics.gauge(name(<span class="jxr_string">"tso"</span>, <span class="jxr_string">"maxTimestamp"</span>), <strong class="jxr_keyword">new</strong> Gauge&lt;Long&gt;() {
+<a class="jxr_linenumber" name="110" href="#110">110</a>             @Override
+<a class="jxr_linenumber" name="111" href="#111">111</a>             <strong class="jxr_keyword">public</strong> Long getValue() {
+<a class="jxr_linenumber" name="112" href="#112">112</a>                 <strong class="jxr_keyword">return</strong> maxTimestamp;
+<a class="jxr_linenumber" name="113" href="#113">113</a>             }
+<a class="jxr_linenumber" name="114" href="#114">114</a>         });
+<a class="jxr_linenumber" name="115" href="#115">115</a> 
+<a class="jxr_linenumber" name="116" href="#116">116</a>     }
+<a class="jxr_linenumber" name="117" href="#117">117</a> 
+<a class="jxr_linenumber" name="118" href="#118">118</a>     @Override
+<a class="jxr_linenumber" name="119" href="#119">119</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initialize() <strong class="jxr_keyword">throws</strong> IOException {
 <a class="jxr_linenumber" name="120" href="#120">120</a> 
-<a class="jxr_linenumber" name="121" href="#121">121</a>     @Override
-<a class="jxr_linenumber" name="122" href="#122">122</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initialize() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="123" href="#123">123</a> 
-<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">this</strong>.lastTimestamp = <strong class="jxr_keyword">this</strong>.maxTimestamp = storage.getMaxTimestamp();
-<a class="jxr_linenumber" name="125" href="#125">125</a> 
-<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">this</strong>.allocateTimestampsBatchTask = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">AllocateTimestampBatchTask</a>(lastTimestamp);
+<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">this</strong>.lastTimestamp = <strong class="jxr_keyword">this</strong>.maxTimestamp = storage.getMaxTimestamp();
+<a class="jxr_linenumber" name="122" href="#122">122</a> 
+<a class="jxr_linenumber" name="123" href="#123">123</a>         <strong class="jxr_keyword">this</strong>.allocateTimestampsBatchTask = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/TimestampOracleImpl.html">AllocateTimestampBatchTask</a>(lastTimestamp);
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a>         <em class="jxr_comment">// Trigger first allocation of timestamps</em>
+<a class="jxr_linenumber" name="126" href="#126">126</a>         executor.execute(allocateTimestampsBatchTask);
 <a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>         <em class="jxr_comment">// Trigger first allocation of timestamps</em>
-<a class="jxr_linenumber" name="129" href="#129">129</a>         executor.execute(allocateTimestampsBatchTask);
+<a class="jxr_linenumber" name="128" href="#128">128</a>         LOG.info(<span class="jxr_string">"Initializing timestamp oracle with timestamp {}"</span>, <strong class="jxr_keyword">this</strong>.lastTimestamp);
+<a class="jxr_linenumber" name="129" href="#129">129</a>     }
 <a class="jxr_linenumber" name="130" href="#130">130</a> 
-<a class="jxr_linenumber" name="131" href="#131">131</a>         LOG.info(<span class="jxr_string">"Initializing timestamp oracle with timestamp {}"</span>, <strong class="jxr_keyword">this</strong>.lastTimestamp);
-<a class="jxr_linenumber" name="132" href="#132">132</a>     }
-<a class="jxr_linenumber" name="133" href="#133">133</a> 
-<a class="jxr_linenumber" name="134" href="#134">134</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * Returns the next timestamp if available. Otherwise spins till the ts-persist thread allocates a new timestamp.</em>
-<a class="jxr_linenumber" name="136" href="#136">136</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="137" href="#137">137</a>     @SuppressWarnings(<span class="jxr_string">"StatementWithEmptyBody"</span>)
-<a class="jxr_linenumber" name="138" href="#138">138</a>     @Override
-<a class="jxr_linenumber" name="139" href="#139">139</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> next() {
-<a class="jxr_linenumber" name="140" href="#140">140</a>         lastTimestamp += AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="141" href="#141">141</a> 
-<a class="jxr_linenumber" name="142" href="#142">142</a>         <strong class="jxr_keyword">if</strong> (lastTimestamp &gt;= nextAllocationThreshold) {
-<a class="jxr_linenumber" name="143" href="#143">143</a>             <em class="jxr_comment">// set the nextAllocationThread to max value of long in order to</em>
-<a class="jxr_linenumber" name="144" href="#144">144</a>             <em class="jxr_comment">// make sure only one call to this function will execute a thread to extend the timestamp batch.</em>
-<a class="jxr_linenumber" name="145" href="#145">145</a>             nextAllocationThreshold = Long.MAX_VALUE; 
-<a class="jxr_linenumber" name="146" href="#146">146</a>             executor.execute(allocateTimestampsBatchTask);
-<a class="jxr_linenumber" name="147" href="#147">147</a>         }
-<a class="jxr_linenumber" name="148" href="#148">148</a> 
-<a class="jxr_linenumber" name="149" href="#149">149</a>         <strong class="jxr_keyword">if</strong> (lastTimestamp &gt;= maxTimestamp) {
-<a class="jxr_linenumber" name="150" href="#150">150</a>             assert (maxTimestamp &lt;= maxAllocatedTimestamp);
-<a class="jxr_linenumber" name="151" href="#151">151</a>             <strong class="jxr_keyword">while</strong> (maxAllocatedTimestamp == maxTimestamp) {
-<a class="jxr_linenumber" name="152" href="#152">152</a>                 <em class="jxr_comment">// spin</em>
-<a class="jxr_linenumber" name="153" href="#153">153</a>             }
-<a class="jxr_linenumber" name="154" href="#154">154</a>             assert (maxAllocatedTimestamp &gt; maxTimestamp);
-<a class="jxr_linenumber" name="155" href="#155">155</a>             maxTimestamp = maxAllocatedTimestamp;
-<a class="jxr_linenumber" name="156" href="#156">156</a>             nextAllocationThreshold = maxTimestamp - TIMESTAMP_REMAINING_THRESHOLD;
-<a class="jxr_linenumber" name="157" href="#157">157</a>             assert (nextAllocationThreshold &gt; lastTimestamp &amp;&amp; nextAllocationThreshold &lt; maxTimestamp);
-<a class="jxr_linenumber" name="158" href="#158">158</a>             assert (lastTimestamp &lt; maxTimestamp);
-<a class="jxr_linenumber" name="159" href="#159">159</a>         }
-<a class="jxr_linenumber" name="160" href="#160">160</a> 
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">return</strong> lastTimestamp;
-<a class="jxr_linenumber" name="162" href="#162">162</a>     }
-<a class="jxr_linenumber" name="163" href="#163">163</a> 
-<a class="jxr_linenumber" name="164" href="#164">164</a>     @Override
-<a class="jxr_linenumber" name="165" href="#165">165</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getLast() {
-<a class="jxr_linenumber" name="166" href="#166">166</a>         <strong class="jxr_keyword">return</strong> lastTimestamp;
-<a class="jxr_linenumber" name="167" href="#167">167</a>     }
-<a class="jxr_linenumber" name="168" href="#168">168</a> 
-<a class="jxr_linenumber" name="169" href="#169">169</a>     @Override
-<a class="jxr_linenumber" name="170" href="#170">170</a>     <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="171" href="#171">171</a>         <strong class="jxr_keyword">return</strong> String.format(<span class="jxr_string">"TimestampOracle -&gt; LastTimestamp: %d, MaxTimestamp: %d"</span>, lastTimestamp, maxTimestamp);
-<a class="jxr_linenumber" name="172" href="#172">172</a>     }
-<a class="jxr_linenumber" name="173" href="#173">173</a> 
-<a class="jxr_linenumber" name="174" href="#174">174</a> }
+<a class="jxr_linenumber" name="131" href="#131">131</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="132" href="#132">132</a> <em class="jxr_javadoccomment">     * Returns the next timestamp if available. Otherwise spins till the ts-persist thread allocates a new timestamp.</em>
+<a class="jxr_linenumber" name="133" href="#133">133</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a>     @SuppressWarnings(<span class="jxr_string">"StatementWithEmptyBody"</span>)
+<a class="jxr_linenumber" name="135" href="#135">135</a>     @Override
+<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> next() {
+<a class="jxr_linenumber" name="137" href="#137">137</a>         lastTimestamp++;
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>         <strong class="jxr_keyword">if</strong> (lastTimestamp == nextAllocationThreshold) {
+<a class="jxr_linenumber" name="140" href="#140">140</a>             executor.execute(allocateTimestampsBatchTask);
+<a class="jxr_linenumber" name="141" href="#141">141</a>         }
+<a class="jxr_linenumber" name="142" href="#142">142</a> 
+<a class="jxr_linenumber" name="143" href="#143">143</a>         <strong class="jxr_keyword">if</strong> (lastTimestamp &gt;= maxTimestamp) {
+<a class="jxr_linenumber" name="144" href="#144">144</a>             assert (maxTimestamp &lt;= maxAllocatedTimestamp);
+<a class="jxr_linenumber" name="145" href="#145">145</a>             <strong class="jxr_keyword">while</strong> (maxAllocatedTimestamp == maxTimestamp) {
+<a class="jxr_linenumber" name="146" href="#146">146</a>                 <em class="jxr_comment">// spin</em>
+<a class="jxr_linenumber" name="147" href="#147">147</a>             }
+<a class="jxr_linenumber" name="148" href="#148">148</a>             assert (maxAllocatedTimestamp &gt; maxTimestamp);
+<a class="jxr_linenumber" name="149" href="#149">149</a>             maxTimestamp = maxAllocatedTimestamp;
+<a class="jxr_linenumber" name="150" href="#150">150</a>             nextAllocationThreshold = maxTimestamp - TIMESTAMP_REMAINING_THRESHOLD;
+<a class="jxr_linenumber" name="151" href="#151">151</a>             assert (nextAllocationThreshold &gt; lastTimestamp &amp;&amp; nextAllocationThreshold &lt; maxTimestamp);
+<a class="jxr_linenumber" name="152" href="#152">152</a>             assert (lastTimestamp &lt; maxTimestamp);
+<a class="jxr_linenumber" name="153" href="#153">153</a>         }
+<a class="jxr_linenumber" name="154" href="#154">154</a> 
+<a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> lastTimestamp;
+<a class="jxr_linenumber" name="156" href="#156">156</a>     }
+<a class="jxr_linenumber" name="157" href="#157">157</a> 
+<a class="jxr_linenumber" name="158" href="#158">158</a>     @Override
+<a class="jxr_linenumber" name="159" href="#159">159</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getLast() {
+<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">return</strong> lastTimestamp;
+<a class="jxr_linenumber" name="161" href="#161">161</a>     }
+<a class="jxr_linenumber" name="162" href="#162">162</a> 
+<a class="jxr_linenumber" name="163" href="#163">163</a>     @Override
+<a class="jxr_linenumber" name="164" href="#164">164</a>     <strong class="jxr_keyword">public</strong> String toString() {
+<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">return</strong> String.format(<span class="jxr_string">"TimestampOracle -&gt; LastTimestamp: %d, MaxTimestamp: %d"</span>, lastTimestamp, maxTimestamp);
+<a class="jxr_linenumber" name="166" href="#166">166</a>     }
+<a class="jxr_linenumber" name="167" href="#167">167</a> 
+<a class="jxr_linenumber" name="168" href="#168">168</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/client/CellId.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/client/CellId.html b/xref/org/apache/omid/tso/client/CellId.html
index 5420a69..79fea6c 100644
--- a/xref/org/apache/omid/tso/client/CellId.html
+++ b/xref/org/apache/omid/tso/client/CellId.html
@@ -31,10 +31,7 @@
 <a class="jxr_linenumber" name="21" href="#21">21</a>  
 <a class="jxr_linenumber" name="22" href="#22">22</a>      <strong class="jxr_keyword">long</strong> getCellId();
 <a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>      <strong class="jxr_keyword">long</strong> getTableId();
-<a class="jxr_linenumber" name="25" href="#25">25</a>  
-<a class="jxr_linenumber" name="26" href="#26">26</a>      <strong class="jxr_keyword">long</strong> getRowId();
-<a class="jxr_linenumber" name="27" href="#27">27</a>  }
+<a class="jxr_linenumber" name="24" href="#24">24</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/client/MockTSOClient.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/client/MockTSOClient.html b/xref/org/apache/omid/tso/client/MockTSOClient.html
index 2e522bc..df6b73a 100644
--- a/xref/org/apache/omid/tso/client/MockTSOClient.html
+++ b/xref/org/apache/omid/tso/client/MockTSOClient.html
@@ -28,143 +28,97 @@
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.tso.client;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicLong;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/MockTSOClient.html">MockTSOClient</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> {
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicLong;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <em class="jxr_comment">// TODO Would be nice to compile all util classes for testing to a separate package that clients could import for tests</em>
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/MockTSOClient.html">MockTSOClient</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> {
+<a class="jxr_linenumber" name="29" href="#29">29</a>  
+<a class="jxr_linenumber" name="30" href="#30">30</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> CONFLICT_MAP_SIZE = 1_000_000;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
 <a class="jxr_linenumber" name="32" href="#32">32</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> AtomicLong timestampGenerator = <strong class="jxr_keyword">new</strong> AtomicLong();
-<a class="jxr_linenumber" name="33" href="#33">33</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> CONFLICT_MAP_SIZE = 1_000_000;
-<a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong>[] conflictMap = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">long</strong>[CONFLICT_MAP_SIZE];
-<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Long, Long&gt; fenceMap = <strong class="jxr_keyword">new</strong> HashMap&lt;Long, Long&gt;();
-<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> AtomicLong lwm = <strong class="jxr_keyword">new</strong> AtomicLong();
+<a class="jxr_linenumber" name="33" href="#33">33</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong>[] conflictMap = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">long</strong>[CONFLICT_MAP_SIZE];
+<a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> AtomicLong lwm = <strong class="jxr_keyword">new</strong> AtomicLong();
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> CommitTable.Writer commitTable;
 <a class="jxr_linenumber" name="37" href="#37">37</a>  
-<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> CommitTable.Writer commitTable;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  
-<a class="jxr_linenumber" name="40" href="#40">40</a>      <a href="../../../../../org/apache/omid/tso/client/MockTSOClient.html">MockTSOClient</a>(CommitTable.Writer commitTable) {
-<a class="jxr_linenumber" name="41" href="#41">41</a>          <strong class="jxr_keyword">this</strong>.commitTable = commitTable;
-<a class="jxr_linenumber" name="42" href="#42">42</a>      }
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>      @Override
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; getNewStartTimestamp() {
-<a class="jxr_linenumber" name="46" href="#46">46</a>          <strong class="jxr_keyword">synchronized</strong> (conflictMap) {
-<a class="jxr_linenumber" name="47" href="#47">47</a>              SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="48" href="#48">48</a>              f.set(timestampGenerator.incrementAndGet());
-<a class="jxr_linenumber" name="49" href="#49">49</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
-<a class="jxr_linenumber" name="50" href="#50">50</a>          }
-<a class="jxr_linenumber" name="51" href="#51">51</a>      }
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>      @Override
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; getFence(<strong class="jxr_keyword">long</strong> tableId) {
-<a class="jxr_linenumber" name="55" href="#55">55</a>          <strong class="jxr_keyword">synchronized</strong> (conflictMap) {
-<a class="jxr_linenumber" name="56" href="#56">56</a>              SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="57" href="#57">57</a>              <strong class="jxr_keyword">long</strong> fenceTimestamp = timestampGenerator.incrementAndGet();
-<a class="jxr_linenumber" name="58" href="#58">58</a>              f.set(fenceTimestamp);
-<a class="jxr_linenumber" name="59" href="#59">59</a>              fenceMap.put(tableId, fenceTimestamp);
-<a class="jxr_linenumber" name="60" href="#60">60</a>              <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="61" href="#61">61</a>                  <em class="jxr_comment">// Persist the fence by using the fence identifier as both the start and commit timestamp.</em>
-<a class="jxr_linenumber" name="62" href="#62">62</a>                  commitTable.addCommittedTransaction(fenceTimestamp, fenceTimestamp);
-<a class="jxr_linenumber" name="63" href="#63">63</a>                  commitTable.flush();
-<a class="jxr_linenumber" name="64" href="#64">64</a>              } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
-<a class="jxr_linenumber" name="65" href="#65">65</a>                  f.setException(ioe);
-<a class="jxr_linenumber" name="66" href="#66">66</a>              }
-<a class="jxr_linenumber" name="67" href="#67">67</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
-<a class="jxr_linenumber" name="68" href="#68">68</a>          }
-<a class="jxr_linenumber" name="69" href="#69">69</a>      }
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <em class="jxr_comment">// Checks whether transaction transactionId started before a fence creation of a table transactionId modified.</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> hasConflictsWithFences(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; cells) {
-<a class="jxr_linenumber" name="73" href="#73">73</a>          Set&lt;Long&gt; tableIDs = <strong class="jxr_keyword">new</strong> HashSet&lt;Long&gt;();
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">for</strong> (CellId c : cells) {
-<a class="jxr_linenumber" name="75" href="#75">75</a>              tableIDs.add(c.getTableId());
-<a class="jxr_linenumber" name="76" href="#76">76</a>          }
-<a class="jxr_linenumber" name="77" href="#77">77</a>  
-<a class="jxr_linenumber" name="78" href="#78">78</a>          <strong class="jxr_keyword">if</strong> (! fenceMap.isEmpty()) {
-<a class="jxr_linenumber" name="79" href="#79">79</a>              <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> tableId : tableIDs) {
-<a class="jxr_linenumber" name="80" href="#80">80</a>                  Long fence = fenceMap.get(tableId);
-<a class="jxr_linenumber" name="81" href="#81">81</a>                  <strong class="jxr_keyword">if</strong> (fence != <strong class="jxr_keyword">null</strong> &amp;&amp; transactionId &lt; fence) {
-<a class="jxr_linenumber" name="82" href="#82">82</a>                      <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="83" href="#83">83</a>                  }
-<a class="jxr_linenumber" name="84" href="#84">84</a>                  <strong class="jxr_keyword">if</strong> (fence != <strong class="jxr_keyword">null</strong> &amp;&amp; fence &lt; lwm.get()) { <em class="jxr_comment">// GC</em>
-<a class="jxr_linenumber" name="85" href="#85">85</a>                      fenceMap.remove(tableId);
-<a class="jxr_linenumber" name="86" href="#86">86</a>                  }
-<a class="jxr_linenumber" name="87" href="#87">87</a>              }
-<a class="jxr_linenumber" name="88" href="#88">88</a>          }
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>          <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="91" href="#91">91</a>      }
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>      <em class="jxr_comment">// Checks whether transactionId has a write-write conflict with a transaction committed after transactionId.</em>
-<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> hasConflictsWithCommittedTransactions(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; cells) {
-<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">for</strong> (CellId c : cells) {
-<a class="jxr_linenumber" name="96" href="#96">96</a>              <strong class="jxr_keyword">int</strong> index = Math.abs((<strong class="jxr_keyword">int</strong>) (c.getCellId() % CONFLICT_MAP_SIZE));
-<a class="jxr_linenumber" name="97" href="#97">97</a>              <strong class="jxr_keyword">if</strong> (conflictMap[index] &gt;= transactionId) {
-<a class="jxr_linenumber" name="98" href="#98">98</a>                  <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="99" href="#99">99</a>              }
-<a class="jxr_linenumber" name="100" href="#100">100</a>         }
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="103" href="#103">103</a>     }
-<a class="jxr_linenumber" name="104" href="#104">104</a> 
-<a class="jxr_linenumber" name="105" href="#105">105</a>     @Override
-<a class="jxr_linenumber" name="106" href="#106">106</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; cells, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; conflictFreeWriteSet) {
-<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">return</strong> commit(transactionId, cells);
-<a class="jxr_linenumber" name="108" href="#108">108</a>     }
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>     @Override
-<a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; cells) {
-<a class="jxr_linenumber" name="112" href="#112">112</a>         <strong class="jxr_keyword">synchronized</strong> (conflictMap) {
-<a class="jxr_linenumber" name="113" href="#113">113</a>             SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="114" href="#114">114</a>             <strong class="jxr_keyword">if</strong> (transactionId &lt; lwm.get()) {
-<a class="jxr_linenumber" name="115" href="#115">115</a>                 f.setException(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/AbortException.html">AbortException</a>());
-<a class="jxr_linenumber" name="116" href="#116">116</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
-<a class="jxr_linenumber" name="117" href="#117">117</a>             }
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>             <strong class="jxr_keyword">if</strong> (!hasConflictsWithFences(transactionId, cells) &amp;&amp;
-<a class="jxr_linenumber" name="120" href="#120">120</a>                 !hasConflictsWithCommittedTransactions(transactionId, cells)) {
-<a class="jxr_linenumber" name="121" href="#121">121</a> 
-<a class="jxr_linenumber" name="122" href="#122">122</a>                 <strong class="jxr_keyword">long</strong> commitTimestamp = timestampGenerator.incrementAndGet();
-<a class="jxr_linenumber" name="123" href="#123">123</a>                 <strong class="jxr_keyword">for</strong> (CellId c : cells) {
-<a class="jxr_linenumber" name="124" href="#124">124</a>                     <strong class="jxr_keyword">int</strong> index = Math.abs((<strong class="jxr_keyword">int</strong>) (c.getCellId() % CONFLICT_MAP_SIZE));
-<a class="jxr_linenumber" name="125" href="#125">125</a>                     <strong class="jxr_keyword">long</strong> oldVal = conflictMap[index];
-<a class="jxr_linenumber" name="126" href="#126">126</a>                     conflictMap[index] = commitTimestamp;
-<a class="jxr_linenumber" name="127" href="#127">127</a>                     <strong class="jxr_keyword">long</strong> curLwm = lwm.get();
-<a class="jxr_linenumber" name="128" href="#128">128</a>                     <strong class="jxr_keyword">while</strong> (oldVal &gt; curLwm) {
-<a class="jxr_linenumber" name="129" href="#129">129</a>                         <strong class="jxr_keyword">if</strong> (lwm.compareAndSet(curLwm, oldVal)) {
-<a class="jxr_linenumber" name="130" href="#130">130</a>                             <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="131" href="#131">131</a>                         }
-<a class="jxr_linenumber" name="132" href="#132">132</a>                         curLwm = lwm.get();
-<a class="jxr_linenumber" name="133" href="#133">133</a>                     }
-<a class="jxr_linenumber" name="134" href="#134">134</a>                 }
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>                 f.set(commitTimestamp);
-<a class="jxr_linenumber" name="137" href="#137">137</a>                 <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="138" href="#138">138</a>                     commitTable.addCommittedTransaction(transactionId, commitTimestamp);
-<a class="jxr_linenumber" name="139" href="#139">139</a>                     commitTable.updateLowWatermark(lwm.get());
-<a class="jxr_linenumber" name="140" href="#140">140</a>                     commitTable.flush();
-<a class="jxr_linenumber" name="141" href="#141">141</a>                 } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
-<a class="jxr_linenumber" name="142" href="#142">142</a>                     f.setException(ioe);
-<a class="jxr_linenumber" name="143" href="#143">143</a>                 }
-<a class="jxr_linenumber" name="144" href="#144">144</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="145" href="#145">145</a>                 f.setException(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/AbortException.html">AbortException</a>());
-<a class="jxr_linenumber" name="146" href="#146">146</a>             }
-<a class="jxr_linenumber" name="147" href="#147">147</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
-<a class="jxr_linenumber" name="148" href="#148">148</a>         }
-<a class="jxr_linenumber" name="149" href="#149">149</a>     }
-<a class="jxr_linenumber" name="150" href="#150">150</a> 
-<a class="jxr_linenumber" name="151" href="#151">151</a>     @Override
-<a class="jxr_linenumber" name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Void&gt; close() {
-<a class="jxr_linenumber" name="153" href="#153">153</a>         SettableFuture&lt;Void&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="154" href="#154">154</a>         f.set(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
-<a class="jxr_linenumber" name="156" href="#156">156</a>     }
-<a class="jxr_linenumber" name="157" href="#157">157</a> }
+<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tso/client/MockTSOClient.html">MockTSOClient</a>(CommitTable.Writer commitTable) {
+<a class="jxr_linenumber" name="39" href="#39">39</a>          <strong class="jxr_keyword">this</strong>.commitTable = commitTable;
+<a class="jxr_linenumber" name="40" href="#40">40</a>      }
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>      @Override
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; getNewStartTimestamp() {
+<a class="jxr_linenumber" name="44" href="#44">44</a>          <strong class="jxr_keyword">synchronized</strong> (conflictMap) {
+<a class="jxr_linenumber" name="45" href="#45">45</a>              SettableFuture&lt;Long&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="46" href="#46">46</a>              f.set(timestampGenerator.incrementAndGet());
+<a class="jxr_linenumber" name="47" href="#47">47</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
+<a class="jxr_linenumber" name="48" href="#48">48</a>          }
+<a class="jxr_linenumber" name="49" href="#49">49</a>      }
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>      @Override
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">public</strong> TSOFuture&lt;Long&gt; commit(<strong class="jxr_keyword">long</strong> transactionId, Set&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; cells) {
+<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">synchronized</strong> (conflictMap) {
+<a class="jxr_linenumber" name="54" href="#54">54</a>              SettableFuture&lt;Long&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="55" href="#55">55</a>              <strong class="jxr_keyword">if</strong> (transactionId &lt; lwm.get()) {
+<a class="jxr_linenumber" name="56" href="#56">56</a>                  f.setException(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/AbortException.html">AbortException</a>());
+<a class="jxr_linenumber" name="57" href="#57">57</a>                  <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
+<a class="jxr_linenumber" name="58" href="#58">58</a>              }
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>              <strong class="jxr_keyword">boolean</strong> canCommit = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="61" href="#61">61</a>              <strong class="jxr_keyword">for</strong> (CellId c : cells) {
+<a class="jxr_linenumber" name="62" href="#62">62</a>                  <strong class="jxr_keyword">int</strong> index = Math.abs((<strong class="jxr_keyword">int</strong>) (c.getCellId() % CONFLICT_MAP_SIZE));
+<a class="jxr_linenumber" name="63" href="#63">63</a>                  <strong class="jxr_keyword">if</strong> (conflictMap[index] &gt;= transactionId) {
+<a class="jxr_linenumber" name="64" href="#64">64</a>                      canCommit = false;
+<a class="jxr_linenumber" name="65" href="#65">65</a>                      <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="66" href="#66">66</a>                  }
+<a class="jxr_linenumber" name="67" href="#67">67</a>              }
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>              <strong class="jxr_keyword">if</strong> (canCommit) {
+<a class="jxr_linenumber" name="70" href="#70">70</a>                  <strong class="jxr_keyword">long</strong> commitTimestamp = timestampGenerator.incrementAndGet();
+<a class="jxr_linenumber" name="71" href="#71">71</a>                  <strong class="jxr_keyword">for</strong> (CellId c : cells) {
+<a class="jxr_linenumber" name="72" href="#72">72</a>                      <strong class="jxr_keyword">int</strong> index = Math.abs((<strong class="jxr_keyword">int</strong>) (c.getCellId() % CONFLICT_MAP_SIZE));
+<a class="jxr_linenumber" name="73" href="#73">73</a>                      <strong class="jxr_keyword">long</strong> oldVal = conflictMap[index];
+<a class="jxr_linenumber" name="74" href="#74">74</a>                      conflictMap[index] = commitTimestamp;
+<a class="jxr_linenumber" name="75" href="#75">75</a>                      <strong class="jxr_keyword">long</strong> curLwm = lwm.get();
+<a class="jxr_linenumber" name="76" href="#76">76</a>                      <strong class="jxr_keyword">while</strong> (oldVal &gt; curLwm) {
+<a class="jxr_linenumber" name="77" href="#77">77</a>                          <strong class="jxr_keyword">if</strong> (lwm.compareAndSet(curLwm, oldVal)) {
+<a class="jxr_linenumber" name="78" href="#78">78</a>                              <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="79" href="#79">79</a>                          }
+<a class="jxr_linenumber" name="80" href="#80">80</a>                          curLwm = lwm.get();
+<a class="jxr_linenumber" name="81" href="#81">81</a>                      }
+<a class="jxr_linenumber" name="82" href="#82">82</a>                  }
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>                  f.set(commitTimestamp);
+<a class="jxr_linenumber" name="85" href="#85">85</a>                  <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="86" href="#86">86</a>                      commitTable.addCommittedTransaction(transactionId, commitTimestamp);
+<a class="jxr_linenumber" name="87" href="#87">87</a>                      commitTable.updateLowWatermark(lwm.get());
+<a class="jxr_linenumber" name="88" href="#88">88</a>                      commitTable.flush();
+<a class="jxr_linenumber" name="89" href="#89">89</a>                  } <strong class="jxr_keyword">catch</strong> (IOException ioe) {
+<a class="jxr_linenumber" name="90" href="#90">90</a>                      f.setException(ioe);
+<a class="jxr_linenumber" name="91" href="#91">91</a>                  }
+<a class="jxr_linenumber" name="92" href="#92">92</a>              } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="93" href="#93">93</a>                  f.setException(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/AbortException.html">AbortException</a>());
+<a class="jxr_linenumber" name="94" href="#94">94</a>              }
+<a class="jxr_linenumber" name="95" href="#95">95</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
+<a class="jxr_linenumber" name="96" href="#96">96</a>          }
+<a class="jxr_linenumber" name="97" href="#97">97</a>      }
+<a class="jxr_linenumber" name="98" href="#98">98</a>  
+<a class="jxr_linenumber" name="99" href="#99">99</a>      @Override
+<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> TSOFuture&lt;Void&gt; close() {
+<a class="jxr_linenumber" name="101" href="#101">101</a>         SettableFuture&lt;Void&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="102" href="#102">102</a>         f.set(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="103" href="#103">103</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(f);
+<a class="jxr_linenumber" name="104" href="#104">104</a>     }
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>     @Override
+<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getEpoch() {
+<a class="jxr_linenumber" name="108" href="#108">108</a>         <strong class="jxr_keyword">return</strong> 0;
+<a class="jxr_linenumber" name="109" href="#109">109</a>     }
+<a class="jxr_linenumber" name="110" href="#110">110</a> 
+<a class="jxr_linenumber" name="111" href="#111">111</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[10/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/TTable.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/TTable.html b/xref/org/apache/omid/transaction/TTable.html
index 8adcb93..864f848 100644
--- a/xref/org/apache/omid/transaction/TTable.html
+++ b/xref/org/apache/omid/transaction/TTable.html
@@ -27,675 +27,808 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.Closeable;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map.Entry;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.NavigableMap;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.NavigableSet;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HConstants;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValueUtil;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Mutation;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.OperationWithAttributes;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.TimeRange;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConflictDetectionLevel;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> com.google.common.annotations.VisibleForTesting;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * Provides transactional methods for accessing and modifying a given snapshot of data identified by an opaque {@link</em>
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * Transaction} object. It mimics the behavior in {@link org.apache.hadoop.hbase.client.Table}</em>
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> <strong class="jxr_keyword">implements</strong> Closeable {
-<a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Logger LOG = LoggerFactory.getLogger(TTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="66" href="#66">66</a>  
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> Table table;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/SnapshotFilter.html">SnapshotFilter</a> snapshotFilter;
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> serverSideFilter;
-<a class="jxr_linenumber" name="72" href="#72">72</a>      
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;Mutation&gt; mutations;
-<a class="jxr_linenumber" name="74" href="#74">74</a>      
-<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> autoFlush = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="76" href="#76">76</a>      
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>      <em class="jxr_comment">// Construction</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Connection connection, byte[] tableName) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">this</strong>(connection.getTable(TableName.valueOf(tableName)));
-<a class="jxr_linenumber" name="83" href="#83">83</a>      }
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Connection connection, byte[] tableName, CommitTable.Client commitTableClient) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">this</strong>(connection.getTable(TableName.valueOf(tableName)), commitTableClient);
-<a class="jxr_linenumber" name="87" href="#87">87</a>      }
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Connection connection, String tableName) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="90" href="#90">90</a>          <strong class="jxr_keyword">this</strong>(connection.getTable(TableName.valueOf(tableName)));
-<a class="jxr_linenumber" name="91" href="#91">91</a>      }
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Connection connection, String tableName, CommitTable.Client commitTableClient) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">this</strong>(connection.getTable(TableName.valueOf(tableName)), commitTableClient);
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Function;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Predicate;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.ImmutableList;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Iterables;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Multimaps;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.Cell;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellUtil;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HConstants;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValueUtil;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTableInterface;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Mutation;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.TimeRange;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.HBaseTransactionManager.CommitTimestampLocatorImpl;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> java.io.Closeable;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> java.util.Map.Entry;
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> java.util.NavigableMap;
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> java.util.NavigableSet;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> * Provides transactional methods for accessing and modifying a given snapshot of data identified by an opaque {@link</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * Transaction} object. It mimics the behavior in {@link org.apache.hadoop.hbase.client.HTableInterface}</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a> <strong class="jxr_keyword">implements</strong> Closeable {
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Logger LOG = LoggerFactory.getLogger(TTable.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>  
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> HTableInterface healerTable;
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> HTableInterface table;
+<a class="jxr_linenumber" name="75" href="#75">75</a>  
+<a class="jxr_linenumber" name="76" href="#76">76</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <em class="jxr_comment">// Construction</em>
+<a class="jxr_linenumber" name="78" href="#78">78</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Configuration conf, byte[] tableName) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">this</strong>(<strong class="jxr_keyword">new</strong> HTable(conf, tableName));
+<a class="jxr_linenumber" name="82" href="#82">82</a>      }
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(String tableName) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">this</strong>(HBaseConfiguration.create(), Bytes.toBytes(tableName));
+<a class="jxr_linenumber" name="86" href="#86">86</a>      }
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Configuration conf, String tableName) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="89" href="#89">89</a>          <strong class="jxr_keyword">this</strong>(conf, Bytes.toBytes(tableName));
+<a class="jxr_linenumber" name="90" href="#90">90</a>      }
+<a class="jxr_linenumber" name="91" href="#91">91</a>  
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(HTableInterface hTable) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="93" href="#93">93</a>          table = hTable;
+<a class="jxr_linenumber" name="94" href="#94">94</a>          healerTable = <strong class="jxr_keyword">new</strong> HTable(table.getConfiguration(), table.getTableName());
 <a class="jxr_linenumber" name="95" href="#95">95</a>      }
 <a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Table hTable) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="98" href="#98">98</a>          <strong class="jxr_keyword">this</strong>(hTable, hTable.getConfiguration().getBoolean(<span class="jxr_string">"omid.server.side.filter"</span>, false));
-<a class="jxr_linenumber" name="99" href="#99">99</a>      }
-<a class="jxr_linenumber" name="100" href="#100">100</a> 
-<a class="jxr_linenumber" name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Table hTable, <strong class="jxr_keyword">boolean</strong> serverSideFilter) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="102" href="#102">102</a>         table = hTable;
-<a class="jxr_linenumber" name="103" href="#103">103</a>         mutations = <strong class="jxr_keyword">new</strong> ArrayList&lt;Mutation&gt;();
-<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">this</strong>.serverSideFilter = serverSideFilter;
-<a class="jxr_linenumber" name="105" href="#105">105</a>         snapshotFilter = (serverSideFilter) ?  <strong class="jxr_keyword">new</strong> AttributeSetSnapshotFilter(hTable) :
-<a class="jxr_linenumber" name="106" href="#106">106</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/SnapshotFilterImpl.html">SnapshotFilterImpl</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HTableAccessWrapper.html">HTableAccessWrapper</a>(hTable, hTable));
-<a class="jxr_linenumber" name="107" href="#107">107</a>     }
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Table hTable, <a href="../../../../org/apache/omid/transaction/SnapshotFilter.html">SnapshotFilter</a> snapshotFilter ) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="110" href="#110">110</a>         table = hTable;
-<a class="jxr_linenumber" name="111" href="#111">111</a>         mutations = <strong class="jxr_keyword">new</strong> ArrayList&lt;Mutation&gt;();
-<a class="jxr_linenumber" name="112" href="#112">112</a>         <strong class="jxr_keyword">this</strong>.snapshotFilter = snapshotFilter;
-<a class="jxr_linenumber" name="113" href="#113">113</a>     }
-<a class="jxr_linenumber" name="114" href="#114">114</a> 
-<a class="jxr_linenumber" name="115" href="#115">115</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(Table hTable, CommitTable.Client commitTableClient) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="116" href="#116">116</a>         table = hTable;
-<a class="jxr_linenumber" name="117" href="#117">117</a>         mutations = <strong class="jxr_keyword">new</strong> ArrayList&lt;Mutation&gt;();
-<a class="jxr_linenumber" name="118" href="#118">118</a>         serverSideFilter = table.getConfiguration().getBoolean(<span class="jxr_string">"omid.server.side.filter"</span>, false);
-<a class="jxr_linenumber" name="119" href="#119">119</a>         snapshotFilter = (serverSideFilter) ?  <strong class="jxr_keyword">new</strong> AttributeSetSnapshotFilter(hTable) :
-<a class="jxr_linenumber" name="120" href="#120">120</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/SnapshotFilterImpl.html">SnapshotFilterImpl</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HTableAccessWrapper.html">HTableAccessWrapper</a>(hTable, hTable), commitTableClient);
-<a class="jxr_linenumber" name="121" href="#121">121</a>     }
-<a class="jxr_linenumber" name="122" href="#122">122</a> 
-<a class="jxr_linenumber" name="123" href="#123">123</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="124" href="#124">124</a>     <em class="jxr_comment">// Closeable implementation</em>
-<a class="jxr_linenumber" name="125" href="#125">125</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="126" href="#126">126</a> 
-<a class="jxr_linenumber" name="127" href="#127">127</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * Releases any resources held or pending changes in internal buffers.</em>
-<a class="jxr_linenumber" name="129" href="#129">129</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
-<a class="jxr_linenumber" name="131" href="#131">131</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="132" href="#132">132</a>     @Override
-<a class="jxr_linenumber" name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="134" href="#134">134</a>         table.close();
-<a class="jxr_linenumber" name="135" href="#135">135</a>     }
-<a class="jxr_linenumber" name="136" href="#136">136</a> 
-<a class="jxr_linenumber" name="137" href="#137">137</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="138" href="#138">138</a>     <em class="jxr_comment">// Transactional operations</em>
-<a class="jxr_linenumber" name="139" href="#139">139</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="140" href="#140">140</a> 
-<a class="jxr_linenumber" name="141" href="#141">141</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * Transactional version of {@link Table#get(Get get)}</em>
-<a class="jxr_linenumber" name="143" href="#143">143</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * @param get an instance of Get</em>
-<a class="jxr_linenumber" name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @param tx  an instance of transaction to be used</em>
-<a class="jxr_linenumber" name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @return Result an instance of Result</em>
-<a class="jxr_linenumber" name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
-<a class="jxr_linenumber" name="148" href="#148">148</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="149" href="#149">149</a>     <strong class="jxr_keyword">public</strong> Result get(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx, <strong class="jxr_keyword">final</strong> Get get) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="150" href="#150">150</a> 
-<a class="jxr_linenumber" name="151" href="#151">151</a>         throwExceptionIfOpSetsTimerange(get);
-<a class="jxr_linenumber" name="152" href="#152">152</a> 
-<a class="jxr_linenumber" name="153" href="#153">153</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> transaction = enforceHBaseTransactionAsParam(tx);
-<a class="jxr_linenumber" name="154" href="#154">154</a> 
-<a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> readTimestamp = transaction.getReadTimestamp();
-<a class="jxr_linenumber" name="156" href="#156">156</a>         <strong class="jxr_keyword">final</strong> Get tsget = <strong class="jxr_keyword">new</strong> Get(get.getRow()).setFilter(get.getFilter());
-<a class="jxr_linenumber" name="157" href="#157">157</a>         propagateAttributes(get, tsget);
-<a class="jxr_linenumber" name="158" href="#158">158</a>         TimeRange timeRange = get.getTimeRange();
-<a class="jxr_linenumber" name="159" href="#159">159</a>         <strong class="jxr_keyword">long</strong> startTime = timeRange.getMin();
-<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">long</strong> endTime = Math.min(timeRange.getMax(), readTimestamp + 1);
-<a class="jxr_linenumber" name="161" href="#161">161</a>         tsget.setTimeRange(startTime, endTime).setMaxVersions(1);
-<a class="jxr_linenumber" name="162" href="#162">162</a>         Map&lt;byte[], NavigableSet&lt;byte[]&gt;&gt; kvs = get.getFamilyMap();
-<a class="jxr_linenumber" name="163" href="#163">163</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;byte[], NavigableSet&lt;byte[]&gt;&gt; entry : kvs.entrySet()) {
-<a class="jxr_linenumber" name="164" href="#164">164</a>             byte[] family = entry.getKey();
-<a class="jxr_linenumber" name="165" href="#165">165</a>             NavigableSet&lt;byte[]&gt; qualifiers = entry.getValue();
-<a class="jxr_linenumber" name="166" href="#166">166</a>             <strong class="jxr_keyword">if</strong> (qualifiers == <strong class="jxr_keyword">null</strong> || qualifiers.isEmpty()) {
-<a class="jxr_linenumber" name="167" href="#167">167</a>                 tsget.addFamily(family);
-<a class="jxr_linenumber" name="168" href="#168">168</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="169" href="#169">169</a>                 <strong class="jxr_keyword">for</strong> (byte[] qualifier : qualifiers) {
-<a class="jxr_linenumber" name="170" href="#170">170</a>                     tsget.addColumn(family, qualifier);
-<a class="jxr_linenumber" name="171" href="#171">171</a>                     tsget.addColumn(family, CellUtils.addShadowCellSuffixPrefix(qualifier));
-<a class="jxr_linenumber" name="172" href="#172">172</a>                 }
-<a class="jxr_linenumber" name="173" href="#173">173</a>                 tsget.addColumn(family, CellUtils.FAMILY_DELETE_QUALIFIER);
-<a class="jxr_linenumber" name="174" href="#174">174</a>                 tsget.addColumn(family, CellUtils.addShadowCellSuffixPrefix(CellUtils.FAMILY_DELETE_QUALIFIER));
-<a class="jxr_linenumber" name="175" href="#175">175</a>             }
-<a class="jxr_linenumber" name="176" href="#176">176</a>         }
-<a class="jxr_linenumber" name="177" href="#177">177</a>         LOG.trace(<span class="jxr_string">"Initial Get = {}"</span>, tsget);
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>         <strong class="jxr_keyword">return</strong> snapshotFilter.get(tsget, transaction);
-<a class="jxr_linenumber" name="180" href="#180">180</a>     }
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> propagateAttributes(OperationWithAttributes from, OperationWithAttributes to) {
-<a class="jxr_linenumber" name="183" href="#183">183</a>         Map&lt;String,byte[]&gt; attributeMap = from.getAttributesMap();
-<a class="jxr_linenumber" name="184" href="#184">184</a> 
-<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String,byte[]&gt; entry : attributeMap.entrySet()) {
-<a class="jxr_linenumber" name="186" href="#186">186</a>             to.setAttribute(entry.getKey(), entry.getValue());
-<a class="jxr_linenumber" name="187" href="#187">187</a>         }
-<a class="jxr_linenumber" name="188" href="#188">188</a>     }
-<a class="jxr_linenumber" name="189" href="#189">189</a> 
-<a class="jxr_linenumber" name="190" href="#190">190</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> familyQualifierBasedDeletion(<a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> tx, Put deleteP, Get deleteG) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="191" href="#191">191</a>         Result result = <strong class="jxr_keyword">this</strong>.get(tx, deleteG);
-<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">if</strong> (!result.isEmpty()) {
-<a class="jxr_linenumber" name="193" href="#193">193</a>             <strong class="jxr_keyword">for</strong> (Entry&lt;byte[], NavigableMap&lt;byte[], NavigableMap&lt;Long, byte[]&gt;&gt;&gt; entryF : result.getMap()
-<a class="jxr_linenumber" name="194" href="#194">194</a>                     .entrySet()) {
-<a class="jxr_linenumber" name="195" href="#195">195</a>                 byte[] family = entryF.getKey();
-<a class="jxr_linenumber" name="196" href="#196">196</a>                 <strong class="jxr_keyword">for</strong> (Entry&lt;byte[], NavigableMap&lt;Long, byte[]&gt;&gt; entryQ : entryF.getValue().entrySet()) {
-<a class="jxr_linenumber" name="197" href="#197">197</a>                     byte[] qualifier = entryQ.getKey();
-<a class="jxr_linenumber" name="198" href="#198">198</a>                     tx.addWriteSetElement(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(<strong class="jxr_keyword">this</strong>, deleteP.getRow(), family, qualifier,
-<a class="jxr_linenumber" name="199" href="#199">199</a>                             tx.getWriteTimestamp()));
-<a class="jxr_linenumber" name="200" href="#200">200</a>                 }
-<a class="jxr_linenumber" name="201" href="#201">201</a>                 deleteP.addColumn(family, CellUtils.FAMILY_DELETE_QUALIFIER, tx.getWriteTimestamp(),
-<a class="jxr_linenumber" name="202" href="#202">202</a>                         HConstants.EMPTY_BYTE_ARRAY);
-<a class="jxr_linenumber" name="203" href="#203">203</a>                 tx.addWriteSetElement(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(<strong class="jxr_keyword">this</strong>, deleteP.getRow(), family, CellUtils.FAMILY_DELETE_QUALIFIER,
-<a class="jxr_linenumber" name="204" href="#204">204</a>                                                 tx.getWriteTimestamp()));
-<a class="jxr_linenumber" name="205" href="#205">205</a>             }
-<a class="jxr_linenumber" name="206" href="#206">206</a>         }
-<a class="jxr_linenumber" name="207" href="#207">207</a>     }
-<a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong>  familyQualifierBasedDeletionWithOutRead(HBaseTransaction tx, Put deleteP, Get deleteG) {
-<a class="jxr_linenumber" name="210" href="#210">210</a>         Set&lt;byte[]&gt; fset = deleteG.getFamilyMap().keySet();
-<a class="jxr_linenumber" name="211" href="#211">211</a> 
-<a class="jxr_linenumber" name="212" href="#212">212</a>         <strong class="jxr_keyword">for</strong> (byte[] family : fset) {
-<a class="jxr_linenumber" name="213" href="#213">213</a>             deleteP.addColumn(family, CellUtils.FAMILY_DELETE_QUALIFIER, tx.getWriteTimestamp(),
-<a class="jxr_linenumber" name="214" href="#214">214</a>                     HConstants.EMPTY_BYTE_ARRAY);
-<a class="jxr_linenumber" name="215" href="#215">215</a>             tx.addWriteSetElement(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(<strong class="jxr_keyword">this</strong>, deleteP.getRow(), family, CellUtils.FAMILY_DELETE_QUALIFIER,
-<a class="jxr_linenumber" name="216" href="#216">216</a>                     tx.getWriteTimestamp()));
-<a class="jxr_linenumber" name="217" href="#217">217</a> 
-<a class="jxr_linenumber" name="218" href="#218">218</a>         }
-<a class="jxr_linenumber" name="219" href="#219">219</a>     }
-<a class="jxr_linenumber" name="220" href="#220">220</a> 
-<a class="jxr_linenumber" name="221" href="#221">221</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="222" href="#222">222</a> <em class="jxr_javadoccomment">     * Transactional version of {@link Table#delete(Delete delete)}</em>
-<a class="jxr_linenumber" name="223" href="#223">223</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="224" href="#224">224</a> <em class="jxr_javadoccomment">     * @param delete an instance of Delete</em>
-<a class="jxr_linenumber" name="225" href="#225">225</a> <em class="jxr_javadoccomment">     * @param tx     an instance of transaction to be used</em>
-<a class="jxr_linenumber" name="226" href="#226">226</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
-<a class="jxr_linenumber" name="227" href="#227">227</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="228" href="#228">228</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> delete(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx, Delete delete) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="229" href="#229">229</a> 
-<a class="jxr_linenumber" name="230" href="#230">230</a>         throwExceptionIfOpSetsTimerange(delete);
-<a class="jxr_linenumber" name="231" href="#231">231</a> 
-<a class="jxr_linenumber" name="232" href="#232">232</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> transaction = enforceHBaseTransactionAsParam(tx);
-<a class="jxr_linenumber" name="233" href="#233">233</a> 
-<a class="jxr_linenumber" name="234" href="#234">234</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> writeTimestamp = transaction.getWriteTimestamp();
-<a class="jxr_linenumber" name="235" href="#235">235</a>         <strong class="jxr_keyword">boolean</strong> deleteFamily = false;
-<a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>         <strong class="jxr_keyword">final</strong> Put deleteP = <strong class="jxr_keyword">new</strong> Put(delete.getRow(), writeTimestamp);
-<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">final</strong> Get deleteG = <strong class="jxr_keyword">new</strong> Get(delete.getRow());
-<a class="jxr_linenumber" name="239" href="#239">239</a>         propagateAttributes(delete, deleteP);
-<a class="jxr_linenumber" name="240" href="#240">240</a>         propagateAttributes(delete, deleteG);
-<a class="jxr_linenumber" name="241" href="#241">241</a>         Map&lt;byte[], List&lt;Cell&gt;&gt; fmap = delete.getFamilyCellMap();
-<a class="jxr_linenumber" name="242" href="#242">242</a>         <strong class="jxr_keyword">if</strong> (fmap.isEmpty()) {
-<a class="jxr_linenumber" name="243" href="#243">243</a>             familyQualifierBasedDeletion(transaction, deleteP, deleteG);
-<a class="jxr_linenumber" name="244" href="#244">244</a>         }
-<a class="jxr_linenumber" name="245" href="#245">245</a> 
-<a class="jxr_linenumber" name="246" href="#246">246</a>         <strong class="jxr_keyword">for</strong> (List&lt;Cell&gt; cells : fmap.values()) {
-<a class="jxr_linenumber" name="247" href="#247">247</a>             <strong class="jxr_keyword">for</strong> (Cell cell : cells) {
-<a class="jxr_linenumber" name="248" href="#248">248</a>                 CellUtils.validateCell(cell, writeTimestamp);
-<a class="jxr_linenumber" name="249" href="#249">249</a>                 <strong class="jxr_keyword">switch</strong> (KeyValue.Type.codeToType(cell.getTypeByte())) {
-<a class="jxr_linenumber" name="250" href="#250">250</a>                     <strong class="jxr_keyword">case</strong> DeleteColumn:
-<a class="jxr_linenumber" name="251" href="#251">251</a>                         deleteP.addColumn(CellUtil.cloneFamily(cell),
-<a class="jxr_linenumber" name="252" href="#252">252</a>                                     CellUtil.cloneQualifier(cell),
-<a class="jxr_linenumber" name="253" href="#253">253</a>                                     writeTimestamp,
-<a class="jxr_linenumber" name="254" href="#254">254</a>                                     CellUtils.DELETE_TOMBSTONE);
-<a class="jxr_linenumber" name="255" href="#255">255</a>                         transaction.addWriteSetElement(
-<a class="jxr_linenumber" name="256" href="#256">256</a>                             <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(<strong class="jxr_keyword">this</strong>,
-<a class="jxr_linenumber" name="257" href="#257">257</a>                                             delete.getRow(),
-<a class="jxr_linenumber" name="258" href="#258">258</a>                                             CellUtil.cloneFamily(cell),
-<a class="jxr_linenumber" name="259" href="#259">259</a>                                             CellUtil.cloneQualifier(cell),
-<a class="jxr_linenumber" name="260" href="#260">260</a>                                             writeTimestamp));
-<a class="jxr_linenumber" name="261" href="#261">261</a>                         <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="262" href="#262">262</a>                     <strong class="jxr_keyword">case</strong> DeleteFamily:
-<a class="jxr_linenumber" name="263" href="#263">263</a>                         deleteG.addFamily(CellUtil.cloneFamily(cell));
-<a class="jxr_linenumber" name="264" href="#264">264</a>                         deleteFamily = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="265" href="#265">265</a>                         <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="266" href="#266">266</a>                     <strong class="jxr_keyword">case</strong> Delete:
-<a class="jxr_linenumber" name="267" href="#267">267</a>                         <strong class="jxr_keyword">if</strong> (cell.getTimestamp() == HConstants.LATEST_TIMESTAMP) {
-<a class="jxr_linenumber" name="268" href="#268">268</a>                             deleteP.addColumn(CellUtil.cloneFamily(cell),
-<a class="jxr_linenumber" name="269" href="#269">269</a>                                         CellUtil.cloneQualifier(cell),
-<a class="jxr_linenumber" name="270" href="#270">270</a>                                         writeTimestamp,
-<a class="jxr_linenumber" name="271" href="#271">271</a>                                         CellUtils.DELETE_TOMBSTONE);
-<a class="jxr_linenumber" name="272" href="#272">272</a>                             transaction.addWriteSetElement(
-<a class="jxr_linenumber" name="273" href="#273">273</a>                                 <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(<strong class="jxr_keyword">this</strong>,
-<a class="jxr_linenumber" name="274" href="#274">274</a>                                                 delete.getRow(),
-<a class="jxr_linenumber" name="275" href="#275">275</a>                                                 CellUtil.cloneFamily(cell),
-<a class="jxr_linenumber" name="276" href="#276">276</a>                                                 CellUtil.cloneQualifier(cell),
-<a class="jxr_linenumber" name="277" href="#277">277</a>                                                 writeTimestamp));
-<a class="jxr_linenumber" name="278" href="#278">278</a>                             <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="279" href="#279">279</a>                         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="280" href="#280">280</a>                             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(
-<a class="jxr_linenumber" name="281" href="#281">281</a>                                 <span class="jxr_string">"Cannot delete specific versions on Snapshot Isolation."</span>);
-<a class="jxr_linenumber" name="282" href="#282">282</a>                         }
-<a class="jxr_linenumber" name="283" href="#283">283</a>                     <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="284" href="#284">284</a>                         <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="285" href="#285">285</a>                 }
-<a class="jxr_linenumber" name="286" href="#286">286</a>             }
-<a class="jxr_linenumber" name="287" href="#287">287</a>         }
-<a class="jxr_linenumber" name="288" href="#288">288</a>         <strong class="jxr_keyword">if</strong> (deleteFamily) {
-<a class="jxr_linenumber" name="289" href="#289">289</a>             <strong class="jxr_keyword">if</strong> (enforceHBaseTransactionManagerAsParam(transaction.getTransactionManager()).getConflictDetectionLevel() == ConflictDetectionLevel.ROW) {
-<a class="jxr_linenumber" name="290" href="#290">290</a>                 familyQualifierBasedDeletionWithOutRead(transaction, deleteP, deleteG);
-<a class="jxr_linenumber" name="291" href="#291">291</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="292" href="#292">292</a>                 familyQualifierBasedDeletion(transaction, deleteP, deleteG);
-<a class="jxr_linenumber" name="293" href="#293">293</a>             }
-<a class="jxr_linenumber" name="294" href="#294">294</a>         }
-<a class="jxr_linenumber" name="295" href="#295">295</a> 
-<a class="jxr_linenumber" name="296" href="#296">296</a>         <strong class="jxr_keyword">if</strong> (!deleteP.isEmpty()) {
-<a class="jxr_linenumber" name="297" href="#297">297</a>             addMutation(deleteP);
-<a class="jxr_linenumber" name="298" href="#298">298</a>         }
-<a class="jxr_linenumber" name="299" href="#299">299</a> 
-<a class="jxr_linenumber" name="300" href="#300">300</a>     }
-<a class="jxr_linenumber" name="301" href="#301">301</a> 
-<a class="jxr_linenumber" name="302" href="#302">302</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> markPutAsConflictFreeMutation(Put put) {
-<a class="jxr_linenumber" name="303" href="#303">303</a>         put.setAttribute(CellUtils.CONFLICT_FREE_MUTATION, Bytes.toBytes(<strong class="jxr_keyword">true</strong>));
-<a class="jxr_linenumber" name="304" href="#304">304</a>     }
+<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TTable</a>(HTableInterface hTable, HTableInterface healerTable) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="98" href="#98">98</a>          table = hTable;
+<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">this</strong>.healerTable = healerTable;
+<a class="jxr_linenumber" name="100" href="#100">100</a>     }
+<a class="jxr_linenumber" name="101" href="#101">101</a> 
+<a class="jxr_linenumber" name="102" href="#102">102</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="103" href="#103">103</a>     <em class="jxr_comment">// Closeable implementation</em>
+<a class="jxr_linenumber" name="104" href="#104">104</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * Releases any resources held or pending changes in internal buffers.</em>
+<a class="jxr_linenumber" name="108" href="#108">108</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="111" href="#111">111</a>     @Override
+<a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="113" href="#113">113</a>         table.close();
+<a class="jxr_linenumber" name="114" href="#114">114</a>         healerTable.close();
+<a class="jxr_linenumber" name="115" href="#115">115</a>     }
+<a class="jxr_linenumber" name="116" href="#116">116</a> 
+<a class="jxr_linenumber" name="117" href="#117">117</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="118" href="#118">118</a>     <em class="jxr_comment">// Transactional operations</em>
+<a class="jxr_linenumber" name="119" href="#119">119</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * Transactional version of {@link HTableInterface#get(Get get)}</em>
+<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * @param get an instance of Get</em>
+<a class="jxr_linenumber" name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * @param tx  an instance of transaction to be used</em>
+<a class="jxr_linenumber" name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * @return Result an instance of Result</em>
+<a class="jxr_linenumber" name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
+<a class="jxr_linenumber" name="128" href="#128">128</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="129" href="#129">129</a>     <strong class="jxr_keyword">public</strong> Result get(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx, <strong class="jxr_keyword">final</strong> Get get) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="130" href="#130">130</a> 
+<a class="jxr_linenumber" name="131" href="#131">131</a>         throwExceptionIfOpSetsTimerange(get);
+<a class="jxr_linenumber" name="132" href="#132">132</a> 
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> transaction = enforceHBaseTransactionAsParam(tx);
+<a class="jxr_linenumber" name="134" href="#134">134</a> 
+<a class="jxr_linenumber" name="135" href="#135">135</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> readTimestamp = transaction.getStartTimestamp();
+<a class="jxr_linenumber" name="136" href="#136">136</a>         <strong class="jxr_keyword">final</strong> Get tsget = <strong class="jxr_keyword">new</strong> Get(get.getRow()).setFilter(get.getFilter());
+<a class="jxr_linenumber" name="137" href="#137">137</a>         TimeRange timeRange = get.getTimeRange();
+<a class="jxr_linenumber" name="138" href="#138">138</a>         <strong class="jxr_keyword">long</strong> startTime = timeRange.getMin();
+<a class="jxr_linenumber" name="139" href="#139">139</a>         <strong class="jxr_keyword">long</strong> endTime = Math.min(timeRange.getMax(), readTimestamp + 1);
+<a class="jxr_linenumber" name="140" href="#140">140</a>         tsget.setTimeRange(startTime, endTime).setMaxVersions(1);
+<a class="jxr_linenumber" name="141" href="#141">141</a>         Map&lt;byte[], NavigableSet&lt;byte[]&gt;&gt; kvs = get.getFamilyMap();
+<a class="jxr_linenumber" name="142" href="#142">142</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;byte[], NavigableSet&lt;byte[]&gt;&gt; entry : kvs.entrySet()) {
+<a class="jxr_linenumber" name="143" href="#143">143</a>             byte[] family = entry.getKey();
+<a class="jxr_linenumber" name="144" href="#144">144</a>             NavigableSet&lt;byte[]&gt; qualifiers = entry.getValue();
+<a class="jxr_linenumber" name="145" href="#145">145</a>             <strong class="jxr_keyword">if</strong> (qualifiers == <strong class="jxr_keyword">null</strong> || qualifiers.isEmpty()) {
+<a class="jxr_linenumber" name="146" href="#146">146</a>                 tsget.addFamily(family);
+<a class="jxr_linenumber" name="147" href="#147">147</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="148" href="#148">148</a>                 <strong class="jxr_keyword">for</strong> (byte[] qualifier : qualifiers) {
+<a class="jxr_linenumber" name="149" href="#149">149</a>                     tsget.addColumn(family, qualifier);
+<a class="jxr_linenumber" name="150" href="#150">150</a>                     tsget.addColumn(family, CellUtils.addShadowCellSuffix(qualifier));
+<a class="jxr_linenumber" name="151" href="#151">151</a>                 }
+<a class="jxr_linenumber" name="152" href="#152">152</a>             }
+<a class="jxr_linenumber" name="153" href="#153">153</a>         }
+<a class="jxr_linenumber" name="154" href="#154">154</a>         LOG.trace(<span class="jxr_string">"Initial Get = {}"</span>, tsget);
+<a class="jxr_linenumber" name="155" href="#155">155</a> 
+<a class="jxr_linenumber" name="156" href="#156">156</a>         <em class="jxr_comment">// Return the KVs that belong to the transaction snapshot, ask for more</em>
+<a class="jxr_linenumber" name="157" href="#157">157</a>         <em class="jxr_comment">// versions if needed</em>
+<a class="jxr_linenumber" name="158" href="#158">158</a>         Result result = table.get(tsget);
+<a class="jxr_linenumber" name="159" href="#159">159</a>         List&lt;Cell&gt; filteredKeyValues = Collections.emptyList();
+<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> (!result.isEmpty()) {
+<a class="jxr_linenumber" name="161" href="#161">161</a>             filteredKeyValues = filterCellsForSnapshot(result.listCells(), transaction, tsget.getMaxVersions());
+<a class="jxr_linenumber" name="162" href="#162">162</a>         }
+<a class="jxr_linenumber" name="163" href="#163">163</a> 
+<a class="jxr_linenumber" name="164" href="#164">164</a>         <strong class="jxr_keyword">return</strong> Result.create(filteredKeyValues);
+<a class="jxr_linenumber" name="165" href="#165">165</a>     }
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * Transactional version of {@link HTableInterface#delete(Delete delete)}</em>
+<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * @param delete an instance of Delete</em>
+<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     * @param tx     an instance of transaction to be used</em>
+<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
+<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> delete(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx, Delete delete) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="175" href="#175">175</a> 
+<a class="jxr_linenumber" name="176" href="#176">176</a>         throwExceptionIfOpSetsTimerange(delete);
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> transaction = enforceHBaseTransactionAsParam(tx);
+<a class="jxr_linenumber" name="179" href="#179">179</a> 
+<a class="jxr_linenumber" name="180" href="#180">180</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> startTimestamp = transaction.getStartTimestamp();
+<a class="jxr_linenumber" name="181" href="#181">181</a>         <strong class="jxr_keyword">boolean</strong> issueGet = false;
+<a class="jxr_linenumber" name="182" href="#182">182</a> 
+<a class="jxr_linenumber" name="183" href="#183">183</a>         <strong class="jxr_keyword">final</strong> Put deleteP = <strong class="jxr_keyword">new</strong> Put(delete.getRow(), startTimestamp);
+<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">final</strong> Get deleteG = <strong class="jxr_keyword">new</strong> Get(delete.getRow());
+<a class="jxr_linenumber" name="185" href="#185">185</a>         Map&lt;byte[], List&lt;Cell&gt;&gt; fmap = delete.getFamilyCellMap();
+<a class="jxr_linenumber" name="186" href="#186">186</a>         <strong class="jxr_keyword">if</strong> (fmap.isEmpty()) {
+<a class="jxr_linenumber" name="187" href="#187">187</a>             issueGet = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="188" href="#188">188</a>         }
+<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">for</strong> (List&lt;Cell&gt; cells : fmap.values()) {
+<a class="jxr_linenumber" name="190" href="#190">190</a>             <strong class="jxr_keyword">for</strong> (Cell cell : cells) {
+<a class="jxr_linenumber" name="191" href="#191">191</a>                 CellUtils.validateCell(cell, startTimestamp);
+<a class="jxr_linenumber" name="192" href="#192">192</a>                 <strong class="jxr_keyword">switch</strong> (KeyValue.Type.codeToType(cell.getTypeByte())) {
+<a class="jxr_linenumber" name="193" href="#193">193</a>                     <strong class="jxr_keyword">case</strong> DeleteColumn:
+<a class="jxr_linenumber" name="194" href="#194">194</a>                         deleteP.add(CellUtil.cloneFamily(cell),
+<a class="jxr_linenumber" name="195" href="#195">195</a>                                     CellUtil.cloneQualifier(cell),
+<a class="jxr_linenumber" name="196" href="#196">196</a>                                     startTimestamp,
+<a class="jxr_linenumber" name="197" href="#197">197</a>                                     CellUtils.DELETE_TOMBSTONE);
+<a class="jxr_linenumber" name="198" href="#198">198</a>                         transaction.addWriteSetElement(
+<a class="jxr_linenumber" name="199" href="#199">199</a>                             <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(table,
+<a class="jxr_linenumber" name="200" href="#200">200</a>                                             delete.getRow(),
+<a class="jxr_linenumber" name="201" href="#201">201</a>                                             CellUtil.cloneFamily(cell),
+<a class="jxr_linenumber" name="202" href="#202">202</a>                                             CellUtil.cloneQualifier(cell),
+<a class="jxr_linenumber" name="203" href="#203">203</a>                                             cell.getTimestamp()));
+<a class="jxr_linenumber" name="204" href="#204">204</a>                         <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="205" href="#205">205</a>                     <strong class="jxr_keyword">case</strong> DeleteFamily:
+<a class="jxr_linenumber" name="206" href="#206">206</a>                         deleteG.addFamily(CellUtil.cloneFamily(cell));
+<a class="jxr_linenumber" name="207" href="#207">207</a>                         issueGet = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="208" href="#208">208</a>                         <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="209" href="#209">209</a>                     <strong class="jxr_keyword">case</strong> Delete:
+<a class="jxr_linenumber" name="210" href="#210">210</a>                         <strong class="jxr_keyword">if</strong> (cell.getTimestamp() == HConstants.LATEST_TIMESTAMP) {
+<a class="jxr_linenumber" name="211" href="#211">211</a>                             deleteP.add(CellUtil.cloneFamily(cell),
+<a class="jxr_linenumber" name="212" href="#212">212</a>                                         CellUtil.cloneQualifier(cell),
+<a class="jxr_linenumber" name="213" href="#213">213</a>                                         startTimestamp,
+<a class="jxr_linenumber" name="214" href="#214">214</a>                                         CellUtils.DELETE_TOMBSTONE);
+<a class="jxr_linenumber" name="215" href="#215">215</a>                             transaction.addWriteSetElement(
+<a class="jxr_linenumber" name="216" href="#216">216</a>                                 <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(table,
+<a class="jxr_linenumber" name="217" href="#217">217</a>                                                 delete.getRow(),
+<a class="jxr_linenumber" name="218" href="#218">218</a>                                                 CellUtil.cloneFamily(cell),
+<a class="jxr_linenumber" name="219" href="#219">219</a>                                                 CellUtil.cloneQualifier(cell),
+<a class="jxr_linenumber" name="220" href="#220">220</a>                                                 cell.getTimestamp()));
+<a class="jxr_linenumber" name="221" href="#221">221</a>                             <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="222" href="#222">222</a>                         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="223" href="#223">223</a>                             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(
+<a class="jxr_linenumber" name="224" href="#224">224</a>                                 <span class="jxr_string">"Cannot delete specific versions on Snapshot Isolation."</span>);
+<a class="jxr_linenumber" name="225" href="#225">225</a>                         }
+<a class="jxr_linenumber" name="226" href="#226">226</a>                     <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="227" href="#227">227</a>                         <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="228" href="#228">228</a>                 }
+<a class="jxr_linenumber" name="229" href="#229">229</a>             }
+<a class="jxr_linenumber" name="230" href="#230">230</a>         }
+<a class="jxr_linenumber" name="231" href="#231">231</a>         <strong class="jxr_keyword">if</strong> (issueGet) {
+<a class="jxr_linenumber" name="232" href="#232">232</a>             <em class="jxr_comment">// It's better to perform a transactional get to avoid deleting more</em>
+<a class="jxr_linenumber" name="233" href="#233">233</a>             <em class="jxr_comment">// than necessary</em>
+<a class="jxr_linenumber" name="234" href="#234">234</a>             Result result = <strong class="jxr_keyword">this</strong>.get(transaction, deleteG);
+<a class="jxr_linenumber" name="235" href="#235">235</a>             <strong class="jxr_keyword">if</strong> (!result.isEmpty()) {
+<a class="jxr_linenumber" name="236" href="#236">236</a>                 <strong class="jxr_keyword">for</strong> (Entry&lt;byte[], NavigableMap&lt;byte[], NavigableMap&lt;Long, byte[]&gt;&gt;&gt; entryF : result.getMap()
+<a class="jxr_linenumber" name="237" href="#237">237</a>                     .entrySet()) {
+<a class="jxr_linenumber" name="238" href="#238">238</a>                     byte[] family = entryF.getKey();
+<a class="jxr_linenumber" name="239" href="#239">239</a>                     <strong class="jxr_keyword">for</strong> (Entry&lt;byte[], NavigableMap&lt;Long, byte[]&gt;&gt; entryQ : entryF.getValue().entrySet()) {
+<a class="jxr_linenumber" name="240" href="#240">240</a>                         byte[] qualifier = entryQ.getKey();
+<a class="jxr_linenumber" name="241" href="#241">241</a>                         deleteP.add(family, qualifier, CellUtils.DELETE_TOMBSTONE);
+<a class="jxr_linenumber" name="242" href="#242">242</a>                         transaction.addWriteSetElement(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(table, delete.getRow(), family, qualifier,
+<a class="jxr_linenumber" name="243" href="#243">243</a>                                                                        transaction.getStartTimestamp()));
+<a class="jxr_linenumber" name="244" href="#244">244</a>                     }
+<a class="jxr_linenumber" name="245" href="#245">245</a>                 }
+<a class="jxr_linenumber" name="246" href="#246">246</a>             }
+<a class="jxr_linenumber" name="247" href="#247">247</a>         }
+<a class="jxr_linenumber" name="248" href="#248">248</a> 
+<a class="jxr_linenumber" name="249" href="#249">249</a>         <strong class="jxr_keyword">if</strong> (!deleteP.isEmpty()) {
+<a class="jxr_linenumber" name="250" href="#250">250</a>             table.put(deleteP);
+<a class="jxr_linenumber" name="251" href="#251">251</a>         }
+<a class="jxr_linenumber" name="252" href="#252">252</a> 
+<a class="jxr_linenumber" name="253" href="#253">253</a>     }
+<a class="jxr_linenumber" name="254" href="#254">254</a> 
+<a class="jxr_linenumber" name="255" href="#255">255</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="256" href="#256">256</a> <em class="jxr_javadoccomment">     * Transactional version of {@link HTableInterface#put(Put put)}</em>
+<a class="jxr_linenumber" name="257" href="#257">257</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="258" href="#258">258</a> <em class="jxr_javadoccomment">     * @param put an instance of Put</em>
+<a class="jxr_linenumber" name="259" href="#259">259</a> <em class="jxr_javadoccomment">     * @param tx  an instance of transaction to be used</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
+<a class="jxr_linenumber" name="261" href="#261">261</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="262" href="#262">262</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> put(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx, Put put) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="263" href="#263">263</a> 
+<a class="jxr_linenumber" name="264" href="#264">264</a>         throwExceptionIfOpSetsTimerange(put);
+<a class="jxr_linenumber" name="265" href="#265">265</a> 
+<a class="jxr_linenumber" name="266" href="#266">266</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> transaction = enforceHBaseTransactionAsParam(tx);
+<a class="jxr_linenumber" name="267" href="#267">267</a> 
+<a class="jxr_linenumber" name="268" href="#268">268</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> startTimestamp = transaction.getStartTimestamp();
+<a class="jxr_linenumber" name="269" href="#269">269</a>         <em class="jxr_comment">// create put with correct ts</em>
+<a class="jxr_linenumber" name="270" href="#270">270</a>         <strong class="jxr_keyword">final</strong> Put tsput = <strong class="jxr_keyword">new</strong> Put(put.getRow(), startTimestamp);
+<a class="jxr_linenumber" name="271" href="#271">271</a>         Map&lt;byte[], List&lt;Cell&gt;&gt; kvs = put.getFamilyCellMap();
+<a class="jxr_linenumber" name="272" href="#272">272</a>         <strong class="jxr_keyword">for</strong> (List&lt;Cell&gt; kvl : kvs.values()) {
+<a class="jxr_linenumber" name="273" href="#273">273</a>             <strong class="jxr_keyword">for</strong> (Cell c : kvl) {
+<a class="jxr_linenumber" name="274" href="#274">274</a>                 CellUtils.validateCell(c, startTimestamp);
+<a class="jxr_linenumber" name="275" href="#275">275</a>                 <em class="jxr_comment">// Reach into keyvalue to update timestamp.</em>
+<a class="jxr_linenumber" name="276" href="#276">276</a>                 <em class="jxr_comment">// It's not nice to reach into keyvalue internals,</em>
+<a class="jxr_linenumber" name="277" href="#277">277</a>                 <em class="jxr_comment">// but we want to avoid having to copy the whole thing</em>
+<a class="jxr_linenumber" name="278" href="#278">278</a>                 KeyValue kv = KeyValueUtil.ensureKeyValue(c);
+<a class="jxr_linenumber" name="279" href="#279">279</a>                 Bytes.putLong(kv.getValueArray(), kv.getTimestampOffset(), startTimestamp);
+<a class="jxr_linenumber" name="280" href="#280">280</a>                 tsput.add(kv);
+<a class="jxr_linenumber" name="281" href="#281">281</a> 
+<a class="jxr_linenumber" name="282" href="#282">282</a>                 transaction.addWriteSetElement(
+<a class="jxr_linenumber" name="283" href="#283">283</a>                     <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(table,
+<a class="jxr_linenumber" name="284" href="#284">284</a>                                     CellUtil.cloneRow(kv),
+<a class="jxr_linenumber" name="285" href="#285">285</a>                                     CellUtil.cloneFamily(kv),
+<a class="jxr_linenumber" name="286" href="#286">286</a>                                     CellUtil.cloneQualifier(kv),
+<a class="jxr_linenumber" name="287" href="#287">287</a>                                     kv.getTimestamp()));
+<a class="jxr_linenumber" name="288" href="#288">288</a>             }
+<a class="jxr_linenumber" name="289" href="#289">289</a>         }
+<a class="jxr_linenumber" name="290" href="#290">290</a> 
+<a class="jxr_linenumber" name="291" href="#291">291</a>         table.put(tsput);
+<a class="jxr_linenumber" name="292" href="#292">292</a>     }
+<a class="jxr_linenumber" name="293" href="#293">293</a> 
+<a class="jxr_linenumber" name="294" href="#294">294</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="295" href="#295">295</a> <em class="jxr_javadoccomment">     * Transactional version of {@link HTableInterface#getScanner(Scan scan)}</em>
+<a class="jxr_linenumber" name="296" href="#296">296</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="297" href="#297">297</a> <em class="jxr_javadoccomment">     * @param scan an instance of Scan</em>
+<a class="jxr_linenumber" name="298" href="#298">298</a> <em class="jxr_javadoccomment">     * @param tx   an instance of transaction to be used</em>
+<a class="jxr_linenumber" name="299" href="#299">299</a> <em class="jxr_javadoccomment">     * @return ResultScanner an instance of ResultScanner</em>
+<a class="jxr_linenumber" name="300" href="#300">300</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
+<a class="jxr_linenumber" name="301" href="#301">301</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="302" href="#302">302</a>     <strong class="jxr_keyword">public</strong> ResultScanner getScanner(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx, Scan scan) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="303" href="#303">303</a> 
+<a class="jxr_linenumber" name="304" href="#304">304</a>         throwExceptionIfOpSetsTimerange(scan);
 <a class="jxr_linenumber" name="305" href="#305">305</a> 
-<a class="jxr_linenumber" name="306" href="#306">306</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="307" href="#307">307</a> <em class="jxr_javadoccomment">     * Transactional version of {@link Table#put(Put put)}</em>
-<a class="jxr_linenumber" name="308" href="#308">308</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="309" href="#309">309</a> <em class="jxr_javadoccomment">     * @param put an instance of Put</em>
-<a class="jxr_linenumber" name="310" href="#310">310</a> <em class="jxr_javadoccomment">     * @param tx  an instance of transaction to be used</em>
-<a class="jxr_linenumber" name="311" href="#311">311</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
-<a class="jxr_linenumber" name="312" href="#312">312</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="313" href="#313">313</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> put(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx, Put put) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="314" href="#314">314</a>         put(tx, put, false);
-<a class="jxr_linenumber" name="315" href="#315">315</a>     }
-<a class="jxr_linenumber" name="316" href="#316">316</a> 
-<a class="jxr_linenumber" name="317" href="#317">317</a> 
-<a class="jxr_linenumber" name="318" href="#318">318</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="319" href="#319">319</a> <em class="jxr_javadoccomment">     * @param put an instance of Put</em>
-<a class="jxr_linenumber" name="320" href="#320">320</a> <em class="jxr_javadoccomment">     * @param timestamp  timestamp to be used as cells version</em>
-<a class="jxr_linenumber" name="321" href="#321">321</a> <em class="jxr_javadoccomment">     * @param commitTimestamp  timestamp to be used as commit timestamp</em>
-<a class="jxr_linenumber" name="322" href="#322">322</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
-<a class="jxr_linenumber" name="323" href="#323">323</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="324" href="#324">324</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> Put markPutAsCommitted(Put put, <strong class="jxr_keyword">long</strong> timestamp, <strong class="jxr_keyword">long</strong> commitTimestamp) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="325" href="#325">325</a>         <strong class="jxr_keyword">final</strong> Put tsput = <strong class="jxr_keyword">new</strong> Put(put.getRow(), timestamp);
-<a class="jxr_linenumber" name="326" href="#326">326</a>         propagateAttributes(put, tsput);
-<a class="jxr_linenumber" name="327" href="#327">327</a> 
-<a class="jxr_linenumber" name="328" href="#328">328</a>         Map&lt;byte[], List&lt;Cell&gt;&gt; kvs = put.getFamilyCellMap();
-<a class="jxr_linenumber" name="329" href="#329">329</a>         <strong class="jxr_keyword">for</strong> (List&lt;Cell&gt; kvl : kvs.values()) {
-<a class="jxr_linenumber" name="330" href="#330">330</a>             <strong class="jxr_keyword">for</strong> (Cell c : kvl) {
-<a class="jxr_linenumber" name="331" href="#331">331</a>                 KeyValue kv = KeyValueUtil.ensureKeyValue(c);
-<a class="jxr_linenumber" name="332" href="#332">332</a>                 Bytes.putLong(kv.getValueArray(), kv.getTimestampOffset(), timestamp);
-<a class="jxr_linenumber" name="333" href="#333">333</a>                 tsput.add(kv);
-<a class="jxr_linenumber" name="334" href="#334">334</a>                 tsput.addColumn(CellUtil.cloneFamily(kv),
-<a class="jxr_linenumber" name="335" href="#335">335</a>                         CellUtils.addShadowCellSuffixPrefix(CellUtil.cloneQualifier(kv), 0, CellUtil.cloneQualifier(kv).length),
-<a class="jxr_linenumber" name="336" href="#336">336</a>                         kv.getTimestamp(),
-<a class="jxr_linenumber" name="337" href="#337">337</a>                         Bytes.toBytes(commitTimestamp));
-<a class="jxr_linenumber" name="338" href="#338">338</a>             }
-<a class="jxr_linenumber" name="339" href="#339">339</a>         }
-<a class="jxr_linenumber" name="340" href="#340">340</a> 
-<a class="jxr_linenumber" name="341" href="#341">341</a>         <strong class="jxr_keyword">return</strong> tsput;
-<a class="jxr_linenumber" name="342" href="#342">342</a>     }
-<a class="jxr_linenumber" name="343" href="#343">343</a> 
-<a class="jxr_linenumber" name="344" href="#344">344</a> 
-<a class="jxr_linenumber" name="345" href="#345">345</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="346" href="#346">346</a> <em class="jxr_javadoccomment">     * @param put an instance of Put</em>
-<a class="jxr_linenumber" name="347" href="#347">347</a> <em class="jxr_javadoccomment">     * @param tx  an instance of transaction to be used</em>
-<a class="jxr_linenumber" name="348" href="#348">348</a> <em class="jxr_javadoccomment">     * @param addShadowCell  denotes whether to add the shadow cell</em>
-<a class="jxr_linenumber" name="349" href="#349">349</a> <em class="jxr_javadoccomment">     * @throws IOException if a remote or network exception occurs.</em>
-<a class="jxr_linenumber" name="350" href="#350">350</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="351" href="#351">351</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> put(<a href="../../../../org/apache/omid/transaction/Transaction.html">Transaction</a> tx, Put put, <strong class="jxr_keyword">boolean</strong> addShadowCell) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="352" href="#352">352</a> 
-<a class="jxr_linenumber" name="353" href="#353">353</a>         throwExceptionIfOpSetsTimerange(put);
-<a class="jxr_linenumber" name="354" href="#354">354</a> 
-<a class="jxr_linenumber" name="355" href="#355">355</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> transaction = enforceHBaseTransactionAsParam(tx);
-<a class="jxr_linenumber" name="356" href="#356">356</a> 
-<a class="jxr_linenumber" name="357" href="#357">357</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> writeTimestamp = transaction.getWriteTimestamp();
-<a class="jxr_linenumber" name="358" href="#358">358</a> 
-<a class="jxr_linenumber" name="359" href="#359">359</a>         <em class="jxr_comment">// create put with correct ts</em>
-<a class="jxr_linenumber" name="360" href="#360">360</a>         <strong class="jxr_keyword">final</strong> Put tsput = <strong class="jxr_keyword">new</strong> Put(put.getRow(), writeTimestamp);
-<a class="jxr_linenumber" name="361" href="#361">361</a>         propagateAttributes(put, tsput);
-<a class="jxr_linenumber" name="362" href="#362">362</a>         Map&lt;byte[], List&lt;Cell&gt;&gt; kvs = put.getFamilyCellMap();
-<a class="jxr_linenumber" name="363" href="#363">363</a>         <strong class="jxr_keyword">for</strong> (List&lt;Cell&gt; kvl : kvs.values()) {
-<a class="jxr_linenumber" name="364" href="#364">364</a>             <strong class="jxr_keyword">for</strong> (Cell c : kvl) {
-<a class="jxr_linenumber" name="365" href="#365">365</a>                 CellUtils.validateCell(c, writeTimestamp);
-<a class="jxr_linenumber" name="366" href="#366">366</a>                 <em class="jxr_comment">// Reach into keyvalue to update timestamp.</em>
-<a class="jxr_linenumber" name="367" href="#367">367</a>                 <em class="jxr_comment">// It's not nice to reach into keyvalue internals,</em>
-<a class="jxr_linenumber" name="368" href="#368">368</a>                 <em class="jxr_comment">// but we want to avoid having to copy the whole thing</em>
-<a class="jxr_linenumber" name="369" href="#369">369</a>                 KeyValue kv = KeyValueUtil.ensureKeyValue(c);
-<a class="jxr_linenumber" name="370" href="#370">370</a>                 Bytes.putLong(kv.getValueArray(), kv.getTimestampOffset(), writeTimestamp);
-<a class="jxr_linenumber" name="371" href="#371">371</a>                 tsput.add(kv);
-<a class="jxr_linenumber" name="372" href="#372">372</a> 
-<a class="jxr_linenumber" name="373" href="#373">373</a>                 <strong class="jxr_keyword">if</strong> (addShadowCell) {
-<a class="jxr_linenumber" name="374" href="#374">374</a>                     tsput.addColumn(CellUtil.cloneFamily(kv),
-<a class="jxr_linenumber" name="375" href="#375">375</a>                             CellUtils.addShadowCellSuffixPrefix(CellUtil.cloneQualifier(kv), 0, CellUtil.cloneQualifier(kv).length),
-<a class="jxr_linenumber" name="376" href="#376">376</a>                             kv.getTimestamp(),
-<a class="jxr_linenumber" name="377" href="#377">377</a>                             Bytes.toBytes(kv.getTimestamp()));
-<a class="jxr_linenumber" name="378" href="#378">378</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="379" href="#379">379</a>                     byte[] conflictFree = put.getAttribute(CellUtils.CONFLICT_FREE_MUTATION);
-<a class="jxr_linenumber" name="380" href="#380">380</a>                     <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> cellId = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a>(<strong class="jxr_keyword">this</strong>,
-<a class="jxr_linenumber" name="381" href="#381">381</a>                             CellUtil.cloneRow(kv),
-<a class="jxr_linenumber" name="382" href="#382">382</a>                             CellUtil.cloneFamily(kv),
-<a class="jxr_linenumber" name="383" href="#383">383</a>                             CellUtil.cloneQualifier(kv),
-<a class="jxr_linenumber" name="384" href="#384">384</a>                             kv.getTimestamp());
+<a class="jxr_linenumber" name="306" href="#306">306</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> transaction = enforceHBaseTransactionAsParam(tx);
+<a class="jxr_linenumber" name="307" href="#307">307</a> 
+<a class="jxr_linenumber" name="308" href="#308">308</a>         Scan tsscan = <strong class="jxr_keyword">new</strong> Scan(scan);
+<a class="jxr_linenumber" name="309" href="#309">309</a>         tsscan.setMaxVersions(1);
+<a class="jxr_linenumber" name="310" href="#310">310</a>         tsscan.setTimeRange(0, transaction.getStartTimestamp() + 1);
+<a class="jxr_linenumber" name="311" href="#311">311</a>         Map&lt;byte[], NavigableSet&lt;byte[]&gt;&gt; kvs = scan.getFamilyMap();
+<a class="jxr_linenumber" name="312" href="#312">312</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;byte[], NavigableSet&lt;byte[]&gt;&gt; entry : kvs.entrySet()) {
+<a class="jxr_linenumber" name="313" href="#313">313</a>             byte[] family = entry.getKey();
+<a class="jxr_linenumber" name="314" href="#314">314</a>             NavigableSet&lt;byte[]&gt; qualifiers = entry.getValue();
+<a class="jxr_linenumber" name="315" href="#315">315</a>             <strong class="jxr_keyword">if</strong> (qualifiers == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="316" href="#316">316</a>                 <strong class="jxr_keyword">continue</strong>;
+<a class="jxr_linenumber" name="317" href="#317">317</a>             }
+<a class="jxr_linenumber" name="318" href="#318">318</a>             <strong class="jxr_keyword">for</strong> (byte[] qualifier : qualifiers) {
+<a class="jxr_linenumber" name="319" href="#319">319</a>                 tsscan.addColumn(family, CellUtils.addShadowCellSuffix(qualifier));
+<a class="jxr_linenumber" name="320" href="#320">320</a>             }
+<a class="jxr_linenumber" name="321" href="#321">321</a>         }
+<a class="jxr_linenumber" name="322" href="#322">322</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TTable.html">TransactionalClientScanner</a>(transaction, tsscan, 1);
+<a class="jxr_linenumber" name="323" href="#323">323</a>     }
+<a class="jxr_linenumber" name="324" href="#324">324</a> 
+<a class="jxr_linenumber" name="325" href="#325">325</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="326" href="#326">326</a> <em class="jxr_javadoccomment">     * Filters the raw results returned from HBase and returns only those belonging to the current snapshot, as defined</em>
+<a class="jxr_linenumber" name="327" href="#327">327</a> <em class="jxr_javadoccomment">     * by the transaction object. If the raw results don't contain enough information for a particular qualifier, it</em>
+<a class="jxr_linenumber" name="328" href="#328">328</a> <em class="jxr_javadoccomment">     * will request more versions from HBase.</em>
+<a class="jxr_linenumber" name="329" href="#329">329</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="330" href="#330">330</a> <em class="jxr_javadoccomment">     * @param rawCells          Raw cells that we are going to filter</em>
+<a class="jxr_linenumber" name="331" href="#331">331</a> <em class="jxr_javadoccomment">     * @param transaction       Defines the current snapshot</em>
+<a class="jxr_linenumber" name="332" href="#332">332</a> <em class="jxr_javadoccomment">     * @param versionsToRequest Number of versions requested from hbase</em>
+<a class="jxr_linenumber" name="333" href="#333">333</a> <em class="jxr_javadoccomment">     * @return Filtered KVs belonging to the transaction snapshot</em>
+<a class="jxr_linenumber" name="334" href="#334">334</a> <em class="jxr_javadoccomment">   

<TRUNCATED>


[31/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestSingleColumnFamily.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestSingleColumnFamily.html b/xref-test/org/apache/omid/transaction/TestSingleColumnFamily.html
index 166d582..61676e6 100644
--- a/xref-test/org/apache/omid/transaction/TestSingleColumnFamily.html
+++ b/xref-test/org/apache/omid/transaction/TestSingleColumnFamily.html
@@ -27,17 +27,17 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
 <a class="jxr_linenumber" name="31" href="#31">31</a>  
 <a class="jxr_linenumber" name="32" href="#32">32</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
 <a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestSingleColumnFamily.html">TestSingleColumnFamily</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
@@ -47,14 +47,14 @@
 <a class="jxr_linenumber" name="37" href="#37">37</a>      @Test(timeOut = 10_000)
 <a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSingleColumnFamily(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="39" href="#39">39</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="40" href="#40">40</a>          TTable table1 = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="40" href="#40">40</a>          TTable table1 = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
 <a class="jxr_linenumber" name="41" href="#41">41</a>          <strong class="jxr_keyword">int</strong> num = 10;
 <a class="jxr_linenumber" name="42" href="#42">42</a>          Transaction t = tm.begin();
 <a class="jxr_linenumber" name="43" href="#43">43</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> j = 0; j &lt; num; j++) {
 <a class="jxr_linenumber" name="44" href="#44">44</a>              byte[] data = Bytes.toBytes(j);
 <a class="jxr_linenumber" name="45" href="#45">45</a>              Put put = <strong class="jxr_keyword">new</strong> Put(data);
-<a class="jxr_linenumber" name="46" href="#46">46</a>              put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(<span class="jxr_string">"value1"</span>), data);
-<a class="jxr_linenumber" name="47" href="#47">47</a>              put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(<span class="jxr_string">"value2"</span>), data);
+<a class="jxr_linenumber" name="46" href="#46">46</a>              put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(<span class="jxr_string">"value1"</span>), data);
+<a class="jxr_linenumber" name="47" href="#47">47</a>              put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(<span class="jxr_string">"value2"</span>), data);
 <a class="jxr_linenumber" name="48" href="#48">48</a>              table1.put(t, put);
 <a class="jxr_linenumber" name="49" href="#49">49</a>          }
 <a class="jxr_linenumber" name="50" href="#50">50</a>          <em class="jxr_comment">//tm.tryCommit(t);</em>
@@ -78,7 +78,7 @@
 <a class="jxr_linenumber" name="68" href="#68">68</a>              byte[] data = Bytes.toBytes(j);
 <a class="jxr_linenumber" name="69" href="#69">69</a>              byte[] ndata = Bytes.toBytes(j * 10);
 <a class="jxr_linenumber" name="70" href="#70">70</a>              Put put = <strong class="jxr_keyword">new</strong> Put(data);
-<a class="jxr_linenumber" name="71" href="#71">71</a>              put.addColumn(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(<span class="jxr_string">"value2"</span>), ndata);
+<a class="jxr_linenumber" name="71" href="#71">71</a>              put.add(Bytes.toBytes(TEST_FAMILY), Bytes.toBytes(<span class="jxr_string">"value2"</span>), ndata);
 <a class="jxr_linenumber" name="72" href="#72">72</a>              table1.put(t, put);
 <a class="jxr_linenumber" name="73" href="#73">73</a>          }
 <a class="jxr_linenumber" name="74" href="#74">74</a>          tm.commit(t);

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestTTableBehaviour.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestTTableBehaviour.html b/xref-test/org/apache/omid/transaction/TestTTableBehaviour.html
index 41bad84..dd07395 100644
--- a/xref-test/org/apache/omid/transaction/TestTTableBehaviour.html
+++ b/xref-test/org/apache/omid/transaction/TestTTableBehaviour.html
@@ -27,143 +27,142 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTableInterface;
 <a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
 <a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.mockito.Mockito;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  @Test(groups = <span class="jxr_string">"noHBase"</span>)
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestTTableBehaviour.html">TestTTableBehaviour</a> {
-<a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> byte[] row = Bytes.toBytes(<span class="jxr_string">"1row"</span>);
-<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">private</strong> byte[] famName = Bytes.toBytes(<span class="jxr_string">"tf"</span>);
-<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> byte[] colName = Bytes.toBytes(<span class="jxr_string">"tc"</span>);
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">private</strong> byte[] dataValue = Bytes.toBytes(<span class="jxr_string">"test-data"</span>);
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUserOperationsDontAllowTimestampSpecification() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>          <em class="jxr_comment">// Component under test</em>
-<a class="jxr_linenumber" name="45" href="#45">45</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(Mockito.mock(Table.<strong class="jxr_keyword">class</strong>), false);
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>          <strong class="jxr_keyword">long</strong> randomTimestampValue = Bytes.toLong(<span class="jxr_string">"deadbeef"</span>.getBytes());
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>          Transaction tx = Mockito.mock(Transaction.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>          <em class="jxr_comment">// Test put fails when a timestamp is specified in the put</em>
-<a class="jxr_linenumber" name="52" href="#52">52</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row, randomTimestampValue);
-<a class="jxr_linenumber" name="53" href="#53">53</a>          put.addColumn(famName, colName, dataValue);
-<a class="jxr_linenumber" name="54" href="#54">54</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="55" href="#55">55</a>              tt.put(tx, put);
-<a class="jxr_linenumber" name="56" href="#56">56</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
-<a class="jxr_linenumber" name="57" href="#57">57</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="58" href="#58">58</a>              <em class="jxr_comment">// Continue</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>          }
-<a class="jxr_linenumber" name="60" href="#60">60</a>  
-<a class="jxr_linenumber" name="61" href="#61">61</a>          <em class="jxr_comment">// Test put fails when a timestamp is specified in a qualifier</em>
-<a class="jxr_linenumber" name="62" href="#62">62</a>          put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="63" href="#63">63</a>          put.addColumn(famName, colName, randomTimestampValue, dataValue);
-<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="65" href="#65">65</a>              tt.put(tx, put);
-<a class="jxr_linenumber" name="66" href="#66">66</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
-<a class="jxr_linenumber" name="67" href="#67">67</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="68" href="#68">68</a>              <em class="jxr_comment">// Continue</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>          }
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <em class="jxr_comment">// Test that get fails when a timestamp is specified</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>          Get get = <strong class="jxr_keyword">new</strong> Get(row);
-<a class="jxr_linenumber" name="73" href="#73">73</a>          get.setTimeStamp(randomTimestampValue);
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="75" href="#75">75</a>              tt.get(tx, get);
-<a class="jxr_linenumber" name="76" href="#76">76</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="78" href="#78">78</a>              <em class="jxr_comment">// Continue</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>          }
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>          <em class="jxr_comment">// Test scan fails when a timerange is specified</em>
-<a class="jxr_linenumber" name="82" href="#82">82</a>          Scan scan = <strong class="jxr_keyword">new</strong> Scan(get);
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="84" href="#84">84</a>              tt.getScanner(tx, scan);
-<a class="jxr_linenumber" name="85" href="#85">85</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
-<a class="jxr_linenumber" name="86" href="#86">86</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="87" href="#87">87</a>              <em class="jxr_comment">// Continue</em>
-<a class="jxr_linenumber" name="88" href="#88">88</a>          }
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>          <em class="jxr_comment">// Test delete fails when a timestamp is specified</em>
-<a class="jxr_linenumber" name="91" href="#91">91</a>          Delete delete = <strong class="jxr_keyword">new</strong> Delete(row);
-<a class="jxr_linenumber" name="92" href="#92">92</a>          delete.setTimestamp(randomTimestampValue);
-<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="94" href="#94">94</a>              tt.delete(tx, delete);
-<a class="jxr_linenumber" name="95" href="#95">95</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
-<a class="jxr_linenumber" name="96" href="#96">96</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="97" href="#97">97</a>              <em class="jxr_comment">// Continue</em>
-<a class="jxr_linenumber" name="98" href="#98">98</a>          }
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>         <em class="jxr_comment">// Test delete fails when a timestamp is specified in a qualifier</em>
-<a class="jxr_linenumber" name="101" href="#101">101</a>         delete = <strong class="jxr_keyword">new</strong> Delete(row);
-<a class="jxr_linenumber" name="102" href="#102">102</a>         delete.addColumn(famName, colName, randomTimestampValue);
-<a class="jxr_linenumber" name="103" href="#103">103</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="104" href="#104">104</a>             tt.delete(tx, delete);
-<a class="jxr_linenumber" name="105" href="#105">105</a>             fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
-<a class="jxr_linenumber" name="106" href="#106">106</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="107" href="#107">107</a>             <em class="jxr_comment">// Continue</em>
-<a class="jxr_linenumber" name="108" href="#108">108</a>         }
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>     }
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * Test that we cannot use reserved names for shadow cell identifiers as qualifiers in user operations</em>
-<a class="jxr_linenumber" name="114" href="#114">114</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="115" href="#115">115</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReservedNamesForShadowCellsCanNotBeUsedAsQualifiersInUserOperations() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="117" href="#117">117</a>         byte[] nonValidQualifier1 = <span class="jxr_string">"blahblah\u0080"</span>.getBytes(Charsets.UTF_8);
-<a class="jxr_linenumber" name="118" href="#118">118</a>         byte[] validQualifierIncludingOldShadowCellSuffix = <span class="jxr_string">"blahblah:OMID_CTS"</span>.getBytes(Charsets.UTF_8);
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(Mockito.mock(Table.<strong class="jxr_keyword">class</strong>), false);
-<a class="jxr_linenumber" name="121" href="#121">121</a> 
-<a class="jxr_linenumber" name="122" href="#122">122</a>         HBaseTransaction t1 = Mockito.mock(HBaseTransaction.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="123" href="#123">123</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="124" href="#124">124</a>         put.addColumn(famName, nonValidQualifier1, dataValue);
-<a class="jxr_linenumber" name="125" href="#125">125</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="126" href="#126">126</a>             table.put(t1, put);
-<a class="jxr_linenumber" name="127" href="#127">127</a>             fail(<span class="jxr_string">"Shouldn't be able to put this"</span>);
-<a class="jxr_linenumber" name="128" href="#128">128</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
-<a class="jxr_linenumber" name="129" href="#129">129</a>             <em class="jxr_comment">// correct</em>
-<a class="jxr_linenumber" name="130" href="#130">130</a>         }
-<a class="jxr_linenumber" name="131" href="#131">131</a>         Delete del = <strong class="jxr_keyword">new</strong> Delete(row);
-<a class="jxr_linenumber" name="132" href="#132">132</a>         del.addColumn(famName, nonValidQualifier1);
-<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="134" href="#134">134</a>             table.delete(t1, del);
-<a class="jxr_linenumber" name="135" href="#135">135</a>             fail(<span class="jxr_string">"Shouldn't be able to delete this"</span>);
-<a class="jxr_linenumber" name="136" href="#136">136</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
-<a class="jxr_linenumber" name="137" href="#137">137</a>             <em class="jxr_comment">// correct</em>
-<a class="jxr_linenumber" name="138" href="#138">138</a>         }
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>         put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="141" href="#141">141</a>         put.addColumn(famName, validQualifierIncludingOldShadowCellSuffix, dataValue);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="143" href="#143">143</a>             table.put(t1, put);
-<a class="jxr_linenumber" name="144" href="#144">144</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
-<a class="jxr_linenumber" name="145" href="#145">145</a>             fail(<span class="jxr_string">"Qualifier shouldn't be rejected anymore"</span>);
-<a class="jxr_linenumber" name="146" href="#146">146</a>         }
-<a class="jxr_linenumber" name="147" href="#147">147</a>         del = <strong class="jxr_keyword">new</strong> Delete(row);
-<a class="jxr_linenumber" name="148" href="#148">148</a>         del.addColumn(famName, validQualifierIncludingOldShadowCellSuffix);
-<a class="jxr_linenumber" name="149" href="#149">149</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="150" href="#150">150</a>             table.delete(t1, del);
-<a class="jxr_linenumber" name="151" href="#151">151</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
-<a class="jxr_linenumber" name="152" href="#152">152</a>             fail(<span class="jxr_string">"Qualifier shouldn't be rejected anymore"</span>);
-<a class="jxr_linenumber" name="153" href="#153">153</a>         }
-<a class="jxr_linenumber" name="154" href="#154">154</a>     }
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a> }
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.mockito.Mockito;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>  @Test(groups = <span class="jxr_string">"noHBase"</span>)
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestTTableBehaviour.html">TestTTableBehaviour</a> {
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">private</strong> byte[] row = Bytes.toBytes(<span class="jxr_string">"1row"</span>);
+<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> byte[] famName = Bytes.toBytes(<span class="jxr_string">"tf"</span>);
+<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">private</strong> byte[] colName = Bytes.toBytes(<span class="jxr_string">"tc"</span>);
+<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> byte[] dataValue = Bytes.toBytes(<span class="jxr_string">"test-data"</span>);
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUserOperationsDontAllowTimestampSpecification() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>          <em class="jxr_comment">// Component under test</em>
+<a class="jxr_linenumber" name="44" href="#44">44</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(Mockito.mock(HTableInterface.<strong class="jxr_keyword">class</strong>), Mockito.mock(HTableInterface.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>          <strong class="jxr_keyword">long</strong> randomTimestampValue = Bytes.toLong(<span class="jxr_string">"deadbeef"</span>.getBytes());
+<a class="jxr_linenumber" name="47" href="#47">47</a>  
+<a class="jxr_linenumber" name="48" href="#48">48</a>          Transaction tx = Mockito.mock(Transaction.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>          <em class="jxr_comment">// Test put fails when a timestamp is specified in the put</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>          Put put = <strong class="jxr_keyword">new</strong> Put(row, randomTimestampValue);
+<a class="jxr_linenumber" name="52" href="#52">52</a>          put.add(famName, colName, dataValue);
+<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="54" href="#54">54</a>              tt.put(tx, put);
+<a class="jxr_linenumber" name="55" href="#55">55</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
+<a class="jxr_linenumber" name="56" href="#56">56</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="57" href="#57">57</a>              <em class="jxr_comment">// Continue</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>          }
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>          <em class="jxr_comment">// Test put fails when a timestamp is specified in a qualifier</em>
+<a class="jxr_linenumber" name="61" href="#61">61</a>          put = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="62" href="#62">62</a>          put.add(famName, colName, randomTimestampValue, dataValue);
+<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="64" href="#64">64</a>              tt.put(tx, put);
+<a class="jxr_linenumber" name="65" href="#65">65</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
+<a class="jxr_linenumber" name="66" href="#66">66</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="67" href="#67">67</a>              <em class="jxr_comment">// Continue</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>          }
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <em class="jxr_comment">// Test that get fails when a timestamp is specified</em>
+<a class="jxr_linenumber" name="71" href="#71">71</a>          Get get = <strong class="jxr_keyword">new</strong> Get(row);
+<a class="jxr_linenumber" name="72" href="#72">72</a>          get.setTimeStamp(randomTimestampValue);
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="74" href="#74">74</a>              tt.get(tx, get);
+<a class="jxr_linenumber" name="75" href="#75">75</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
+<a class="jxr_linenumber" name="76" href="#76">76</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="77" href="#77">77</a>              <em class="jxr_comment">// Continue</em>
+<a class="jxr_linenumber" name="78" href="#78">78</a>          }
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <em class="jxr_comment">// Test scan fails when a timerange is specified</em>
+<a class="jxr_linenumber" name="81" href="#81">81</a>          Scan scan = <strong class="jxr_keyword">new</strong> Scan(get);
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="83" href="#83">83</a>              tt.getScanner(tx, scan);
+<a class="jxr_linenumber" name="84" href="#84">84</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
+<a class="jxr_linenumber" name="85" href="#85">85</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="86" href="#86">86</a>              <em class="jxr_comment">// Continue</em>
+<a class="jxr_linenumber" name="87" href="#87">87</a>          }
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>          <em class="jxr_comment">// Test delete fails when a timestamp is specified</em>
+<a class="jxr_linenumber" name="90" href="#90">90</a>          Delete delete = <strong class="jxr_keyword">new</strong> Delete(row);
+<a class="jxr_linenumber" name="91" href="#91">91</a>          delete.setTimestamp(randomTimestampValue);
+<a class="jxr_linenumber" name="92" href="#92">92</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="93" href="#93">93</a>              tt.delete(tx, delete);
+<a class="jxr_linenumber" name="94" href="#94">94</a>              fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
+<a class="jxr_linenumber" name="95" href="#95">95</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="96" href="#96">96</a>              <em class="jxr_comment">// Continue</em>
+<a class="jxr_linenumber" name="97" href="#97">97</a>          }
+<a class="jxr_linenumber" name="98" href="#98">98</a>  
+<a class="jxr_linenumber" name="99" href="#99">99</a>          <em class="jxr_comment">// Test delete fails when a timestamp is specified in a qualifier</em>
+<a class="jxr_linenumber" name="100" href="#100">100</a>         delete = <strong class="jxr_keyword">new</strong> Delete(row);
+<a class="jxr_linenumber" name="101" href="#101">101</a>         delete.deleteColumn(famName, colName, randomTimestampValue);
+<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="103" href="#103">103</a>             tt.delete(tx, delete);
+<a class="jxr_linenumber" name="104" href="#104">104</a>             fail(<span class="jxr_string">"Should have thrown an IllegalArgumentException due to timestamp specification"</span>);
+<a class="jxr_linenumber" name="105" href="#105">105</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="106" href="#106">106</a>             <em class="jxr_comment">// Continue</em>
+<a class="jxr_linenumber" name="107" href="#107">107</a>         }
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>     }
+<a class="jxr_linenumber" name="110" href="#110">110</a> 
+<a class="jxr_linenumber" name="111" href="#111">111</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * Test that we cannot use reserved names for shadow cell identifiers as qualifiers in user operations</em>
+<a class="jxr_linenumber" name="113" href="#113">113</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="114" href="#114">114</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="115" href="#115">115</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReservedNamesForShadowCellsCanNotBeUsedAsQualifiersInUserOperations() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="116" href="#116">116</a>         byte[] nonValidQualifier1 = <span class="jxr_string">"blahblah\u0080"</span>.getBytes(Charsets.UTF_8);
+<a class="jxr_linenumber" name="117" href="#117">117</a>         byte[] validQualifierIncludingOldShadowCellSuffix = <span class="jxr_string">"blahblah:OMID_CTS"</span>.getBytes(Charsets.UTF_8);
+<a class="jxr_linenumber" name="118" href="#118">118</a> 
+<a class="jxr_linenumber" name="119" href="#119">119</a>         TTable table = <strong class="jxr_keyword">new</strong> TTable(Mockito.mock(HTableInterface.<strong class="jxr_keyword">class</strong>), Mockito.mock(HTableInterface.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>         HBaseTransaction t1 = Mockito.mock(HBaseTransaction.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="122" href="#122">122</a>         Put put = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="123" href="#123">123</a>         put.add(famName, nonValidQualifier1, dataValue);
+<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="125" href="#125">125</a>             table.put(t1, put);
+<a class="jxr_linenumber" name="126" href="#126">126</a>             fail(<span class="jxr_string">"Shouldn't be able to put this"</span>);
+<a class="jxr_linenumber" name="127" href="#127">127</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
+<a class="jxr_linenumber" name="128" href="#128">128</a>             <em class="jxr_comment">// correct</em>
+<a class="jxr_linenumber" name="129" href="#129">129</a>         }
+<a class="jxr_linenumber" name="130" href="#130">130</a>         Delete del = <strong class="jxr_keyword">new</strong> Delete(row);
+<a class="jxr_linenumber" name="131" href="#131">131</a>         del.deleteColumn(famName, nonValidQualifier1);
+<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="133" href="#133">133</a>             table.delete(t1, del);
+<a class="jxr_linenumber" name="134" href="#134">134</a>             fail(<span class="jxr_string">"Shouldn't be able to delete this"</span>);
+<a class="jxr_linenumber" name="135" href="#135">135</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
+<a class="jxr_linenumber" name="136" href="#136">136</a>             <em class="jxr_comment">// correct</em>
+<a class="jxr_linenumber" name="137" href="#137">137</a>         }
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a>         put = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="140" href="#140">140</a>         put.add(famName, validQualifierIncludingOldShadowCellSuffix, dataValue);
+<a class="jxr_linenumber" name="141" href="#141">141</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="142" href="#142">142</a>             table.put(t1, put);
+<a class="jxr_linenumber" name="143" href="#143">143</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
+<a class="jxr_linenumber" name="144" href="#144">144</a>             fail(<span class="jxr_string">"Qualifier shouldn't be rejected anymore"</span>);
+<a class="jxr_linenumber" name="145" href="#145">145</a>         }
+<a class="jxr_linenumber" name="146" href="#146">146</a>         del = <strong class="jxr_keyword">new</strong> Delete(row);
+<a class="jxr_linenumber" name="147" href="#147">147</a>         del.deleteColumn(famName, validQualifierIncludingOldShadowCellSuffix);
+<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="149" href="#149">149</a>             table.delete(t1, del);
+<a class="jxr_linenumber" name="150" href="#150">150</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
+<a class="jxr_linenumber" name="151" href="#151">151</a>             fail(<span class="jxr_string">"Qualifier shouldn't be rejected anymore"</span>);
+<a class="jxr_linenumber" name="152" href="#152">152</a>         }
+<a class="jxr_linenumber" name="153" href="#153">153</a>     }
+<a class="jxr_linenumber" name="154" href="#154">154</a> 
+<a class="jxr_linenumber" name="155" href="#155">155</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestTransactionCleanup.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestTransactionCleanup.html b/xref-test/org/apache/omid/transaction/TestTransactionCleanup.html
index 2913845..e88f3f8 100644
--- a/xref-test/org/apache/omid/transaction/TestTransactionCleanup.html
+++ b/xref-test/org/apache/omid/transaction/TestTransactionCleanup.html
@@ -27,106 +27,105 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anySetOf;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.eq;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.AbortException;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.ForwardingTSOFuture;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  
-<a class="jxr_linenumber" name="42" href="#42">42</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestTransactionCleanup.html">TestTransactionCleanup</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
-<a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTransactionCleanup.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> START_TS = 1L;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> byte[] row = Bytes.toBytes(<span class="jxr_string">"row"</span>);
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> byte[] qual = Bytes.toBytes(<span class="jxr_string">"qual"</span>);
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> byte[] data = Bytes.toBytes(<span class="jxr_string">"data"</span>);
-<a class="jxr_linenumber" name="53" href="#53">53</a>  
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <em class="jxr_comment">// NOTE: This test is maybe redundant with runTestCleanupAfterConflict()</em>
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <em class="jxr_comment">// and testCleanupWithDeleteRow() tests in TestTransactionCleanup class.</em>
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <em class="jxr_comment">// Code in TestTransactionCleanup is a little more difficult to follow,</em>
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <em class="jxr_comment">// lacks some assertions and includes some magic numbers, so we should</em>
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <em class="jxr_comment">// try to review and improve the tests in these two classes in a further</em>
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <em class="jxr_comment">// commit.</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionIsCleanedUpAfterBeingAborted(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> ROWS_MODIFIED = 1;
-<a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>          <em class="jxr_comment">// Prepare the mocking results</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>          SettableFuture&lt;Long&gt; startTSF = SettableFuture.create();
-<a class="jxr_linenumber" name="67" href="#67">67</a>          startTSF.set(START_TS);
-<a class="jxr_linenumber" name="68" href="#68">68</a>          ForwardingTSOFuture&lt;Long&gt; stFF = <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(startTSF);
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>          SettableFuture&lt;Long&gt; abortingF = SettableFuture.create();
-<a class="jxr_linenumber" name="71" href="#71">71</a>          abortingF.setException(<strong class="jxr_keyword">new</strong> AbortException());
-<a class="jxr_linenumber" name="72" href="#72">72</a>          ForwardingTSOFuture&lt;Long&gt; abortingFF = <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(abortingF);
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <em class="jxr_comment">// Mock the TSO Client setting the right method responses</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>          TSOClient mockedTSOClient = mock(TSOClient.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="76" href="#76">76</a>  
-<a class="jxr_linenumber" name="77" href="#77">77</a>          doReturn(stFF)
-<a class="jxr_linenumber" name="78" href="#78">78</a>                  .when(mockedTSOClient).getNewStartTimestamp();
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>          doReturn(abortingFF)
-<a class="jxr_linenumber" name="81" href="#81">81</a>                  .when(mockedTSOClient).commit(eq(START_TS), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="82" href="#82">82</a>  
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">try</strong> (TransactionManager tm = newTransactionManager(context, mockedTSOClient);
-<a class="jxr_linenumber" name="84" href="#84">84</a>               TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>              <em class="jxr_comment">// Start a transaction and put some data in a column</em>
-<a class="jxr_linenumber" name="87" href="#87">87</a>              Transaction tx = tm.begin();
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>              Put put = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="90" href="#90">90</a>              put.addColumn(family, qual, data);
-<a class="jxr_linenumber" name="91" href="#91">91</a>              txTable.put(tx, put);
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>              <em class="jxr_comment">// Abort transaction when committing, so the cleanup</em>
-<a class="jxr_linenumber" name="94" href="#94">94</a>              <em class="jxr_comment">// process we want to test is triggered</em>
-<a class="jxr_linenumber" name="95" href="#95">95</a>              <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="96" href="#96">96</a>                  tm.commit(tx);
-<a class="jxr_linenumber" name="97" href="#97">97</a>              } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="98" href="#98">98</a>                  <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="99" href="#99">99</a>              }
-<a class="jxr_linenumber" name="100" href="#100">100</a> 
-<a class="jxr_linenumber" name="101" href="#101">101</a>             <em class="jxr_comment">// So now we have to check that the Delete marker introduced by the</em>
-<a class="jxr_linenumber" name="102" href="#102">102</a>             <em class="jxr_comment">// cleanup process is there</em>
-<a class="jxr_linenumber" name="103" href="#103">103</a>             Scan scan = <strong class="jxr_keyword">new</strong> Scan(row);
-<a class="jxr_linenumber" name="104" href="#104">104</a>             scan.setRaw(<strong class="jxr_keyword">true</strong>); <em class="jxr_comment">// Raw scan to obtain the deleted cells</em>
-<a class="jxr_linenumber" name="105" href="#105">105</a>             ResultScanner resultScanner = txTable.getHTable().getScanner(scan);
-<a class="jxr_linenumber" name="106" href="#106">106</a>             <strong class="jxr_keyword">int</strong> resultCount = 0;
-<a class="jxr_linenumber" name="107" href="#107">107</a>             <strong class="jxr_keyword">for</strong> (Result result : resultScanner) {
-<a class="jxr_linenumber" name="108" href="#108">108</a>                 assertEquals(result.size(), 2); <em class="jxr_comment">// Size == 2, including the put and delete from cleanup</em>
-<a class="jxr_linenumber" name="109" href="#109">109</a>                 LOG.trace(<span class="jxr_string">"Result {}"</span>, result);
-<a class="jxr_linenumber" name="110" href="#110">110</a>                 <em class="jxr_comment">// The last element of the qualifier should have the Delete marker</em>
-<a class="jxr_linenumber" name="111" href="#111">111</a>                 byte encodedType = result.getColumnLatestCell(family, qual).getTypeByte();
-<a class="jxr_linenumber" name="112" href="#112">112</a>                 assertEquals(KeyValue.Type.codeToType(encodedType), KeyValue.Type.Delete);
-<a class="jxr_linenumber" name="113" href="#113">113</a>                 resultCount++;
-<a class="jxr_linenumber" name="114" href="#114">114</a>             }
-<a class="jxr_linenumber" name="115" href="#115">115</a>             assertEquals(resultCount, ROWS_MODIFIED);
-<a class="jxr_linenumber" name="116" href="#116">116</a>         }
-<a class="jxr_linenumber" name="117" href="#117">117</a>     }
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a> }
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.AbortException;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.ForwardingTSOFuture;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anySetOf;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.eq;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  
+<a class="jxr_linenumber" name="41" href="#41">41</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestTransactionCleanup.html">TestTransactionCleanup</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="43" href="#43">43</a>  
+<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTransactionCleanup.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> START_TS = 1L;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> byte[] row = Bytes.toBytes(<span class="jxr_string">"row"</span>);
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> byte[] family = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> byte[] qual = Bytes.toBytes(<span class="jxr_string">"qual"</span>);
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> byte[] data = Bytes.toBytes(<span class="jxr_string">"data"</span>);
+<a class="jxr_linenumber" name="52" href="#52">52</a>  
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <em class="jxr_comment">// NOTE: This test is maybe redundant with runTestCleanupAfterConflict()</em>
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <em class="jxr_comment">// and testCleanupWithDeleteRow() tests in TestTransactionCleanup class.</em>
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <em class="jxr_comment">// Code in TestTransactionCleanup is a little more difficult to follow,</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <em class="jxr_comment">// lacks some assertions and includes some magic numbers, so we should</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <em class="jxr_comment">// try to review and improve the tests in these two classes in a further</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <em class="jxr_comment">// commit.</em>
+<a class="jxr_linenumber" name="59" href="#59">59</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransactionIsCleanedUpAfterBeingAborted(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="61" href="#61">61</a>  
+<a class="jxr_linenumber" name="62" href="#62">62</a>          <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> ROWS_MODIFIED = 1;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>          <em class="jxr_comment">// Prepare the mocking results</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>          SettableFuture&lt;Long&gt; startTSF = SettableFuture.create();
+<a class="jxr_linenumber" name="66" href="#66">66</a>          startTSF.set(START_TS);
+<a class="jxr_linenumber" name="67" href="#67">67</a>          ForwardingTSOFuture&lt;Long&gt; stFF = <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(startTSF);
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>          SettableFuture&lt;Long&gt; abortingF = SettableFuture.create();
+<a class="jxr_linenumber" name="70" href="#70">70</a>          abortingF.setException(<strong class="jxr_keyword">new</strong> AbortException());
+<a class="jxr_linenumber" name="71" href="#71">71</a>          ForwardingTSOFuture&lt;Long&gt; abortingFF = <strong class="jxr_keyword">new</strong> ForwardingTSOFuture&lt;&gt;(abortingF);
+<a class="jxr_linenumber" name="72" href="#72">72</a>  
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <em class="jxr_comment">// Mock the TSO Client setting the right method responses</em>
+<a class="jxr_linenumber" name="74" href="#74">74</a>          TSOClient mockedTSOClient = mock(TSOClient.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="75" href="#75">75</a>  
+<a class="jxr_linenumber" name="76" href="#76">76</a>          doReturn(stFF)
+<a class="jxr_linenumber" name="77" href="#77">77</a>                  .when(mockedTSOClient).getNewStartTimestamp();
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>          doReturn(abortingFF)
+<a class="jxr_linenumber" name="80" href="#80">80</a>                  .when(mockedTSOClient).commit(eq(START_TS), anySetOf(HBaseCellId.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="81" href="#81">81</a>  
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">try</strong> (TransactionManager tm = newTransactionManager(context, mockedTSOClient);
+<a class="jxr_linenumber" name="83" href="#83">83</a>               TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="85" href="#85">85</a>              <em class="jxr_comment">// Start a transaction and put some data in a column</em>
+<a class="jxr_linenumber" name="86" href="#86">86</a>              Transaction tx = tm.begin();
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>              Put put = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="89" href="#89">89</a>              put.add(family, qual, data);
+<a class="jxr_linenumber" name="90" href="#90">90</a>              txTable.put(tx, put);
+<a class="jxr_linenumber" name="91" href="#91">91</a>  
+<a class="jxr_linenumber" name="92" href="#92">92</a>              <em class="jxr_comment">// Abort transaction when committing, so the cleanup</em>
+<a class="jxr_linenumber" name="93" href="#93">93</a>              <em class="jxr_comment">// process we want to test is triggered</em>
+<a class="jxr_linenumber" name="94" href="#94">94</a>              <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="95" href="#95">95</a>                  tm.commit(tx);
+<a class="jxr_linenumber" name="96" href="#96">96</a>              } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
+<a class="jxr_linenumber" name="97" href="#97">97</a>                  <em class="jxr_comment">// Expected</em>
+<a class="jxr_linenumber" name="98" href="#98">98</a>              }
+<a class="jxr_linenumber" name="99" href="#99">99</a>  
+<a class="jxr_linenumber" name="100" href="#100">100</a>             <em class="jxr_comment">// So now we have to check that the Delete marker introduced by the</em>
+<a class="jxr_linenumber" name="101" href="#101">101</a>             <em class="jxr_comment">// cleanup process is there</em>
+<a class="jxr_linenumber" name="102" href="#102">102</a>             Scan scan = <strong class="jxr_keyword">new</strong> Scan(row);
+<a class="jxr_linenumber" name="103" href="#103">103</a>             scan.setRaw(<strong class="jxr_keyword">true</strong>); <em class="jxr_comment">// Raw scan to obtain the deleted cells</em>
+<a class="jxr_linenumber" name="104" href="#104">104</a>             ResultScanner resultScanner = txTable.getHTable().getScanner(scan);
+<a class="jxr_linenumber" name="105" href="#105">105</a>             <strong class="jxr_keyword">int</strong> resultCount = 0;
+<a class="jxr_linenumber" name="106" href="#106">106</a>             <strong class="jxr_keyword">for</strong> (Result result : resultScanner) {
+<a class="jxr_linenumber" name="107" href="#107">107</a>                 assertEquals(result.size(), 2); <em class="jxr_comment">// Size == 2, including the put and delete from cleanup</em>
+<a class="jxr_linenumber" name="108" href="#108">108</a>                 LOG.trace(<span class="jxr_string">"Result {}"</span>, result);
+<a class="jxr_linenumber" name="109" href="#109">109</a>                 <em class="jxr_comment">// The last element of the qualifier should have the Delete marker</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a>                 byte encodedType = result.getColumnLatestCell(family, qual).getTypeByte();
+<a class="jxr_linenumber" name="111" href="#111">111</a>                 assertEquals(KeyValue.Type.codeToType(encodedType), KeyValue.Type.Delete);
+<a class="jxr_linenumber" name="112" href="#112">112</a>                 resultCount++;
+<a class="jxr_linenumber" name="113" href="#113">113</a>             }
+<a class="jxr_linenumber" name="114" href="#114">114</a>             assertEquals(resultCount, ROWS_MODIFIED);
+<a class="jxr_linenumber" name="115" href="#115">115</a>         }
+<a class="jxr_linenumber" name="116" href="#116">116</a>     }
+<a class="jxr_linenumber" name="117" href="#117">117</a> 
+<a class="jxr_linenumber" name="118" href="#118">118</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[13/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/HBaseSyncPostCommitter.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/HBaseSyncPostCommitter.html b/xref/org/apache/omid/transaction/HBaseSyncPostCommitter.html
index 987c093..adf59e9 100644
--- a/xref/org/apache/omid/transaction/HBaseSyncPostCommitter.html
+++ b/xref/org/apache/omid/transaction/HBaseSyncPostCommitter.html
@@ -27,121 +27,112 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.metrics.MetricsUtils.name;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Timer;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.Timer;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
 <a class="jxr_linenumber" name="33" href="#33">33</a>  
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListenableFuture;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseSyncPostCommitter.html">HBaseSyncPostCommitter</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> {
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseSyncPostCommitter.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics;
-<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> CommitTable.Client commitTableClient;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> commitTableUpdateTimer;
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> shadowCellsUpdateTimer;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseSyncPostCommitter.html">HBaseSyncPostCommitter</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics, CommitTable.Client commitTableClient) {
-<a class="jxr_linenumber" name="48" href="#48">48</a>          <strong class="jxr_keyword">this</strong>.metrics = metrics;
-<a class="jxr_linenumber" name="49" href="#49">49</a>          <strong class="jxr_keyword">this</strong>.commitTableClient = commitTableClient;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>          <strong class="jxr_keyword">this</strong>.commitTableUpdateTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"commitTableUpdate"</span>, <span class="jxr_string">"latency"</span>));
-<a class="jxr_linenumber" name="52" href="#52">52</a>          <strong class="jxr_keyword">this</strong>.shadowCellsUpdateTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"shadowCellsUpdate"</span>, <span class="jxr_string">"latency"</span>));
-<a class="jxr_linenumber" name="53" href="#53">53</a>      }
-<a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addShadowCell(<a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> cell, <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> tx, SettableFuture&lt;Void&gt; updateSCFuture) {
-<a class="jxr_linenumber" name="56" href="#56">56</a>          Put put = <strong class="jxr_keyword">new</strong> Put(cell.getRow());
-<a class="jxr_linenumber" name="57" href="#57">57</a>          put.addColumn(cell.getFamily(),
-<a class="jxr_linenumber" name="58" href="#58">58</a>                  CellUtils.addShadowCellSuffixPrefix(cell.getQualifier(), 0, cell.getQualifier().length),
-<a class="jxr_linenumber" name="59" href="#59">59</a>                  cell.getTimestamp(),
-<a class="jxr_linenumber" name="60" href="#60">60</a>                  Bytes.toBytes(tx.getCommitTimestamp()));
-<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="62" href="#62">62</a>              cell.getTable().getHTable().put(put);
-<a class="jxr_linenumber" name="63" href="#63">63</a>          } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="64" href="#64">64</a>              LOG.warn(<span class="jxr_string">"{}: Error inserting shadow cell {}"</span>, tx, cell, e);
-<a class="jxr_linenumber" name="65" href="#65">65</a>              updateSCFuture.setException(
-<a class="jxr_linenumber" name="66" href="#66">66</a>                      <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(tx + <span class="jxr_string">": Error inserting shadow cell "</span> + cell, e));
-<a class="jxr_linenumber" name="67" href="#67">67</a>          }
-<a class="jxr_linenumber" name="68" href="#68">68</a>      }
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>      @Override
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; updateShadowCells(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) {
-<a class="jxr_linenumber" name="72" href="#72">72</a>  
-<a class="jxr_linenumber" name="73" href="#73">73</a>          SettableFuture&lt;Void&gt; updateSCFuture = SettableFuture.create();
-<a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>          <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> tx = HBaseTransactionManager.enforceHBaseTransactionAsParam(transaction);
-<a class="jxr_linenumber" name="76" href="#76">76</a>  
-<a class="jxr_linenumber" name="77" href="#77">77</a>          shadowCellsUpdateTimer.start();
-<a class="jxr_linenumber" name="78" href="#78">78</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.metrics.MetricsUtils.name;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseSyncPostCommitter.html">HBaseSyncPostCommitter</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> {
+<a class="jxr_linenumber" name="37" href="#37">37</a>  
+<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseSyncPostCommitter.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics;
+<a class="jxr_linenumber" name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> CommitTable.Client commitTableClient;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> commitTableUpdateTimer;
+<a class="jxr_linenumber" name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/metrics/Timer.html">Timer</a> shadowCellsUpdateTimer;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseSyncPostCommitter.html">HBaseSyncPostCommitter</a>(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics, CommitTable.Client commitTableClient) {
+<a class="jxr_linenumber" name="47" href="#47">47</a>          <strong class="jxr_keyword">this</strong>.metrics = metrics;
+<a class="jxr_linenumber" name="48" href="#48">48</a>          <strong class="jxr_keyword">this</strong>.commitTableClient = commitTableClient;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>          <strong class="jxr_keyword">this</strong>.commitTableUpdateTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"commitTableUpdate"</span>, <span class="jxr_string">"latency"</span>));
+<a class="jxr_linenumber" name="51" href="#51">51</a>          <strong class="jxr_keyword">this</strong>.shadowCellsUpdateTimer = metrics.timer(name(<span class="jxr_string">"omid"</span>, <span class="jxr_string">"tm"</span>, <span class="jxr_string">"hbase"</span>, <span class="jxr_string">"shadowCellsUpdate"</span>, <span class="jxr_string">"latency"</span>));
+<a class="jxr_linenumber" name="52" href="#52">52</a>      }
+<a class="jxr_linenumber" name="53" href="#53">53</a>  
+<a class="jxr_linenumber" name="54" href="#54">54</a>      @Override
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; updateShadowCells(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) {
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>          SettableFuture&lt;Void&gt; updateSCFuture = SettableFuture.create();
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>          <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> tx = HBaseTransactionManager.enforceHBaseTransactionAsParam(transaction);
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>          shadowCellsUpdateTimer.start();
+<a class="jxr_linenumber" name="62" href="#62">62</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>              <em class="jxr_comment">// Add shadow cells</em>
+<a class="jxr_linenumber" name="65" href="#65">65</a>              <strong class="jxr_keyword">for</strong> (HBaseCellId cell : tx.getWriteSet()) {
+<a class="jxr_linenumber" name="66" href="#66">66</a>                  Put put = <strong class="jxr_keyword">new</strong> Put(cell.getRow());
+<a class="jxr_linenumber" name="67" href="#67">67</a>                  put.add(cell.getFamily(),
+<a class="jxr_linenumber" name="68" href="#68">68</a>                          CellUtils.addShadowCellSuffix(cell.getQualifier(), 0, cell.getQualifier().length),
+<a class="jxr_linenumber" name="69" href="#69">69</a>                          tx.getStartTimestamp(),
+<a class="jxr_linenumber" name="70" href="#70">70</a>                          Bytes.toBytes(tx.getCommitTimestamp()));
+<a class="jxr_linenumber" name="71" href="#71">71</a>                  <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="72" href="#72">72</a>                      cell.getTable().put(put);
+<a class="jxr_linenumber" name="73" href="#73">73</a>                  } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="74" href="#74">74</a>                      LOG.warn(<span class="jxr_string">"{}: Error inserting shadow cell {}"</span>, tx, cell, e);
+<a class="jxr_linenumber" name="75" href="#75">75</a>                      updateSCFuture.setException(
+<a class="jxr_linenumber" name="76" href="#76">76</a>                              <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(tx + <span class="jxr_string">": Error inserting shadow cell "</span> + cell, e));
+<a class="jxr_linenumber" name="77" href="#77">77</a>                  }
+<a class="jxr_linenumber" name="78" href="#78">78</a>              }
 <a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>              <em class="jxr_comment">// Add shadow cells</em>
-<a class="jxr_linenumber" name="81" href="#81">81</a>              <strong class="jxr_keyword">for</strong> (HBaseCellId cell : tx.getWriteSet()) {
-<a class="jxr_linenumber" name="82" href="#82">82</a>                  addShadowCell(cell, tx, updateSCFuture);
-<a class="jxr_linenumber" name="83" href="#83">83</a>              }
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>              <strong class="jxr_keyword">for</strong> (HBaseCellId cell : tx.getConflictFreeWriteSet()) {
-<a class="jxr_linenumber" name="86" href="#86">86</a>                  addShadowCell(cell, tx, updateSCFuture);
+<a class="jxr_linenumber" name="80" href="#80">80</a>              <em class="jxr_comment">// Flush affected tables before returning to avoid loss of shadow cells updates when autoflush is disabled</em>
+<a class="jxr_linenumber" name="81" href="#81">81</a>              <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="82" href="#82">82</a>                  tx.flushTables();
+<a class="jxr_linenumber" name="83" href="#83">83</a>                  updateSCFuture.set(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="84" href="#84">84</a>              } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="85" href="#85">85</a>                  LOG.warn(<span class="jxr_string">"{}: Error while flushing writes"</span>, tx, e);
+<a class="jxr_linenumber" name="86" href="#86">86</a>                  updateSCFuture.setException(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(tx + <span class="jxr_string">": Error while flushing writes"</span>, e));
 <a class="jxr_linenumber" name="87" href="#87">87</a>              }
 <a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>              <em class="jxr_comment">// Flush affected tables before returning to avoid loss of shadow cells updates when autoflush is disabled</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>              <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="91" href="#91">91</a>                  tx.flushTables();
-<a class="jxr_linenumber" name="92" href="#92">92</a>                  updateSCFuture.set(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="93" href="#93">93</a>              } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="94" href="#94">94</a>                  LOG.warn(<span class="jxr_string">"{}: Error while flushing writes"</span>, tx, e);
-<a class="jxr_linenumber" name="95" href="#95">95</a>                  updateSCFuture.setException(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(tx + <span class="jxr_string">": Error while flushing writes"</span>, e));
-<a class="jxr_linenumber" name="96" href="#96">96</a>              }
-<a class="jxr_linenumber" name="97" href="#97">97</a>  
-<a class="jxr_linenumber" name="98" href="#98">98</a>          } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="99" href="#99">99</a>              shadowCellsUpdateTimer.stop();
-<a class="jxr_linenumber" name="100" href="#100">100</a>         }
+<a class="jxr_linenumber" name="89" href="#89">89</a>          } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="90" href="#90">90</a>              shadowCellsUpdateTimer.stop();
+<a class="jxr_linenumber" name="91" href="#91">91</a>          }
+<a class="jxr_linenumber" name="92" href="#92">92</a>  
+<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">return</strong> updateSCFuture;
+<a class="jxr_linenumber" name="94" href="#94">94</a>  
+<a class="jxr_linenumber" name="95" href="#95">95</a>      }
+<a class="jxr_linenumber" name="96" href="#96">96</a>  
+<a class="jxr_linenumber" name="97" href="#97">97</a>      @Override
+<a class="jxr_linenumber" name="98" href="#98">98</a>      <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; removeCommitTableEntry(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) {
+<a class="jxr_linenumber" name="99" href="#99">99</a>  
+<a class="jxr_linenumber" name="100" href="#100">100</a>         SettableFuture&lt;Void&gt; updateSCFuture = SettableFuture.create();
 <a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">return</strong> updateSCFuture;
+<a class="jxr_linenumber" name="102" href="#102">102</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> tx = HBaseTransactionManager.enforceHBaseTransactionAsParam(transaction);
 <a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>     }
+<a class="jxr_linenumber" name="104" href="#104">104</a>         commitTableUpdateTimer.start();
 <a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>     @Override
-<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> ListenableFuture&lt;Void&gt; removeCommitTableEntry(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) {
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>         SettableFuture&lt;Void&gt; updateSCFuture = SettableFuture.create();
-<a class="jxr_linenumber" name="110" href="#110">110</a> 
-<a class="jxr_linenumber" name="111" href="#111">111</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> tx = HBaseTransactionManager.enforceHBaseTransactionAsParam(transaction);
-<a class="jxr_linenumber" name="112" href="#112">112</a> 
-<a class="jxr_linenumber" name="113" href="#113">113</a>         commitTableUpdateTimer.start();
-<a class="jxr_linenumber" name="114" href="#114">114</a> 
-<a class="jxr_linenumber" name="115" href="#115">115</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="116" href="#116">116</a>             commitTableClient.completeTransaction(tx.getStartTimestamp()).get();
-<a class="jxr_linenumber" name="117" href="#117">117</a>             updateSCFuture.set(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="118" href="#118">118</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
-<a class="jxr_linenumber" name="119" href="#119">119</a>             Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="120" href="#120">120</a>             LOG.warn(<span class="jxr_string">"{}: interrupted during commit table entry delete"</span>, tx, e);
-<a class="jxr_linenumber" name="121" href="#121">121</a>             updateSCFuture.setException(
-<a class="jxr_linenumber" name="122" href="#122">122</a>                     <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(tx + <span class="jxr_string">": interrupted during commit table entry delete"</span>));
-<a class="jxr_linenumber" name="123" href="#123">123</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
-<a class="jxr_linenumber" name="124" href="#124">124</a>             LOG.warn(<span class="jxr_string">"{}: can't remove commit table entry"</span>, tx, e);
-<a class="jxr_linenumber" name="125" href="#125">125</a>             updateSCFuture.setException(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(tx + <span class="jxr_string">": can't remove commit table entry"</span>));
-<a class="jxr_linenumber" name="126" href="#126">126</a>         } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="127" href="#127">127</a>             commitTableUpdateTimer.stop();
-<a class="jxr_linenumber" name="128" href="#128">128</a>         }
-<a class="jxr_linenumber" name="129" href="#129">129</a> 
-<a class="jxr_linenumber" name="130" href="#130">130</a>         <strong class="jxr_keyword">return</strong> updateSCFuture;
-<a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>     }
-<a class="jxr_linenumber" name="133" href="#133">133</a> 
-<a class="jxr_linenumber" name="134" href="#134">134</a> }
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="107" href="#107">107</a>             commitTableClient.completeTransaction(tx.getStartTimestamp()).get();
+<a class="jxr_linenumber" name="108" href="#108">108</a>             updateSCFuture.set(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="109" href="#109">109</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
+<a class="jxr_linenumber" name="110" href="#110">110</a>             Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="111" href="#111">111</a>             LOG.warn(<span class="jxr_string">"{}: interrupted during commit table entry delete"</span>, tx, e);
+<a class="jxr_linenumber" name="112" href="#112">112</a>             updateSCFuture.setException(
+<a class="jxr_linenumber" name="113" href="#113">113</a>                     <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(tx + <span class="jxr_string">": interrupted during commit table entry delete"</span>));
+<a class="jxr_linenumber" name="114" href="#114">114</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
+<a class="jxr_linenumber" name="115" href="#115">115</a>             LOG.warn(<span class="jxr_string">"{}: can't remove commit table entry"</span>, tx, e);
+<a class="jxr_linenumber" name="116" href="#116">116</a>             updateSCFuture.setException(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(tx + <span class="jxr_string">": can't remove commit table entry"</span>));
+<a class="jxr_linenumber" name="117" href="#117">117</a>         } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="118" href="#118">118</a>             commitTableUpdateTimer.stop();
+<a class="jxr_linenumber" name="119" href="#119">119</a>         }
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">return</strong> updateSCFuture;
+<a class="jxr_linenumber" name="122" href="#122">122</a> 
+<a class="jxr_linenumber" name="123" href="#123">123</a>     }
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/HBaseTransaction.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/HBaseTransaction.html b/xref/org/apache/omid/transaction/HBaseTransaction.html
index e7d76be..322292f 100644
--- a/xref/org/apache/omid/transaction/HBaseTransaction.html
+++ b/xref/org/apache/omid/transaction/HBaseTransaction.html
@@ -27,84 +27,67 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> <strong class="jxr_keyword">extends</strong> AbstractTransaction&lt;HBaseCellId&gt; {
-<a class="jxr_linenumber" name="29" href="#29">29</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseTransaction.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="30" href="#30">30</a>  
-<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a>(<strong class="jxr_keyword">long</strong> transactionId, <strong class="jxr_keyword">long</strong> epoch, Set&lt;HBaseCellId&gt; writeSet, Set&lt;HBaseCellId&gt; conflictFreeWriteSet, <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> tm) {
-<a class="jxr_linenumber" name="32" href="#32">32</a>          <strong class="jxr_keyword">super</strong>(transactionId, epoch, writeSet, conflictFreeWriteSet, tm);
-<a class="jxr_linenumber" name="33" href="#33">33</a>      }
-<a class="jxr_linenumber" name="34" href="#34">34</a>  
-<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a>(<strong class="jxr_keyword">long</strong> transactionId, <strong class="jxr_keyword">long</strong> epoch, Set&lt;HBaseCellId&gt; writeSet, Set&lt;HBaseCellId&gt; conflictFreeWriteSet, <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> tm, <strong class="jxr_keyword">long</strong> readTimestamp, <strong class="jxr_keyword">long</strong> writeTimestamp) {
-<a class="jxr_linenumber" name="36" href="#36">36</a>          <strong class="jxr_keyword">super</strong>(transactionId, epoch, writeSet, conflictFreeWriteSet, tm, readTimestamp, writeTimestamp);
-<a class="jxr_linenumber" name="37" href="#37">37</a>      }
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a>(<strong class="jxr_keyword">long</strong> transactionId, <strong class="jxr_keyword">long</strong> readTimestamp, <a href="../../../../org/apache/omid/transaction/AbstractTransaction.html">VisibilityLevel</a> visibilityLevel, <strong class="jxr_keyword">long</strong> epoch, Set&lt;HBaseCellId&gt; writeSet, Set&lt;HBaseCellId&gt; conflictFreeWriteSet, <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> tm) {
-<a class="jxr_linenumber" name="40" href="#40">40</a>          <strong class="jxr_keyword">super</strong>(transactionId, readTimestamp, visibilityLevel, epoch, writeSet, conflictFreeWriteSet, tm);
-<a class="jxr_linenumber" name="41" href="#41">41</a>      }
-<a class="jxr_linenumber" name="42" href="#42">42</a>  
-<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> deleteCell(<a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> cell) {
-<a class="jxr_linenumber" name="44" href="#44">44</a>          Delete delete = <strong class="jxr_keyword">new</strong> Delete(cell.getRow());
-<a class="jxr_linenumber" name="45" href="#45">45</a>          delete.addColumn(cell.getFamily(), cell.getQualifier(), cell.getTimestamp());
-<a class="jxr_linenumber" name="46" href="#46">46</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="47" href="#47">47</a>              cell.getTable().getHTable().delete(delete);
-<a class="jxr_linenumber" name="48" href="#48">48</a>          } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="49" href="#49">49</a>              LOG.warn(<span class="jxr_string">"Failed cleanup cell {} for Tx {}. This issue has been ignored"</span>, cell, getTransactionId(), e);
-<a class="jxr_linenumber" name="50" href="#50">50</a>          }
-<a class="jxr_linenumber" name="51" href="#51">51</a>      }
-<a class="jxr_linenumber" name="52" href="#52">52</a>      @Override
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cleanup() {
-<a class="jxr_linenumber" name="54" href="#54">54</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> HBaseCellId cell : getWriteSet()) {
-<a class="jxr_linenumber" name="55" href="#55">55</a>              deleteCell(cell);
-<a class="jxr_linenumber" name="56" href="#56">56</a>          }
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> HBaseCellId cell : getConflictFreeWriteSet()) {
-<a class="jxr_linenumber" name="59" href="#59">59</a>              deleteCell(cell);
-<a class="jxr_linenumber" name="60" href="#60">60</a>          }
-<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="62" href="#62">62</a>              flushTables();
-<a class="jxr_linenumber" name="63" href="#63">63</a>          } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="64" href="#64">64</a>              LOG.warn(<span class="jxr_string">"Failed flushing tables for Tx {}"</span>, getTransactionId(), e);
-<a class="jxr_linenumber" name="65" href="#65">65</a>          }
-<a class="jxr_linenumber" name="66" href="#66">66</a>      }
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * Flushes pending operations for tables touched by transaction</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * @throws IOException in case of any I/O related issues</em>
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flushTables() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">for</strong> (TTable writtenTable : getWrittenTables()) {
-<a class="jxr_linenumber" name="75" href="#75">75</a>              writtenTable.flushCommits();
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTableInterface;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> <strong class="jxr_keyword">extends</strong> AbstractTransaction&lt;HBaseCellId&gt; {
+<a class="jxr_linenumber" name="30" href="#30">30</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseTransaction.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>      <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a>(<strong class="jxr_keyword">long</strong> transactionId, <strong class="jxr_keyword">long</strong> epoch, Set&lt;HBaseCellId&gt; writeSet, <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> tm) {
+<a class="jxr_linenumber" name="33" href="#33">33</a>          <strong class="jxr_keyword">super</strong>(transactionId, epoch, writeSet, tm);
+<a class="jxr_linenumber" name="34" href="#34">34</a>      }
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>      @Override
+<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cleanup() {
+<a class="jxr_linenumber" name="38" href="#38">38</a>          Set&lt;HBaseCellId&gt; writeSet = getWriteSet();
+<a class="jxr_linenumber" name="39" href="#39">39</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> HBaseCellId cell : writeSet) {
+<a class="jxr_linenumber" name="40" href="#40">40</a>              Delete delete = <strong class="jxr_keyword">new</strong> Delete(cell.getRow());
+<a class="jxr_linenumber" name="41" href="#41">41</a>              delete.deleteColumn(cell.getFamily(), cell.getQualifier(), getStartTimestamp());
+<a class="jxr_linenumber" name="42" href="#42">42</a>              <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="43" href="#43">43</a>                  cell.getTable().delete(delete);
+<a class="jxr_linenumber" name="44" href="#44">44</a>              } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="45" href="#45">45</a>                  LOG.warn(<span class="jxr_string">"Failed cleanup cell {} for Tx {}. This issue has been ignored"</span>, cell, getTransactionId(), e);
+<a class="jxr_linenumber" name="46" href="#46">46</a>              }
+<a class="jxr_linenumber" name="47" href="#47">47</a>          }
+<a class="jxr_linenumber" name="48" href="#48">48</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="49" href="#49">49</a>              flushTables();
+<a class="jxr_linenumber" name="50" href="#50">50</a>          } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="51" href="#51">51</a>              LOG.warn(<span class="jxr_string">"Failed flushing tables for Tx {}"</span>, getTransactionId(), e);
+<a class="jxr_linenumber" name="52" href="#52">52</a>          }
+<a class="jxr_linenumber" name="53" href="#53">53</a>      }
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * Flushes pending operations for tables touched by transaction</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @throws IOException in case of any I/O related issues</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flushTables() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">for</strong> (HTableInterface writtenTable : getWrittenTables()) {
+<a class="jxr_linenumber" name="62" href="#62">62</a>              writtenTable.flushCommits();
+<a class="jxr_linenumber" name="63" href="#63">63</a>          }
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      }
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>      <em class="jxr_comment">// ****************************************************************************************************************</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <em class="jxr_comment">// Helper methods</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>      <em class="jxr_comment">// ****************************************************************************************************************</em>
+<a class="jxr_linenumber" name="70" href="#70">70</a>  
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> Set&lt;HTableInterface&gt; getWrittenTables() {
+<a class="jxr_linenumber" name="72" href="#72">72</a>          HashSet&lt;HBaseCellId&gt; writeSet = (HashSet&lt;HBaseCellId&gt;) getWriteSet();
+<a class="jxr_linenumber" name="73" href="#73">73</a>          Set&lt;HTableInterface&gt; tables = <strong class="jxr_keyword">new</strong> HashSet&lt;HTableInterface&gt;();
+<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">for</strong> (HBaseCellId cell : writeSet) {
+<a class="jxr_linenumber" name="75" href="#75">75</a>              tables.add(cell.getTable());
 <a class="jxr_linenumber" name="76" href="#76">76</a>          }
-<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">return</strong> tables;
 <a class="jxr_linenumber" name="78" href="#78">78</a>      }
 <a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <em class="jxr_comment">// ****************************************************************************************************************</em>
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <em class="jxr_comment">// Helper methods</em>
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <em class="jxr_comment">// ****************************************************************************************************************</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> Set&lt;TTable&gt; getWrittenTables() {
-<a class="jxr_linenumber" name="85" href="#85">85</a>          HashSet&lt;HBaseCellId&gt; writeSet = (HashSet&lt;HBaseCellId&gt;) getWriteSet();
-<a class="jxr_linenumber" name="86" href="#86">86</a>          Set&lt;TTable&gt; tables = <strong class="jxr_keyword">new</strong> HashSet&lt;TTable&gt;();
-<a class="jxr_linenumber" name="87" href="#87">87</a>          <strong class="jxr_keyword">for</strong> (HBaseCellId cell : writeSet) {
-<a class="jxr_linenumber" name="88" href="#88">88</a>              tables.add(cell.getTable());
-<a class="jxr_linenumber" name="89" href="#89">89</a>          }
-<a class="jxr_linenumber" name="90" href="#90">90</a>          writeSet = (HashSet&lt;HBaseCellId&gt;) getConflictFreeWriteSet();
-<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">for</strong> (HBaseCellId cell : writeSet) {
-<a class="jxr_linenumber" name="92" href="#92">92</a>              tables.add(cell.getTable());
-<a class="jxr_linenumber" name="93" href="#93">93</a>          }
-<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">return</strong> tables;
-<a class="jxr_linenumber" name="95" href="#95">95</a>      }
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>  }
+<a class="jxr_linenumber" name="80" href="#80">80</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/HBaseTransactionClient.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/HBaseTransactionClient.html b/xref/org/apache/omid/transaction/HBaseTransactionClient.html
index 979cba2..0af3d4a 100644
--- a/xref/org/apache/omid/transaction/HBaseTransactionClient.html
+++ b/xref/org/apache/omid/transaction/HBaseTransactionClient.html
@@ -28,8 +28,10 @@
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionClient.html">HBaseTransactionClient</a> {
-<a class="jxr_linenumber" name="21" href="#21">21</a>      <strong class="jxr_keyword">long</strong> getLowWatermark() <strong class="jxr_keyword">throws</strong> TransactionException;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  }
+<a class="jxr_linenumber" name="21" href="#21">21</a>      <strong class="jxr_keyword">boolean</strong> isCommitted(<a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> hBaseCellId) <strong class="jxr_keyword">throws</strong> TransactionException;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  
+<a class="jxr_linenumber" name="23" href="#23">23</a>      <strong class="jxr_keyword">long</strong> getLowWatermark() <strong class="jxr_keyword">throws</strong> TransactionException;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[18/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tools/hbase/HBaseLogin.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tools/hbase/HBaseLogin.html b/xref/org/apache/omid/tools/hbase/HBaseLogin.html
index 7027757..f185026 100644
--- a/xref/org/apache/omid/tools/hbase/HBaseLogin.html
+++ b/xref/org/apache/omid/tools/hbase/HBaseLogin.html
@@ -31,21 +31,38 @@
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
 <a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
 <a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/HBaseLogin.html">HBaseLogin</a> {
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseLogin.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> UserGroupInformation loginIfNeeded(<a href="../../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a> config) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="31" href="#31">31</a>          <strong class="jxr_keyword">if</strong> (UserGroupInformation.isSecurityEnabled()) {
-<a class="jxr_linenumber" name="32" href="#32">32</a>              LOG.info(<span class="jxr_string">"Security is enabled, logging in with principal={}, keytab={}"</span>,
-<a class="jxr_linenumber" name="33" href="#33">33</a>                      config.getPrincipal(), config.getKeytab());
-<a class="jxr_linenumber" name="34" href="#34">34</a>              UserGroupInformation.loginUserFromKeytab(config.getPrincipal(), config.getKeytab());
-<a class="jxr_linenumber" name="35" href="#35">35</a>          }
-<a class="jxr_linenumber" name="36" href="#36">36</a>          <strong class="jxr_keyword">return</strong> UserGroupInformation.getCurrentUser();
-<a class="jxr_linenumber" name="37" href="#37">37</a>      }
-<a class="jxr_linenumber" name="38" href="#38">38</a>  }
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> javax.annotation.Nullable;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/HBaseLogin.html">HBaseLogin</a> {
+<a class="jxr_linenumber" name="28" href="#28">28</a>  
+<a class="jxr_linenumber" name="29" href="#29">29</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseLogin.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="30" href="#30">30</a>  
+<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">volatile</strong> UserGroupInformation ugi;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  
+<a class="jxr_linenumber" name="33" href="#33">33</a>      @Nullable
+<a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> UserGroupInformation loginIfNeeded(<a href="../../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a> config) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>          <strong class="jxr_keyword">if</strong> (UserGroupInformation.isSecurityEnabled()) {
+<a class="jxr_linenumber" name="37" href="#37">37</a>              LOG.info(<span class="jxr_string">"Security enabled when connecting to HBase"</span>);
+<a class="jxr_linenumber" name="38" href="#38">38</a>              <strong class="jxr_keyword">if</strong> (ugi == <strong class="jxr_keyword">null</strong>) { <em class="jxr_comment">// Use lazy initialization with double-checked locking</em>
+<a class="jxr_linenumber" name="39" href="#39">39</a>                  <strong class="jxr_keyword">synchronized</strong> (HBaseLogin.<strong class="jxr_keyword">class</strong>) {
+<a class="jxr_linenumber" name="40" href="#40">40</a>                      <strong class="jxr_keyword">if</strong> (ugi == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="41" href="#41">41</a>                          LOG.info(<span class="jxr_string">"Login with Kerberos. User={}, keytab={}"</span>, config.getPrincipal(), config.getKeytab());
+<a class="jxr_linenumber" name="42" href="#42">42</a>                          UserGroupInformation.loginUserFromKeytab(config.getPrincipal(), config.getKeytab());
+<a class="jxr_linenumber" name="43" href="#43">43</a>                          ugi = UserGroupInformation.getCurrentUser();
+<a class="jxr_linenumber" name="44" href="#44">44</a>                      }
+<a class="jxr_linenumber" name="45" href="#45">45</a>                  }
+<a class="jxr_linenumber" name="46" href="#46">46</a>              } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="47" href="#47">47</a>                  LOG.info(<span class="jxr_string">"User {}, already trusted (Kerberos). Avoiding 2nd login as it causes problems"</span>, ugi.toString());
+<a class="jxr_linenumber" name="48" href="#48">48</a>              }
+<a class="jxr_linenumber" name="49" href="#49">49</a>          } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="50" href="#50">50</a>              LOG.warn(<span class="jxr_string">"Security NOT enabled when connecting to HBase. Act at your own risk. NULL UGI returned"</span>);
+<a class="jxr_linenumber" name="51" href="#51">51</a>          }
+<a class="jxr_linenumber" name="52" href="#52">52</a>          <strong class="jxr_keyword">return</strong> ugi;
+<a class="jxr_linenumber" name="53" href="#53">53</a>      }
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tools/hbase/OmidTableManager.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tools/hbase/OmidTableManager.html b/xref/org/apache/omid/tools/hbase/OmidTableManager.html
index 5326ff9..edf5d01 100644
--- a/xref/org/apache/omid/tools/hbase/OmidTableManager.html
+++ b/xref/org/apache/omid/tools/hbase/OmidTableManager.html
@@ -27,196 +27,190 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.tools.hbase;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.HBaseShims;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.KeyGenerator;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.KeyGeneratorImplementations;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.RegionSplitter;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.IParameterValidator;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.JCommander;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.Parameter;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.ParameterException;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.Parameters;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.ParametersDelegate;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * Helper class to create required HBase tables by Omid</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">OmidTableManager</a> {
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(OmidTableManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.IParameterValidator;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.JCommander;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.Parameter;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.ParameterException;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.Parameters;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> com.beust.jcommander.ParametersDelegate;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.HBaseShims;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.KeyGenerator;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.KeyGeneratorImplementations;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.RegionSplitter;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * Helper class to create required HBase tables by Omid</em>
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">OmidTableManager</a> {
+<a class="jxr_linenumber" name="48" href="#48">48</a>  
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(OmidTableManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String COMMIT_TABLE_COMMAND_NAME = <span class="jxr_string">"commit-table"</span>;
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TIMESTAMP_TABLE_COMMAND_NAME = <span class="jxr_string">"timestamp-table"</span>;
 <a class="jxr_linenumber" name="53" href="#53">53</a>  
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String COMMIT_TABLE_COMMAND_NAME = <span class="jxr_string">"commit-table"</span>;
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TIMESTAMP_TABLE_COMMAND_NAME = <span class="jxr_string">"timestamp-table"</span>;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[][] commitTableFamilies = <strong class="jxr_keyword">new</strong> byte[][]{
-<a class="jxr_linenumber" name="58" href="#58">58</a>              Bytes.toBytes(HBaseCommitTableConfig.DEFAULT_COMMIT_TABLE_CF_NAME),
-<a class="jxr_linenumber" name="59" href="#59">59</a>              Bytes.toBytes(HBaseCommitTableConfig.DEFAULT_COMMIT_TABLE_LWM_CF_NAME)};
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[][] timestampTableFamilies = <strong class="jxr_keyword">new</strong> byte[][]{
-<a class="jxr_linenumber" name="61" href="#61">61</a>              Bytes.toBytes(HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_CF_NAME)};
-<a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> JCommander commandLine;
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">MainConfig</a> mainConfig = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">MainConfig</a>();
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">CommitTableCommand</a> commitTableCommand = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">CommitTableCommand</a>();
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">TimestampTableCommand</a> timestampTableCommand = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">TimestampTableCommand</a>();
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">OmidTableManager</a>(String... args) {
-<a class="jxr_linenumber" name="69" href="#69">69</a>          commandLine = <strong class="jxr_keyword">new</strong> JCommander(mainConfig);
-<a class="jxr_linenumber" name="70" href="#70">70</a>          commandLine.addCommand(COMMIT_TABLE_COMMAND_NAME, commitTableCommand);
-<a class="jxr_linenumber" name="71" href="#71">71</a>          commandLine.addCommand(TIMESTAMP_TABLE_COMMAND_NAME, timestampTableCommand);
-<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="73" href="#73">73</a>              commandLine.parse(args);
-<a class="jxr_linenumber" name="74" href="#74">74</a>          } <strong class="jxr_keyword">catch</strong> (ParameterException ex) {
-<a class="jxr_linenumber" name="75" href="#75">75</a>              commandLine.usage();
-<a class="jxr_linenumber" name="76" href="#76">76</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(ex.getMessage());
-<a class="jxr_linenumber" name="77" href="#77">77</a>          }
-<a class="jxr_linenumber" name="78" href="#78">78</a>      }
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> executeActionsOnHBase(Configuration hbaseConf) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>          HBaseLogin.loginIfNeeded(mainConfig.loginFlags);
-<a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">try</strong> (Connection conn = ConnectionFactory.createConnection(hbaseConf);
-<a class="jxr_linenumber" name="85" href="#85">85</a>               Admin hBaseAdmin = conn.getAdmin()) {
-<a class="jxr_linenumber" name="86" href="#86">86</a>              byte[][] tableFamilies;
-<a class="jxr_linenumber" name="87" href="#87">87</a>              byte[][] splitKeys = <strong class="jxr_keyword">new</strong> byte[0][0];
-<a class="jxr_linenumber" name="88" href="#88">88</a>              String tableName;
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>              LOG.info(<span class="jxr_string">"----------------------------------------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="91" href="#91">91</a>              <strong class="jxr_keyword">switch</strong> (commandLine.getParsedCommand()) {
-<a class="jxr_linenumber" name="92" href="#92">92</a>                  <strong class="jxr_keyword">case</strong> COMMIT_TABLE_COMMAND_NAME:
-<a class="jxr_linenumber" name="93" href="#93">93</a>                      LOG.info(<span class="jxr_string">"Performing actions related to COMMIT TABLE"</span>);
-<a class="jxr_linenumber" name="94" href="#94">94</a>                      tableName = commitTableCommand.tableName;
-<a class="jxr_linenumber" name="95" href="#95">95</a>                      tableFamilies = commitTableFamilies;
-<a class="jxr_linenumber" name="96" href="#96">96</a>                      <strong class="jxr_keyword">if</strong> (commitTableCommand.numRegions &gt; 1) {
-<a class="jxr_linenumber" name="97" href="#97">97</a>                          splitKeys = splitInUniformRegions(hbaseConf, commitTableCommand.numRegions);
-<a class="jxr_linenumber" name="98" href="#98">98</a>                      }
-<a class="jxr_linenumber" name="99" href="#99">99</a>                      <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="100" href="#100">100</a>                 <strong class="jxr_keyword">case</strong> TIMESTAMP_TABLE_COMMAND_NAME:
-<a class="jxr_linenumber" name="101" href="#101">101</a>                     LOG.info(<span class="jxr_string">"Performing actions related to TIMESTAMP TABLE"</span>);
-<a class="jxr_linenumber" name="102" href="#102">102</a>                     tableName = timestampTableCommand.tableName;
-<a class="jxr_linenumber" name="103" href="#103">103</a>                     tableFamilies = timestampTableFamilies;
-<a class="jxr_linenumber" name="104" href="#104">104</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="105" href="#105">105</a>                 <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="106" href="#106">106</a>                     LOG.error(<span class="jxr_string">"Unknown command: {}"</span>, commandLine.getParsedCommand());
-<a class="jxr_linenumber" name="107" href="#107">107</a>                     commandLine.usage();
-<a class="jxr_linenumber" name="108" href="#108">108</a>                     <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="109" href="#109">109</a>             }
-<a class="jxr_linenumber" name="110" href="#110">110</a> 
-<a class="jxr_linenumber" name="111" href="#111">111</a>             createTable(hBaseAdmin, tableName, tableFamilies, splitKeys, 1);
-<a class="jxr_linenumber" name="112" href="#112">112</a>             LOG.info(<span class="jxr_string">"----------------------------------------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>         }
-<a class="jxr_linenumber" name="115" href="#115">115</a>     }
-<a class="jxr_linenumber" name="116" href="#116">116</a> 
-<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String... args) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>         <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">OmidTableManager</a> tableManager = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">OmidTableManager</a>(args);
-<a class="jxr_linenumber" name="120" href="#120">120</a>         tableManager.executeActionsOnHBase(HBaseConfiguration.create());
-<a class="jxr_linenumber" name="121" href="#121">121</a> 
-<a class="jxr_linenumber" name="122" href="#122">122</a>     }
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[][] commitTableFamilies = <strong class="jxr_keyword">new</strong> byte[][]{
+<a class="jxr_linenumber" name="55" href="#55">55</a>              Bytes.toBytes(HBaseCommitTableConfig.DEFAULT_COMMIT_TABLE_CF_NAME),
+<a class="jxr_linenumber" name="56" href="#56">56</a>              Bytes.toBytes(HBaseCommitTableConfig.DEFAULT_COMMIT_TABLE_LWM_CF_NAME)};
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[][] timestampTableFamilies = <strong class="jxr_keyword">new</strong> byte[][]{
+<a class="jxr_linenumber" name="58" href="#58">58</a>              Bytes.toBytes(HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_CF_NAME)};
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> JCommander commandLine;
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">MainConfig</a> mainConfig = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">MainConfig</a>();
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">CommitTableCommand</a> commitTableCommand = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">CommitTableCommand</a>();
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">TimestampTableCommand</a> timestampTableCommand = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">TimestampTableCommand</a>();
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">OmidTableManager</a>(String... args) {
+<a class="jxr_linenumber" name="66" href="#66">66</a>          commandLine = <strong class="jxr_keyword">new</strong> JCommander(mainConfig);
+<a class="jxr_linenumber" name="67" href="#67">67</a>          commandLine.addCommand(COMMIT_TABLE_COMMAND_NAME, commitTableCommand);
+<a class="jxr_linenumber" name="68" href="#68">68</a>          commandLine.addCommand(TIMESTAMP_TABLE_COMMAND_NAME, timestampTableCommand);
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="70" href="#70">70</a>              commandLine.parse(args);
+<a class="jxr_linenumber" name="71" href="#71">71</a>          } <strong class="jxr_keyword">catch</strong> (ParameterException ex) {
+<a class="jxr_linenumber" name="72" href="#72">72</a>              commandLine.usage();
+<a class="jxr_linenumber" name="73" href="#73">73</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(ex.getMessage());
+<a class="jxr_linenumber" name="74" href="#74">74</a>          }
+<a class="jxr_linenumber" name="75" href="#75">75</a>      }
+<a class="jxr_linenumber" name="76" href="#76">76</a>  
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> executeActionsOnHBase(Configuration hbaseConf) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>          HBaseLogin.loginIfNeeded(mainConfig.loginFlags);
+<a class="jxr_linenumber" name="80" href="#80">80</a>  
+<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">try</strong> (HBaseAdmin hBaseAdmin = <strong class="jxr_keyword">new</strong> HBaseAdmin(hbaseConf)) {
+<a class="jxr_linenumber" name="82" href="#82">82</a>              byte[][] tableFamilies;
+<a class="jxr_linenumber" name="83" href="#83">83</a>              byte[][] splitKeys = <strong class="jxr_keyword">new</strong> byte[0][0];
+<a class="jxr_linenumber" name="84" href="#84">84</a>              String tableName;
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
+<a class="jxr_linenumber" name="86" href="#86">86</a>              LOG.info(<span class="jxr_string">"----------------------------------------------------------------------------------------------"</span>);
+<a class="jxr_linenumber" name="87" href="#87">87</a>              <strong class="jxr_keyword">switch</strong> (commandLine.getParsedCommand()) {
+<a class="jxr_linenumber" name="88" href="#88">88</a>                  <strong class="jxr_keyword">case</strong> COMMIT_TABLE_COMMAND_NAME:
+<a class="jxr_linenumber" name="89" href="#89">89</a>                      LOG.info(<span class="jxr_string">"Performing actions related to COMMIT TABLE"</span>);
+<a class="jxr_linenumber" name="90" href="#90">90</a>                      tableName = commitTableCommand.tableName;
+<a class="jxr_linenumber" name="91" href="#91">91</a>                      tableFamilies = commitTableFamilies;
+<a class="jxr_linenumber" name="92" href="#92">92</a>                      <strong class="jxr_keyword">if</strong> (commitTableCommand.numRegions &gt; 1) {
+<a class="jxr_linenumber" name="93" href="#93">93</a>                          splitKeys = splitInUniformRegions(hbaseConf, commitTableCommand.numRegions);
+<a class="jxr_linenumber" name="94" href="#94">94</a>                      }
+<a class="jxr_linenumber" name="95" href="#95">95</a>                      <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="96" href="#96">96</a>                  <strong class="jxr_keyword">case</strong> TIMESTAMP_TABLE_COMMAND_NAME:
+<a class="jxr_linenumber" name="97" href="#97">97</a>                      LOG.info(<span class="jxr_string">"Performing actions related to TIMESTAMP TABLE"</span>);
+<a class="jxr_linenumber" name="98" href="#98">98</a>                      tableName = timestampTableCommand.tableName;
+<a class="jxr_linenumber" name="99" href="#99">99</a>                      tableFamilies = timestampTableFamilies;
+<a class="jxr_linenumber" name="100" href="#100">100</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="101" href="#101">101</a>                 <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="102" href="#102">102</a>                     LOG.error(<span class="jxr_string">"Unknown command: {}"</span>, commandLine.getParsedCommand());
+<a class="jxr_linenumber" name="103" href="#103">103</a>                     commandLine.usage();
+<a class="jxr_linenumber" name="104" href="#104">104</a>                     <strong class="jxr_keyword">return</strong>;
+<a class="jxr_linenumber" name="105" href="#105">105</a>             }
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>             createTable(hBaseAdmin, tableName, tableFamilies, splitKeys, 1);
+<a class="jxr_linenumber" name="108" href="#108">108</a>             LOG.info(<span class="jxr_string">"----------------------------------------------------------------------------------------------"</span>);
+<a class="jxr_linenumber" name="109" href="#109">109</a> 
+<a class="jxr_linenumber" name="110" href="#110">110</a>         }
+<a class="jxr_linenumber" name="111" href="#111">111</a>     }
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String... args) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="114" href="#114">114</a> 
+<a class="jxr_linenumber" name="115" href="#115">115</a>         <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">OmidTableManager</a> tableManager = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">OmidTableManager</a>(args);
+<a class="jxr_linenumber" name="116" href="#116">116</a>         tableManager.executeActionsOnHBase(HBaseConfiguration.create());
+<a class="jxr_linenumber" name="117" href="#117">117</a> 
+<a class="jxr_linenumber" name="118" href="#118">118</a>     }
+<a class="jxr_linenumber" name="119" href="#119">119</a> 
+<a class="jxr_linenumber" name="120" href="#120">120</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="121" href="#121">121</a>     <em class="jxr_comment">// Helper methods and classes</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
 <a class="jxr_linenumber" name="123" href="#123">123</a> 
-<a class="jxr_linenumber" name="124" href="#124">124</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="125" href="#125">125</a>     <em class="jxr_comment">// Helper methods and classes</em>
-<a class="jxr_linenumber" name="126" href="#126">126</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[][] splitInUniformRegions(Configuration hBaseConf, <strong class="jxr_keyword">int</strong> numRegions) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="129" href="#129">129</a> 
-<a class="jxr_linenumber" name="130" href="#130">130</a>         <a href="../../../../../org/apache/omid/committable/hbase/KeyGenerator.html">KeyGenerator</a> keyGen = KeyGeneratorImplementations.defaultKeyGenerator();
-<a class="jxr_linenumber" name="131" href="#131">131</a>         RegionSplitter.SplitAlgorithm algo =
-<a class="jxr_linenumber" name="132" href="#132">132</a>                 RegionSplitter.newSplitAlgoInstance(hBaseConf, RegionSplitter.UniformSplit.<strong class="jxr_keyword">class</strong>.getName());
-<a class="jxr_linenumber" name="133" href="#133">133</a>         algo.setFirstRow(algo.rowToStr(keyGen.startTimestampToKey(0)));
-<a class="jxr_linenumber" name="134" href="#134">134</a>         algo.setLastRow(algo.rowToStr(keyGen.startTimestampToKey(Long.MAX_VALUE)));
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>         <em class="jxr_comment">// Return the split keys</em>
-<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">return</strong> algo.split(numRegions);
-<a class="jxr_linenumber" name="138" href="#138">138</a> 
-<a class="jxr_linenumber" name="139" href="#139">139</a>     }
+<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[][] splitInUniformRegions(Configuration hBaseConf, <strong class="jxr_keyword">int</strong> numRegions) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="125" href="#125">125</a> 
+<a class="jxr_linenumber" name="126" href="#126">126</a>         <a href="../../../../../org/apache/omid/committable/hbase/KeyGenerator.html">KeyGenerator</a> keyGen = KeyGeneratorImplementations.defaultKeyGenerator();
+<a class="jxr_linenumber" name="127" href="#127">127</a>         RegionSplitter.SplitAlgorithm algo =
+<a class="jxr_linenumber" name="128" href="#128">128</a>                 RegionSplitter.newSplitAlgoInstance(hBaseConf, RegionSplitter.UniformSplit.<strong class="jxr_keyword">class</strong>.getName());
+<a class="jxr_linenumber" name="129" href="#129">129</a>         algo.setFirstRow(algo.rowToStr(keyGen.startTimestampToKey(0)));
+<a class="jxr_linenumber" name="130" href="#130">130</a>         algo.setLastRow(algo.rowToStr(keyGen.startTimestampToKey(Long.MAX_VALUE)));
+<a class="jxr_linenumber" name="131" href="#131">131</a> 
+<a class="jxr_linenumber" name="132" href="#132">132</a>         <em class="jxr_comment">// Return the split keys</em>
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">return</strong> algo.split(numRegions);
+<a class="jxr_linenumber" name="134" href="#134">134</a> 
+<a class="jxr_linenumber" name="135" href="#135">135</a>     }
+<a class="jxr_linenumber" name="136" href="#136">136</a> 
+<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> createTable(HBaseAdmin admin, String tableName, byte[][] families, byte[][] splitKeys,
+<a class="jxr_linenumber" name="138" href="#138">138</a>                                     <strong class="jxr_keyword">int</strong> maxVersions)
+<a class="jxr_linenumber" name="139" href="#139">139</a>             <strong class="jxr_keyword">throws</strong> IOException {
 <a class="jxr_linenumber" name="140" href="#140">140</a> 
-<a class="jxr_linenumber" name="141" href="#141">141</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> createTable(Admin admin, String tableName, byte[][] families, byte[][] splitKeys,
-<a class="jxr_linenumber" name="142" href="#142">142</a>                                     <strong class="jxr_keyword">int</strong> maxVersions)
-<a class="jxr_linenumber" name="143" href="#143">143</a>             <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="144" href="#144">144</a> 
-<a class="jxr_linenumber" name="145" href="#145">145</a>         LOG.info(<span class="jxr_string">"About to create Table named {} with {} splits"</span>, tableName, splitKeys.length);
-<a class="jxr_linenumber" name="146" href="#146">146</a> 
-<a class="jxr_linenumber" name="147" href="#147">147</a>         TableName hTableName = TableName.valueOf(tableName); 
-<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">if</strong> (admin.tableExists(hTableName)) {
-<a class="jxr_linenumber" name="149" href="#149">149</a>             LOG.error(<span class="jxr_string">"Table {} already exists. Table creation cancelled"</span>, tableName);
-<a class="jxr_linenumber" name="150" href="#150">150</a>             <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="151" href="#151">151</a>         }
-<a class="jxr_linenumber" name="152" href="#152">152</a> 
-<a class="jxr_linenumber" name="153" href="#153">153</a>         HTableDescriptor tableDescriptor = <strong class="jxr_keyword">new</strong> HTableDescriptor(TableName.valueOf(tableName));
-<a class="jxr_linenumber" name="154" href="#154">154</a> 
-<a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">for</strong> (byte[] family : families) {
-<a class="jxr_linenumber" name="156" href="#156">156</a>             HColumnDescriptor colDescriptor = <strong class="jxr_keyword">new</strong> HColumnDescriptor(family);
-<a class="jxr_linenumber" name="157" href="#157">157</a>             colDescriptor.setMaxVersions(maxVersions);
-<a class="jxr_linenumber" name="158" href="#158">158</a>             HBaseShims.addFamilyToHTableDescriptor(tableDescriptor, colDescriptor);
-<a class="jxr_linenumber" name="159" href="#159">159</a>             LOG.info(<span class="jxr_string">"\tAdding Family {}"</span>, colDescriptor);
-<a class="jxr_linenumber" name="160" href="#160">160</a>         }
-<a class="jxr_linenumber" name="161" href="#161">161</a> 
-<a class="jxr_linenumber" name="162" href="#162">162</a>         admin.createTable(tableDescriptor, splitKeys);
-<a class="jxr_linenumber" name="163" href="#163">163</a> 
-<a class="jxr_linenumber" name="164" href="#164">164</a>         LOG.info(<span class="jxr_string">"Table {} created. Regions: {}"</span>, tableName, admin.getTableRegions(hTableName).size());
-<a class="jxr_linenumber" name="165" href="#165">165</a> 
-<a class="jxr_linenumber" name="166" href="#166">166</a>     }
-<a class="jxr_linenumber" name="167" href="#167">167</a> 
-<a class="jxr_linenumber" name="168" href="#168">168</a>     <em class="jxr_comment">// Configuration-related classes</em>
+<a class="jxr_linenumber" name="141" href="#141">141</a>         LOG.info(<span class="jxr_string">"About to create Table named {} with {} splits"</span>, tableName, splitKeys.length);
+<a class="jxr_linenumber" name="142" href="#142">142</a> 
+<a class="jxr_linenumber" name="143" href="#143">143</a>         <strong class="jxr_keyword">if</strong> (admin.tableExists(tableName)) {
+<a class="jxr_linenumber" name="144" href="#144">144</a>             LOG.error(<span class="jxr_string">"Table {} already exists. Table creation cancelled"</span>, tableName);
+<a class="jxr_linenumber" name="145" href="#145">145</a>             <strong class="jxr_keyword">return</strong>;
+<a class="jxr_linenumber" name="146" href="#146">146</a>         }
+<a class="jxr_linenumber" name="147" href="#147">147</a> 
+<a class="jxr_linenumber" name="148" href="#148">148</a>         HTableDescriptor tableDescriptor = <strong class="jxr_keyword">new</strong> HTableDescriptor(TableName.valueOf(tableName));
+<a class="jxr_linenumber" name="149" href="#149">149</a> 
+<a class="jxr_linenumber" name="150" href="#150">150</a>         <strong class="jxr_keyword">for</strong> (byte[] family : families) {
+<a class="jxr_linenumber" name="151" href="#151">151</a>             HColumnDescriptor colDescriptor = <strong class="jxr_keyword">new</strong> HColumnDescriptor(family);
+<a class="jxr_linenumber" name="152" href="#152">152</a>             colDescriptor.setMaxVersions(maxVersions);
+<a class="jxr_linenumber" name="153" href="#153">153</a>             HBaseShims.addFamilyToHTableDescriptor(tableDescriptor, colDescriptor);
+<a class="jxr_linenumber" name="154" href="#154">154</a>             LOG.info(<span class="jxr_string">"\tAdding Family {}"</span>, colDescriptor);
+<a class="jxr_linenumber" name="155" href="#155">155</a>         }
+<a class="jxr_linenumber" name="156" href="#156">156</a> 
+<a class="jxr_linenumber" name="157" href="#157">157</a>         admin.createTable(tableDescriptor, splitKeys);
+<a class="jxr_linenumber" name="158" href="#158">158</a> 
+<a class="jxr_linenumber" name="159" href="#159">159</a>         LOG.info(<span class="jxr_string">"Table {} created. Regions: {}"</span>, tableName, admin.getTableRegions(Bytes.toBytes(tableName)).size());
+<a class="jxr_linenumber" name="160" href="#160">160</a> 
+<a class="jxr_linenumber" name="161" href="#161">161</a>     }
+<a class="jxr_linenumber" name="162" href="#162">162</a> 
+<a class="jxr_linenumber" name="163" href="#163">163</a>     <em class="jxr_comment">// Configuration-related classes</em>
+<a class="jxr_linenumber" name="164" href="#164">164</a> 
+<a class="jxr_linenumber" name="165" href="#165">165</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">MainConfig</a> {
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>         @ParametersDelegate
+<a class="jxr_linenumber" name="168" href="#168">168</a>         <a href="../../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a> loginFlags = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a>();
 <a class="jxr_linenumber" name="169" href="#169">169</a> 
-<a class="jxr_linenumber" name="170" href="#170">170</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">MainConfig</a> {
+<a class="jxr_linenumber" name="170" href="#170">170</a>     }
 <a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>         @ParametersDelegate
-<a class="jxr_linenumber" name="173" href="#173">173</a>         <a href="../../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a> loginFlags = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tools/hbase/SecureHBaseConfig.html">SecureHBaseConfig</a>();
+<a class="jxr_linenumber" name="172" href="#172">172</a>     @Parameters(commandDescription = <span class="jxr_string">"Specifies configuration for the Commit Table"</span>)
+<a class="jxr_linenumber" name="173" href="#173">173</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">CommitTableCommand</a> {
 <a class="jxr_linenumber" name="174" href="#174">174</a> 
-<a class="jxr_linenumber" name="175" href="#175">175</a>     }
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>     @Parameters(commandDescription = <span class="jxr_string">"Specifies configuration for the Commit Table"</span>)
-<a class="jxr_linenumber" name="178" href="#178">178</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">CommitTableCommand</a> {
-<a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a>         @Parameter(names = <span class="jxr_string">"-tableName"</span>, description = <span class="jxr_string">"Table name where to stores the commits"</span>, required = false)
-<a class="jxr_linenumber" name="181" href="#181">181</a>         String tableName = HBaseCommitTableConfig.DEFAULT_COMMIT_TABLE_NAME;
-<a class="jxr_linenumber" name="182" href="#182">182</a> 
-<a class="jxr_linenumber" name="183" href="#183">183</a>         @Parameter(names = <span class="jxr_string">"-numRegions"</span>, description = <span class="jxr_string">"Number of splits (to pre-split tableName)"</span>, required = false,
-<a class="jxr_linenumber" name="184" href="#184">184</a>                    validateWith = IntegerGreaterThanZero.<strong class="jxr_keyword">class</strong>)
-<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">int</strong> numRegions = 16;
+<a class="jxr_linenumber" name="175" href="#175">175</a>         @Parameter(names = <span class="jxr_string">"-tableName"</span>, description = <span class="jxr_string">"Table name where to stores the commits"</span>, required = false)
+<a class="jxr_linenumber" name="176" href="#176">176</a>         String tableName = HBaseCommitTableConfig.DEFAULT_COMMIT_TABLE_NAME;
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>         @Parameter(names = <span class="jxr_string">"-numRegions"</span>, description = <span class="jxr_string">"Number of splits (to pre-split tableName)"</span>, required = false,
+<a class="jxr_linenumber" name="179" href="#179">179</a>                    validateWith = IntegerGreaterThanZero.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="180" href="#180">180</a>         <strong class="jxr_keyword">int</strong> numRegions = 16;
+<a class="jxr_linenumber" name="181" href="#181">181</a> 
+<a class="jxr_linenumber" name="182" href="#182">182</a>     }
+<a class="jxr_linenumber" name="183" href="#183">183</a> 
+<a class="jxr_linenumber" name="184" href="#184">184</a>     @Parameters(commandDescription = <span class="jxr_string">"Specifies configuration for the Timestamp Table"</span>)
+<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">TimestampTableCommand</a> {
 <a class="jxr_linenumber" name="186" href="#186">186</a> 
-<a class="jxr_linenumber" name="187" href="#187">187</a>     }
-<a class="jxr_linenumber" name="188" href="#188">188</a> 
-<a class="jxr_linenumber" name="189" href="#189">189</a>     @Parameters(commandDescription = <span class="jxr_string">"Specifies configuration for the Timestamp Table"</span>)
-<a class="jxr_linenumber" name="190" href="#190">190</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">TimestampTableCommand</a> {
+<a class="jxr_linenumber" name="187" href="#187">187</a>         @Parameter(names = <span class="jxr_string">"-tableName"</span>, description = <span class="jxr_string">"Table name where to store timestamps"</span>)
+<a class="jxr_linenumber" name="188" href="#188">188</a>         String tableName = HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME;
+<a class="jxr_linenumber" name="189" href="#189">189</a> 
+<a class="jxr_linenumber" name="190" href="#190">190</a>     }
 <a class="jxr_linenumber" name="191" href="#191">191</a> 
-<a class="jxr_linenumber" name="192" href="#192">192</a>         @Parameter(names = <span class="jxr_string">"-tableName"</span>, description = <span class="jxr_string">"Table name where to store timestamps"</span>)
-<a class="jxr_linenumber" name="193" href="#193">193</a>         String tableName = HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME;
-<a class="jxr_linenumber" name="194" href="#194">194</a> 
-<a class="jxr_linenumber" name="195" href="#195">195</a>     }
-<a class="jxr_linenumber" name="196" href="#196">196</a> 
-<a class="jxr_linenumber" name="197" href="#197">197</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">IntegerGreaterThanZero</a> <strong class="jxr_keyword">implements</strong> IParameterValidator {
-<a class="jxr_linenumber" name="198" href="#198">198</a> 
-<a class="jxr_linenumber" name="199" href="#199">199</a>         @Override
-<a class="jxr_linenumber" name="200" href="#200">200</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> validate(String name, String value) <strong class="jxr_keyword">throws</strong> ParameterException {
-<a class="jxr_linenumber" name="201" href="#201">201</a>             <strong class="jxr_keyword">int</strong> n = Integer.parseInt(value);
-<a class="jxr_linenumber" name="202" href="#202">202</a>             <strong class="jxr_keyword">if</strong> (n &lt;= 0) {
-<a class="jxr_linenumber" name="203" href="#203">203</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ParameterException(<span class="jxr_string">"Parameter "</span> + name + <span class="jxr_string">" should be &gt; 0 (found "</span> + value + <span class="jxr_string">")"</span>);
-<a class="jxr_linenumber" name="204" href="#204">204</a>             }
-<a class="jxr_linenumber" name="205" href="#205">205</a>         }
-<a class="jxr_linenumber" name="206" href="#206">206</a> 
-<a class="jxr_linenumber" name="207" href="#207">207</a>     }
-<a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a> }
+<a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tools/hbase/OmidTableManager.html">IntegerGreaterThanZero</a> <strong class="jxr_keyword">implements</strong> IParameterValidator {
+<a class="jxr_linenumber" name="193" href="#193">193</a> 
+<a class="jxr_linenumber" name="194" href="#194">194</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> validate(String name, String value) <strong class="jxr_keyword">throws</strong> ParameterException {
+<a class="jxr_linenumber" name="195" href="#195">195</a>             <strong class="jxr_keyword">int</strong> n = Integer.parseInt(value);
+<a class="jxr_linenumber" name="196" href="#196">196</a>             <strong class="jxr_keyword">if</strong> (n &lt;= 0) {
+<a class="jxr_linenumber" name="197" href="#197">197</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ParameterException(<span class="jxr_string">"Parameter "</span> + name + <span class="jxr_string">" should be &gt; 0 (found "</span> + value + <span class="jxr_string">")"</span>);
+<a class="jxr_linenumber" name="198" href="#198">198</a>             }
+<a class="jxr_linenumber" name="199" href="#199">199</a>         }
+<a class="jxr_linenumber" name="200" href="#200">200</a> 
+<a class="jxr_linenumber" name="201" href="#201">201</a>     }
+<a class="jxr_linenumber" name="202" href="#202">202</a> 
+<a class="jxr_linenumber" name="203" href="#203">203</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tools/hbase/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tools/hbase/package-frame.html b/xref/org/apache/omid/tools/hbase/package-frame.html
index edb1f51..e469607 100644
--- a/xref/org/apache/omid/tools/hbase/package-frame.html
+++ b/xref/org/apache/omid/tools/hbase/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tools.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tools.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tools/hbase/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tools/hbase/package-summary.html b/xref/org/apache/omid/tools/hbase/package-summary.html
index 15f815b..e2ec078 100644
--- a/xref/org/apache/omid/tools/hbase/package-summary.html
+++ b/xref/org/apache/omid/tools/hbase/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tools.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tools.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>


[38/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestCompactorScanner.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestCompactorScanner.html b/xref-test/org/apache/omid/transaction/TestCompactorScanner.html
index 99b8f66..d05cae9 100644
--- a/xref-test/org/apache/omid/transaction/TestCompactorScanner.html
+++ b/xref-test/org/apache/omid/transaction/TestCompactorScanner.html
@@ -33,87 +33,86 @@
 <a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue.Type;
 <a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.ObserverContext;
 <a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.CompactorScanner;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegion;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.InternalScanner;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.Client;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.DataProvider;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.when;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestCompactorScanner.html">TestCompactorScanner</a> {
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestCompactorScanner.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TEST_TS = 1L;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>      @DataProvider(name = <span class="jxr_string">"cell-retain-options"</span>)
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">public</strong> Object[][] createCellRetainOptions() {
-<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Object[][]{
-<a class="jxr_linenumber" name="54" href="#54">54</a>                  {1, <strong class="jxr_keyword">true</strong>}, {2, false},
-<a class="jxr_linenumber" name="55" href="#55">55</a>          };
-<a class="jxr_linenumber" name="56" href="#56">56</a>      }
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>      @Test(dataProvider = <span class="jxr_string">"cell-retain-options"</span>, timeOut = 60_000)
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShouldRetainNonTransactionallyDeletedCellMethod(<strong class="jxr_keyword">int</strong> optionIdx, <strong class="jxr_keyword">boolean</strong> retainOption)
-<a class="jxr_linenumber" name="60" href="#60">60</a>              <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>          <em class="jxr_comment">// Create required mocks</em>
-<a class="jxr_linenumber" name="63" href="#63">63</a>          @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="64" href="#64">64</a>          ObserverContext&lt;RegionCoprocessorEnvironment&gt; ctx = mock(ObserverContext.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="65" href="#65">65</a>          InternalScanner internalScanner = mock(InternalScanner.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="66" href="#66">66</a>          CommitTable.Client ctClient = mock(CommitTable.Client.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="67" href="#67">67</a>          @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="68" href="#68">68</a>          Queue&lt;Client&gt; queue = mock(Queue.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="69" href="#69">69</a>          RegionCoprocessorEnvironment rce = mock(RegionCoprocessorEnvironment.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="70" href="#70">70</a>          HRegion hRegion = mock(HRegion.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="71" href="#71">71</a>          HRegionInfo hRegionInfo = mock(HRegionInfo.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="72" href="#72">72</a>          SettableFuture&lt;Long&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <em class="jxr_comment">// Wire required mock internals</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>          f.set(TEST_TS);
-<a class="jxr_linenumber" name="76" href="#76">76</a>          when(ctClient.readLowWatermark()).thenReturn(f);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          when(ctx.getEnvironment()).thenReturn(rce);
-<a class="jxr_linenumber" name="78" href="#78">78</a>          when(rce.getRegion()).thenReturn(hRegion);
-<a class="jxr_linenumber" name="79" href="#79">79</a>          when(hRegion.getRegionInfo()).thenReturn(hRegionInfo);
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>          LOG.info(<span class="jxr_string">"Testing when retain is {}"</span>, retainOption);
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">try</strong> (CompactorScanner scanner = spy(<strong class="jxr_keyword">new</strong> CompactorScanner(ctx,
-<a class="jxr_linenumber" name="83" href="#83">83</a>                  internalScanner,
-<a class="jxr_linenumber" name="84" href="#84">84</a>                  ctClient,
-<a class="jxr_linenumber" name="85" href="#85">85</a>                  queue,
-<a class="jxr_linenumber" name="86" href="#86">86</a>                  false,
-<a class="jxr_linenumber" name="87" href="#87">87</a>                  retainOption))) {
-<a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>              <em class="jxr_comment">// Different cell types to test</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>              KeyValue regularKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.Put);
-<a class="jxr_linenumber" name="91" href="#91">91</a>              KeyValue deleteKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.Delete);
-<a class="jxr_linenumber" name="92" href="#92">92</a>              KeyValue deleteColumnKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.DeleteColumn);
-<a class="jxr_linenumber" name="93" href="#93">93</a>              KeyValue deleteFamilyKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.DeleteFamily);
-<a class="jxr_linenumber" name="94" href="#94">94</a>              KeyValue deleteFamilyVersionKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.DeleteFamilyVersion);
-<a class="jxr_linenumber" name="95" href="#95">95</a>  
-<a class="jxr_linenumber" name="96" href="#96">96</a>              assertFalse(scanner.shouldRetainNonTransactionallyDeletedCell(regularKV));
-<a class="jxr_linenumber" name="97" href="#97">97</a>              assertEquals(scanner.shouldRetainNonTransactionallyDeletedCell(deleteKV), retainOption);
-<a class="jxr_linenumber" name="98" href="#98">98</a>              assertEquals(scanner.shouldRetainNonTransactionallyDeletedCell(deleteColumnKV), retainOption);
-<a class="jxr_linenumber" name="99" href="#99">99</a>              assertEquals(scanner.shouldRetainNonTransactionallyDeletedCell(deleteFamilyKV), retainOption);
-<a class="jxr_linenumber" name="100" href="#100">100</a>             assertEquals(scanner.shouldRetainNonTransactionallyDeletedCell(deleteFamilyVersionKV), retainOption);
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>         }
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>     }
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a> }
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegion;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.InternalScanner;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.Client;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.DataProvider;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.spy;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.when;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestCompactorScanner.html">TestCompactorScanner</a> {
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestCompactorScanner.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="47" href="#47">47</a>  
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> TEST_TS = 1L;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>      @DataProvider(name = <span class="jxr_string">"cell-retain-options"</span>)
+<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> Object[][] createCellRetainOptions() {
+<a class="jxr_linenumber" name="52" href="#52">52</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Object[][]{
+<a class="jxr_linenumber" name="53" href="#53">53</a>                  {1, <strong class="jxr_keyword">true</strong>}, {2, false},
+<a class="jxr_linenumber" name="54" href="#54">54</a>          };
+<a class="jxr_linenumber" name="55" href="#55">55</a>      }
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      @Test(dataProvider = <span class="jxr_string">"cell-retain-options"</span>, timeOut = 60_000)
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testShouldRetainNonTransactionallyDeletedCellMethod(<strong class="jxr_keyword">int</strong> optionIdx, <strong class="jxr_keyword">boolean</strong> retainOption)
+<a class="jxr_linenumber" name="59" href="#59">59</a>              <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>          <em class="jxr_comment">// Create required mocks</em>
+<a class="jxr_linenumber" name="62" href="#62">62</a>          @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="63" href="#63">63</a>          ObserverContext&lt;RegionCoprocessorEnvironment&gt; ctx = mock(ObserverContext.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="64" href="#64">64</a>          InternalScanner internalScanner = mock(InternalScanner.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="65" href="#65">65</a>          CommitTable.Client ctClient = mock(CommitTable.Client.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="66" href="#66">66</a>          @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="67" href="#67">67</a>          Queue&lt;Client&gt; queue = mock(Queue.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="68" href="#68">68</a>          RegionCoprocessorEnvironment rce = mock(RegionCoprocessorEnvironment.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="69" href="#69">69</a>          HRegion hRegion = mock(HRegion.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="70" href="#70">70</a>          HRegionInfo hRegionInfo = mock(HRegionInfo.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>          SettableFuture&lt;Long&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="72" href="#72">72</a>  
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <em class="jxr_comment">// Wire required mock internals</em>
+<a class="jxr_linenumber" name="74" href="#74">74</a>          f.set(TEST_TS);
+<a class="jxr_linenumber" name="75" href="#75">75</a>          when(ctClient.readLowWatermark()).thenReturn(f);
+<a class="jxr_linenumber" name="76" href="#76">76</a>          when(ctx.getEnvironment()).thenReturn(rce);
+<a class="jxr_linenumber" name="77" href="#77">77</a>          when(rce.getRegion()).thenReturn(hRegion);
+<a class="jxr_linenumber" name="78" href="#78">78</a>          when(hRegion.getRegionInfo()).thenReturn(hRegionInfo);
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>          LOG.info(<span class="jxr_string">"Testing when retain is {}"</span>, retainOption);
+<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">try</strong> (CompactorScanner scanner = spy(<strong class="jxr_keyword">new</strong> CompactorScanner(ctx,
+<a class="jxr_linenumber" name="82" href="#82">82</a>                  internalScanner,
+<a class="jxr_linenumber" name="83" href="#83">83</a>                  ctClient,
+<a class="jxr_linenumber" name="84" href="#84">84</a>                  queue,
+<a class="jxr_linenumber" name="85" href="#85">85</a>                  false,
+<a class="jxr_linenumber" name="86" href="#86">86</a>                  retainOption))) {
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>              <em class="jxr_comment">// Different cell types to test</em>
+<a class="jxr_linenumber" name="89" href="#89">89</a>              KeyValue regularKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.Put);
+<a class="jxr_linenumber" name="90" href="#90">90</a>              KeyValue deleteKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.Delete);
+<a class="jxr_linenumber" name="91" href="#91">91</a>              KeyValue deleteColumnKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.DeleteColumn);
+<a class="jxr_linenumber" name="92" href="#92">92</a>              KeyValue deleteFamilyKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.DeleteFamily);
+<a class="jxr_linenumber" name="93" href="#93">93</a>              KeyValue deleteFamilyVersionKV = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"test-row"</span>), TEST_TS, Type.DeleteFamilyVersion);
+<a class="jxr_linenumber" name="94" href="#94">94</a>  
+<a class="jxr_linenumber" name="95" href="#95">95</a>              assertFalse(scanner.shouldRetainNonTransactionallyDeletedCell(regularKV));
+<a class="jxr_linenumber" name="96" href="#96">96</a>              assertEquals(scanner.shouldRetainNonTransactionallyDeletedCell(deleteKV), retainOption);
+<a class="jxr_linenumber" name="97" href="#97">97</a>              assertEquals(scanner.shouldRetainNonTransactionallyDeletedCell(deleteColumnKV), retainOption);
+<a class="jxr_linenumber" name="98" href="#98">98</a>              assertEquals(scanner.shouldRetainNonTransactionallyDeletedCell(deleteFamilyKV), retainOption);
+<a class="jxr_linenumber" name="99" href="#99">99</a>              assertEquals(scanner.shouldRetainNonTransactionallyDeletedCell(deleteFamilyVersionKV), retainOption);
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>         }
+<a class="jxr_linenumber" name="102" href="#102">102</a> 
+<a class="jxr_linenumber" name="103" href="#103">103</a>     }
+<a class="jxr_linenumber" name="104" href="#104">104</a> 
+<a class="jxr_linenumber" name="105" href="#105">105</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[23/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.html b/xref-test/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.html
index cdfdeee..baf85c5 100644
--- a/xref-test/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.html
+++ b/xref-test/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.html
@@ -31,396 +31,394 @@
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Guice;
 <a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Injector;
 <a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Module;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.proto.TSOProto;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.AbstractTransactionManager;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.PausableTimestampOracle;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOMockModule;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TimestampOracle;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.util.DummyCellIdImpl;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Future;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.proto.TSOProto;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.PausableTimestampOracle;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOMockModule;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TimestampOracle;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.util.DummyCellIdImpl;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Future;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertFalse;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.html">TestTSOClientRequestAndResponseBehaviours</a> {
 <a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.html">TestTSOClientRequestAndResponseBehaviours</a> {
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTSOClientRequestAndResponseBehaviours.<strong class="jxr_keyword">class</strong>);
 <a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTSOClientRequestAndResponseBehaviours.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="56" href="#56">56</a>  
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_SERVER_HOST = <span class="jxr_string">"localhost"</span>;
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO_SERVER_PORT = 1234;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> CellId c1 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xdeadbeefL);
-<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> CellId c2 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xfeedcafeL);
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_SERVER_HOST = <span class="jxr_string">"localhost"</span>;
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO_SERVER_PORT = 1234;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> CellId c1 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xdeadbeefL);
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> CellId c2 = <strong class="jxr_keyword">new</strong> DummyCellIdImpl(0xfeedcafeL);
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> Set&lt;CellId&gt; testWriteSet = Sets.newHashSet(c1, c2);
 <a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> Set&lt;CellId&gt; testWriteSet = Sets.newHashSet(c1, c2);
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> OmidClientConfiguration tsoClientConf;
 <a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> OmidClientConfiguration tsoClientConf;
-<a class="jxr_linenumber" name="66" href="#66">66</a>  
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <em class="jxr_comment">// Required infrastructure for TSOClient test</em>
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> TSOServer tsoServer;
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/PausableTimestampOracle.html">PausableTimestampOracle</a> pausableTSOracle;
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> CommitTable commitTable;
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>      @BeforeMethod
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeMethod() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="74" href="#74">74</a>  
-<a class="jxr_linenumber" name="75" href="#75">75</a>          TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="76" href="#76">76</a>          tsoConfig.setConflictMapSize(1000);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          tsoConfig.setPort(TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="78" href="#78">78</a>          tsoConfig.setNumConcurrentCTWriters(2);
-<a class="jxr_linenumber" name="79" href="#79">79</a>          Module tsoServerMockModule = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(tsoConfig);
-<a class="jxr_linenumber" name="80" href="#80">80</a>          Injector injector = Guice.createInjector(tsoServerMockModule);
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <em class="jxr_comment">// Required infrastructure for TSOClient test</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> TSOServer tsoServer;
+<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/omid/tso/PausableTimestampOracle.html">PausableTimestampOracle</a> pausableTSOracle;
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> CommitTable commitTable;
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>      @BeforeMethod
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeMethod() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="72" href="#72">72</a>  
+<a class="jxr_linenumber" name="73" href="#73">73</a>          TSOServerConfig tsoConfig = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="74" href="#74">74</a>          tsoConfig.setConflictMapSize(1000);
+<a class="jxr_linenumber" name="75" href="#75">75</a>          tsoConfig.setPort(TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="76" href="#76">76</a>          tsoConfig.setNumConcurrentCTWriters(2);
+<a class="jxr_linenumber" name="77" href="#77">77</a>          Module tsoServerMockModule = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/TSOMockModule.html">TSOMockModule</a>(tsoConfig);
+<a class="jxr_linenumber" name="78" href="#78">78</a>          Injector injector = Guice.createInjector(tsoServerMockModule);
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
+<a class="jxr_linenumber" name="81" href="#81">81</a>          LOG.info(<span class="jxr_string">"======================================= Init TSO Server =========================================="</span>);
 <a class="jxr_linenumber" name="82" href="#82">82</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="83" href="#83">83</a>          LOG.info(<span class="jxr_string">"======================================= Init TSO Server =========================================="</span>);
-<a class="jxr_linenumber" name="84" href="#84">84</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>          tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="87" href="#87">87</a>          tsoServer.startAndWait();
-<a class="jxr_linenumber" name="88" href="#88">88</a>          TestUtils.waitForSocketListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 100);
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>          tsoServer = injector.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="85" href="#85">85</a>          tsoServer.startAndWait();
+<a class="jxr_linenumber" name="86" href="#86">86</a>          TestUtils.waitForSocketListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 100);
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
+<a class="jxr_linenumber" name="89" href="#89">89</a>          LOG.info(<span class="jxr_string">"===================================== TSO Server Initialized ====================================="</span>);
 <a class="jxr_linenumber" name="90" href="#90">90</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="91" href="#91">91</a>          LOG.info(<span class="jxr_string">"===================================== TSO Server Initialized ====================================="</span>);
-<a class="jxr_linenumber" name="92" href="#92">92</a>          LOG.info(<span class="jxr_string">"=================================================================================================="</span>);
-<a class="jxr_linenumber" name="93" href="#93">93</a>  
-<a class="jxr_linenumber" name="94" href="#94">94</a>          pausableTSOracle = (PausableTimestampOracle) injector.getInstance(TimestampOracle.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="95" href="#95">95</a>          commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>          OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="98" href="#98">98</a>          tsoClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="91" href="#91">91</a>  
+<a class="jxr_linenumber" name="92" href="#92">92</a>          pausableTSOracle = (PausableTimestampOracle) injector.getInstance(TimestampOracle.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="93" href="#93">93</a>          commitTable = injector.getInstance(CommitTable.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="94" href="#94">94</a>  
+<a class="jxr_linenumber" name="95" href="#95">95</a>          OmidClientConfiguration tsoClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="96" href="#96">96</a>          tsoClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="97" href="#97">97</a>  
+<a class="jxr_linenumber" name="98" href="#98">98</a>          <strong class="jxr_keyword">this</strong>.tsoClientConf = tsoClientConf;
 <a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">this</strong>.tsoClientConf = tsoClientConf;
+<a class="jxr_linenumber" name="100" href="#100">100</a>     }
 <a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>     }
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>     @AfterMethod
-<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterMethod() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="106" href="#106">106</a> 
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>         tsoServer.stopAndWait();
-<a class="jxr_linenumber" name="109" href="#109">109</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="110" href="#110">110</a>         TestUtils.waitForSocketNotListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 1000);
+<a class="jxr_linenumber" name="102" href="#102">102</a>     @AfterMethod
+<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterMethod() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="104" href="#104">104</a> 
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>         tsoServer.stopAndWait();
+<a class="jxr_linenumber" name="107" href="#107">107</a>         tsoServer = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="108" href="#108">108</a>         TestUtils.waitForSocketNotListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 1000);
+<a class="jxr_linenumber" name="109" href="#109">109</a> 
+<a class="jxr_linenumber" name="110" href="#110">110</a>         pausableTSOracle.resume();
 <a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>         pausableTSOracle.resume();
+<a class="jxr_linenumber" name="112" href="#112">112</a>     }
 <a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>     }
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * Test to ensure TSOClient timeouts are cancelled.</em>
-<a class="jxr_linenumber" name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * At some point a bug was detected because the TSOClient timeouts were not cancelled, and as timestamp requests</em>
-<a class="jxr_linenumber" name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * had no way to be correlated to timestamp responses, random requests were just timed out after a certain time.</em>
-<a class="jxr_linenumber" name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * We send a lot of timestamp requests, and wait for them to complete.</em>
-<a class="jxr_linenumber" name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * Ensure that the next request doesn't get hit by the timeouts of the previous</em>
-<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * requests. (i.e. make sure we cancel timeouts)</em>
-<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="124" href="#124">124</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="125" href="#125">125</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimeoutsAreCancelled() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="126" href="#126">126</a> 
-<a class="jxr_linenumber" name="127" href="#127">127</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="128" href="#128">128</a>         <strong class="jxr_keyword">int</strong> requestTimeoutInMs = 500;
-<a class="jxr_linenumber" name="129" href="#129">129</a>         <strong class="jxr_keyword">int</strong> requestMaxRetries = 5;
-<a class="jxr_linenumber" name="130" href="#130">130</a>         LOG.info(<span class="jxr_string">"Request timeout {} ms; Max retries {}"</span>, requestTimeoutInMs, requestMaxRetries);
-<a class="jxr_linenumber" name="131" href="#131">131</a>         Future&lt;Long&gt; f = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; (requestMaxRetries * 10); i++) {
-<a class="jxr_linenumber" name="133" href="#133">133</a>             f = client.getNewStartTimestamp();
-<a class="jxr_linenumber" name="134" href="#134">134</a>         }
-<a class="jxr_linenumber" name="135" href="#135">135</a>         <strong class="jxr_keyword">if</strong> (f != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="136" href="#136">136</a>             f.get();
-<a class="jxr_linenumber" name="137" href="#137">137</a>         }
-<a class="jxr_linenumber" name="138" href="#138">138</a>         pausableTSOracle.pause();
-<a class="jxr_linenumber" name="139" href="#139">139</a>         <strong class="jxr_keyword">long</strong> msToSleep = ((<strong class="jxr_keyword">long</strong>) (requestTimeoutInMs * 0.75));
-<a class="jxr_linenumber" name="140" href="#140">140</a>         LOG.info(<span class="jxr_string">"Sleeping for {} ms"</span>, msToSleep);
-<a class="jxr_linenumber" name="141" href="#141">141</a>         TimeUnit.MILLISECONDS.sleep(msToSleep);
-<a class="jxr_linenumber" name="142" href="#142">142</a>         f = client.getNewStartTimestamp();
-<a class="jxr_linenumber" name="143" href="#143">143</a>         msToSleep = ((<strong class="jxr_keyword">long</strong>) (requestTimeoutInMs * 0.9));
-<a class="jxr_linenumber" name="144" href="#144">144</a>         LOG.info(<span class="jxr_string">"Sleeping for {} ms"</span>, msToSleep);
-<a class="jxr_linenumber" name="145" href="#145">145</a>         TimeUnit.MILLISECONDS.sleep(msToSleep);
-<a class="jxr_linenumber" name="146" href="#146">146</a>         LOG.info(<span class="jxr_string">"Resuming"</span>);
-<a class="jxr_linenumber" name="147" href="#147">147</a>         pausableTSOracle.resume();
-<a class="jxr_linenumber" name="148" href="#148">148</a>         f.get();
+<a class="jxr_linenumber" name="114" href="#114">114</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * Test to ensure TSOClient timeouts are cancelled.</em>
+<a class="jxr_linenumber" name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * At some point a bug was detected because the TSOClient timeouts were not cancelled, and as timestamp requests</em>
+<a class="jxr_linenumber" name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * had no way to be correlated to timestamp responses, random requests were just timed out after a certain time.</em>
+<a class="jxr_linenumber" name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * We send a lot of timestamp requests, and wait for them to complete.</em>
+<a class="jxr_linenumber" name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * Ensure that the next request doesn't get hit by the timeouts of the previous</em>
+<a class="jxr_linenumber" name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * requests. (i.e. make sure we cancel timeouts)</em>
+<a class="jxr_linenumber" name="121" href="#121">121</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="123" href="#123">123</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimeoutsAreCancelled() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">int</strong> requestTimeoutInMs = 500;
+<a class="jxr_linenumber" name="127" href="#127">127</a>         <strong class="jxr_keyword">int</strong> requestMaxRetries = 5;
+<a class="jxr_linenumber" name="128" href="#128">128</a>         LOG.info(<span class="jxr_string">"Request timeout {} ms; Max retries {}"</span>, requestTimeoutInMs, requestMaxRetries);
+<a class="jxr_linenumber" name="129" href="#129">129</a>         Future&lt;Long&gt; f = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="130" href="#130">130</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; (requestMaxRetries * 10); i++) {
+<a class="jxr_linenumber" name="131" href="#131">131</a>             f = client.getNewStartTimestamp();
+<a class="jxr_linenumber" name="132" href="#132">132</a>         }
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">if</strong> (f != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="134" href="#134">134</a>             f.get();
+<a class="jxr_linenumber" name="135" href="#135">135</a>         }
+<a class="jxr_linenumber" name="136" href="#136">136</a>         pausableTSOracle.pause();
+<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">long</strong> msToSleep = ((<strong class="jxr_keyword">long</strong>) (requestTimeoutInMs * 0.75));
+<a class="jxr_linenumber" name="138" href="#138">138</a>         LOG.info(<span class="jxr_string">"Sleeping for {} ms"</span>, msToSleep);
+<a class="jxr_linenumber" name="139" href="#139">139</a>         TimeUnit.MILLISECONDS.sleep(msToSleep);
+<a class="jxr_linenumber" name="140" href="#140">140</a>         f = client.getNewStartTimestamp();
+<a class="jxr_linenumber" name="141" href="#141">141</a>         msToSleep = ((<strong class="jxr_keyword">long</strong>) (requestTimeoutInMs * 0.9));
+<a class="jxr_linenumber" name="142" href="#142">142</a>         LOG.info(<span class="jxr_string">"Sleeping for {} ms"</span>, msToSleep);
+<a class="jxr_linenumber" name="143" href="#143">143</a>         TimeUnit.MILLISECONDS.sleep(msToSleep);
+<a class="jxr_linenumber" name="144" href="#144">144</a>         LOG.info(<span class="jxr_string">"Resuming"</span>);
+<a class="jxr_linenumber" name="145" href="#145">145</a>         pausableTSOracle.resume();
+<a class="jxr_linenumber" name="146" href="#146">146</a>         f.get();
+<a class="jxr_linenumber" name="147" href="#147">147</a> 
+<a class="jxr_linenumber" name="148" href="#148">148</a>     }
 <a class="jxr_linenumber" name="149" href="#149">149</a> 
-<a class="jxr_linenumber" name="150" href="#150">150</a>     }
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitGetsServiceUnavailableExceptionWhenCommunicationFails() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="154" href="#154">154</a> 
-<a class="jxr_linenumber" name="155" href="#155">155</a>         OmidClientConfiguration testTSOClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="156" href="#156">156</a>         testTSOClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="157" href="#157">157</a>         testTSOClientConf.setRequestMaxRetries(0);
-<a class="jxr_linenumber" name="158" href="#158">158</a>         TSOClient client = TSOClient.newInstance(testTSOClientConf);
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>         List&lt;Long&gt; startTimestamps = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 10; i++) {
-<a class="jxr_linenumber" name="162" href="#162">162</a>             startTimestamps.add(client.getNewStartTimestamp().get());
-<a class="jxr_linenumber" name="163" href="#163">163</a>         }
+<a class="jxr_linenumber" name="150" href="#150">150</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitGetsServiceUnavailableExceptionWhenCommunicationFails() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="152" href="#152">152</a> 
+<a class="jxr_linenumber" name="153" href="#153">153</a>         OmidClientConfiguration testTSOClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="154" href="#154">154</a>         testTSOClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="155" href="#155">155</a>         testTSOClientConf.setRequestMaxRetries(0);
+<a class="jxr_linenumber" name="156" href="#156">156</a>         TSOClient client = TSOClient.newInstance(testTSOClientConf);
+<a class="jxr_linenumber" name="157" href="#157">157</a> 
+<a class="jxr_linenumber" name="158" href="#158">158</a>         List&lt;Long&gt; startTimestamps = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="159" href="#159">159</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 10; i++) {
+<a class="jxr_linenumber" name="160" href="#160">160</a>             startTimestamps.add(client.getNewStartTimestamp().get());
+<a class="jxr_linenumber" name="161" href="#161">161</a>         }
+<a class="jxr_linenumber" name="162" href="#162">162</a> 
+<a class="jxr_linenumber" name="163" href="#163">163</a>         pausableTSOracle.pause();
 <a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a>         pausableTSOracle.pause();
-<a class="jxr_linenumber" name="166" href="#166">166</a> 
-<a class="jxr_linenumber" name="167" href="#167">167</a>         List&lt;Future&lt;Long&gt;&gt; futures = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="168" href="#168">168</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> s : startTimestamps) {
-<a class="jxr_linenumber" name="169" href="#169">169</a>             futures.add(client.commit(s, Sets.&lt;CellId&gt;newHashSet()));
-<a class="jxr_linenumber" name="170" href="#170">170</a>         }
-<a class="jxr_linenumber" name="171" href="#171">171</a>         TSOClientAccessor.closeChannel(client);
-<a class="jxr_linenumber" name="172" href="#172">172</a> 
-<a class="jxr_linenumber" name="173" href="#173">173</a>         <strong class="jxr_keyword">for</strong> (Future&lt;Long&gt; f : futures) {
-<a class="jxr_linenumber" name="174" href="#174">174</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="175" href="#175">175</a>                 f.get();
-<a class="jxr_linenumber" name="176" href="#176">176</a>                 fail(<span class="jxr_string">"Shouldn't be able to complete"</span>);
-<a class="jxr_linenumber" name="177" href="#177">177</a>             } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="178" href="#178">178</a>                 assertTrue(ee.getCause() instanceof ServiceUnavailableException,
-<a class="jxr_linenumber" name="179" href="#179">179</a>                            <span class="jxr_string">"Should be a service unavailable exception"</span>);
-<a class="jxr_linenumber" name="180" href="#180">180</a>             }
-<a class="jxr_linenumber" name="181" href="#181">181</a>         }
-<a class="jxr_linenumber" name="182" href="#182">182</a>     }
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * Test that if a client tries to make a request without handshaking, it will be disconnected.</em>
-<a class="jxr_linenumber" name="186" href="#186">186</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="187" href="#187">187</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testHandshakeBetweenOldClientAndCurrentServer() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="165" href="#165">165</a>         List&lt;Future&lt;Long&gt;&gt; futures = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="166" href="#166">166</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> s : startTimestamps) {
+<a class="jxr_linenumber" name="167" href="#167">167</a>             futures.add(client.commit(s, Sets.&lt;CellId&gt;newHashSet()));
+<a class="jxr_linenumber" name="168" href="#168">168</a>         }
+<a class="jxr_linenumber" name="169" href="#169">169</a>         TSOClientAccessor.closeChannel(client);
+<a class="jxr_linenumber" name="170" href="#170">170</a> 
+<a class="jxr_linenumber" name="171" href="#171">171</a>         <strong class="jxr_keyword">for</strong> (Future&lt;Long&gt; f : futures) {
+<a class="jxr_linenumber" name="172" href="#172">172</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="173" href="#173">173</a>                 f.get();
+<a class="jxr_linenumber" name="174" href="#174">174</a>                 fail(<span class="jxr_string">"Shouldn't be able to complete"</span>);
+<a class="jxr_linenumber" name="175" href="#175">175</a>             } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
+<a class="jxr_linenumber" name="176" href="#176">176</a>                 assertTrue(ee.getCause() instanceof ServiceUnavailableException,
+<a class="jxr_linenumber" name="177" href="#177">177</a>                            <span class="jxr_string">"Should be a service unavailable exception"</span>);
+<a class="jxr_linenumber" name="178" href="#178">178</a>             }
+<a class="jxr_linenumber" name="179" href="#179">179</a>         }
+<a class="jxr_linenumber" name="180" href="#180">180</a>     }
+<a class="jxr_linenumber" name="181" href="#181">181</a> 
+<a class="jxr_linenumber" name="182" href="#182">182</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * Test that if a client tries to make a request without handshaking, it will be disconnected.</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="185" href="#185">185</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="186" href="#186">186</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testHandshakeBetweenOldClientAndCurrentServer() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="187" href="#187">187</a> 
+<a class="jxr_linenumber" name="188" href="#188">188</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientRaw.html">TSOClientRaw</a> raw = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientRaw.html">TSOClientRaw</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
 <a class="jxr_linenumber" name="189" href="#189">189</a> 
-<a class="jxr_linenumber" name="190" href="#190">190</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientRaw.html">TSOClientRaw</a> raw = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientRaw.html">TSOClientRaw</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="191" href="#191">191</a> 
-<a class="jxr_linenumber" name="192" href="#192">192</a>         TSOProto.Request request = TSOProto.Request.newBuilder()
-<a class="jxr_linenumber" name="193" href="#193">193</a>                 .setTimestampRequest(TSOProto.TimestampRequest.newBuilder().build())
-<a class="jxr_linenumber" name="194" href="#194">194</a>                 .build();
-<a class="jxr_linenumber" name="195" href="#195">195</a>         raw.write(request);
-<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="197" href="#197">197</a>             raw.getResponse().get();
-<a class="jxr_linenumber" name="198" href="#198">198</a>             fail(<span class="jxr_string">"Channel should be closed"</span>);
-<a class="jxr_linenumber" name="199" href="#199">199</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="200" href="#200">200</a>             assertEquals(ee.getCause().getClass(), ConnectionException.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"Should be channel closed exception"</span>);
-<a class="jxr_linenumber" name="201" href="#201">201</a>         }
-<a class="jxr_linenumber" name="202" href="#202">202</a>         raw.close();
+<a class="jxr_linenumber" name="190" href="#190">190</a>         TSOProto.Request request = TSOProto.Request.newBuilder()
+<a class="jxr_linenumber" name="191" href="#191">191</a>                 .setTimestampRequest(TSOProto.TimestampRequest.newBuilder().build())
+<a class="jxr_linenumber" name="192" href="#192">192</a>                 .build();
+<a class="jxr_linenumber" name="193" href="#193">193</a>         raw.write(request);
+<a class="jxr_linenumber" name="194" href="#194">194</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="195" href="#195">195</a>             raw.getResponse().get();
+<a class="jxr_linenumber" name="196" href="#196">196</a>             fail(<span class="jxr_string">"Channel should be closed"</span>);
+<a class="jxr_linenumber" name="197" href="#197">197</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
+<a class="jxr_linenumber" name="198" href="#198">198</a>             assertEquals(ee.getCause().getClass(), ConnectionException.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"Should be channel closed exception"</span>);
+<a class="jxr_linenumber" name="199" href="#199">199</a>         }
+<a class="jxr_linenumber" name="200" href="#200">200</a>         raw.close();
+<a class="jxr_linenumber" name="201" href="#201">201</a> 
+<a class="jxr_linenumber" name="202" href="#202">202</a>     }
 <a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a>     }
-<a class="jxr_linenumber" name="205" href="#205">205</a> 
+<a class="jxr_linenumber" name="204" href="#204">204</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="205" href="#205">205</a>     <em class="jxr_comment">// Test duplicate commits</em>
 <a class="jxr_linenumber" name="206" href="#206">206</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="207" href="#207">207</a>     <em class="jxr_comment">// Test duplicate commits</em>
-<a class="jxr_linenumber" name="208" href="#208">208</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="209" href="#209">209</a> 
-<a class="jxr_linenumber" name="210" href="#210">210</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * This tests the case where messages arrive at the TSO out of order. This can happen in the case</em>
-<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * the channel get dropped and the retry is done in a new channel. However, the TSO will respond with</em>
-<a class="jxr_linenumber" name="213" href="#213">213</a> <em class="jxr_javadoccomment">     * aborted to the original message because the retry was already committed and it would be prohibitively</em>
-<a class="jxr_linenumber" name="214" href="#214">214</a> <em class="jxr_javadoccomment">     * expensive to check all non-retry requests to see if they are already committed. For this reason</em>
-<a class="jxr_linenumber" name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * a client must ensure that if it is sending a retry due to a socket error, the previous channel</em>
-<a class="jxr_linenumber" name="216" href="#216">216</a> <em class="jxr_javadoccomment">     * must be entirely closed so that it will not actually receive the abort response. TCP guarantees</em>
-<a class="jxr_linenumber" name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * that this doesn't happen in non-socket error cases.</em>
-<a class="jxr_linenumber" name="218" href="#218">218</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="219" href="#219">219</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="220" href="#220">220</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="221" href="#221">221</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOutOfOrderMessages() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="222" href="#222">222</a> 
-<a class="jxr_linenumber" name="223" href="#223">223</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="224" href="#224">224</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="207" href="#207">207</a> 
+<a class="jxr_linenumber" name="208" href="#208">208</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="209" href="#209">209</a> <em class="jxr_javadoccomment">     * This tests the case where messages arrive at the TSO out of order. This can happen in the case</em>
+<a class="jxr_linenumber" name="210" href="#210">210</a> <em class="jxr_javadoccomment">     * the channel get dropped and the retry is done in a new channel. However, the TSO will respond with</em>
+<a class="jxr_linenumber" name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * aborted to the original message because the retry was already committed and it would be prohibitively</em>
+<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * expensive to check all non-retry requests to see if they are already committed. For this reason</em>
+<a class="jxr_linenumber" name="213" href="#213">213</a> <em class="jxr_javadoccomment">     * a client must ensure that if it is sending a retry due to a socket error, the previous channel</em>
+<a class="jxr_linenumber" name="214" href="#214">214</a> <em class="jxr_javadoccomment">     * must be entirely closed so that it will not actually receive the abort response. TCP guarantees</em>
+<a class="jxr_linenumber" name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * that this doesn't happen in non-socket error cases.</em>
+<a class="jxr_linenumber" name="216" href="#216">216</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="217" href="#217">217</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="218" href="#218">218</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="219" href="#219">219</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOutOfOrderMessages() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="220" href="#220">220</a> 
+<a class="jxr_linenumber" name="221" href="#221">221</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="222" href="#222">222</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="223" href="#223">223</a> 
+<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
 <a class="jxr_linenumber" name="225" href="#225">225</a> 
-<a class="jxr_linenumber" name="226" href="#226">226</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="227" href="#227">227</a> 
-<a class="jxr_linenumber" name="228" href="#228">228</a>         TSOProto.Response response1 = clientOneShot.makeRequest(createCommitRequest(ts1, <strong class="jxr_keyword">true</strong>, testWriteSet));
-<a class="jxr_linenumber" name="229" href="#229">229</a>         TSOProto.Response response2 = clientOneShot.makeRequest(createCommitRequest(ts1, false, testWriteSet));
-<a class="jxr_linenumber" name="230" href="#230">230</a>         assertFalse(response1.getCommitResponse().getAborted(), <span class="jxr_string">"Retry Transaction should commit"</span>);
-<a class="jxr_linenumber" name="231" href="#231">231</a>         assertTrue(response2.getCommitResponse().getAborted(), <span class="jxr_string">"Transaction should abort"</span>);
-<a class="jxr_linenumber" name="232" href="#232">232</a>     }
-<a class="jxr_linenumber" name="233" href="#233">233</a> 
-<a class="jxr_linenumber" name="234" href="#234">234</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="235" href="#235">235</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDuplicateCommitAborting() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="238" href="#238">238</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="239" href="#239">239</a> 
-<a class="jxr_linenumber" name="240" href="#240">240</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="241" href="#241">241</a>         <strong class="jxr_keyword">long</strong> ts2 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="242" href="#242">242</a>         client.commit(ts2, testWriteSet).get();
-<a class="jxr_linenumber" name="243" href="#243">243</a> 
-<a class="jxr_linenumber" name="244" href="#244">244</a>         TSOProto.Response response1 = clientOneShot.makeRequest(createCommitRequest(ts1, false, testWriteSet));
-<a class="jxr_linenumber" name="245" href="#245">245</a>         TSOProto.Response response2 = clientOneShot.makeRequest(createCommitRequest(ts1, <strong class="jxr_keyword">true</strong>, testWriteSet));
-<a class="jxr_linenumber" name="246" href="#246">246</a>         assertTrue(response1.getCommitResponse().getAborted(), <span class="jxr_string">"Transaction should abort"</span>);
-<a class="jxr_linenumber" name="247" href="#247">247</a>         assertTrue(response2.getCommitResponse().getAborted(), <span class="jxr_string">"Retry commit should abort"</span>);
-<a class="jxr_linenumber" name="248" href="#248">248</a>     }
-<a class="jxr_linenumber" name="249" href="#249">249</a> 
-<a class="jxr_linenumber" name="250" href="#250">250</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="251" href="#251">251</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDuplicateCommit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="252" href="#252">252</a> 
-<a class="jxr_linenumber" name="253" href="#253">253</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="254" href="#254">254</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="226" href="#226">226</a>         TSOProto.Response response1 = clientOneShot.makeRequest(createCommitRequest(ts1, <strong class="jxr_keyword">true</strong>, testWriteSet));
+<a class="jxr_linenumber" name="227" href="#227">227</a>         TSOProto.Response response2 = clientOneShot.makeRequest(createCommitRequest(ts1, false, testWriteSet));
+<a class="jxr_linenumber" name="228" href="#228">228</a>         assertFalse(response1.getCommitResponse().getAborted(), <span class="jxr_string">"Retry Transaction should commit"</span>);
+<a class="jxr_linenumber" name="229" href="#229">229</a>         assertTrue(response2.getCommitResponse().getAborted(), <span class="jxr_string">"Transaction should abort"</span>);
+<a class="jxr_linenumber" name="230" href="#230">230</a>     }
+<a class="jxr_linenumber" name="231" href="#231">231</a> 
+<a class="jxr_linenumber" name="232" href="#232">232</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="233" href="#233">233</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDuplicateCommitAborting() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="234" href="#234">234</a> 
+<a class="jxr_linenumber" name="235" href="#235">235</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="236" href="#236">236</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="237" href="#237">237</a> 
+<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="239" href="#239">239</a>         <strong class="jxr_keyword">long</strong> ts2 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="240" href="#240">240</a>         client.commit(ts2, testWriteSet).get();
+<a class="jxr_linenumber" name="241" href="#241">241</a> 
+<a class="jxr_linenumber" name="242" href="#242">242</a>         TSOProto.Response response1 = clientOneShot.makeRequest(createCommitRequest(ts1, false, testWriteSet));
+<a class="jxr_linenumber" name="243" href="#243">243</a>         TSOProto.Response response2 = clientOneShot.makeRequest(createCommitRequest(ts1, <strong class="jxr_keyword">true</strong>, testWriteSet));
+<a class="jxr_linenumber" name="244" href="#244">244</a>         assertTrue(response1.getCommitResponse().getAborted(), <span class="jxr_string">"Transaction should abort"</span>);
+<a class="jxr_linenumber" name="245" href="#245">245</a>         assertTrue(response2.getCommitResponse().getAborted(), <span class="jxr_string">"Retry commit should abort"</span>);
+<a class="jxr_linenumber" name="246" href="#246">246</a>     }
+<a class="jxr_linenumber" name="247" href="#247">247</a> 
+<a class="jxr_linenumber" name="248" href="#248">248</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="249" href="#249">249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDuplicateCommit() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="250" href="#250">250</a> 
+<a class="jxr_linenumber" name="251" href="#251">251</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="252" href="#252">252</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="253" href="#253">253</a> 
+<a class="jxr_linenumber" name="254" href="#254">254</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
 <a class="jxr_linenumber" name="255" href="#255">255</a> 
-<a class="jxr_linenumber" name="256" href="#256">256</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="257" href="#257">257</a> 
-<a class="jxr_linenumber" name="258" href="#258">258</a>         TSOProto.Response response1 = clientOneShot.makeRequest(createCommitRequest(ts1, false, testWriteSet));
-<a class="jxr_linenumber" name="259" href="#259">259</a>         TSOProto.Response response2 = clientOneShot.makeRequest(createCommitRequest(ts1, <strong class="jxr_keyword">true</strong>, testWriteSet));
-<a class="jxr_linenumber" name="260" href="#260">260</a>         assertEquals(response2.getCommitResponse().getCommitTimestamp(),
-<a class="jxr_linenumber" name="261" href="#261">261</a>                      response1.getCommitResponse().getCommitTimestamp(),
-<a class="jxr_linenumber" name="262" href="#262">262</a>                      <span class="jxr_string">"Commit timestamp should be the same"</span>);
-<a class="jxr_linenumber" name="263" href="#263">263</a>     }
-<a class="jxr_linenumber" name="264" href="#264">264</a> 
+<a class="jxr_linenumber" name="256" href="#256">256</a>         TSOProto.Response response1 = clientOneShot.makeRequest(createCommitRequest(ts1, false, testWriteSet));
+<a class="jxr_linenumber" name="257" href="#257">257</a>         TSOProto.Response response2 = clientOneShot.makeRequest(createCommitRequest(ts1, <strong class="jxr_keyword">true</strong>, testWriteSet));
+<a class="jxr_linenumber" name="258" href="#258">258</a>         assertEquals(response2.getCommitResponse().getCommitTimestamp(),
+<a class="jxr_linenumber" name="259" href="#259">259</a>                      response1.getCommitResponse().getCommitTimestamp(),
+<a class="jxr_linenumber" name="260" href="#260">260</a>                      <span class="jxr_string">"Commit timestamp should be the same"</span>);
+<a class="jxr_linenumber" name="261" href="#261">261</a>     }
+<a class="jxr_linenumber" name="262" href="#262">262</a> 
+<a class="jxr_linenumber" name="263" href="#263">263</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="264" href="#264">264</a>     <em class="jxr_comment">// Test TSOClient retry behaviour</em>
 <a class="jxr_linenumber" name="265" href="#265">265</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="266" href="#266">266</a>     <em class="jxr_comment">// Test TSOClient retry behaviour</em>
-<a class="jxr_linenumber" name="267" href="#267">267</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="268" href="#268">268</a> 
-<a class="jxr_linenumber" name="269" href="#269">269</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="270" href="#270">270</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitCanSucceedWhenChannelDisconnected() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="266" href="#266">266</a> 
+<a class="jxr_linenumber" name="267" href="#267">267</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="268" href="#268">268</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitCanSucceedWhenChannelDisconnected() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="269" href="#269">269</a> 
+<a class="jxr_linenumber" name="270" href="#270">270</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
 <a class="jxr_linenumber" name="271" href="#271">271</a> 
-<a class="jxr_linenumber" name="272" href="#272">272</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="273" href="#273">273</a> 
-<a class="jxr_linenumber" name="274" href="#274">274</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="275" href="#275">275</a>         pausableTSOracle.pause();
-<a class="jxr_linenumber" name="276" href="#276">276</a>         TSOFuture&lt;Long&gt; future = client.commit(ts1, testWriteSet);
-<a class="jxr_linenumber" name="277" href="#277">277</a>         TSOClientAccessor.closeChannel(client);
-<a class="jxr_linenumber" name="278" href="#278">278</a>         pausableTSOracle.resume();
-<a class="jxr_linenumber" name="279" href="#279">279</a>         future.get();
+<a class="jxr_linenumber" name="272" href="#272">272</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="273" href="#273">273</a>         pausableTSOracle.pause();
+<a class="jxr_linenumber" name="274" href="#274">274</a>         TSOFuture&lt;Long&gt; future = client.commit(ts1, testWriteSet);
+<a class="jxr_linenumber" name="275" href="#275">275</a>         TSOClientAccessor.closeChannel(client);
+<a class="jxr_linenumber" name="276" href="#276">276</a>         pausableTSOracle.resume();
+<a class="jxr_linenumber" name="277" href="#277">277</a>         future.get();
+<a class="jxr_linenumber" name="278" href="#278">278</a> 
+<a class="jxr_linenumber" name="279" href="#279">279</a>     }
 <a class="jxr_linenumber" name="280" href="#280">280</a> 
-<a class="jxr_linenumber" name="281" href="#281">281</a>     }
-<a class="jxr_linenumber" name="282" href="#282">282</a> 
-<a class="jxr_linenumber" name="283" href="#283">283</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="284" href="#284">284</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitCanSucceedWithMultipleTimeouts() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="285" href="#285">285</a> 
-<a class="jxr_linenumber" name="286" href="#286">286</a>         OmidClientConfiguration testTSOClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="287" href="#287">287</a>         testTSOClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="288" href="#288">288</a>         testTSOClientConf.setRequestTimeoutInMs(100);
-<a class="jxr_linenumber" name="289" href="#289">289</a>         testTSOClientConf.setRequestMaxRetries(10000);
-<a class="jxr_linenumber" name="290" href="#290">290</a>         TSOClient client = TSOClient.newInstance(testTSOClientConf);
-<a class="jxr_linenumber" name="291" href="#291">291</a> 
-<a class="jxr_linenumber" name="292" href="#292">292</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="293" href="#293">293</a>         pausableTSOracle.pause();
-<a class="jxr_linenumber" name="294" href="#294">294</a>         TSOFuture&lt;Long&gt; future = client.commit(ts1, testWriteSet);
-<a class="jxr_linenumber" name="295" href="#295">295</a>         TimeUnit.SECONDS.sleep(1);
-<a class="jxr_linenumber" name="296" href="#296">296</a>         pausableTSOracle.resume();
-<a class="jxr_linenumber" name="297" href="#297">297</a>         future.get();
-<a class="jxr_linenumber" name="298" href="#298">298</a>     }
-<a class="jxr_linenumber" name="299" href="#299">299</a> 
-<a class="jxr_linenumber" name="300" href="#300">300</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="301" href="#301">301</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitFailWhenTSOIsDown() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="302" href="#302">302</a> 
-<a class="jxr_linenumber" name="303" href="#303">303</a>         OmidClientConfiguration testTSOClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="304" href="#304">304</a>         testTSOClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="305" href="#305">305</a>         testTSOClientConf.setRequestTimeoutInMs(100);
-<a class="jxr_linenumber" name="306" href="#306">306</a>         testTSOClientConf.setRequestMaxRetries(10);
-<a class="jxr_linenumber" name="307" href="#307">307</a>         TSOClient client = TSOClient.newInstance(testTSOClientConf);
-<a class="jxr_linenumber" name="308" href="#308">308</a> 
-<a class="jxr_linenumber" name="309" href="#309">309</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="310" href="#310">310</a>         pausableTSOracle.pause();
-<a class="jxr_linenumber" name="311" href="#311">311</a>         TSOFuture&lt;Long&gt; future = client.commit(ts1, testWriteSet);
-<a class="jxr_linenumber" name="312" href="#312">312</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="313" href="#313">313</a>             future.get();
-<a class="jxr_linenumber" name="314" href="#314">314</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
-<a class="jxr_linenumber" name="315" href="#315">315</a>             assertEquals(e.getCause().getClass(), ServiceUnavailableException.<strong class="jxr_keyword">class</strong>,
-<a class="jxr_linenumber" name="316" href="#316">316</a>                          <span class="jxr_string">"Should be a ServiceUnavailableExeption"</span>);
-<a class="jxr_linenumber" name="317" href="#317">317</a>         }
+<a class="jxr_linenumber" name="281" href="#281">281</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="282" href="#282">282</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitCanSucceedWithMultipleTimeouts() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="283" href="#283">283</a> 
+<a class="jxr_linenumber" name="284" href="#284">284</a>         OmidClientConfiguration testTSOClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="285" href="#285">285</a>         testTSOClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="286" href="#286">286</a>         testTSOClientConf.setRequestTimeoutInMs(100);
+<a class="jxr_linenumber" name="287" href="#287">287</a>         testTSOClientConf.setRequestMaxRetries(10000);
+<a class="jxr_linenumber" name="288" href="#288">288</a>         TSOClient client = TSOClient.newInstance(testTSOClientConf);
+<a class="jxr_linenumber" name="289" href="#289">289</a> 
+<a class="jxr_linenumber" name="290" href="#290">290</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="291" href="#291">291</a>         pausableTSOracle.pause();
+<a class="jxr_linenumber" name="292" href="#292">292</a>         TSOFuture&lt;Long&gt; future = client.commit(ts1, testWriteSet);
+<a class="jxr_linenumber" name="293" href="#293">293</a>         TimeUnit.SECONDS.sleep(1);
+<a class="jxr_linenumber" name="294" href="#294">294</a>         pausableTSOracle.resume();
+<a class="jxr_linenumber" name="295" href="#295">295</a>         future.get();
+<a class="jxr_linenumber" name="296" href="#296">296</a>     }
+<a class="jxr_linenumber" name="297" href="#297">297</a> 
+<a class="jxr_linenumber" name="298" href="#298">298</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="299" href="#299">299</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitFailWhenTSOIsDown() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="300" href="#300">300</a> 
+<a class="jxr_linenumber" name="301" href="#301">301</a>         OmidClientConfiguration testTSOClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="302" href="#302">302</a>         testTSOClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="303" href="#303">303</a>         testTSOClientConf.setRequestTimeoutInMs(100);
+<a class="jxr_linenumber" name="304" href="#304">304</a>         testTSOClientConf.setRequestMaxRetries(10);
+<a class="jxr_linenumber" name="305" href="#305">305</a>         TSOClient client = TSOClient.newInstance(testTSOClientConf);
+<a class="jxr_linenumber" name="306" href="#306">306</a> 
+<a class="jxr_linenumber" name="307" href="#307">307</a>         <strong class="jxr_keyword">long</strong> ts1 = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="308" href="#308">308</a>         pausableTSOracle.pause();
+<a class="jxr_linenumber" name="309" href="#309">309</a>         TSOFuture&lt;Long&gt; future = client.commit(ts1, testWriteSet);
+<a class="jxr_linenumber" name="310" href="#310">310</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="311" href="#311">311</a>             future.get();
+<a class="jxr_linenumber" name="312" href="#312">312</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException e) {
+<a class="jxr_linenumber" name="313" href="#313">313</a>             assertEquals(e.getCause().getClass(), ServiceUnavailableException.<strong class="jxr_keyword">class</strong>,
+<a class="jxr_linenumber" name="314" href="#314">314</a>                          <span class="jxr_string">"Should be a ServiceUnavailableExeption"</span>);
+<a class="jxr_linenumber" name="315" href="#315">315</a>         }
+<a class="jxr_linenumber" name="316" href="#316">316</a> 
+<a class="jxr_linenumber" name="317" href="#317">317</a>     }
 <a class="jxr_linenumber" name="318" href="#318">318</a> 
-<a class="jxr_linenumber" name="319" href="#319">319</a>     }
-<a class="jxr_linenumber" name="320" href="#320">320</a> 
-<a class="jxr_linenumber" name="321" href="#321">321</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="322" href="#322">322</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestampRequestSucceedWithMultipleTimeouts() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="323" href="#323">323</a> 
-<a class="jxr_linenumber" name="324" href="#324">324</a>         OmidClientConfiguration testTSOClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
-<a class="jxr_linenumber" name="325" href="#325">325</a>         testTSOClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="326" href="#326">326</a>         testTSOClientConf.setRequestTimeoutInMs(100);
-<a class="jxr_linenumber" name="327" href="#327">327</a>         testTSOClientConf.setRequestMaxRetries(10000);
-<a class="jxr_linenumber" name="328" href="#328">328</a>         TSOClient client = TSOClient.newInstance(testTSOClientConf);
-<a class="jxr_linenumber" name="329" href="#329">329</a> 
-<a class="jxr_linenumber" name="330" href="#330">330</a>         pausableTSOracle.pause();
-<a class="jxr_linenumber" name="331" href="#331">331</a>         Future&lt;Long&gt; future = client.getNewStartTimestamp();
-<a class="jxr_linenumber" name="332" href="#332">332</a>         TimeUnit.SECONDS.sleep(1);
-<a class="jxr_linenumber" name="333" href="#333">333</a>         pausableTSOracle.resume();
-<a class="jxr_linenumber" name="334" href="#334">334</a>         future.get();
+<a class="jxr_linenumber" name="319" href="#319">319</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="320" href="#320">320</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestampRequestSucceedWithMultipleTimeouts() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="321" href="#321">321</a> 
+<a class="jxr_linenumber" name="322" href="#322">322</a>         OmidClientConfiguration testTSOClientConf = <strong class="jxr_keyword">new</strong> OmidClientConfiguration();
+<a class="jxr_linenumber" name="323" href="#323">323</a>         testTSOClientConf.setConnectionString(TSO_SERVER_HOST + <span class="jxr_string">":"</span> + TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="324" href="#324">324</a>         testTSOClientConf.setRequestTimeoutInMs(100);
+<a class="jxr_linenumber" name="325" href="#325">325</a>         testTSOClientConf.setRequestMaxRetries(10000);
+<a class="jxr_linenumber" name="326" href="#326">326</a>         TSOClient client = TSOClient.newInstance(testTSOClientConf);
+<a class="jxr_linenumber" name="327" href="#327">327</a> 
+<a class="jxr_linenumber" name="328" href="#328">328</a>         pausableTSOracle.pause();
+<a class="jxr_linenumber" name="329" href="#329">329</a>         Future&lt;Long&gt; future = client.getNewStartTimestamp();
+<a class="jxr_linenumber" name="330" href="#330">330</a>         TimeUnit.SECONDS.sleep(1);
+<a class="jxr_linenumber" name="331" href="#331">331</a>         pausableTSOracle.resume();
+<a class="jxr_linenumber" name="332" href="#332">332</a>         future.get();
+<a class="jxr_linenumber" name="333" href="#333">333</a> 
+<a class="jxr_linenumber" name="334" href="#334">334</a>     }
 <a class="jxr_linenumber" name="335" href="#335">335</a> 
-<a class="jxr_linenumber" name="336" href="#336">336</a>     }
-<a class="jxr_linenumber" name="337" href="#337">337</a> 
-<a class="jxr_linenumber" name="338" href="#338">338</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="339" href="#339">339</a>     <em class="jxr_comment">// The next 3 tests are similar to the ones in TestRetryProcessor but checking the result on the TSOClient side</em>
-<a class="jxr_linenumber" name="340" href="#340">340</a>     <em class="jxr_comment">// (They exercise the communication protocol) TODO Remove???</em>
-<a class="jxr_linenumber" name="341" href="#341">341</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="342" href="#342">342</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="343" href="#343">343</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitTimestampPresentInCommitTableReturnsCommit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="344" href="#344">344</a> 
-<a class="jxr_linenumber" name="345" href="#345">345</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="346" href="#346">346</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="336" href="#336">336</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="337" href="#337">337</a>     <em class="jxr_comment">// The next 3 tests are similar to the ones in TestRetryProcessor but checking the result on the TSOClient side</em>
+<a class="jxr_linenumber" name="338" href="#338">338</a>     <em class="jxr_comment">// (They exercise the communication protocol) TODO Remove???</em>
+<a class="jxr_linenumber" name="339" href="#339">339</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="340" href="#340">340</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="341" href="#341">341</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitTimestampPresentInCommitTableReturnsCommit() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="342" href="#342">342</a> 
+<a class="jxr_linenumber" name="343" href="#343">343</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="344" href="#344">344</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="345" href="#345">345</a> 
+<a class="jxr_linenumber" name="346" href="#346">346</a>         <strong class="jxr_keyword">long</strong> tx1ST = client.getNewStartTimestamp().get();
 <a class="jxr_linenumber" name="347" href="#347">347</a> 
-<a class="jxr_linenumber" name="348" href="#348">348</a>         <strong class="jxr_keyword">long</strong> tx1ST = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="349" href="#349">349</a> 
-<a class="jxr_linenumber" name="350" href="#350">350</a>         clientOneShot.makeRequest(createRetryCommitRequest(tx1ST));
-<a class="jxr_linenumber" name="351" href="#351">351</a>         TSOProto.Response response = clientOneShot.makeRequest(createRetryCommitRequest(tx1ST));
-<a class="jxr_linenumber" name="352" href="#352">352</a>         assertFalse(response.getCommitResponse().getAborted(), <span class="jxr_string">"Transaction should be committed"</span>);
-<a class="jxr_linenumber" name="353" href="#353">353</a>         assertEquals(response.getCommitResponse().getCommitTimestamp(), tx1ST + AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN);
-<a class="jxr_linenumber" name="354" href="#354">354</a>     }
-<a class="jxr_linenumber" name="355" href="#355">355</a> 
-<a class="jxr_linenumber" name="356" href="#356">356</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="357" href="#357">357</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testInvalidCommitTimestampPresentInCommitTableReturnsAbort() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="358" href="#358">358</a> 
-<a class="jxr_linenumber" name="359" href="#359">359</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="360" href="#360">360</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
-<a class="jxr_linenumber" name="361" href="#361">361</a> 
-<a class="jxr_linenumber" name="362" href="#362">362</a>         <strong class="jxr_keyword">long</strong> tx1ST = client.getNewStartTimestamp().get();
-<a class="jxr_linenumber" name="363" href="#363">363</a>         <em class="jxr_comment">// Invalidate the transaction</em>
-<a class="jxr_linenumber" name="364" href="#364">364</a>         commitTable.getClient().tryInvalidateTransaction(tx1ST);
-<a class="jxr_linenumber" name="365" href="#365">365</a> 
-<a class="jxr_linenumber" name="366" href="#366">366</a>         clientOneShot.makeRequest(createRetryCommitRequest(tx1ST));
-<a class="jxr_linenumber" name="367" href="#367">367</a>         TSOProto.Response response = clientOneShot.makeRequest(createRetryCommitRequest(tx1ST));
-<a class="jxr_linenumber" name="368" href="#368">368</a>         assertTrue(response.getCommitResponse().getAborted(), <span class="jxr_string">"Transaction should be aborted"</span>);
-<a class="jxr_linenumber" name="369" href="#369">369</a>         assertEquals(response.getCommitResponse().getCommitTimestamp(), 0);
-<a class="jxr_linenumber" name="370" href="#370">370</a>     }
-<a class="jxr_linenumber" name="371" href="#371">371</a> 
-<a class="jxr_linenumber" name="372" href="#372">372</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="373" href="#373">373</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitTimestampNotPresentInCommitTableReturnsAnAbort() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="374" href="#374">374</a> 
-<a class="jxr_linenumber" name="375" href="#375">375</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
-<a class="jxr_linenumber" name="376" href="#376">376</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="348" href="#348">348</a>         clientOneShot.makeRequest(createRetryCommitRequest(tx1ST));
+<a class="jxr_linenumber" name="349" href="#349">349</a>         TSOProto.Response response = clientOneShot.makeRequest(createRetryCommitRequest(tx1ST));
+<a class="jxr_linenumber" name="350" href="#350">350</a>         assertFalse(response.getCommitResponse().getAborted(), <span class="jxr_string">"Transaction should be committed"</span>);
+<a class="jxr_linenumber" name="351" href="#351">351</a>         assertEquals(response.getCommitResponse().getCommitTimestamp(), tx1ST + 1);
+<a class="jxr_linenumber" name="352" href="#352">352</a>     }
+<a class="jxr_linenumber" name="353" href="#353">353</a> 
+<a class="jxr_linenumber" name="354" href="#354">354</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="355" href="#355">355</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testInvalidCommitTimestampPresentInCommitTableReturnsAbort() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="356" href="#356">356</a> 
+<a class="jxr_linenumber" name="357" href="#357">357</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="358" href="#358">358</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="359" href="#359">359</a> 
+<a class="jxr_linenumber" name="360" href="#360">360</a>         <strong class="jxr_keyword">long</strong> tx1ST = client.getNewStartTimestamp().get();
+<a class="jxr_linenumber" name="361" href="#361">361</a>         <em class="jxr_comment">// Invalidate the transaction</em>
+<a class="jxr_linenumber" name="362" href="#362">362</a>         commitTable.getClient().tryInvalidateTransaction(tx1ST);
+<a class="jxr_linenumber" name="363" href="#363">363</a> 
+<a class="jxr_linenumber" name="364" href="#364">364</a>         clientOneShot.makeRequest(createRetryCommitRequest(tx1ST));
+<a class="jxr_linenumber" name="365" href="#365">365</a>         TSOProto.Response response = clientOneShot.makeRequest(createRetryCommitRequest(tx1ST));
+<a class="jxr_linenumber" name="366" href="#366">366</a>         assertTrue(response.getCommitResponse().getAborted(), <span class="jxr_string">"Transaction should be aborted"</span>);
+<a class="jxr_linenumber" name="367" href="#367">367</a>         assertEquals(response.getCommitResponse().getCommitTimestamp(), 0);
+<a class="jxr_linenumber" name="368" href="#368">368</a>     }
+<a class="jxr_linenumber" name="369" href="#369">369</a> 
+<a class="jxr_linenumber" name="370" href="#370">370</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="371" href="#371">371</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitTimestampNotPresentInCommitTableReturnsAnAbort() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="372" href="#372">372</a> 
+<a class="jxr_linenumber" name="373" href="#373">373</a>         TSOClient client = TSOClient.newInstance(tsoClientConf);
+<a class="jxr_linenumber" name="374" href="#374">374</a>         <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a> clientOneShot = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/omid/tso/client/TSOClientOneShot.html">TSOClientOneShot</a>(TSO_SERVER_HOST, TSO_SERVER_PORT);
+<a class="jxr_linenumber" name="375" href="#375">375</a> 


<TRUNCATED>


[22/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/client/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/client/package-frame.html b/xref-test/org/apache/omid/tso/client/package-frame.html
index ccb4ca5..70f69dc 100644
--- a/xref-test/org/apache/omid/tso/client/package-frame.html
+++ b/xref-test/org/apache/omid/tso/client/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso.client</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso.client</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -46,9 +46,6 @@
             	<a href="TestTSOClientResponseHandling.html" target="classFrame">TestTSOClientResponseHandling</a>
           	</li>
           	          	<li>
-            	<a href="TestTSOClientRowAndCellLevelConflict.html" target="classFrame">TestTSOClientRowAndCellLevelConflict</a>
-          	</li>
-          	          	<li>
             	<a href="TestUnconnectedTSOClient.html" target="classFrame">TestUnconnectedTSOClient</a>
           	</li>
           	      	</ul>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/client/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/client/package-summary.html b/xref-test/org/apache/omid/tso/client/package-summary.html
index d1c01a0..5b2c9c7 100644
--- a/xref-test/org/apache/omid/tso/client/package-summary.html
+++ b/xref-test/org/apache/omid/tso/client/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso.client</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso.client</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -87,11 +87,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TestTSOClientRowAndCellLevelConflict.html" target="classFrame">TestTSOClientRowAndCellLevelConflict</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="TestUnconnectedTSOClient.html" target="classFrame">TestUnconnectedTSOClient</a>
               		</td>
             	</tr>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/package-frame.html b/xref-test/org/apache/omid/tso/package-frame.html
index 0a19763..6b1ae6d 100644
--- a/xref-test/org/apache/omid/tso/package-frame.html
+++ b/xref-test/org/apache/omid/tso/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -52,6 +52,9 @@
             	<a href="TestBatch.html" target="classFrame">TestBatch</a>
           	</li>
           	          	<li>
+            	<a href="TestBatchPool.html" target="classFrame">TestBatchPool</a>
+          	</li>
+          	          	<li>
             	<a href="TestLeaseManager.html" target="classFrame">TestLeaseManager</a>
           	</li>
           	          	<li>
@@ -85,9 +88,6 @@
             	<a href="TestTimestampOracle.html" target="classFrame">TestTimestampOracle</a>
           	</li>
           	          	<li>
-            	<a href="TestWorldTimeOracle.html" target="classFrame">TestWorldTimeOracle</a>
-          	</li>
-          	          	<li>
             	<a href="ProgrammableTSOServer.html" target="classFrame">TimestampResponse</a>
           	</li>
           	      	</ul>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/package-summary.html b/xref-test/org/apache/omid/tso/package-summary.html
index d0b596d..a617d7d 100644
--- a/xref-test/org/apache/omid/tso/package-summary.html
+++ b/xref-test/org/apache/omid/tso/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.tso</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.tso</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -97,6 +97,11 @@
             	</tr>
 				            	<tr>
               		<td>
+                		<a href="TestBatchPool.html" target="classFrame">TestBatchPool</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
                 		<a href="TestLeaseManager.html" target="classFrame">TestLeaseManager</a>
               		</td>
             	</tr>
@@ -152,11 +157,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="TestWorldTimeOracle.html" target="classFrame">TestWorldTimeOracle</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="ProgrammableTSOServer.html" target="classFrame">TimestampResponse</a>
               		</td>
             	</tr>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/statemachine/package-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/statemachine/package-frame.html b/xref-test/org/apache/statemachine/package-frame.html
index 74ada40..c2e4364 100644
--- a/xref-test/org/apache/statemachine/package-frame.html
+++ b/xref-test/org/apache/statemachine/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.statemachine</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.statemachine</title>
 		<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/statemachine/package-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/statemachine/package-summary.html b/xref-test/org/apache/statemachine/package-summary.html
index 0a02c23..3ea6453 100644
--- a/xref-test/org/apache/statemachine/package-summary.html
+++ b/xref-test/org/apache/statemachine/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.statemachine</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.statemachine</title>
 		<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/overview-frame.html
----------------------------------------------------------------------
diff --git a/xref-test/overview-frame.html b/xref-test/overview-frame.html
index ea493b9..08a27b3 100644
--- a/xref-test/overview-frame.html
+++ b/xref-test/overview-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference</title>
 		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/overview-summary.html
----------------------------------------------------------------------
diff --git a/xref-test/overview-summary.html b/xref-test/overview-summary.html
index 1495c61..5615e1b 100644
--- a/xref-test/overview-summary.html
+++ b/xref-test/overview-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference</title>
 		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -24,7 +24,7 @@
 	        </ul>
       	</div>
 		
-		      	<h2>Omid 0.8.2.11-SNAPSHOT Reference</h2>
+		      	<h2>Omid 0.9.1.0-SNAPSHOT Reference</h2>
 
 		<table class="summary">
         	<thead>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/xref/allclasses-frame.html b/xref/allclasses-frame.html
index 82b4e27..a5df7de 100644
--- a/xref/allclasses-frame.html
+++ b/xref/allclasses-frame.html
@@ -27,15 +27,9 @@
 				<a href="org/apache/omid/tso/TimestampOracleImpl.html" target="classFrame">AllocateTimestampBatchTask</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/AttributeSetSnapshotFilter.html" target="classFrame">AttributeSetSnapshotFilter</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/committable/hbase/KeyGeneratorImplementations.html" target="classFrame">BadRandomKeyGenerator</a>
 			</li>
 						<li>
-				<a href="org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html" target="classFrame">BaseRegionObserver</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tso/client/TSOClient.html" target="classFrame">BaseState</a>
 			</li>
 						<li>
@@ -63,15 +57,12 @@
 				<a href="org/apache/omid/transaction/CellUtils.html" target="classFrame">CellGetter</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/tso/client/CellId.html" target="classFrame">CellId</a>
+				<a href="org/apache/omid/transaction/CellUtils.html" target="classFrame">CellId</a>
 			</li>
 						<li>
 				<a href="org/apache/omid/transaction/CellInfo.html" target="classFrame">CellInfo</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/CellSkipFilterBase.html" target="classFrame">CellSkipFilterBase</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/transaction/CellUtils.html" target="classFrame">CellUtils</a>
 			</li>
 						<li>
@@ -141,7 +132,7 @@
 				<a href="org/apache/omid/benchmarks/tso/RawTxRunner.html" target="classFrame">Committer</a>
 			</li>
 						<li>
-				<a href="org/apache/hadoop/hbase/regionserver/CompactorScanner.html" target="classFrame">CompactorScanner</a>
+				<a href="org/apache/omid/transaction/CompactorScanner.html" target="classFrame">CompactorScanner</a>
 			</li>
 						<li>
 				<a href="org/apache/omid/transaction/CompactorUtil.html" target="classFrame">CompactorUtil</a>
@@ -153,9 +144,6 @@
 				<a href="org/apache/omid/examples/ConfigurationExample.html" target="classFrame">ConfigurationExample</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/tso/client/OmidClientConfiguration.html" target="classFrame">ConflictDetectionLevel</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tso/client/OmidClientConfiguration.html" target="classFrame">ConnType</a>
 			</li>
 						<li>
@@ -213,9 +201,6 @@
 				<a href="org/apache/omid/tso/FatalExceptionHandler.html" target="classFrame">FatalExceptionHandler</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/tso/client/TSOClient.html" target="classFrame">FenceRequestTimeoutEvent</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tso/client/ForwardingTSOFuture.html" target="classFrame">ForwardingTSOFuture</a>
 			</li>
 						<li>
@@ -300,9 +285,6 @@
 				<a href="org/apache/omid/transaction/HRegionCellGetterAdapter.html" target="classFrame">HRegionCellGetterAdapter</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/HTableAccessWrapper.html" target="classFrame">HTableAccessWrapper</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tso/client/TSOClient.html" target="classFrame">Handler</a>
 			</li>
 						<li>
@@ -411,12 +393,6 @@
 				<a href="org/apache/omid/transaction/OmidCompactor.html" target="classFrame">OmidCompactor</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/OmidFilterBase.html" target="classFrame">OmidFilterBase</a>
-			</li>
-						<li>
-				<a href="org/apache/omid/transaction/OmidSnapshotFilter.html" target="classFrame">OmidSnapshotFilter</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tools/hbase/OmidTableManager.html" target="classFrame">OmidTableManager</a>
 			</li>
 						<li>
@@ -462,12 +438,15 @@
 				<a href="org/apache/omid/tso/client/TSOClient.html" target="classFrame">ReconnectEvent</a>
 			</li>
 						<li>
-				<a href="org/apache/hadoop/hbase/regionserver/RegionAccessWrapper.html" target="classFrame">RegionAccessWrapper</a>
+				<a href="org/apache/omid/ReflectionHelper.html" target="classFrame">ReflectionHelper</a>
 			</li>
 						<li>
 				<a href="org/apache/omid/committable/hbase/RegionSplitter.html" target="classFrame">RegionSplitter</a>
 			</li>
 						<li>
+				<a href="org/apache/omid/RegionWrapper.html" target="classFrame">RegionWrapper</a>
+			</li>
+						<li>
 				<a href="org/apache/omid/tso/ReplyProcessorImpl.html" target="classFrame">ReplyBatchEvent</a>
 			</li>
 						<li>
@@ -495,7 +474,7 @@
 				<a href="org/apache/omid/tso/client/TSOClient.html" target="classFrame">ResponseEvent</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/SnapshotFilterImpl.html" target="classFrame">ResultIterator</a>
+				<a href="org/apache/omid/transaction/TTable.html" target="classFrame">ResultIterator</a>
 			</li>
 						<li>
 				<a href="org/apache/omid/tso/RetryProcessorImpl.html" target="classFrame">RetryEvent</a>
@@ -516,6 +495,9 @@
 				<a href="org/apache/omid/tso/RuntimeExceptionPanicker.html" target="classFrame">RuntimeExceptionPanicker</a>
 			</li>
 						<li>
+				<a href="org/apache/hadoop/hbase/regionserver/ScannerContext.html" target="classFrame">ScannerContext</a>
+			</li>
+						<li>
 				<a href="org/apache/omid/benchmarks/utils/ScrambledZipfianGenerator.html" target="classFrame">ScrambledZipfianGenerator</a>
 			</li>
 						<li>
@@ -528,12 +510,6 @@
 				<a href="org/apache/omid/tso/client/ServiceUnavailableException.html" target="classFrame">ServiceUnavailableException</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/SnapshotFilter.html" target="classFrame">SnapshotFilter</a>
-			</li>
-						<li>
-				<a href="org/apache/omid/transaction/SnapshotFilterImpl.html" target="classFrame">SnapshotFilterImpl</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/examples/SnapshotIsolationExample.html" target="classFrame">SnapshotIsolationExample</a>
 			</li>
 						<li>
@@ -561,9 +537,6 @@
 				<a href="org/apache/omid/tso/SystemExitPanicker.html" target="classFrame">SystemExitPanicker</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/tso/TSOServerConfig.html" target="classFrame">TIMESTAMP_TYPE</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tso/TSOChannelHandler.html" target="classFrame">TSOChannelContext</a>
 			</li>
 						<li>
@@ -612,9 +585,6 @@
 				<a href="org/apache/omid/transaction/TTableCellGetterAdapter.html" target="classFrame">TTableCellGetterAdapter</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/TableAccessWrapper.html" target="classFrame">TableAccessWrapper</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/metrics/Timer.html" target="classFrame">Timer</a>
 			</li>
 						<li>
@@ -645,19 +615,13 @@
 				<a href="org/apache/omid/transaction/AbstractTransactionManager.html" target="classFrame">TransactionFactory</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/TransactionFilters.html" target="classFrame">TransactionFilters</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/transaction/TransactionManager.html" target="classFrame">TransactionManager</a>
 			</li>
 						<li>
 				<a href="org/apache/omid/transaction/TransactionManagerException.html" target="classFrame">TransactionManagerException</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/TransactionVisibilityFilterBase.html" target="classFrame">TransactionVisibilityFilterBase</a>
-			</li>
-						<li>
-				<a href="org/apache/omid/transaction/SnapshotFilterImpl.html" target="classFrame">TransactionalClientScanner</a>
+				<a href="org/apache/omid/transaction/TTable.html" target="classFrame">TransactionalClientScanner</a>
 			</li>
 						<li>
 				<a href="org/apache/omid/tso/TsoServerDaemon.html" target="classFrame">TsoServerDaemon</a>
@@ -678,9 +642,6 @@
 				<a href="org/apache/omid/tso/client/TSOClient.html" target="classFrame">UserEvent</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/transaction/AbstractTransaction.html" target="classFrame">VisibilityLevel</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/tso/VoidLeaseManagementModule.html" target="classFrame">VoidLeaseManagementModule</a>
 			</li>
 						<li>
@@ -690,9 +651,6 @@
 				<a href="org/apache/omid/tso/TSOServerConfig.html" target="classFrame">WAIT_STRATEGY</a>
 			</li>
 						<li>
-				<a href="org/apache/omid/tso/WorldClockOracleImpl.html" target="classFrame">WorldClockOracleImpl</a>
-			</li>
-						<li>
 				<a href="org/apache/omid/committable/InMemoryCommitTable.html" target="classFrame">Writer</a>
 			</li>
 						<li>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/index.html
----------------------------------------------------------------------
diff --git a/xref/index.html b/xref/index.html
index 2834caf..1061df8 100644
--- a/xref/index.html
+++ b/xref/index.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference</title>
 	</head>
     <frameset cols="20%,80%">
 		<frameset rows="30%,70%">

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/hadoop/hbase/regionserver/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/regionserver/package-frame.html b/xref/org/apache/hadoop/hbase/regionserver/package-frame.html
index a403909..eae84be 100644
--- a/xref/org/apache/hadoop/hbase/regionserver/package-frame.html
+++ b/xref/org/apache/hadoop/hbase/regionserver/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.hadoop.hbase.regionserver</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.hadoop.hbase.regionserver</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -16,10 +16,7 @@
 
       	<ul>
       		          	<li>
-            	<a href="CompactorScanner.html" target="classFrame">CompactorScanner</a>
-          	</li>
-          	          	<li>
-            	<a href="RegionAccessWrapper.html" target="classFrame">RegionAccessWrapper</a>
+            	<a href="ScannerContext.html" target="classFrame">ScannerContext</a>
           	</li>
           	      	</ul>
 

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/hadoop/hbase/regionserver/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/regionserver/package-summary.html b/xref/org/apache/hadoop/hbase/regionserver/package-summary.html
index c7f7823..bb36f1f 100644
--- a/xref/org/apache/hadoop/hbase/regionserver/package-summary.html
+++ b/xref/org/apache/hadoop/hbase/regionserver/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.hadoop.hbase.regionserver</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.hadoop.hbase.regionserver</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -37,12 +37,7 @@
         	<tbody>
         		            	<tr>
               		<td>
-                		<a href="CompactorScanner.html" target="classFrame">CompactorScanner</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
-                		<a href="RegionAccessWrapper.html" target="classFrame">RegionAccessWrapper</a>
+                		<a href="ScannerContext.html" target="classFrame">ScannerContext</a>
               		</td>
             	</tr>
 				        	</tbody>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/HBaseShims.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/HBaseShims.html b/xref/org/apache/omid/HBaseShims.html
index f057729..c32749a 100644
--- a/xref/org/apache/omid/HBaseShims.html
+++ b/xref/org/apache/omid/HBaseShims.html
@@ -27,79 +27,52 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellComparator;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.TableDescriptor;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.ObserverContext;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.filter.Filter;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegion;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegionServer;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.Region;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.Store;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegion;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegionServer;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.ScannerContext;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/omid/HBaseShims.html">HBaseShims</a> {
+<a class="jxr_linenumber" name="32" href="#32">32</a>  
+<a class="jxr_linenumber" name="33" href="#33">33</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setKeyValueSequenceId(KeyValue kv, <strong class="jxr_keyword">int</strong> sequenceId) {
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>          kv.setMvccVersion(sequenceId);
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>      }
 <a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/omid/RegionWrapper.html">RegionWrapper</a> getRegionCoprocessorRegion(RegionCoprocessorEnvironment env) {
 <a class="jxr_linenumber" name="40" href="#40">40</a>  
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/omid/HBaseShims.html">HBaseShims</a> {
+<a class="jxr_linenumber" name="41" href="#41">41</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/omid/RegionWrapper.html">RegionWrapper</a>(env.getRegion());
 <a class="jxr_linenumber" name="42" href="#42">42</a>  
-<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setKeyValueSequenceId(KeyValue kv, <strong class="jxr_keyword">int</strong> sequenceId) {
+<a class="jxr_linenumber" name="43" href="#43">43</a>      }
 <a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>          kv.setSequenceId(sequenceId);
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flushAllOnlineRegions(HRegionServer regionServer, TableName tableName) <strong class="jxr_keyword">throws</strong> IOException {
 <a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      }
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> Region getRegionCoprocessorRegion(RegionCoprocessorEnvironment env) {
+<a class="jxr_linenumber" name="47" href="#47">47</a>          <strong class="jxr_keyword">for</strong> (HRegion r : regionServer.getOnlineRegions(tableName)) {
+<a class="jxr_linenumber" name="48" href="#48">48</a>              r.flushcache();
+<a class="jxr_linenumber" name="49" href="#49">49</a>          }
 <a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>          <strong class="jxr_keyword">return</strong> env.getRegion();
+<a class="jxr_linenumber" name="51" href="#51">51</a>      }
 <a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>      }
+<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addFamilyToHTableDescriptor(HTableDescriptor tableDesc, HColumnDescriptor columnDesc) {
 <a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flushAllOnlineRegions(HRegionServer regionServer, TableName tableName)
-<a class="jxr_linenumber" name="56" href="#56">56</a>              <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>          <strong class="jxr_keyword">for</strong> (HRegion r : regionServer.getRegions(tableName)) {
-<a class="jxr_linenumber" name="59" href="#59">59</a>              r.flush(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="60" href="#60">60</a>          }
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      }
-<a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addFamilyToHTableDescriptor(HTableDescriptor tableDesc, HColumnDescriptor columnDesc) {
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>          tableDesc.addFamily(columnDesc);
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>      }
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CellComparator cellComparatorInstance() {
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">return</strong> CellComparator.getInstance();
-<a class="jxr_linenumber" name="72" href="#72">72</a>      }
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> OmidCompactionEnabled(ObserverContext&lt;RegionCoprocessorEnvironment&gt; env,
-<a class="jxr_linenumber" name="75" href="#75">75</a>                                    Store store,
-<a class="jxr_linenumber" name="76" href="#76">76</a>                                    String cfFlagValue) {
-<a class="jxr_linenumber" name="77" href="#77">77</a>          TableDescriptor desc = env.getEnvironment().getRegion().getTableDescriptor();
-<a class="jxr_linenumber" name="78" href="#78">78</a>          ColumnFamilyDescriptor famDesc = desc.getColumnFamily(Bytes.toBytes(store.getColumnFamilyName()));
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">return</strong> Boolean.valueOf(Bytes.toString(famDesc.getValue(Bytes.toBytes(cfFlagValue))));
-<a class="jxr_linenumber" name="80" href="#80">80</a>      }
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setCompaction(Connection conn, TableName table, byte[] columnFamily, String key, String value)
-<a class="jxr_linenumber" name="83" href="#83">83</a>              <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">try</strong>(Admin admin = conn.getAdmin()) {
-<a class="jxr_linenumber" name="85" href="#85">85</a>              TableDescriptor desc = admin.getDescriptor(table);
-<a class="jxr_linenumber" name="86" href="#86">86</a>              ColumnFamilyDescriptor cfDesc = desc.getColumnFamily(columnFamily);
-<a class="jxr_linenumber" name="87" href="#87">87</a>              ColumnFamilyDescriptorBuilder cfBuilder = ColumnFamilyDescriptorBuilder.newBuilder(cfDesc);
-<a class="jxr_linenumber" name="88" href="#88">88</a>              cfBuilder.setValue(Bytes.toBytes(key),Bytes.toBytes(value));
-<a class="jxr_linenumber" name="89" href="#89">89</a>              admin.modifyColumnFamily(table, cfBuilder.build());
-<a class="jxr_linenumber" name="90" href="#90">90</a>          }
-<a class="jxr_linenumber" name="91" href="#91">91</a>      }
-<a class="jxr_linenumber" name="92" href="#92">92</a>  }
+<a class="jxr_linenumber" name="55" href="#55">55</a>          tableDesc.addFamily(columnDesc);
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>      }
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> getBatchLimit(<a href="../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html">ScannerContext</a> scannerContext) {
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(<span class="jxr_string">"Should not be called for 0.9x versions"</span>);
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>      }
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/NetworkUtils.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/NetworkUtils.html b/xref/org/apache/omid/NetworkUtils.html
index 973b86a..c2c190c 100644
--- a/xref/org/apache/omid/NetworkUtils.html
+++ b/xref/org/apache/omid/NetworkUtils.html
@@ -32,35 +32,39 @@
 <a class="jxr_linenumber" name="22" href="#22">22</a>  
 <a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.NetworkInterface;
 <a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.net.SocketException;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/omid/NetworkUtils.html">NetworkUtils</a> {
-<a class="jxr_linenumber" name="28" href="#28">28</a>  
-<a class="jxr_linenumber" name="29" href="#29">29</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(NetworkUtils.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="30" href="#30">30</a>  
-<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LINUX_TSO_NET_IFACE_PREFIX = <span class="jxr_string">"eth"</span>;
-<a class="jxr_linenumber" name="32" href="#32">32</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAC_TSO_NET_IFACE_PREFIX = <span class="jxr_string">"en"</span>;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  
-<a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getDefaultNetworkInterface() {
-<a class="jxr_linenumber" name="35" href="#35">35</a>  
-<a class="jxr_linenumber" name="36" href="#36">36</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="37" href="#37">37</a>              Enumeration&lt;NetworkInterface&gt; networkInterfaces = NetworkInterface.getNetworkInterfaces();
-<a class="jxr_linenumber" name="38" href="#38">38</a>              <strong class="jxr_keyword">while</strong> (networkInterfaces.hasMoreElements()) {
-<a class="jxr_linenumber" name="39" href="#39">39</a>                  String name = networkInterfaces.nextElement().getDisplayName();
-<a class="jxr_linenumber" name="40" href="#40">40</a>                  LOG.info(<span class="jxr_string">"Iterating over network interfaces, found '{}'"</span>, name);
-<a class="jxr_linenumber" name="41" href="#41">41</a>                  <strong class="jxr_keyword">if</strong> (name.startsWith(MAC_TSO_NET_IFACE_PREFIX) || name.startsWith(LINUX_TSO_NET_IFACE_PREFIX)) {
-<a class="jxr_linenumber" name="42" href="#42">42</a>                      <strong class="jxr_keyword">return</strong> name;
-<a class="jxr_linenumber" name="43" href="#43">43</a>                  }
-<a class="jxr_linenumber" name="44" href="#44">44</a>              }
-<a class="jxr_linenumber" name="45" href="#45">45</a>          } <strong class="jxr_keyword">catch</strong> (SocketException ignored) {
-<a class="jxr_linenumber" name="46" href="#46">46</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Failed to find any network interfaces"</span>, ignored);
-<a class="jxr_linenumber" name="47" href="#47">47</a>          }
-<a class="jxr_linenumber" name="48" href="#48">48</a>          <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(String.format(<span class="jxr_string">"No network '%s*'/'%s*' interfaces found"</span>,
-<a class="jxr_linenumber" name="49" href="#49">49</a>                                                           MAC_TSO_NET_IFACE_PREFIX, LINUX_TSO_NET_IFACE_PREFIX));
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>      }
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>  }
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/omid/NetworkUtils.html">NetworkUtils</a> {
+<a class="jxr_linenumber" name="29" href="#29">29</a>  
+<a class="jxr_linenumber" name="30" href="#30">30</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(NetworkUtils.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LINUX_TSO_NET_IFACE_PREFIX = <span class="jxr_string">"eth"</span>;
+<a class="jxr_linenumber" name="33" href="#33">33</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAC_TSO_NET_IFACE_PREFIX = <span class="jxr_string">"en"</span>;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  
+<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getDefaultNetworkInterface() {
+<a class="jxr_linenumber" name="36" href="#36">36</a>  
+<a class="jxr_linenumber" name="37" href="#37">37</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="38" href="#38">38</a>              Enumeration&lt;NetworkInterface&gt; networkInterfaces = NetworkInterface.getNetworkInterfaces();
+<a class="jxr_linenumber" name="39" href="#39">39</a>              <strong class="jxr_keyword">while</strong> (networkInterfaces.hasMoreElements()) {
+<a class="jxr_linenumber" name="40" href="#40">40</a>                  NetworkInterface nextElement = networkInterfaces.nextElement();
+<a class="jxr_linenumber" name="41" href="#41">41</a>                  String name = nextElement.getDisplayName();
+<a class="jxr_linenumber" name="42" href="#42">42</a>                  LOG.info(<span class="jxr_string">"Iterating over network interfaces, found '{}'"</span>, name);
+<a class="jxr_linenumber" name="43" href="#43">43</a>                  <strong class="jxr_keyword">boolean</strong> hasInet = Collections.list(nextElement.getInetAddresses()).size() &gt; 1; <em class="jxr_comment">// Checking that inet exists, to avoid taking iBridge</em>
+<a class="jxr_linenumber" name="44" href="#44">44</a>                  <strong class="jxr_keyword">if</strong> ((name.startsWith(MAC_TSO_NET_IFACE_PREFIX) &amp;&amp; hasInet ) ||
+<a class="jxr_linenumber" name="45" href="#45">45</a>                          name.startsWith(LINUX_TSO_NET_IFACE_PREFIX)) {
+<a class="jxr_linenumber" name="46" href="#46">46</a>                    <strong class="jxr_keyword">return</strong> name;
+<a class="jxr_linenumber" name="47" href="#47">47</a>                }
+<a class="jxr_linenumber" name="48" href="#48">48</a>              }
+<a class="jxr_linenumber" name="49" href="#49">49</a>          } <strong class="jxr_keyword">catch</strong> (SocketException ignored) {
+<a class="jxr_linenumber" name="50" href="#50">50</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Failed to find any network interfaces"</span>, ignored);
+<a class="jxr_linenumber" name="51" href="#51">51</a>          }
+<a class="jxr_linenumber" name="52" href="#52">52</a>          <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(String.format(<span class="jxr_string">"No network '%s*'/'%s*' interfaces found"</span>,
+<a class="jxr_linenumber" name="53" href="#53">53</a>                                                           MAC_TSO_NET_IFACE_PREFIX, LINUX_TSO_NET_IFACE_PREFIX));
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>      }
+<a class="jxr_linenumber" name="56" href="#56">56</a>  
+<a class="jxr_linenumber" name="57" href="#57">57</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/YAMLUtils.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/YAMLUtils.html b/xref/org/apache/omid/YAMLUtils.html
index 4d3d6b4..570b146 100644
--- a/xref/org/apache/omid/YAMLUtils.html
+++ b/xref/org/apache/omid/YAMLUtils.html
@@ -40,55 +40,62 @@
 <a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
 <a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
 <a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a> {
-<a class="jxr_linenumber" name="34" href="#34">34</a>  
-<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(YAMLUtils.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadSettings(String resourcePath, String defaultResourcePath, Object bean) {
-<a class="jxr_linenumber" name="38" href="#38">38</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="39" href="#39">39</a>              Map properties = loadSettings(resourcePath, defaultResourcePath);
-<a class="jxr_linenumber" name="40" href="#40">40</a>              BeanUtils.populate(bean, properties);
-<a class="jxr_linenumber" name="41" href="#41">41</a>          } <strong class="jxr_keyword">catch</strong> (IllegalAccessException | InvocationTargetException | IOException e) {
-<a class="jxr_linenumber" name="42" href="#42">42</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(e);
-<a class="jxr_linenumber" name="43" href="#43">43</a>          }
-<a class="jxr_linenumber" name="44" href="#44">44</a>      }
-<a class="jxr_linenumber" name="45" href="#45">45</a>  
-<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadSettings(String resourcePath, Object bean) {
-<a class="jxr_linenumber" name="47" href="#47">47</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="48" href="#48">48</a>              Map properties = loadSettings(<strong class="jxr_keyword">null</strong>, resourcePath);
-<a class="jxr_linenumber" name="49" href="#49">49</a>              BeanUtils.populate(bean, properties);
-<a class="jxr_linenumber" name="50" href="#50">50</a>          } <strong class="jxr_keyword">catch</strong> (IllegalAccessException | InvocationTargetException | IOException e) {
-<a class="jxr_linenumber" name="51" href="#51">51</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(e);
-<a class="jxr_linenumber" name="52" href="#52">52</a>          }
-<a class="jxr_linenumber" name="53" href="#53">53</a>      }
-<a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> Map loadSettings(String resourcePath, String defaultResourcePath) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="57" href="#57">57</a>          Map defaultSetting = loadAsMap(defaultResourcePath);
-<a class="jxr_linenumber" name="58" href="#58">58</a>          Preconditions.checkState(defaultSetting.size() &gt; 0, String.format(<span class="jxr_string">"Failed to load file '%s' from classpath"</span>, defaultResourcePath));
-<a class="jxr_linenumber" name="59" href="#59">59</a>          <strong class="jxr_keyword">if</strong> (resourcePath != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="60" href="#60">60</a>              Map userSetting = loadAsMap(resourcePath);
-<a class="jxr_linenumber" name="61" href="#61">61</a>              defaultSetting.putAll(userSetting);
-<a class="jxr_linenumber" name="62" href="#62">62</a>          }
-<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">return</strong> defaultSetting;
-<a class="jxr_linenumber" name="64" href="#64">64</a>      }
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> Map loadAsMap(String path) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="68" href="#68">68</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="69" href="#69">69</a>              String content = Resources.toString(Resources.getResource(path), Charset.forName(<span class="jxr_string">"UTF-8"</span>));
-<a class="jxr_linenumber" name="70" href="#70">70</a>              LOG.debug(<span class="jxr_string">"Loaded resource file '{}'\n{}"</span>, path, content);
-<a class="jxr_linenumber" name="71" href="#71">71</a>              Map settings = <strong class="jxr_keyword">new</strong> Yaml().loadAs(content, Map.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="72" href="#72">72</a>              <strong class="jxr_keyword">if</strong> (settings == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="73" href="#73">73</a>                  settings = <strong class="jxr_keyword">new</strong> HashMap(0);
-<a class="jxr_linenumber" name="74" href="#74">74</a>              }
-<a class="jxr_linenumber" name="75" href="#75">75</a>              <strong class="jxr_keyword">return</strong> settings;
-<a class="jxr_linenumber" name="76" href="#76">76</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
-<a class="jxr_linenumber" name="77" href="#77">77</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> HashMap();
-<a class="jxr_linenumber" name="78" href="#78">78</a>          }
-<a class="jxr_linenumber" name="79" href="#79">79</a>      }
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>  }
+<a class="jxr_linenumber" name="33" href="#33">33</a>  @SuppressWarnings(<span class="jxr_string">"WeakerAccess"</span>)
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a> {
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(YAMLUtils.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="37" href="#37">37</a>  
+<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadSettings(String resourcePath, String defaultResourcePath, Object bean) {
+<a class="jxr_linenumber" name="39" href="#39">39</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="40" href="#40">40</a>              Map properties = loadSettings(resourcePath, defaultResourcePath);
+<a class="jxr_linenumber" name="41" href="#41">41</a>              BeanUtils.populate(bean, properties);
+<a class="jxr_linenumber" name="42" href="#42">42</a>          } <strong class="jxr_keyword">catch</strong> (IllegalAccessException | InvocationTargetException | IOException e) {
+<a class="jxr_linenumber" name="43" href="#43">43</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(e);
+<a class="jxr_linenumber" name="44" href="#44">44</a>          }
+<a class="jxr_linenumber" name="45" href="#45">45</a>      }
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadSettings(String resourcePath, Object bean) {
+<a class="jxr_linenumber" name="48" href="#48">48</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="49" href="#49">49</a>              Map properties = loadSettings(<strong class="jxr_keyword">null</strong>, resourcePath);
+<a class="jxr_linenumber" name="50" href="#50">50</a>              BeanUtils.populate(bean, properties);
+<a class="jxr_linenumber" name="51" href="#51">51</a>          } <strong class="jxr_keyword">catch</strong> (IllegalAccessException | InvocationTargetException | IOException e) {
+<a class="jxr_linenumber" name="52" href="#52">52</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(e);
+<a class="jxr_linenumber" name="53" href="#53">53</a>          }
+<a class="jxr_linenumber" name="54" href="#54">54</a>      }
+<a class="jxr_linenumber" name="55" href="#55">55</a>  
+<a class="jxr_linenumber" name="56" href="#56">56</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">public</strong> Map loadSettings(String resourcePath, String defaultResourcePath) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="58" href="#58">58</a>          Map defaultSetting = loadAsMap(defaultResourcePath);
+<a class="jxr_linenumber" name="59" href="#59">59</a>          Preconditions.checkState(defaultSetting.size() &gt; 0, String.format(<span class="jxr_string">"Failed to load file '%s' from classpath"</span>, defaultResourcePath));
+<a class="jxr_linenumber" name="60" href="#60">60</a>          <strong class="jxr_keyword">if</strong> (resourcePath != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="61" href="#61">61</a>              Map userSetting = loadAsMap(resourcePath);
+<a class="jxr_linenumber" name="62" href="#62">62</a>              defaultSetting.putAll(userSetting);
+<a class="jxr_linenumber" name="63" href="#63">63</a>          }
+<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">return</strong> defaultSetting;
+<a class="jxr_linenumber" name="65" href="#65">65</a>      }
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> Map loadAsMap(String path) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="70" href="#70">70</a>              String content = Resources.toString(Resources.getResource(path), Charset.forName(<span class="jxr_string">"UTF-8"</span>));
+<a class="jxr_linenumber" name="71" href="#71">71</a>              LOG.debug(<span class="jxr_string">"Loaded resource file '{}'\n{}"</span>, path, content);
+<a class="jxr_linenumber" name="72" href="#72">72</a>              <strong class="jxr_keyword">return</strong> loadStringAsMap(content);
+<a class="jxr_linenumber" name="73" href="#73">73</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="74" href="#74">74</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> HashMap();
+<a class="jxr_linenumber" name="75" href="#75">75</a>          }
+<a class="jxr_linenumber" name="76" href="#76">76</a>      }
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">public</strong> Map loadStringAsMap(String content) {
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="81" href="#81">81</a>              Map settings = <strong class="jxr_keyword">new</strong> Yaml().loadAs(content, Map.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="82" href="#82">82</a>              <strong class="jxr_keyword">return</strong> (settings != <strong class="jxr_keyword">null</strong>) ? settings : <strong class="jxr_keyword">new</strong> HashMap(0);
+<a class="jxr_linenumber" name="83" href="#83">83</a>          } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
+<a class="jxr_linenumber" name="84" href="#84">84</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> HashMap();
+<a class="jxr_linenumber" name="85" href="#85">85</a>          }
+<a class="jxr_linenumber" name="86" href="#86">86</a>      }
+<a class="jxr_linenumber" name="87" href="#87">87</a>  
+<a class="jxr_linenumber" name="88" href="#88">88</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/benchmarks/hbase/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/benchmarks/hbase/package-frame.html b/xref/org/apache/omid/benchmarks/hbase/package-frame.html
index 5371a2e..21fb07e 100644
--- a/xref/org/apache/omid/benchmarks/hbase/package-frame.html
+++ b/xref/org/apache/omid/benchmarks/hbase/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.benchmarks.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.benchmarks.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/benchmarks/hbase/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/benchmarks/hbase/package-summary.html b/xref/org/apache/omid/benchmarks/hbase/package-summary.html
index 17fdba8..6764d57 100644
--- a/xref/org/apache/omid/benchmarks/hbase/package-summary.html
+++ b/xref/org/apache/omid/benchmarks/hbase/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.benchmarks.hbase</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.benchmarks.hbase</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/benchmarks/tso/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/benchmarks/tso/package-frame.html b/xref/org/apache/omid/benchmarks/tso/package-frame.html
index 40adc10..910d6d3 100644
--- a/xref/org/apache/omid/benchmarks/tso/package-frame.html
+++ b/xref/org/apache/omid/benchmarks/tso/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.benchmarks.tso</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.benchmarks.tso</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/benchmarks/tso/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/benchmarks/tso/package-summary.html b/xref/org/apache/omid/benchmarks/tso/package-summary.html
index 7d9a3b0..479ca07 100644
--- a/xref/org/apache/omid/benchmarks/tso/package-summary.html
+++ b/xref/org/apache/omid/benchmarks/tso/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.benchmarks.tso</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.benchmarks.tso</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/benchmarks/utils/package-frame.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/benchmarks/utils/package-frame.html b/xref/org/apache/omid/benchmarks/utils/package-frame.html
index c98c5ef..3a84841 100644
--- a/xref/org/apache/omid/benchmarks/utils/package-frame.html
+++ b/xref/org/apache/omid/benchmarks/utils/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.benchmarks.utils</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.benchmarks.utils</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/benchmarks/utils/package-summary.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/benchmarks/utils/package-summary.html b/xref/org/apache/omid/benchmarks/utils/package-summary.html
index 7b66516..97a63ce 100644
--- a/xref/org/apache/omid/benchmarks/utils/package-summary.html
+++ b/xref/org/apache/omid/benchmarks/utils/package-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-		<title>Omid 0.8.2.11-SNAPSHOT Reference Package org.apache.omid.benchmarks.utils</title>
+		<title>Omid 0.9.1.0-SNAPSHOT Reference Package org.apache.omid.benchmarks.utils</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>


[30/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestTransactionConflict.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestTransactionConflict.html b/xref-test/org/apache/omid/transaction/TestTransactionConflict.html
index aae38d5..4a11a91 100644
--- a/xref-test/org/apache/omid/transaction/TestTransactionConflict.html
+++ b/xref-test/org/apache/omid/transaction/TestTransactionConflict.html
@@ -27,500 +27,290 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  
-<a class="jxr_linenumber" name="42" href="#42">42</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestTransactionConflict.html">TestTransactionConflict</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Delete;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.testng.ITestContext;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestTransactionConflict.html">TestTransactionConflict</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTransactionConflict.<strong class="jxr_keyword">class</strong>);
 <a class="jxr_linenumber" name="44" href="#44">44</a>  
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestTransactionConflict.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestWriteWriteConflict(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="49" href="#49">49</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="50" href="#50">50</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>          Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="53" href="#53">53</a>          LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>          Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="56" href="#56">56</a>          LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>          byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
-<a class="jxr_linenumber" name="59" href="#59">59</a>          byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="60" href="#60">60</a>          byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="61" href="#61">61</a>          byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="62" href="#62">62</a>          byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
-<a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>          Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="65" href="#65">65</a>          p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="66" href="#66">66</a>          tt.put(t1, p);
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>          Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="69" href="#69">69</a>          p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="70" href="#70">70</a>          tt.put(t2, p2);
+<a class="jxr_linenumber" name="45" href="#45">45</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestWriteWriteConflict(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="47" href="#47">47</a>          TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="48" href="#48">48</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>          Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="51" href="#51">51</a>          LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
+<a class="jxr_linenumber" name="52" href="#52">52</a>  
+<a class="jxr_linenumber" name="53" href="#53">53</a>          Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="54" href="#54">54</a>          LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
+<a class="jxr_linenumber" name="55" href="#55">55</a>  
+<a class="jxr_linenumber" name="56" href="#56">56</a>          byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
+<a class="jxr_linenumber" name="57" href="#57">57</a>          byte[] fam = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="58" href="#58">58</a>          byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
+<a class="jxr_linenumber" name="59" href="#59">59</a>          byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
+<a class="jxr_linenumber" name="60" href="#60">60</a>          byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
+<a class="jxr_linenumber" name="61" href="#61">61</a>  
+<a class="jxr_linenumber" name="62" href="#62">62</a>          Put p = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="63" href="#63">63</a>          p.add(fam, col, data1);
+<a class="jxr_linenumber" name="64" href="#64">64</a>          tt.put(t1, p);
+<a class="jxr_linenumber" name="65" href="#65">65</a>  
+<a class="jxr_linenumber" name="66" href="#66">66</a>          Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="67" href="#67">67</a>          p2.add(fam, col, data2);
+<a class="jxr_linenumber" name="68" href="#68">68</a>          tt.put(t2, p2);
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>          tm.commit(t2);
 <a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>          tm.commit(t2);
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>          <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="75" href="#75">75</a>              tm.commit(t1);
-<a class="jxr_linenumber" name="76" href="#76">76</a>              fail(<span class="jxr_string">"Transaction should not commit successfully"</span>);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="78" href="#78">78</a>          }
-<a class="jxr_linenumber" name="79" href="#79">79</a>      }
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>      @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestMultiTableConflict(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="83" href="#83">83</a>          TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="84" href="#84">84</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="85" href="#85">85</a>          String table2 = TEST_TABLE + 2;
-<a class="jxr_linenumber" name="86" href="#86">86</a>          TableName table2Name = TableName.valueOf(table2);
+<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="73" href="#73">73</a>              tm.commit(t1);
+<a class="jxr_linenumber" name="74" href="#74">74</a>              fail(<span class="jxr_string">"Transaction should not commit successfully"</span>);
+<a class="jxr_linenumber" name="75" href="#75">75</a>          } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
+<a class="jxr_linenumber" name="76" href="#76">76</a>          }
+<a class="jxr_linenumber" name="77" href="#77">77</a>      }
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>      @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestMultiTableConflict(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="81" href="#81">81</a>          TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="82" href="#82">82</a>          TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="83" href="#83">83</a>          String table2 = TEST_TABLE + 2;
+<a class="jxr_linenumber" name="84" href="#84">84</a>          TableName table2Name = TableName.valueOf(table2);
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
+<a class="jxr_linenumber" name="86" href="#86">86</a>          HBaseAdmin admin = <strong class="jxr_keyword">new</strong> HBaseAdmin(hbaseConf);
 <a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">try</strong> (Connection conn = ConnectionFactory.createConnection(hbaseConf);
-<a class="jxr_linenumber" name="89" href="#89">89</a>               Admin admin = conn.getAdmin()) {
-<a class="jxr_linenumber" name="90" href="#90">90</a>              TableName htable2 = TableName.valueOf(table2);
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>              <strong class="jxr_keyword">if</strong> (!admin.tableExists(htable2)) {
-<a class="jxr_linenumber" name="93" href="#93">93</a>                  HTableDescriptor desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(table2Name);
-<a class="jxr_linenumber" name="94" href="#94">94</a>                  HColumnDescriptor datafam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(TEST_FAMILY);
-<a class="jxr_linenumber" name="95" href="#95">95</a>                  datafam.setMaxVersions(Integer.MAX_VALUE);
-<a class="jxr_linenumber" name="96" href="#96">96</a>                  desc.addFamily(datafam);
-<a class="jxr_linenumber" name="97" href="#97">97</a>      
-<a class="jxr_linenumber" name="98" href="#98">98</a>                  admin.createTable(desc);
-<a class="jxr_linenumber" name="99" href="#99">99</a>              }
-<a class="jxr_linenumber" name="100" href="#100">100</a>     
-<a class="jxr_linenumber" name="101" href="#101">101</a>             <strong class="jxr_keyword">if</strong> (admin.isTableDisabled(htable2)) {
-<a class="jxr_linenumber" name="102" href="#102">102</a>                 admin.enableTable(htable2);
-<a class="jxr_linenumber" name="103" href="#103">103</a>             }
-<a class="jxr_linenumber" name="104" href="#104">104</a>         }
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>         TTable tt2 = <strong class="jxr_keyword">new</strong> TTable(connection, table2);
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="109" href="#109">109</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="110" href="#110">110</a> 
-<a class="jxr_linenumber" name="111" href="#111">111</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="112" href="#112">112</a>         LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
-<a class="jxr_linenumber" name="115" href="#115">115</a>         byte[] row2 = Bytes.toBytes(<span class="jxr_string">"test-simple2"</span>);
-<a class="jxr_linenumber" name="116" href="#116">116</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="117" href="#117">117</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="118" href="#118">118</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="119" href="#119">119</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
-<a class="jxr_linenumber" name="120" href="#120">120</a> 
-<a class="jxr_linenumber" name="121" href="#121">121</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="122" href="#122">122</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="123" href="#123">123</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="124" href="#124">124</a>         tt2.put(t1, p);
-<a class="jxr_linenumber" name="125" href="#125">125</a> 
-<a class="jxr_linenumber" name="126" href="#126">126</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="127" href="#127">127</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="128" href="#128">128</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="129" href="#129">129</a>         p2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="130" href="#130">130</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="131" href="#131">131</a>         tt2.put(t2, p2);
-<a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="134" href="#134">134</a> 
-<a class="jxr_linenumber" name="135" href="#135">135</a>         <strong class="jxr_keyword">boolean</strong> aborted = false;
-<a class="jxr_linenumber" name="136" href="#136">136</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="137" href="#137">137</a>             tm.commit(t1);
-<a class="jxr_linenumber" name="138" href="#138">138</a>             fail(<span class="jxr_string">"Transaction commited successfully"</span>);
-<a class="jxr_linenumber" name="139" href="#139">139</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="140" href="#140">140</a>             aborted = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="141" href="#141">141</a>         }
-<a class="jxr_linenumber" name="142" href="#142">142</a>         assertTrue(aborted, <span class="jxr_string">"Transaction didn't raise exception"</span>);
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
-<a class="jxr_linenumber" name="144" href="#144">144</a>         ResultScanner rs = tt2.getHTable().getScanner(fam, col);
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>         <strong class="jxr_keyword">int</strong> count = 0;
-<a class="jxr_linenumber" name="147" href="#147">147</a>         Result r;
-<a class="jxr_linenumber" name="148" href="#148">148</a>         <strong class="jxr_keyword">while</strong> ((r = rs.next()) != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="149" href="#149">149</a>             count += r.size();
-<a class="jxr_linenumber" name="150" href="#150">150</a>         }
-<a class="jxr_linenumber" name="151" href="#151">151</a>         assertEquals(count, 1, <span class="jxr_string">"Should have cell"</span>);
-<a class="jxr_linenumber" name="152" href="#152">152</a>     }
-<a class="jxr_linenumber" name="153" href="#153">153</a> 
-<a class="jxr_linenumber" name="154" href="#154">154</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="155" href="#155">155</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestCleanupAfterConflict(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="156" href="#156">156</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="157" href="#157">157</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="158" href="#158">158</a> 
-<a class="jxr_linenumber" name="159" href="#159">159</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="160" href="#160">160</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="161" href="#161">161</a> 
-<a class="jxr_linenumber" name="162" href="#162">162</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="163" href="#163">163</a>         LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
-<a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
-<a class="jxr_linenumber" name="166" href="#166">166</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="167" href="#167">167</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="168" href="#168">168</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="169" href="#169">169</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
+<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">if</strong> (!admin.tableExists(table2)) {
+<a class="jxr_linenumber" name="89" href="#89">89</a>              HTableDescriptor desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(table2Name);
+<a class="jxr_linenumber" name="90" href="#90">90</a>              HColumnDescriptor datafam = <strong class="jxr_keyword">new</strong> HColumnDescriptor(TEST_FAMILY);
+<a class="jxr_linenumber" name="91" href="#91">91</a>              datafam.setMaxVersions(Integer.MAX_VALUE);
+<a class="jxr_linenumber" name="92" href="#92">92</a>              desc.addFamily(datafam);
+<a class="jxr_linenumber" name="93" href="#93">93</a>  
+<a class="jxr_linenumber" name="94" href="#94">94</a>              admin.createTable(desc);
+<a class="jxr_linenumber" name="95" href="#95">95</a>          }
+<a class="jxr_linenumber" name="96" href="#96">96</a>  
+<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">if</strong> (admin.isTableDisabled(table2)) {
+<a class="jxr_linenumber" name="98" href="#98">98</a>              admin.enableTable(table2);
+<a class="jxr_linenumber" name="99" href="#99">99</a>          }
+<a class="jxr_linenumber" name="100" href="#100">100</a>         admin.close();
+<a class="jxr_linenumber" name="101" href="#101">101</a> 
+<a class="jxr_linenumber" name="102" href="#102">102</a>         TTable tt2 = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, table2);
+<a class="jxr_linenumber" name="103" href="#103">103</a> 
+<a class="jxr_linenumber" name="104" href="#104">104</a>         Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="105" href="#105">105</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="108" href="#108">108</a>         LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
+<a class="jxr_linenumber" name="109" href="#109">109</a> 
+<a class="jxr_linenumber" name="110" href="#110">110</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
+<a class="jxr_linenumber" name="111" href="#111">111</a>         byte[] row2 = Bytes.toBytes(<span class="jxr_string">"test-simple2"</span>);
+<a class="jxr_linenumber" name="112" href="#112">112</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="113" href="#113">113</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
+<a class="jxr_linenumber" name="114" href="#114">114</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
+<a class="jxr_linenumber" name="115" href="#115">115</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
+<a class="jxr_linenumber" name="116" href="#116">116</a> 
+<a class="jxr_linenumber" name="117" href="#117">117</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="118" href="#118">118</a>         p.add(fam, col, data1);
+<a class="jxr_linenumber" name="119" href="#119">119</a>         tt.put(t1, p);
+<a class="jxr_linenumber" name="120" href="#120">120</a>         tt2.put(t1, p);
+<a class="jxr_linenumber" name="121" href="#121">121</a> 
+<a class="jxr_linenumber" name="122" href="#122">122</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="123" href="#123">123</a>         p2.add(fam, col, data2);
+<a class="jxr_linenumber" name="124" href="#124">124</a>         tt.put(t2, p2);
+<a class="jxr_linenumber" name="125" href="#125">125</a>         p2 = <strong class="jxr_keyword">new</strong> Put(row2);
+<a class="jxr_linenumber" name="126" href="#126">126</a>         p2.add(fam, col, data2);
+<a class="jxr_linenumber" name="127" href="#127">127</a>         tt2.put(t2, p2);
+<a class="jxr_linenumber" name="128" href="#128">128</a> 
+<a class="jxr_linenumber" name="129" href="#129">129</a>         tm.commit(t2);
+<a class="jxr_linenumber" name="130" href="#130">130</a> 
+<a class="jxr_linenumber" name="131" href="#131">131</a>         <strong class="jxr_keyword">boolean</strong> aborted = false;
+<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="133" href="#133">133</a>             tm.commit(t1);
+<a class="jxr_linenumber" name="134" href="#134">134</a>             fail(<span class="jxr_string">"Transaction commited successfully"</span>);
+<a class="jxr_linenumber" name="135" href="#135">135</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
+<a class="jxr_linenumber" name="136" href="#136">136</a>             aborted = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="137" href="#137">137</a>         }
+<a class="jxr_linenumber" name="138" href="#138">138</a>         assertTrue(aborted, <span class="jxr_string">"Transaction didn't raise exception"</span>);
+<a class="jxr_linenumber" name="139" href="#139">139</a> 
+<a class="jxr_linenumber" name="140" href="#140">140</a>         ResultScanner rs = tt2.getHTable().getScanner(fam, col);
+<a class="jxr_linenumber" name="141" href="#141">141</a> 
+<a class="jxr_linenumber" name="142" href="#142">142</a>         <strong class="jxr_keyword">int</strong> count = 0;
+<a class="jxr_linenumber" name="143" href="#143">143</a>         Result r;
+<a class="jxr_linenumber" name="144" href="#144">144</a>         <strong class="jxr_keyword">while</strong> ((r = rs.next()) != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="145" href="#145">145</a>             count += r.size();
+<a class="jxr_linenumber" name="146" href="#146">146</a>         }
+<a class="jxr_linenumber" name="147" href="#147">147</a>         assertEquals(count, 1, <span class="jxr_string">"Should have cell"</span>);
+<a class="jxr_linenumber" name="148" href="#148">148</a>     }
+<a class="jxr_linenumber" name="149" href="#149">149</a> 
+<a class="jxr_linenumber" name="150" href="#150">150</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestCleanupAfterConflict(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="152" href="#152">152</a>         TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="153" href="#153">153</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="154" href="#154">154</a> 
+<a class="jxr_linenumber" name="155" href="#155">155</a>         Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="156" href="#156">156</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
+<a class="jxr_linenumber" name="157" href="#157">157</a> 
+<a class="jxr_linenumber" name="158" href="#158">158</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="159" href="#159">159</a>         LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
+<a class="jxr_linenumber" name="160" href="#160">160</a> 
+<a class="jxr_linenumber" name="161" href="#161">161</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
+<a class="jxr_linenumber" name="162" href="#162">162</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="163" href="#163">163</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
+<a class="jxr_linenumber" name="164" href="#164">164</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
+<a class="jxr_linenumber" name="165" href="#165">165</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
+<a class="jxr_linenumber" name="166" href="#166">166</a> 
+<a class="jxr_linenumber" name="167" href="#167">167</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="168" href="#168">168</a>         p.add(fam, col, data1);
+<a class="jxr_linenumber" name="169" href="#169">169</a>         tt.put(t1, p);
 <a class="jxr_linenumber" name="170" href="#170">170</a> 
-<a class="jxr_linenumber" name="171" href="#171">171</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="172" href="#172">172</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="173" href="#173">173</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="174" href="#174">174</a> 
-<a class="jxr_linenumber" name="175" href="#175">175</a>         Get g = <strong class="jxr_keyword">new</strong> Get(row).setMaxVersions();
-<a class="jxr_linenumber" name="176" href="#176">176</a>         g.addColumn(fam, col);
-<a class="jxr_linenumber" name="177" href="#177">177</a>         Result r = tt.getHTable().get(g);
-<a class="jxr_linenumber" name="178" href="#178">178</a>         assertEquals(r.size(), 1, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="179" href="#179">179</a>         assertTrue(Bytes.equals(data1, r.getValue(fam, col)),
-<a class="jxr_linenumber" name="180" href="#180">180</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
+<a class="jxr_linenumber" name="171" href="#171">171</a>         Get g = <strong class="jxr_keyword">new</strong> Get(row).setMaxVersions();
+<a class="jxr_linenumber" name="172" href="#172">172</a>         g.addColumn(fam, col);
+<a class="jxr_linenumber" name="173" href="#173">173</a>         Result r = tt.getHTable().get(g);
+<a class="jxr_linenumber" name="174" href="#174">174</a>         assertEquals(r.size(), 1, <span class="jxr_string">"Unexpected size for read."</span>);
+<a class="jxr_linenumber" name="175" href="#175">175</a>         assertTrue(Bytes.equals(data1, r.getValue(fam, col)),
+<a class="jxr_linenumber" name="176" href="#176">176</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
+<a class="jxr_linenumber" name="177" href="#177">177</a> 
+<a class="jxr_linenumber" name="178" href="#178">178</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="179" href="#179">179</a>         p2.add(fam, col, data2);
+<a class="jxr_linenumber" name="180" href="#180">180</a>         tt.put(t2, p2);
 <a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="183" href="#183">183</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="184" href="#184">184</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="185" href="#185">185</a> 
-<a class="jxr_linenumber" name="186" href="#186">186</a>         r = tt.getHTable().get(g);
-<a class="jxr_linenumber" name="187" href="#187">187</a>         assertEquals(r.size(), 2, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="188" href="#188">188</a>         r = tt.get(t2, g);
-<a class="jxr_linenumber" name="189" href="#189">189</a>         assertEquals(r.size(),1, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="190" href="#190">190</a>         assertTrue(Bytes.equals(data2, r.getValue(fam, col)),
-<a class="jxr_linenumber" name="191" href="#191">191</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
-<a class="jxr_linenumber" name="192" href="#192">192</a> 
-<a class="jxr_linenumber" name="193" href="#193">193</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="194" href="#194">194</a> 
-<a class="jxr_linenumber" name="195" href="#195">195</a>         <strong class="jxr_keyword">boolean</strong> aborted = false;
-<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="197" href="#197">197</a>             tm.commit(t2);
-<a class="jxr_linenumber" name="198" href="#198">198</a>             fail(<span class="jxr_string">"Transaction commited successfully"</span>);
-<a class="jxr_linenumber" name="199" href="#199">199</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="200" href="#200">200</a>             aborted = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="201" href="#201">201</a>         }
-<a class="jxr_linenumber" name="202" href="#202">202</a>         assertTrue(aborted, <span class="jxr_string">"Transaction didn't raise exception"</span>);
-<a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a>         r = tt.getHTable().get(g);
-<a class="jxr_linenumber" name="205" href="#205">205</a>         assertEquals(r.size(), 1, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="206" href="#206">206</a>         assertTrue(Bytes.equals(data1, r.getValue(fam, col)),
-<a class="jxr_linenumber" name="207" href="#207">207</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
-<a class="jxr_linenumber" name="208" href="#208">208</a>     }
-<a class="jxr_linenumber" name="209" href="#209">209</a> 
-<a class="jxr_linenumber" name="210" href="#210">210</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="211" href="#211">211</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCleanupWithDeleteRow(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="212" href="#212">212</a> 
-<a class="jxr_linenumber" name="213" href="#213">213</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="214" href="#214">214</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="215" href="#215">215</a> 
-<a class="jxr_linenumber" name="216" href="#216">216</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="217" href="#217">217</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>         <strong class="jxr_keyword">int</strong> rowcount = 10;
-<a class="jxr_linenumber" name="220" href="#220">220</a>         <strong class="jxr_keyword">int</strong> count = 0;
-<a class="jxr_linenumber" name="221" href="#221">221</a> 
-<a class="jxr_linenumber" name="222" href="#222">222</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="223" href="#223">223</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="224" href="#224">224</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="225" href="#225">225</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
+<a class="jxr_linenumber" name="182" href="#182">182</a>         r = tt.getHTable().get(g);
+<a class="jxr_linenumber" name="183" href="#183">183</a>         assertEquals(r.size(), 2, <span class="jxr_string">"Unexpected size for read."</span>);
+<a class="jxr_linenumber" name="184" href="#184">184</a>         r = tt.get(t2, g);
+<a class="jxr_linenumber" name="185" href="#185">185</a>         assertEquals(r.size(),1, <span class="jxr_string">"Unexpected size for read."</span>);
+<a class="jxr_linenumber" name="186" href="#186">186</a>         assertTrue(Bytes.equals(data2, r.getValue(fam, col)),
+<a class="jxr_linenumber" name="187" href="#187">187</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
+<a class="jxr_linenumber" name="188" href="#188">188</a> 
+<a class="jxr_linenumber" name="189" href="#189">189</a>         tm.commit(t1);
+<a class="jxr_linenumber" name="190" href="#190">190</a> 
+<a class="jxr_linenumber" name="191" href="#191">191</a>         <strong class="jxr_keyword">boolean</strong> aborted = false;
+<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="193" href="#193">193</a>             tm.commit(t2);
+<a class="jxr_linenumber" name="194" href="#194">194</a>             fail(<span class="jxr_string">"Transaction commited successfully"</span>);
+<a class="jxr_linenumber" name="195" href="#195">195</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
+<a class="jxr_linenumber" name="196" href="#196">196</a>             aborted = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="197" href="#197">197</a>         }
+<a class="jxr_linenumber" name="198" href="#198">198</a>         assertTrue(aborted, <span class="jxr_string">"Transaction didn't raise exception"</span>);
+<a class="jxr_linenumber" name="199" href="#199">199</a> 
+<a class="jxr_linenumber" name="200" href="#200">200</a>         r = tt.getHTable().get(g);
+<a class="jxr_linenumber" name="201" href="#201">201</a>         assertEquals(r.size(), 1, <span class="jxr_string">"Unexpected size for read."</span>);
+<a class="jxr_linenumber" name="202" href="#202">202</a>         assertTrue(Bytes.equals(data1, r.getValue(fam, col)),
+<a class="jxr_linenumber" name="203" href="#203">203</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
+<a class="jxr_linenumber" name="204" href="#204">204</a>     }
+<a class="jxr_linenumber" name="205" href="#205">205</a> 
+<a class="jxr_linenumber" name="206" href="#206">206</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="207" href="#207">207</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCleanupWithDeleteRow(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="208" href="#208">208</a> 
+<a class="jxr_linenumber" name="209" href="#209">209</a>         TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="210" href="#210">210</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="211" href="#211">211</a> 
+<a class="jxr_linenumber" name="212" href="#212">212</a>         Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="213" href="#213">213</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
+<a class="jxr_linenumber" name="214" href="#214">214</a> 
+<a class="jxr_linenumber" name="215" href="#215">215</a>         <strong class="jxr_keyword">int</strong> rowcount = 10;
+<a class="jxr_linenumber" name="216" href="#216">216</a>         <strong class="jxr_keyword">int</strong> count = 0;
+<a class="jxr_linenumber" name="217" href="#217">217</a> 
+<a class="jxr_linenumber" name="218" href="#218">218</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="219" href="#219">219</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
+<a class="jxr_linenumber" name="220" href="#220">220</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
+<a class="jxr_linenumber" name="221" href="#221">221</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
+<a class="jxr_linenumber" name="222" href="#222">222</a> 
+<a class="jxr_linenumber" name="223" href="#223">223</a>         byte[] modrow = Bytes.toBytes(<span class="jxr_string">"test-del"</span> + 3);
+<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; rowcount; i++) {
+<a class="jxr_linenumber" name="225" href="#225">225</a>             byte[] row = Bytes.toBytes(<span class="jxr_string">"test-del"</span> + i);
 <a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>         byte[] modrow = Bytes.toBytes(<span class="jxr_string">"test-del"</span> + 3);
-<a class="jxr_linenumber" name="228" href="#228">228</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; rowcount; i++) {
-<a class="jxr_linenumber" name="229" href="#229">229</a>             byte[] row = Bytes.toBytes(<span class="jxr_string">"test-del"</span> + i);
-<a class="jxr_linenumber" name="230" href="#230">230</a> 
-<a class="jxr_linenumber" name="231" href="#231">231</a>             Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="232" href="#232">232</a>             p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="233" href="#233">233</a>             tt.put(t1, p);
-<a class="jxr_linenumber" name="234" href="#234">234</a>         }
-<a class="jxr_linenumber" name="235" href="#235">235</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="238" href="#238">238</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t2);
-<a class="jxr_linenumber" name="239" href="#239">239</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
-<a class="jxr_linenumber" name="240" href="#240">240</a>         tt.delete(t2, d);
-<a class="jxr_linenumber" name="241" href="#241">241</a> 
-<a class="jxr_linenumber" name="242" href="#242">242</a>         ResultScanner rs = tt.getScanner(t2, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="243" href="#243">243</a>         Result r = rs.next();
-<a class="jxr_linenumber" name="244" href="#244">244</a>         count = 0;
-<a class="jxr_linenumber" name="245" href="#245">245</a>         <strong class="jxr_keyword">while</strong> (r != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="246" href="#246">246</a>             count++;
-<a class="jxr_linenumber" name="247" href="#247">247</a>             LOG.trace(<span class="jxr_string">"row: "</span> + Bytes.toString(r.getRow()) + <span class="jxr_string">" count: "</span> + count);
-<a class="jxr_linenumber" name="248" href="#248">248</a>             r = rs.next();
-<a class="jxr_linenumber" name="249" href="#249">249</a>         }
-<a class="jxr_linenumber" name="250" href="#250">250</a>         assertEquals(count, rowcount - 1, <span class="jxr_string">"Wrong count"</span>);
-<a class="jxr_linenumber" name="251" href="#251">251</a> 
-<a class="jxr_linenumber" name="252" href="#252">252</a>         Transaction t3 = tm.begin();
-<a class="jxr_linenumber" name="253" href="#253">253</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t3);
-<a class="jxr_linenumber" name="254" href="#254">254</a>         Put p = <strong class="jxr_keyword">new</strong> Put(modrow);
-<a class="jxr_linenumber" name="255" href="#255">255</a>         p.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="256" href="#256">256</a>         tt.put(t3, p);
-<a class="jxr_linenumber" name="257" href="#257">257</a> 
-<a class="jxr_linenumber" name="258" href="#258">258</a>         tm.commit(t3);
-<a class="jxr_linenumber" name="259" href="#259">259</a> 
-<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">boolean</strong> aborted = false;
-<a class="jxr_linenumber" name="261" href="#261">261</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="262" href="#262">262</a>             tm.commit(t2);
-<a class="jxr_linenumber" name="263" href="#263">263</a>             fail(<span class="jxr_string">"Didn't abort"</span>);
-<a class="jxr_linenumber" name="264" href="#264">264</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="265" href="#265">265</a>             aborted = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="266" href="#266">266</a>         }
-<a class="jxr_linenumber" name="267" href="#267">267</a>         assertTrue(aborted, <span class="jxr_string">"Didn't raise exception"</span>);
-<a class="jxr_linenumber" name="268" href="#268">268</a> 
-<a class="jxr_linenumber" name="269" href="#269">269</a>         Transaction tscan = tm.begin();
-<a class="jxr_linenumber" name="270" href="#270">270</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
-<a class="jxr_linenumber" name="271" href="#271">271</a>         r = rs.next();
-<a class="jxr_linenumber" name="272" href="#272">272</a>         count = 0;
-<a class="jxr_linenumber" name="273" href="#273">273</a>         <strong class="jxr_keyword">while</strong> (r != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="274" href="#274">274</a>             count++;
-<a class="jxr_linenumber" name="275" href="#275">275</a>             r = rs.next();
-<a class="jxr_linenumber" name="276" href="#276">276</a>         }
-<a class="jxr_linenumber" name="277" href="#277">277</a>         assertEquals(count, rowcount, <span class="jxr_string">"Wrong count"</span>);
-<a class="jxr_linenumber" name="278" href="#278">278</a> 
-<a class="jxr_linenumber" name="279" href="#279">279</a>     }
-<a class="jxr_linenumber" name="280" href="#280">280</a> 
-<a class="jxr_linenumber" name="281" href="#281">281</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="282" href="#282">282</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultipleCellChangesOnSameRow(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="283" href="#283">283</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="284" href="#284">284</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
+<a class="jxr_linenumber" name="227" href="#227">227</a>             Put p = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="228" href="#228">228</a>             p.add(fam, col, data1);
+<a class="jxr_linenumber" name="229" href="#229">229</a>             tt.put(t1, p);
+<a class="jxr_linenumber" name="230" href="#230">230</a>         }
+<a class="jxr_linenumber" name="231" href="#231">231</a>         tm.commit(t1);
+<a class="jxr_linenumber" name="232" href="#232">232</a> 
+<a class="jxr_linenumber" name="233" href="#233">233</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="234" href="#234">234</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t2);
+<a class="jxr_linenumber" name="235" href="#235">235</a>         Delete d = <strong class="jxr_keyword">new</strong> Delete(modrow);
+<a class="jxr_linenumber" name="236" href="#236">236</a>         tt.delete(t2, d);
+<a class="jxr_linenumber" name="237" href="#237">237</a> 
+<a class="jxr_linenumber" name="238" href="#238">238</a>         ResultScanner rs = tt.getScanner(t2, <strong class="jxr_keyword">new</strong> Scan());
+<a class="jxr_linenumber" name="239" href="#239">239</a>         Result r = rs.next();
+<a class="jxr_linenumber" name="240" href="#240">240</a>         count = 0;
+<a class="jxr_linenumber" name="241" href="#241">241</a>         <strong class="jxr_keyword">while</strong> (r != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="242" href="#242">242</a>             count++;
+<a class="jxr_linenumber" name="243" href="#243">243</a>             LOG.trace(<span class="jxr_string">"row: "</span> + Bytes.toString(r.getRow()) + <span class="jxr_string">" count: "</span> + count);
+<a class="jxr_linenumber" name="244" href="#244">244</a>             r = rs.next();
+<a class="jxr_linenumber" name="245" href="#245">245</a>         }
+<a class="jxr_linenumber" name="246" href="#246">246</a>         assertEquals(count, rowcount - 1, <span class="jxr_string">"Wrong count"</span>);
+<a class="jxr_linenumber" name="247" href="#247">247</a> 
+<a class="jxr_linenumber" name="248" href="#248">248</a>         Transaction t3 = tm.begin();
+<a class="jxr_linenumber" name="249" href="#249">249</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t3);
+<a class="jxr_linenumber" name="250" href="#250">250</a>         Put p = <strong class="jxr_keyword">new</strong> Put(modrow);
+<a class="jxr_linenumber" name="251" href="#251">251</a>         p.add(fam, col, data2);
+<a class="jxr_linenumber" name="252" href="#252">252</a>         tt.put(t3, p);
+<a class="jxr_linenumber" name="253" href="#253">253</a> 
+<a class="jxr_linenumber" name="254" href="#254">254</a>         tm.commit(t3);
+<a class="jxr_linenumber" name="255" href="#255">255</a> 
+<a class="jxr_linenumber" name="256" href="#256">256</a>         <strong class="jxr_keyword">boolean</strong> aborted = false;
+<a class="jxr_linenumber" name="257" href="#257">257</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="258" href="#258">258</a>             tm.commit(t2);
+<a class="jxr_linenumber" name="259" href="#259">259</a>             fail(<span class="jxr_string">"Didn't abort"</span>);
+<a class="jxr_linenumber" name="260" href="#260">260</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
+<a class="jxr_linenumber" name="261" href="#261">261</a>             aborted = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="262" href="#262">262</a>         }
+<a class="jxr_linenumber" name="263" href="#263">263</a>         assertTrue(aborted, <span class="jxr_string">"Didn't raise exception"</span>);
+<a class="jxr_linenumber" name="264" href="#264">264</a> 
+<a class="jxr_linenumber" name="265" href="#265">265</a>         Transaction tscan = tm.begin();
+<a class="jxr_linenumber" name="266" href="#266">266</a>         rs = tt.getScanner(tscan, <strong class="jxr_keyword">new</strong> Scan());
+<a class="jxr_linenumber" name="267" href="#267">267</a>         r = rs.next();
+<a class="jxr_linenumber" name="268" href="#268">268</a>         count = 0;
+<a class="jxr_linenumber" name="269" href="#269">269</a>         <strong class="jxr_keyword">while</strong> (r != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="270" href="#270">270</a>             count++;
+<a class="jxr_linenumber" name="271" href="#271">271</a>             r = rs.next();
+<a class="jxr_linenumber" name="272" href="#272">272</a>         }
+<a class="jxr_linenumber" name="273" href="#273">273</a>         assertEquals(count, rowcount, <span class="jxr_string">"Wrong count"</span>);
+<a class="jxr_linenumber" name="274" href="#274">274</a> 
+<a class="jxr_linenumber" name="275" href="#275">275</a>     }
+<a class="jxr_linenumber" name="276" href="#276">276</a> 
+<a class="jxr_linenumber" name="277" href="#277">277</a>     @Test(timeOut = 10_000)
+<a class="jxr_linenumber" name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultipleCellChangesOnSameRow(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="279" href="#279">279</a>         TransactionManager tm = newTransactionManager(context);
+<a class="jxr_linenumber" name="280" href="#280">280</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE);
+<a class="jxr_linenumber" name="281" href="#281">281</a> 
+<a class="jxr_linenumber" name="282" href="#282">282</a>         Transaction t1 = tm.begin();
+<a class="jxr_linenumber" name="283" href="#283">283</a>         Transaction t2 = tm.begin();
+<a class="jxr_linenumber" name="284" href="#284">284</a>         LOG.info(<span class="jxr_string">"Transactions created "</span> + t1 + <span class="jxr_string">" "</span> + t2);
 <a class="jxr_linenumber" name="285" href="#285">285</a> 
-<a class="jxr_linenumber" name="286" href="#286">286</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="287" href="#287">287</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="288" href="#288">288</a>         LOG.info(<span class="jxr_string">"Transactions created "</span> + t1 + <span class="jxr_string">" "</span> + t2);
-<a class="jxr_linenumber" name="289" href="#289">289</a> 
-<a class="jxr_linenumber" name="290" href="#290">290</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"row"</span>);
-<a class="jxr_linenumber" name="291" href="#291">291</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="292" href="#292">292</a>         byte[] col1 = Bytes.toBytes(<span class="jxr_string">"testdata1"</span>);
-<a class="jxr_linenumber" name="293" href="#293">293</a>         byte[] col2 = Bytes.toBytes(<span class="jxr_string">"testdata2"</span>);
-<a class="jxr_linenumber" name="294" href="#294">294</a>         byte[] data = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="295" href="#295">295</a> 
-<a class="jxr_linenumber" name="296" href="#296">296</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="297" href="#297">297</a>         p2.addColumn(fam, col1, data);
-<a class="jxr_linenumber" name="298" href="#298">298</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="299" href="#299">299</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="300" href="#300">300</a> 
-<a class="jxr_linenumber" name="301" href="#301">301</a>         Put p1 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="302" href="#302">302</a>         p1.addColumn(fam, col2, data);
-<a class="jxr_linenumber" name="303" href="#303">303</a>         tt.put(t1, p1);
-<a class="jxr_linenumber" name="304" href="#304">304</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="305" href="#305">305</a>     }
-<a class="jxr_linenumber" name="306" href="#306">306</a> 
-<a class="jxr_linenumber" name="307" href="#307">307</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="308" href="#308">308</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestWriteWriteConflictWithAdditionalConflictFreeWrites(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="309" href="#309">309</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="310" href="#310">310</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="311" href="#311">311</a> 
-<a class="jxr_linenumber" name="312" href="#312">312</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="313" href="#313">313</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="314" href="#314">314</a> 
-<a class="jxr_linenumber" name="315" href="#315">315</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="316" href="#316">316</a>         LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
-<a class="jxr_linenumber" name="317" href="#317">317</a> 
-<a class="jxr_linenumber" name="318" href="#318">318</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
-<a class="jxr_linenumber" name="319" href="#319">319</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="320" href="#320">320</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="321" href="#321">321</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="322" href="#322">322</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
-<a class="jxr_linenumber" name="323" href="#323">323</a> 
-<a class="jxr_linenumber" name="324" href="#324">324</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="325" href="#325">325</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="326" href="#326">326</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="327" href="#327">327</a> 
-<a class="jxr_linenumber" name="328" href="#328">328</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="329" href="#329">329</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="330" href="#330">330</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="331" href="#331">331</a> 
-<a class="jxr_linenumber" name="332" href="#332">332</a>         row = Bytes.toBytes(<span class="jxr_string">"test-simple-cf"</span>);
-<a class="jxr_linenumber" name="333" href="#333">333</a>         p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="334" href="#334">334</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="335" href="#335">335</a>         tt.markPutAsConflictFreeMutation(p);
-<a class="jxr_linenumber" name="336" href="#336">336</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="337" href="#337">337</a> 
-<a class="jxr_linenumber" name="338" href="#338">338</a>         p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="339" href="#339">339</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="340" href="#340">340</a>         tt.markPutAsConflictFreeMutation(p2);
-<a class="jxr_linenumber" name="341" href="#341">341</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="342" href="#342">342</a> 
-<a class="jxr_linenumber" name="343" href="#343">343</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="344" href="#344">344</a> 
-<a class="jxr_linenumber" name="345" href="#345">345</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="346" href="#346">346</a>             tm.commit(t1);
-<a class="jxr_linenumber" name="347" href="#347">347</a>             fail(<span class="jxr_string">"Transaction should not commit successfully"</span>);
-<a class="jxr_linenumber" name="348" href="#348">348</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="349" href="#349">349</a>         }
-<a class="jxr_linenumber" name="350" href="#350">350</a>     }
-<a class="jxr_linenumber" name="351" href="#351">351</a> 
-<a class="jxr_linenumber" name="352" href="#352">352</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="353" href="#353">353</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestWriteWriteConflictFreeWrites(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="354" href="#354">354</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="355" href="#355">355</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="356" href="#356">356</a> 
-<a class="jxr_linenumber" name="357" href="#357">357</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="358" href="#358">358</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="359" href="#359">359</a> 
-<a class="jxr_linenumber" name="360" href="#360">360</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="361" href="#361">361</a>         LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
-<a class="jxr_linenumber" name="362" href="#362">362</a> 
-<a class="jxr_linenumber" name="363" href="#363">363</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
-<a class="jxr_linenumber" name="364" href="#364">364</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="365" href="#365">365</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="366" href="#366">366</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="367" href="#367">367</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
-<a class="jxr_linenumber" name="368" href="#368">368</a> 
-<a class="jxr_linenumber" name="369" href="#369">369</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="370" href="#370">370</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="371" href="#371">371</a>         tt.markPutAsConflictFreeMutation(p);
-<a class="jxr_linenumber" name="372" href="#372">372</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="373" href="#373">373</a> 
-<a class="jxr_linenumber" name="374" href="#374">374</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="375" href="#375">375</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="376" href="#376">376</a>         tt.markPutAsConflictFreeMutation(p2);
-<a class="jxr_linenumber" name="377" href="#377">377</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="378" href="#378">378</a> 
-<a class="jxr_linenumber" name="379" href="#379">379</a>         row = Bytes.toBytes(<span class="jxr_string">"test-simple-cf"</span>);
-<a class="jxr_linenumber" name="380" href="#380">380</a>         p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="381" href="#381">381</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="382" href="#382">382</a>         tt.markPutAsConflictFreeMutation(p);
-<a class="jxr_linenumber" name="383" href="#383">383</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="384" href="#384">384</a> 
-<a class="jxr_linenumber" name="385" href="#385">385</a>         p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="386" href="#386">386</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="387" href="#387">387</a>         tt.markPutAsConflictFreeMutation(p2);
-<a class="jxr_linenumber" name="388" href="#388">388</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="389" href="#389">389</a> 
-<a class="jxr_linenumber" name="390" href="#390">390</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="391" href="#391">391</a> 
-<a class="jxr_linenumber" name="392" href="#392">392</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="393" href="#393">393</a>             tm.commit(t1);
-<a class="jxr_linenumber" name="394" href="#394">394</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="395" href="#395">395</a>             fail(<span class="jxr_string">"Transaction should not commit successfully"</span>);
-<a class="jxr_linenumber" name="396" href="#396">396</a>         }
-<a class="jxr_linenumber" name="397" href="#397">397</a>     }
-<a class="jxr_linenumber" name="398" href="#398">398</a> 
-<a class="jxr_linenumber" name="399" href="#399">399</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="400" href="#400">400</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestWriteWriteConflictFreeWritesWithOtherWrites(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="401" href="#401">401</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="402" href="#402">402</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="403" href="#403">403</a> 
-<a class="jxr_linenumber" name="404" href="#404">404</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="405" href="#405">405</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="406" href="#406">406</a> 
-<a class="jxr_linenumber" name="407" href="#407">407</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="408" href="#408">408</a>         LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
-<a class="jxr_linenumber" name="409" href="#409">409</a> 
-<a class="jxr_linenumber" name="410" href="#410">410</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
-<a class="jxr_linenumber" name="411" href="#411">411</a>         byte[] row1 = Bytes.toBytes(<span class="jxr_string">"test-simple-1"</span>);
-<a class="jxr_linenumber" name="412" href="#412">412</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="413" href="#413">413</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="414" href="#414">414</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="415" href="#415">415</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
-<a class="jxr_linenumber" name="416" href="#416">416</a> 
-<a class="jxr_linenumber" name="417" href="#417">417</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="418" href="#418">418</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="419" href="#419">419</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="420" href="#420">420</a> 
-<a class="jxr_linenumber" name="421" href="#421">421</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="422" href="#422">422</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="423" href="#423">423</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="424" href="#424">424</a> 
-<a class="jxr_linenumber" name="425" href="#425">425</a>         row = Bytes.toBytes(<span class="jxr_string">"test-simple-cf"</span>);
-<a class="jxr_linenumber" name="426" href="#426">426</a>         p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="427" href="#427">427</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="428" href="#428">428</a>         tt.markPutAsConflictFreeMutation(p);
-<a class="jxr_linenumber" name="429" href="#429">429</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="430" href="#430">430</a> 
-<a class="jxr_linenumber" name="431" href="#431">431</a>         p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="432" href="#432">432</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="433" href="#433">433</a>         tt.markPutAsConflictFreeMutation(p2);
-<a class="jxr_linenumber" name="434" href="#434">434</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="435" href="#435">435</a> 
-<a class="jxr_linenumber" name="436" href="#436">436</a>         tm.commit(t2);
-<a class="jxr_linenumber" name="437" href="#437">437</a> 
-<a class="jxr_linenumber" name="438" href="#438">438</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="439" href="#439">439</a>             tm.commit(t1);
-<a class="jxr_linenumber" name="440" href="#440">440</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="441" href="#441">441</a>             fail(<span class="jxr_string">"Transaction should not commit successfully"</span>);
-<a class="jxr_linenumber" name="442" href="#442">442</a>         }
-<a class="jxr_linenumber" name="443" href="#443">443</a>     }
-<a class="jxr_linenumber" name="444" href="#444">444</a> 
-<a class="jxr_linenumber" name="445" href="#445">445</a>     @Test(timeOut = 10_000)
-<a class="jxr_linenumber" name="446" href="#446">446</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTestCleanupConflictFreeWritesAfterConflict(ITestContext context) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="447" href="#447">447</a>         TransactionManager tm = newTransactionManager(context);
-<a class="jxr_linenumber" name="448" href="#448">448</a>         TTable tt = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE);
-<a class="jxr_linenumber" name="449" href="#449">449</a> 
-<a class="jxr_linenumber" name="450" href="#450">450</a>         Transaction t1 = tm.begin();
-<a class="jxr_linenumber" name="451" href="#451">451</a>         LOG.info(<span class="jxr_string">"Transaction created "</span> + t1);
-<a class="jxr_linenumber" name="452" href="#452">452</a> 
-<a class="jxr_linenumber" name="453" href="#453">453</a>         Transaction t2 = tm.begin();
-<a class="jxr_linenumber" name="454" href="#454">454</a>         LOG.info(<span class="jxr_string">"Transaction created"</span> + t2);
-<a class="jxr_linenumber" name="455" href="#455">455</a> 
-<a class="jxr_linenumber" name="456" href="#456">456</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"test-simple"</span>);
-<a class="jxr_linenumber" name="457" href="#457">457</a>         byte[] row1 = Bytes.toBytes(<span class="jxr_string">"test-simple-1"</span>);
-<a class="jxr_linenumber" name="458" href="#458">458</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
-<a class="jxr_linenumber" name="459" href="#459">459</a>         byte[] col = Bytes.toBytes(<span class="jxr_string">"testdata"</span>);
-<a class="jxr_linenumber" name="460" href="#460">460</a>         byte[] data1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
-<a class="jxr_linenumber" name="461" href="#461">461</a>         byte[] data2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2"</span>);
-<a class="jxr_linenumber" name="462" href="#462">462</a> 
-<a class="jxr_linenumber" name="463" href="#463">463</a>         Put p = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="464" href="#464">464</a>         p.addColumn(fam, col, data1);
-<a class="jxr_linenumber" name="465" href="#465">465</a>         tt.put(t1, p);
-<a class="jxr_linenumber" name="466" href="#466">466</a> 
-<a class="jxr_linenumber" name="467" href="#467">467</a>         Get g = <strong class="jxr_keyword">new</strong> Get(row).setMaxVersions();
-<a class="jxr_linenumber" name="468" href="#468">468</a>         g.addColumn(fam, col);
-<a class="jxr_linenumber" name="469" href="#469">469</a>         Result r = tt.getHTable().get(g);
-<a class="jxr_linenumber" name="470" href="#470">470</a>         assertEquals(r.size(), 1, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="471" href="#471">471</a>         assertTrue(Bytes.equals(data1, r.getValue(fam, col)),
-<a class="jxr_linenumber" name="472" href="#472">472</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
-<a class="jxr_linenumber" name="473" href="#473">473</a> 
-<a class="jxr_linenumber" name="474" href="#474">474</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
-<a class="jxr_linenumber" name="475" href="#475">475</a>         p2.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="476" href="#476">476</a>         tt.put(t2, p2);
-<a class="jxr_linenumber" name="477" href="#477">477</a> 
-<a class="jxr_linenumber" name="478" href="#478">478</a>         Put p3 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="479" href="#479">479</a>         p3.addColumn(fam, col, data2);
-<a class="jxr_linenumber" name="480" href="#480">480</a>         tt.markPutAsConflictFreeMutation(p3);
-<a class="jxr_linenumber" name="481" href="#481">481</a>         tt.put(t2, p3);
-<a class="jxr_linenumber" name="482" href="#482">482</a> 
-<a class="jxr_linenumber" name="483" href="#483">483</a>         r = tt.getHTable().get(g);
-<a class="jxr_linenumber" name="484" href="#484">484</a>         assertEquals(r.size(), 2, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="485" href="#485">485</a>         r = tt.get(t2, g);
-<a class="jxr_linenumber" name="486" href="#486">486</a>         assertEquals(r.size(),1, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="487" href="#487">487</a>         assertTrue(Bytes.equals(data2, r.getValue(fam, col)),
-<a class="jxr_linenumber" name="488" href="#488">488</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
-<a class="jxr_linenumber" name="489" href="#489">489</a> 
-<a class="jxr_linenumber" name="490" href="#490">490</a>         Get g1 = <strong class="jxr_keyword">new</strong> Get(row1).setMaxVersions();
-<a class="jxr_linenumber" name="491" href="#491">491</a>         g1.addColumn(fam, col);
-<a class="jxr_linenumber" name="492" href="#492">492</a>         r = tt.getHTable().get(g1);
-<a class="jxr_linenumber" name="493" href="#493">493</a>         assertEquals(r.size(), 1, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="494" href="#494">494</a> 
-<a class="jxr_linenumber" name="495" href="#495">495</a>         tm.commit(t1);
-<a class="jxr_linenumber" name="496" href="#496">496</a> 
-<a class="jxr_linenumber" name="497" href="#497">497</a>         <strong class="jxr_keyword">boolean</strong> aborted = false;
-<a class="jxr_linenumber" name="498" href="#498">498</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="499" href="#499">499</a>             tm.commit(t2);
-<a class="jxr_linenumber" name="500" href="#500">500</a>             fail(<span class="jxr_string">"Transaction commited successfully"</span>);
-<a class="jxr_linenumber" name="501" href="#501">501</a>         } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="502" href="#502">502</a>             aborted = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="503" href="#503">503</a>         }
-<a class="jxr_linenumber" name="504" href="#504">504</a>         assertTrue(aborted, <span class="jxr_string">"Transaction didn't raise exception"</span>);
-<a class="jxr_linenumber" name="505" href="#505">505</a> 
-<a class="jxr_linenumber" name="506" href="#506">506</a>         r = tt.getHTable().get(g);
-<a class="jxr_linenumber" name="507" href="#507">507</a>         assertEquals(r.size(), 1, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="508" href="#508">508</a>         assertTrue(Bytes.equals(data1, r.getValue(fam, col)),
-<a class="jxr_linenumber" name="509" href="#509">509</a>                    <span class="jxr_string">"Unexpected value for read: "</span> + Bytes.toString(r.getValue(fam, col)));
-<a class="jxr_linenumber" name="510" href="#510">510</a>         r = tt.getHTable().get(g1);
-<a class="jxr_linenumber" name="511" href="#511">511</a>         assertEquals(r.size(), 0, <span class="jxr_string">"Unexpected size for read."</span>);
-<a class="jxr_linenumber" name="512" href="#512">512</a>     }
-<a class="jxr_linenumber" name="513" href="#513">513</a> }
+<a class="jxr_linenumber" name="286" href="#286">286</a>         byte[] row = Bytes.toBytes(<span class="jxr_string">"row"</span>);
+<a class="jxr_linenumber" name="287" href="#287">287</a>         byte[] fam = Bytes.toBytes(TEST_FAMILY);
+<a class="jxr_linenumber" name="288" href="#288">288</a>         byte[] col1 = Bytes.toBytes(<span class="jxr_string">"testdata1"</span>);
+<a class="jxr_linenumber" name="289" href="#289">289</a>         byte[] col2 = Bytes.toBytes(<span class="jxr_string">"testdata2"</span>);
+<a class="jxr_linenumber" name="290" href="#290">290</a>         byte[] data = Bytes.toBytes(<span class="jxr_string">"testWrite-1"</span>);
+<a class="jxr_linenumber" name="291" href="#291">291</a> 
+<a class="jxr_linenumber" name="292" href="#292">292</a>         Put p2 = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="293" href="#293">293</a>         p2.add(fam, col1, data);
+<a class="jxr_linenumber" name="294" href="#294">294</a>         tt.put(t2, p2);
+<a class="jxr_linenumber" name="295" href="#295">295</a>         tm.commit(t2);
+<a class="jxr_linenumber" name="296" href="#296">296</a> 
+<a class="jxr_linenumber" name="297" href="#297">297</a>         Put p1 = <strong class="jxr_keyword">new</strong> Put(row);
+<a class="jxr_linenumber" name="298" href="#298">298</a>         p1.add(fam, col2, data);
+<a class="jxr_linenumber" name="299" href="#299">299</a>         tt.put(t1, p1);
+<a class="jxr_linenumber" name="300" href="#300">300</a>         tm.commit(t1);
+<a class="jxr_linenumber" name="301" href="#301">301</a>     }
+<a class="jxr_linenumber" name="302" href="#302">302</a> 
+<a class="jxr_linenumber" name="303" href="#303">303</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[11/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/OmidCompactor.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/OmidCompactor.html b/xref/org/apache/omid/transaction/OmidCompactor.html
index 43a7574..8d1ed17 100644
--- a/xref/org/apache/omid/transaction/OmidCompactor.html
+++ b/xref/org/apache/omid/transaction/OmidCompactor.html
@@ -28,151 +28,125 @@
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.annotations.VisibleForTesting;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  
-<a class="jxr_linenumber" name="22" href="#22">22</a>  
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTable;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CoprocessorEnvironment;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.DoNotRetryIOException;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.HBaseShims;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.ObserverContext;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.CompactorScanner;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.InternalScanner;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.ScanType;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.Store;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTable;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CoprocessorEnvironment;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.ObserverContext;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.InternalScanner;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.ScanType;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.Store;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
 <a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.Optional;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ConcurrentLinkedQueue;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.COMMIT_TABLE_NAME_KEY;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * Garbage collector for stale data: triggered upon HBase</em>
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * compactions, it removes data from uncommitted transactions</em>
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * older than the low watermark using a special scanner</em>
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/OmidCompactor.html">OmidCompactor</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.html">BaseRegionObserver</a> {
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(OmidCompactor.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ConcurrentLinkedQueue;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig.COMMIT_TABLE_NAME_KEY;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * Garbage collector for stale data: triggered upon HBase</em>
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * compactions, it removes data from uncommitted transactions</em>
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * older than the low watermark using a special scanner</em>
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/OmidCompactor.html">OmidCompactor</a> <strong class="jxr_keyword">extends</strong> BaseRegionObserver {
+<a class="jxr_linenumber" name="51" href="#51">51</a>  
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(OmidCompactor.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="53" href="#53">53</a>  
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String HBASE_RETAIN_NON_TRANSACTIONALLY_DELETED_CELLS_KEY =
+<a class="jxr_linenumber" name="55" href="#55">55</a>              <span class="jxr_string">"omid.hbase.compactor.retain.tombstones"</span>;
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> HBASE_RETAIN_NON_TRANSACTIONALLY_DELETED_CELLS_DEFAULT = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String HBASE_RETAIN_NON_TRANSACTIONALLY_DELETED_CELLS_KEY
-<a class="jxr_linenumber" name="59" href="#59">59</a>              = <span class="jxr_string">"omid.hbase.compactor.retain.tombstones"</span>;
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> HBASE_RETAIN_NON_TRANSACTIONALLY_DELETED_CELLS_DEFAULT = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> String OMID_COMPACTABLE_CF_FLAG = <span class="jxr_string">"OMID_ENABLED"</span>;
-<a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> enableCompactorForAllFamilies = false;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a> commitTableConf = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> Configuration conf = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="68" href="#68">68</a>      @VisibleForTesting
-<a class="jxr_linenumber" name="69" href="#69">69</a>      Queue&lt;CommitTable.Client&gt; commitTableClientQueue = <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;&gt;();
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <em class="jxr_comment">// When compacting, if a cell which has been marked by HBase as Delete or</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <em class="jxr_comment">// Delete Family (that is, non-transactionally deleted), we allow the user</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <em class="jxr_comment">// to decide what the compactor scanner should do with it: retain it or not</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <em class="jxr_comment">// If retained, the deleted cell will appear after a minor compaction, but</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>      <em class="jxr_comment">// will be deleted anyways after a major one</em>
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> retainNonTransactionallyDeletedCells;
-<a class="jxr_linenumber" name="77" href="#77">77</a>  
-<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/OmidCompactor.html">OmidCompactor</a>() {
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">this</strong>(false);
-<a class="jxr_linenumber" name="80" href="#80">80</a>      }
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> Optional getRegionObserver() {
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">return</strong> Optional.of(<strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="84" href="#84">84</a>      }
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/OmidCompactor.html">OmidCompactor</a>(<strong class="jxr_keyword">boolean</strong> enableCompactorForAllFamilies) {
-<a class="jxr_linenumber" name="87" href="#87">87</a>          LOG.info(<span class="jxr_string">"Compactor coprocessor initialized"</span>);
-<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">this</strong>.enableCompactorForAllFamilies = enableCompactorForAllFamilies;
+<a class="jxr_linenumber" name="58" href="#58">58</a>      <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> String OMID_COMPACTABLE_CF_FLAG = <span class="jxr_string">"OMID_ENABLED"</span>;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a> commitTableConf = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> Configuration conf = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="62" href="#62">62</a>      @VisibleForTesting
+<a class="jxr_linenumber" name="63" href="#63">63</a>      Queue&lt;CommitTable.Client&gt; commitTableClientQueue = <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;&gt;();
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <em class="jxr_comment">// When compacting, if a cell which has been marked by HBase as Delete or</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <em class="jxr_comment">// Delete Family (that is, non-transactionally deleted), we allow the user</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>      <em class="jxr_comment">// to decide what the compactor scanner should do with it: retain it or not</em>
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <em class="jxr_comment">// If retained, the deleted cell will appear after a minor compaction, but</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>      <em class="jxr_comment">// will be deleted anyways after a major one</em>
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> retainNonTransactionallyDeletedCells;
+<a class="jxr_linenumber" name="71" href="#71">71</a>  
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/OmidCompactor.html">OmidCompactor</a>() {
+<a class="jxr_linenumber" name="73" href="#73">73</a>          LOG.info(<span class="jxr_string">"Compactor coprocessor initialized via empty constructor"</span>);
+<a class="jxr_linenumber" name="74" href="#74">74</a>      }
+<a class="jxr_linenumber" name="75" href="#75">75</a>  
+<a class="jxr_linenumber" name="76" href="#76">76</a>      @Override
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> start(CoprocessorEnvironment env) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="78" href="#78">78</a>          LOG.info(<span class="jxr_string">"Starting compactor coprocessor"</span>);
+<a class="jxr_linenumber" name="79" href="#79">79</a>          conf = env.getConfiguration();
+<a class="jxr_linenumber" name="80" href="#80">80</a>          commitTableConf = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a>();
+<a class="jxr_linenumber" name="81" href="#81">81</a>          String commitTableName = conf.get(COMMIT_TABLE_NAME_KEY);
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">if</strong> (commitTableName != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="83" href="#83">83</a>              commitTableConf.setTableName(commitTableName);
+<a class="jxr_linenumber" name="84" href="#84">84</a>          }
+<a class="jxr_linenumber" name="85" href="#85">85</a>          retainNonTransactionallyDeletedCells =
+<a class="jxr_linenumber" name="86" href="#86">86</a>                  conf.getBoolean(HBASE_RETAIN_NON_TRANSACTIONALLY_DELETED_CELLS_KEY,
+<a class="jxr_linenumber" name="87" href="#87">87</a>                                  HBASE_RETAIN_NON_TRANSACTIONALLY_DELETED_CELLS_DEFAULT);
+<a class="jxr_linenumber" name="88" href="#88">88</a>          LOG.info(<span class="jxr_string">"Compactor coprocessor started"</span>);
 <a class="jxr_linenumber" name="89" href="#89">89</a>      }
 <a class="jxr_linenumber" name="90" href="#90">90</a>  
 <a class="jxr_linenumber" name="91" href="#91">91</a>      @Override
-<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> start(CoprocessorEnvironment env) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="93" href="#93">93</a>          LOG.info(<span class="jxr_string">"Starting compactor coprocessor"</span>);
-<a class="jxr_linenumber" name="94" href="#94">94</a>          conf = env.getConfiguration();
-<a class="jxr_linenumber" name="95" href="#95">95</a>          commitTableConf = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a>();
-<a class="jxr_linenumber" name="96" href="#96">96</a>          String commitTableName = conf.get(COMMIT_TABLE_NAME_KEY);
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">if</strong> (commitTableName != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="98" href="#98">98</a>              commitTableConf.setTableName(commitTableName);
-<a class="jxr_linenumber" name="99" href="#99">99</a>          }
-<a class="jxr_linenumber" name="100" href="#100">100</a>         retainNonTransactionallyDeletedCells =
-<a class="jxr_linenumber" name="101" href="#101">101</a>                 conf.getBoolean(HBASE_RETAIN_NON_TRANSACTIONALLY_DELETED_CELLS_KEY,
-<a class="jxr_linenumber" name="102" href="#102">102</a>                         HBASE_RETAIN_NON_TRANSACTIONALLY_DELETED_CELLS_DEFAULT);
-<a class="jxr_linenumber" name="103" href="#103">103</a>         LOG.info(<span class="jxr_string">"Compactor coprocessor started"</span>);
-<a class="jxr_linenumber" name="104" href="#104">104</a>     }
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>     @Override
-<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> stop(CoprocessorEnvironment e) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="108" href="#108">108</a>         LOG.info(<span class="jxr_string">"Stopping compactor coprocessor"</span>);
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">if</strong> (commitTableClientQueue != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="110" href="#110">110</a>             <strong class="jxr_keyword">for</strong> (CommitTable.Client commitTableClient : commitTableClientQueue) {
-<a class="jxr_linenumber" name="111" href="#111">111</a>                 commitTableClient.close();
-<a class="jxr_linenumber" name="112" href="#112">112</a>             }
-<a class="jxr_linenumber" name="113" href="#113">113</a>         }
-<a class="jxr_linenumber" name="114" href="#114">114</a>         LOG.info(<span class="jxr_string">"Compactor coprocessor stopped"</span>);
-<a class="jxr_linenumber" name="115" href="#115">115</a>     }
-<a class="jxr_linenumber" name="116" href="#116">116</a> 
-<a class="jxr_linenumber" name="117" href="#117">117</a> 
-<a class="jxr_linenumber" name="118" href="#118">118</a> 
-<a class="jxr_linenumber" name="119" href="#119">119</a>     <strong class="jxr_keyword">public</strong> InternalScanner preCompact(ObserverContext&lt;RegionCoprocessorEnvironment&gt; env,
-<a class="jxr_linenumber" name="120" href="#120">120</a>                                       Store store,
-<a class="jxr_linenumber" name="121" href="#121">121</a>                                       InternalScanner scanner,
-<a class="jxr_linenumber" name="122" href="#122">122</a>                                       ScanType scanType,
-<a class="jxr_linenumber" name="123" href="#123">123</a>                                       CompactionRequest request) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">boolean</strong> omidCompactable;
-<a class="jxr_linenumber" name="125" href="#125">125</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="126" href="#126">126</a>             <strong class="jxr_keyword">if</strong> (enableCompactorForAllFamilies) {
-<a class="jxr_linenumber" name="127" href="#127">127</a>                 omidCompactable = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="128" href="#128">128</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="129" href="#129">129</a> 
-<a class="jxr_linenumber" name="130" href="#130">130</a>                 omidCompactable = HBaseShims.OmidCompactionEnabled(env, store, OMID_COMPACTABLE_CF_FLAG);
-<a class="jxr_linenumber" name="131" href="#131">131</a>             }
-<a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a>             <em class="jxr_comment">// only column families tagged as compactable are compacted</em>
-<a class="jxr_linenumber" name="134" href="#134">134</a>             <em class="jxr_comment">// with omid compactor</em>
-<a class="jxr_linenumber" name="135" href="#135">135</a>             <strong class="jxr_keyword">if</strong> (!omidCompactable) {
-<a class="jxr_linenumber" name="136" href="#136">136</a>                 <strong class="jxr_keyword">return</strong> scanner;
-<a class="jxr_linenumber" name="137" href="#137">137</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="138" href="#138">138</a>                 CommitTable.Client commitTableClient = commitTableClientQueue.poll();
-<a class="jxr_linenumber" name="139" href="#139">139</a>                 <strong class="jxr_keyword">if</strong> (commitTableClient == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="140" href="#140">140</a>                     commitTableClient = initAndGetCommitTableClient();
-<a class="jxr_linenumber" name="141" href="#141">141</a>                 }
-<a class="jxr_linenumber" name="142" href="#142">142</a>                 <strong class="jxr_keyword">boolean</strong> isMajorCompaction = request.isMajor();
-<a class="jxr_linenumber" name="143" href="#143">143</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/hadoop/hbase/regionserver/CompactorScanner.html">CompactorScanner</a>(env,
-<a class="jxr_linenumber" name="144" href="#144">144</a>                         scanner,
-<a class="jxr_linenumber" name="145" href="#145">145</a>                         commitTableClient,
-<a class="jxr_linenumber" name="146" href="#146">146</a>                         commitTableClientQueue,
-<a class="jxr_linenumber" name="147" href="#147">147</a>                         isMajorCompaction,
-<a class="jxr_linenumber" name="148" href="#148">148</a>                         retainNonTransactionallyDeletedCells);
-<a class="jxr_linenumber" name="149" href="#149">149</a>             }
-<a class="jxr_linenumber" name="150" href="#150">150</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="151" href="#151">151</a>             <strong class="jxr_keyword">throw</strong> e;
-<a class="jxr_linenumber" name="152" href="#152">152</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="153" href="#153">153</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> DoNotRetryIOException(e);
-<a class="jxr_linenumber" name="154" href="#154">154</a>         }
-<a class="jxr_linenumber" name="155" href="#155">155</a>     }
-<a class="jxr_linenumber" name="156" href="#156">156</a> 
-<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">private</strong> CommitTable.Client initAndGetCommitTableClient() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="158" href="#158">158</a>         LOG.info(<span class="jxr_string">"Trying to get the commit table client"</span>);
-<a class="jxr_linenumber" name="159" href="#159">159</a>         <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTable</a> commitTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a>(conf, commitTableConf);
-<a class="jxr_linenumber" name="160" href="#160">160</a>         CommitTable.Client commitTableClient = commitTable.getClient();
-<a class="jxr_linenumber" name="161" href="#161">161</a>         LOG.info(<span class="jxr_string">"Commit table client obtained {}"</span>, commitTableClient.getClass().getCanonicalName());
-<a class="jxr_linenumber" name="162" href="#162">162</a>         <strong class="jxr_keyword">return</strong> commitTableClient;
-<a class="jxr_linenumber" name="163" href="#163">163</a>     }
-<a class="jxr_linenumber" name="164" href="#164">164</a> 
-<a class="jxr_linenumber" name="165" href="#165">165</a> }
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> stop(CoprocessorEnvironment e) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="93" href="#93">93</a>          LOG.info(<span class="jxr_string">"Stopping compactor coprocessor"</span>);
+<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">if</strong> (commitTableClientQueue != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="95" href="#95">95</a>              <strong class="jxr_keyword">for</strong> (CommitTable.Client commitTableClient : commitTableClientQueue) {
+<a class="jxr_linenumber" name="96" href="#96">96</a>                  commitTableClient.close();
+<a class="jxr_linenumber" name="97" href="#97">97</a>              }
+<a class="jxr_linenumber" name="98" href="#98">98</a>          }
+<a class="jxr_linenumber" name="99" href="#99">99</a>          LOG.info(<span class="jxr_string">"Compactor coprocessor stopped"</span>);
+<a class="jxr_linenumber" name="100" href="#100">100</a>     }
+<a class="jxr_linenumber" name="101" href="#101">101</a> 
+<a class="jxr_linenumber" name="102" href="#102">102</a>     @Override
+<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> InternalScanner preCompact(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,
+<a class="jxr_linenumber" name="104" href="#104">104</a>                                       Store store,
+<a class="jxr_linenumber" name="105" href="#105">105</a>                                       InternalScanner scanner,
+<a class="jxr_linenumber" name="106" href="#106">106</a>                                       ScanType scanType,
+<a class="jxr_linenumber" name="107" href="#107">107</a>                                       CompactionRequest request) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>         HTableDescriptor desc = e.getEnvironment().getRegion().getTableDesc();
+<a class="jxr_linenumber" name="110" href="#110">110</a>         HColumnDescriptor famDesc = desc.getFamily(Bytes.toBytes(store.getColumnFamilyName()));
+<a class="jxr_linenumber" name="111" href="#111">111</a>         <strong class="jxr_keyword">boolean</strong> omidCompactable = Boolean.valueOf(famDesc.getValue(OMID_COMPACTABLE_CF_FLAG));
+<a class="jxr_linenumber" name="112" href="#112">112</a>         <em class="jxr_comment">// only column families tagged as compactable are compacted with omid compactor</em>
+<a class="jxr_linenumber" name="113" href="#113">113</a>         <strong class="jxr_keyword">if</strong> (!omidCompactable) {
+<a class="jxr_linenumber" name="114" href="#114">114</a>             <strong class="jxr_keyword">return</strong> scanner;
+<a class="jxr_linenumber" name="115" href="#115">115</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="116" href="#116">116</a>             CommitTable.Client commitTableClient = commitTableClientQueue.poll();
+<a class="jxr_linenumber" name="117" href="#117">117</a>             <strong class="jxr_keyword">if</strong> (commitTableClient == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="118" href="#118">118</a>                 commitTableClient = initAndGetCommitTableClient();
+<a class="jxr_linenumber" name="119" href="#119">119</a>             }
+<a class="jxr_linenumber" name="120" href="#120">120</a>             <strong class="jxr_keyword">boolean</strong> isMajorCompaction = request.isMajor();
+<a class="jxr_linenumber" name="121" href="#121">121</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/CompactorScanner.html">CompactorScanner</a>(e,
+<a class="jxr_linenumber" name="122" href="#122">122</a>                                         scanner,
+<a class="jxr_linenumber" name="123" href="#123">123</a>                                         commitTableClient,
+<a class="jxr_linenumber" name="124" href="#124">124</a>                                         commitTableClientQueue,
+<a class="jxr_linenumber" name="125" href="#125">125</a>                                         isMajorCompaction,
+<a class="jxr_linenumber" name="126" href="#126">126</a>                                         retainNonTransactionallyDeletedCells);
+<a class="jxr_linenumber" name="127" href="#127">127</a>         }
+<a class="jxr_linenumber" name="128" href="#128">128</a> 
+<a class="jxr_linenumber" name="129" href="#129">129</a>     }
+<a class="jxr_linenumber" name="130" href="#130">130</a> 
+<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> CommitTable.Client initAndGetCommitTableClient() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="132" href="#132">132</a>         LOG.info(<span class="jxr_string">"Trying to get the commit table client"</span>);
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTable</a> commitTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a>(conf, commitTableConf);
+<a class="jxr_linenumber" name="134" href="#134">134</a>         CommitTable.Client commitTableClient = commitTable.getClient();
+<a class="jxr_linenumber" name="135" href="#135">135</a>         LOG.info(<span class="jxr_string">"Commit table client obtained {}"</span>, commitTableClient.getClass().getCanonicalName());
+<a class="jxr_linenumber" name="136" href="#136">136</a>         <strong class="jxr_keyword">return</strong> commitTableClient;
+<a class="jxr_linenumber" name="137" href="#137">137</a>     }
+<a class="jxr_linenumber" name="138" href="#138">138</a> 
+<a class="jxr_linenumber" name="139" href="#139">139</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[12/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/transaction/HBaseTransactionManager.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/transaction/HBaseTransactionManager.html b/xref/org/apache/omid/transaction/HBaseTransactionManager.html
index a1d107c..e603ebb 100644
--- a/xref/org/apache/omid/transaction/HBaseTransactionManager.html
+++ b/xref/org/apache/omid/transaction/HBaseTransactionManager.html
@@ -27,267 +27,280 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTable;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.HBaseLogin;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConflictDetectionLevel;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListeningExecutorService;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.MoreExecutors;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ThreadFactoryBuilder;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionManager</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionClient.html">HBaseTransactionClient</a> {
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.annotations.VisibleForTesting;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Optional;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Maps;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ListeningExecutorService;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.MoreExecutors;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.ThreadFactoryBuilder;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.CommitTable.CommitTimestamp;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTable;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.committable.hbase.HBaseCommitTableConfig;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tools.hbase.HBaseLogin;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.CellId;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOClient;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.client.TSOProtocol;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutionException;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executors;
 <a class="jxr_linenumber" name="45" href="#45">45</a>  
-<a class="jxr_linenumber" name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseTransactionManager.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionManager</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionClient.html">HBaseTransactionClient</a> {
 <a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionFactory</a> <strong class="jxr_keyword">implements</strong> TransactionFactory&lt;HBaseCellId&gt; {
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(HBaseTransactionManager.<strong class="jxr_keyword">class</strong>);
 <a class="jxr_linenumber" name="49" href="#49">49</a>  
-<a class="jxr_linenumber" name="50" href="#50">50</a>          @Override
-<a class="jxr_linenumber" name="51" href="#51">51</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> createTransaction(<strong class="jxr_keyword">long</strong> transactionId, <strong class="jxr_keyword">long</strong> epoch, <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> tm) {
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a>(transactionId, epoch, <strong class="jxr_keyword">new</strong> HashSet&lt;HBaseCellId&gt;(), <strong class="jxr_keyword">new</strong> HashSet&lt;HBaseCellId&gt;(), tm);
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionFactory</a> <strong class="jxr_keyword">implements</strong> TransactionFactory&lt;HBaseCellId&gt; {
+<a class="jxr_linenumber" name="51" href="#51">51</a>  
+<a class="jxr_linenumber" name="52" href="#52">52</a>          @Override
+<a class="jxr_linenumber" name="53" href="#53">53</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> createTransaction(<strong class="jxr_keyword">long</strong> transactionId, <strong class="jxr_keyword">long</strong> epoch, <a href="../../../../org/apache/omid/transaction/AbstractTransactionManager.html">AbstractTransactionManager</a> tm) {
 <a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>          }
+<a class="jxr_linenumber" name="55" href="#55">55</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a>(transactionId, epoch, <strong class="jxr_keyword">new</strong> HashSet&lt;HBaseCellId&gt;(), tm);
 <a class="jxr_linenumber" name="56" href="#56">56</a>  
-<a class="jxr_linenumber" name="57" href="#57">57</a>      }
+<a class="jxr_linenumber" name="57" href="#57">57</a>          }
 <a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <em class="jxr_comment">// Construction</em>
+<a class="jxr_linenumber" name="59" href="#59">59</a>      }
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
 <a class="jxr_linenumber" name="61" href="#61">61</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="62" href="#62">62</a>  
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/TransactionManager.html">TransactionManager</a> newInstance() <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="64" href="#64">64</a>          <strong class="jxr_keyword">return</strong> newInstance(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>());
-<a class="jxr_linenumber" name="65" href="#65">65</a>      }
-<a class="jxr_linenumber" name="66" href="#66">66</a>  
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/TransactionManager.html">TransactionManager</a> newInstance(<a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> configuration)
-<a class="jxr_linenumber" name="68" href="#68">68</a>              <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="69" href="#69">69</a>          <em class="jxr_comment">//Logging in to Secure HBase if required</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>          HBaseLogin.loginIfNeeded(configuration);
-<a class="jxr_linenumber" name="71" href="#71">71</a>          <strong class="jxr_keyword">return</strong> builder(configuration).build();
-<a class="jxr_linenumber" name="72" href="#72">72</a>      }
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> {
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <em class="jxr_comment">// Construction</em>
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/TransactionManager.html">TransactionManager</a> newInstance() <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
+<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">return</strong> newInstance(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a>());
+<a class="jxr_linenumber" name="67" href="#67">67</a>      }
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/TransactionManager.html">TransactionManager</a> newInstance(<a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> configuration)
+<a class="jxr_linenumber" name="70" href="#70">70</a>              <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
+<a class="jxr_linenumber" name="71" href="#71">71</a>          <em class="jxr_comment">//Logging in to Secure HBase if required</em>
+<a class="jxr_linenumber" name="72" href="#72">72</a>          HBaseLogin.loginIfNeeded(configuration);
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">return</strong> builder(configuration).build();
+<a class="jxr_linenumber" name="74" href="#74">74</a>      }
 <a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          <em class="jxr_comment">// Required parameters</em>
-<a class="jxr_linenumber" name="77" href="#77">77</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> hbaseOmidClientConf;
+<a class="jxr_linenumber" name="76" href="#76">76</a>      @VisibleForTesting
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> {
 <a class="jxr_linenumber" name="78" href="#78">78</a>  
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <em class="jxr_comment">// Optional parameters - initialized to default values</em>
-<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">private</strong> Optional&lt;TSOClient&gt; tsoClient = Optional.absent();
-<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">private</strong> Optional&lt;CommitTable.Client&gt; commitTableClient = Optional.absent();
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">private</strong> Optional&lt;PostCommitActions&gt; postCommitter = Optional.absent();
-<a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a>(<a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> hbaseOmidClientConf) {
-<a class="jxr_linenumber" name="85" href="#85">85</a>              <strong class="jxr_keyword">this</strong>.hbaseOmidClientConf = hbaseOmidClientConf;
-<a class="jxr_linenumber" name="86" href="#86">86</a>          }
-<a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> tsoClient(<a href="../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> tsoClient) {
-<a class="jxr_linenumber" name="89" href="#89">89</a>              <strong class="jxr_keyword">this</strong>.tsoClient = Optional.of(tsoClient);
-<a class="jxr_linenumber" name="90" href="#90">90</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="91" href="#91">91</a>          }
-<a class="jxr_linenumber" name="92" href="#92">92</a>  
-<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> commitTableClient(CommitTable.Client client) {
-<a class="jxr_linenumber" name="94" href="#94">94</a>              <strong class="jxr_keyword">this</strong>.commitTableClient = Optional.of(client);
-<a class="jxr_linenumber" name="95" href="#95">95</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="96" href="#96">96</a>          }
-<a class="jxr_linenumber" name="97" href="#97">97</a>  
-<a class="jxr_linenumber" name="98" href="#98">98</a>          <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> postCommitter(<a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter) {
-<a class="jxr_linenumber" name="99" href="#99">99</a>              <strong class="jxr_keyword">this</strong>.postCommitter = Optional.of(postCommitter);
-<a class="jxr_linenumber" name="100" href="#100">100</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="101" href="#101">101</a>         }
-<a class="jxr_linenumber" name="102" href="#102">102</a> 
-<a class="jxr_linenumber" name="103" href="#103">103</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionManager</a> build() <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="104" href="#104">104</a> 
-<a class="jxr_linenumber" name="105" href="#105">105</a>             CommitTable.Client commitTableClient = <strong class="jxr_keyword">this</strong>.commitTableClient.or(buildCommitTableClient()).get();
-<a class="jxr_linenumber" name="106" href="#106">106</a>             <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter = <strong class="jxr_keyword">this</strong>.postCommitter.or(buildPostCommitter(commitTableClient)).get();
-<a class="jxr_linenumber" name="107" href="#107">107</a>             <a href="../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> tsoClient = <strong class="jxr_keyword">this</strong>.tsoClient.or(buildTSOClient()).get();
-<a class="jxr_linenumber" name="108" href="#108">108</a> 
-<a class="jxr_linenumber" name="109" href="#109">109</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionManager</a>(hbaseOmidClientConf,
-<a class="jxr_linenumber" name="110" href="#110">110</a>                                                postCommitter,
-<a class="jxr_linenumber" name="111" href="#111">111</a>                                                tsoClient,
-<a class="jxr_linenumber" name="112" href="#112">112</a>                                                commitTableClient,
-<a class="jxr_linenumber" name="113" href="#113">113</a>                                                <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionFactory</a>());
-<a class="jxr_linenumber" name="114" href="#114">114</a>         }
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>         <strong class="jxr_keyword">private</strong> Optional&lt;TSOClient&gt; buildTSOClient() <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="117" href="#117">117</a>             <strong class="jxr_keyword">return</strong> Optional.of(TSOClient.newInstance(hbaseOmidClientConf.getOmidClientConfiguration()));
-<a class="jxr_linenumber" name="118" href="#118">118</a>         }
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a> 
-<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">private</strong> Optional&lt;CommitTable.Client&gt; buildCommitTableClient() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="122" href="#122">122</a>             <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a> commitTableConf = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a>();
-<a class="jxr_linenumber" name="123" href="#123">123</a>             commitTableConf.setTableName(hbaseOmidClientConf.getCommitTableName());
-<a class="jxr_linenumber" name="124" href="#124">124</a>             <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTable</a> commitTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a>(hbaseOmidClientConf.getHBaseConfiguration(), commitTableConf);
-<a class="jxr_linenumber" name="125" href="#125">125</a>             <strong class="jxr_keyword">return</strong> Optional.of(commitTable.getClient());
-<a class="jxr_linenumber" name="126" href="#126">126</a>         }
-<a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>         <strong class="jxr_keyword">private</strong> Optional&lt;PostCommitActions&gt; buildPostCommitter(CommitTable.Client commitTableClient ) {
-<a class="jxr_linenumber" name="129" href="#129">129</a> 
-<a class="jxr_linenumber" name="130" href="#130">130</a>             <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter;
-<a class="jxr_linenumber" name="131" href="#131">131</a>             <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> syncPostCommitter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseSyncPostCommitter.html">HBaseSyncPostCommitter</a>(hbaseOmidClientConf.getMetrics(),
-<a class="jxr_linenumber" name="132" href="#132">132</a>                                                                              commitTableClient);
-<a class="jxr_linenumber" name="133" href="#133">133</a>             <strong class="jxr_keyword">switch</strong>(hbaseOmidClientConf.getPostCommitMode()) {
-<a class="jxr_linenumber" name="134" href="#134">134</a>                 <strong class="jxr_keyword">case</strong> ASYNC:
-<a class="jxr_linenumber" name="135" href="#135">135</a>                     ListeningExecutorService postCommitExecutor =
-<a class="jxr_linenumber" name="136" href="#136">136</a>                             MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor(
-<a class="jxr_linenumber" name="137" href="#137">137</a>                                     <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"postCommit-%d"</span>).build()));
-<a class="jxr_linenumber" name="138" href="#138">138</a>                     postCommitter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseAsyncPostCommitter.html">HBaseAsyncPostCommitter</a>(syncPostCommitter, postCommitExecutor);
-<a class="jxr_linenumber" name="139" href="#139">139</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="140" href="#140">140</a>                 <strong class="jxr_keyword">case</strong> SYNC:
-<a class="jxr_linenumber" name="141" href="#141">141</a>                 <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="142" href="#142">142</a>                     postCommitter = syncPostCommitter;
-<a class="jxr_linenumber" name="143" href="#143">143</a>                     <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="144" href="#144">144</a>             }
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>             <strong class="jxr_keyword">return</strong> Optional.of(postCommitter);
-<a class="jxr_linenumber" name="147" href="#147">147</a>         }
+<a class="jxr_linenumber" name="79" href="#79">79</a>          <em class="jxr_comment">// Required parameters</em>
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> hbaseOmidClientConf;
+<a class="jxr_linenumber" name="81" href="#81">81</a>  
+<a class="jxr_linenumber" name="82" href="#82">82</a>          <em class="jxr_comment">// Optional parameters - initialized to default values</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">private</strong> Optional&lt;TSOProtocol&gt; tsoClient = Optional.absent();
+<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">private</strong> Optional&lt;CommitTable.Client&gt; commitTableClient = Optional.absent();
+<a class="jxr_linenumber" name="85" href="#85">85</a>          <strong class="jxr_keyword">private</strong> Optional&lt;PostCommitActions&gt; postCommitter = Optional.absent();
+<a class="jxr_linenumber" name="86" href="#86">86</a>  
+<a class="jxr_linenumber" name="87" href="#87">87</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a>(<a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> hbaseOmidClientConf) {
+<a class="jxr_linenumber" name="88" href="#88">88</a>              <strong class="jxr_keyword">this</strong>.hbaseOmidClientConf = hbaseOmidClientConf;
+<a class="jxr_linenumber" name="89" href="#89">89</a>          }
+<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="91" href="#91">91</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> tsoClient(<a href="../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> tsoClient) {
+<a class="jxr_linenumber" name="92" href="#92">92</a>              <strong class="jxr_keyword">this</strong>.tsoClient = Optional.of(tsoClient);
+<a class="jxr_linenumber" name="93" href="#93">93</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="94" href="#94">94</a>          }
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> commitTableClient(CommitTable.Client client) {
+<a class="jxr_linenumber" name="97" href="#97">97</a>              <strong class="jxr_keyword">this</strong>.commitTableClient = Optional.of(client);
+<a class="jxr_linenumber" name="98" href="#98">98</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="99" href="#99">99</a>          }
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> postCommitter(<a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter) {
+<a class="jxr_linenumber" name="102" href="#102">102</a>             <strong class="jxr_keyword">this</strong>.postCommitter = Optional.of(postCommitter);
+<a class="jxr_linenumber" name="103" href="#103">103</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="104" href="#104">104</a>         }
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionManager</a> build() <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
+<a class="jxr_linenumber" name="107" href="#107">107</a> 
+<a class="jxr_linenumber" name="108" href="#108">108</a>             CommitTable.Client commitTableClient = <strong class="jxr_keyword">this</strong>.commitTableClient.or(buildCommitTableClient()).get();
+<a class="jxr_linenumber" name="109" href="#109">109</a>             <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter = <strong class="jxr_keyword">this</strong>.postCommitter.or(buildPostCommitter(commitTableClient)).get();
+<a class="jxr_linenumber" name="110" href="#110">110</a>             <a href="../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> tsoClient = <strong class="jxr_keyword">this</strong>.tsoClient.or(buildTSOClient()).get();
+<a class="jxr_linenumber" name="111" href="#111">111</a> 
+<a class="jxr_linenumber" name="112" href="#112">112</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionManager</a>(hbaseOmidClientConf,
+<a class="jxr_linenumber" name="113" href="#113">113</a>                                                postCommitter,
+<a class="jxr_linenumber" name="114" href="#114">114</a>                                                tsoClient,
+<a class="jxr_linenumber" name="115" href="#115">115</a>                                                commitTableClient,
+<a class="jxr_linenumber" name="116" href="#116">116</a>                                                <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionFactory</a>());
+<a class="jxr_linenumber" name="117" href="#117">117</a>         }
+<a class="jxr_linenumber" name="118" href="#118">118</a> 
+<a class="jxr_linenumber" name="119" href="#119">119</a>         <strong class="jxr_keyword">private</strong> Optional&lt;TSOProtocol&gt; buildTSOClient() <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
+<a class="jxr_linenumber" name="120" href="#120">120</a>             <strong class="jxr_keyword">return</strong> Optional.of((TSOProtocol) TSOClient.newInstance(hbaseOmidClientConf.getOmidClientConfiguration()));
+<a class="jxr_linenumber" name="121" href="#121">121</a>         }
+<a class="jxr_linenumber" name="122" href="#122">122</a> 
+<a class="jxr_linenumber" name="123" href="#123">123</a> 
+<a class="jxr_linenumber" name="124" href="#124">124</a>         <strong class="jxr_keyword">private</strong> Optional&lt;CommitTable.Client&gt; buildCommitTableClient() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="125" href="#125">125</a>             <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a> commitTableConf = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTableConfig.html">HBaseCommitTableConfig</a>();
+<a class="jxr_linenumber" name="126" href="#126">126</a>             commitTableConf.setTableName(hbaseOmidClientConf.getCommitTableName());
+<a class="jxr_linenumber" name="127" href="#127">127</a>             <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTable</a> commitTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/committable/hbase/HBaseCommitTable.html">HBaseCommitTable</a>(hbaseOmidClientConf.getHBaseConfiguration(), commitTableConf);
+<a class="jxr_linenumber" name="128" href="#128">128</a>             <strong class="jxr_keyword">return</strong> Optional.of(commitTable.getClient());
+<a class="jxr_linenumber" name="129" href="#129">129</a>         }
+<a class="jxr_linenumber" name="130" href="#130">130</a> 
+<a class="jxr_linenumber" name="131" href="#131">131</a>         <strong class="jxr_keyword">private</strong> Optional&lt;PostCommitActions&gt; buildPostCommitter(CommitTable.Client commitTableClient ) {
+<a class="jxr_linenumber" name="132" href="#132">132</a> 
+<a class="jxr_linenumber" name="133" href="#133">133</a>             <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter;
+<a class="jxr_linenumber" name="134" href="#134">134</a>             <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> syncPostCommitter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseSyncPostCommitter.html">HBaseSyncPostCommitter</a>(hbaseOmidClientConf.getMetrics(),
+<a class="jxr_linenumber" name="135" href="#135">135</a>                                                                              commitTableClient);
+<a class="jxr_linenumber" name="136" href="#136">136</a>             <strong class="jxr_keyword">switch</strong>(hbaseOmidClientConf.getPostCommitMode()) {
+<a class="jxr_linenumber" name="137" href="#137">137</a>                 <strong class="jxr_keyword">case</strong> ASYNC:
+<a class="jxr_linenumber" name="138" href="#138">138</a>                     ListeningExecutorService postCommitExecutor =
+<a class="jxr_linenumber" name="139" href="#139">139</a>                             MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor(
+<a class="jxr_linenumber" name="140" href="#140">140</a>                                     <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"postCommit-%d"</span>).build()));
+<a class="jxr_linenumber" name="141" href="#141">141</a>                     postCommitter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseAsyncPostCommitter.html">HBaseAsyncPostCommitter</a>(syncPostCommitter, postCommitExecutor);
+<a class="jxr_linenumber" name="142" href="#142">142</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="143" href="#143">143</a>                 <strong class="jxr_keyword">case</strong> SYNC:
+<a class="jxr_linenumber" name="144" href="#144">144</a>                 <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="145" href="#145">145</a>                     postCommitter = syncPostCommitter;
+<a class="jxr_linenumber" name="146" href="#146">146</a>                     <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="147" href="#147">147</a>             }
 <a class="jxr_linenumber" name="148" href="#148">148</a> 
-<a class="jxr_linenumber" name="149" href="#149">149</a>     }
-<a class="jxr_linenumber" name="150" href="#150">150</a> 
-<a class="jxr_linenumber" name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> builder(<a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> hbaseOmidClientConf) {
-<a class="jxr_linenumber" name="152" href="#152">152</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a>(hbaseOmidClientConf);
-<a class="jxr_linenumber" name="153" href="#153">153</a>     }
-<a class="jxr_linenumber" name="154" href="#154">154</a> 
-<a class="jxr_linenumber" name="155" href="#155">155</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionManager</a>(<a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> hBaseOmidClientConfiguration,
-<a class="jxr_linenumber" name="156" href="#156">156</a>                                     <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter,
-<a class="jxr_linenumber" name="157" href="#157">157</a>                                     <a href="../../../../org/apache/omid/tso/client/TSOClient.html">TSOClient</a> tsoClient,
-<a class="jxr_linenumber" name="158" href="#158">158</a>                                     CommitTable.Client commitTableClient,
-<a class="jxr_linenumber" name="159" href="#159">159</a>                                     <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionFactory</a> hBaseTransactionFactory) {
-<a class="jxr_linenumber" name="160" href="#160">160</a> 
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">super</strong>(hBaseOmidClientConfiguration.getMetrics(),
-<a class="jxr_linenumber" name="162" href="#162">162</a>               postCommitter,
-<a class="jxr_linenumber" name="163" href="#163">163</a>               tsoClient,
-<a class="jxr_linenumber" name="164" href="#164">164</a>               commitTableClient,
-<a class="jxr_linenumber" name="165" href="#165">165</a>               hBaseTransactionFactory);
-<a class="jxr_linenumber" name="166" href="#166">166</a> 
-<a class="jxr_linenumber" name="167" href="#167">167</a>     }
-<a class="jxr_linenumber" name="168" href="#168">168</a> 
-<a class="jxr_linenumber" name="169" href="#169">169</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="170" href="#170">170</a>     <em class="jxr_comment">// AbstractTransactionManager overwritten methods</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="149" href="#149">149</a>             <strong class="jxr_keyword">return</strong> Optional.of(postCommitter);
+<a class="jxr_linenumber" name="150" href="#150">150</a>         }
+<a class="jxr_linenumber" name="151" href="#151">151</a> 
+<a class="jxr_linenumber" name="152" href="#152">152</a>     }
+<a class="jxr_linenumber" name="153" href="#153">153</a> 
+<a class="jxr_linenumber" name="154" href="#154">154</a>     @VisibleForTesting
+<a class="jxr_linenumber" name="155" href="#155">155</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a> builder(<a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> hbaseOmidClientConf) {
+<a class="jxr_linenumber" name="156" href="#156">156</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">Builder</a>(hbaseOmidClientConf);
+<a class="jxr_linenumber" name="157" href="#157">157</a>     }
+<a class="jxr_linenumber" name="158" href="#158">158</a> 
+<a class="jxr_linenumber" name="159" href="#159">159</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionManager</a>(<a href="../../../../org/apache/omid/transaction/HBaseOmidClientConfiguration.html">HBaseOmidClientConfiguration</a> hBaseOmidClientConfiguration,
+<a class="jxr_linenumber" name="160" href="#160">160</a>                                     <a href="../../../../org/apache/omid/transaction/PostCommitActions.html">PostCommitActions</a> postCommitter,
+<a class="jxr_linenumber" name="161" href="#161">161</a>                                     <a href="../../../../org/apache/omid/tso/client/TSOProtocol.html">TSOProtocol</a> tsoClient,
+<a class="jxr_linenumber" name="162" href="#162">162</a>                                     CommitTable.Client commitTableClient,
+<a class="jxr_linenumber" name="163" href="#163">163</a>                                     <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">HBaseTransactionFactory</a> hBaseTransactionFactory) {
+<a class="jxr_linenumber" name="164" href="#164">164</a> 
+<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">super</strong>(hBaseOmidClientConfiguration.getMetrics(),
+<a class="jxr_linenumber" name="166" href="#166">166</a>               postCommitter,
+<a class="jxr_linenumber" name="167" href="#167">167</a>               tsoClient,
+<a class="jxr_linenumber" name="168" href="#168">168</a>               commitTableClient,
+<a class="jxr_linenumber" name="169" href="#169">169</a>               hBaseTransactionFactory);
+<a class="jxr_linenumber" name="170" href="#170">170</a> 
+<a class="jxr_linenumber" name="171" href="#171">171</a>     }
 <a class="jxr_linenumber" name="172" href="#172">172</a> 
-<a class="jxr_linenumber" name="173" href="#173">173</a>     @Override
-<a class="jxr_linenumber" name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preCommit(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {
-<a class="jxr_linenumber" name="175" href="#175">175</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="176" href="#176">176</a>             <em class="jxr_comment">// Flush all pending writes</em>
-<a class="jxr_linenumber" name="177" href="#177">177</a>             <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> hBaseTx = enforceHBaseTransactionAsParam(transaction);
-<a class="jxr_linenumber" name="178" href="#178">178</a>             hBaseTx.flushTables();
-<a class="jxr_linenumber" name="179" href="#179">179</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="180" href="#180">180</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(<span class="jxr_string">"Exception while flushing writes"</span>, e);
-<a class="jxr_linenumber" name="181" href="#181">181</a>         }
-<a class="jxr_linenumber" name="182" href="#182">182</a>     }
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>     @Override
-<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preRollback(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {
-<a class="jxr_linenumber" name="186" href="#186">186</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="187" href="#187">187</a>             <em class="jxr_comment">// Flush all pending writes</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a>             <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> hBaseTx = enforceHBaseTransactionAsParam(transaction);
-<a class="jxr_linenumber" name="189" href="#189">189</a>             hBaseTx.flushTables();
-<a class="jxr_linenumber" name="190" href="#190">190</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="191" href="#191">191</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(<span class="jxr_string">"Exception while flushing writes"</span>, e);
-<a class="jxr_linenumber" name="192" href="#192">192</a>         }
-<a class="jxr_linenumber" name="193" href="#193">193</a>     }
-<a class="jxr_linenumber" name="194" href="#194">194</a> 
-<a class="jxr_linenumber" name="195" href="#195">195</a>     @Override
-<a class="jxr_linenumber" name="196" href="#196">196</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getHashForTable(byte[] tableName) {
-<a class="jxr_linenumber" name="197" href="#197">197</a>         <strong class="jxr_keyword">return</strong> HBaseCellId.getHasher().putBytes(tableName).hash().asLong();
-<a class="jxr_linenumber" name="198" href="#198">198</a>     }
-<a class="jxr_linenumber" name="199" href="#199">199</a> 
-<a class="jxr_linenumber" name="200" href="#200">200</a>     @Override
-<a class="jxr_linenumber" name="201" href="#201">201</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getLowWatermark() <strong class="jxr_keyword">throws</strong> TransactionException {
-<a class="jxr_linenumber" name="202" href="#202">202</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="203" href="#203">203</a>             <strong class="jxr_keyword">return</strong> commitTableClient.readLowWatermark().get();
-<a class="jxr_linenumber" name="204" href="#204">204</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
-<a class="jxr_linenumber" name="205" href="#205">205</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Error reading low watermark"</span>, ee.getCause());
-<a class="jxr_linenumber" name="206" href="#206">206</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
-<a class="jxr_linenumber" name="207" href="#207">207</a>             Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="208" href="#208">208</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Interrupted reading low watermark"</span>, ie);
-<a class="jxr_linenumber" name="209" href="#209">209</a>         }
-<a class="jxr_linenumber" name="210" href="#210">210</a>     }
-<a class="jxr_linenumber" name="211" href="#211">211</a> 
-<a class="jxr_linenumber" name="212" href="#212">212</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="213" href="#213">213</a>     <em class="jxr_comment">// Helper methods</em>
-<a class="jxr_linenumber" name="214" href="#214">214</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="215" href="#215">215</a> 
-<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> enforceHBaseTransactionAsParam(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx) {
-<a class="jxr_linenumber" name="217" href="#217">217</a> 
-<a class="jxr_linenumber" name="218" href="#218">218</a>         <strong class="jxr_keyword">if</strong> (tx instanceof HBaseTransaction) {
-<a class="jxr_linenumber" name="219" href="#219">219</a>             <strong class="jxr_keyword">return</strong> (HBaseTransaction) tx;
-<a class="jxr_linenumber" name="220" href="#220">220</a>         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="221" href="#221">221</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
-<a class="jxr_linenumber" name="222" href="#222">222</a>                     <span class="jxr_string">"The transaction object passed is not an instance of HBaseTransaction"</span>);
-<a class="jxr_linenumber" name="223" href="#223">223</a>         }
-<a class="jxr_linenumber" name="224" href="#224">224</a> 
-<a class="jxr_linenumber" name="225" href="#225">225</a>     }
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConflictDetectionLevel(<a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> conflictDetectionLevel) {
-<a class="jxr_linenumber" name="228" href="#228">228</a>         tsoClient.setConflictDetectionLevel(conflictDetectionLevel);
-<a class="jxr_linenumber" name="229" href="#229">229</a>     }
-<a class="jxr_linenumber" name="230" href="#230">230</a> 
-<a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/client/OmidClientConfiguration.html">ConflictDetectionLevel</a> getConflictDetectionLevel() {
-<a class="jxr_linenumber" name="232" href="#232">232</a>         <strong class="jxr_keyword">return</strong> tsoClient.getConflictDetectionLevel();
-<a class="jxr_linenumber" name="233" href="#233">233</a>     }
-<a class="jxr_linenumber" name="234" href="#234">234</a> 
-<a class="jxr_linenumber" name="235" href="#235">235</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">CommitTimestampLocatorImpl</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/CommitTimestampLocator.html">CommitTimestampLocator</a> {
-<a class="jxr_linenumber" name="236" href="#236">236</a> 
-<a class="jxr_linenumber" name="237" href="#237">237</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> hBaseCellId;
-<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Long, Long&gt; commitCache;
-<a class="jxr_linenumber" name="239" href="#239">239</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/TableAccessWrapper.html">TableAccessWrapper</a> tableAccessWrapper;
-<a class="jxr_linenumber" name="240" href="#240">240</a> 
-<a class="jxr_linenumber" name="241" href="#241">241</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">CommitTimestampLocatorImpl</a>(<a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> hBaseCellId, Map&lt;Long, Long&gt; commitCache, <a href="../../../../org/apache/omid/transaction/TableAccessWrapper.html">TableAccessWrapper</a> tableAccessWrapper) {
-<a class="jxr_linenumber" name="242" href="#242">242</a>             <strong class="jxr_keyword">this</strong>.hBaseCellId = hBaseCellId;
-<a class="jxr_linenumber" name="243" href="#243">243</a>             <strong class="jxr_keyword">this</strong>.commitCache = commitCache;
-<a class="jxr_linenumber" name="244" href="#244">244</a>             <strong class="jxr_keyword">this</strong>.tableAccessWrapper = tableAccessWrapper;
-<a class="jxr_linenumber" name="245" href="#245">245</a>         }
-<a class="jxr_linenumber" name="246" href="#246">246</a> 
-<a class="jxr_linenumber" name="247" href="#247">247</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">CommitTimestampLocatorImpl</a>(<a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> hBaseCellId, Map&lt;Long, Long&gt; commitCache) {
-<a class="jxr_linenumber" name="248" href="#248">248</a>             <strong class="jxr_keyword">this</strong>.hBaseCellId = hBaseCellId;
-<a class="jxr_linenumber" name="249" href="#249">249</a>             <strong class="jxr_keyword">this</strong>.commitCache = commitCache;
-<a class="jxr_linenumber" name="250" href="#250">250</a>             <strong class="jxr_keyword">this</strong>.tableAccessWrapper = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="251" href="#251">251</a>             <strong class="jxr_keyword">this</strong>.tableAccessWrapper = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HTableAccessWrapper.html">HTableAccessWrapper</a>(hBaseCellId.getTable().getHTable(), hBaseCellId.getTable().getHTable());
-<a class="jxr_linenumber" name="252" href="#252">252</a>         }
-<a class="jxr_linenumber" name="253" href="#253">253</a> 
-<a class="jxr_linenumber" name="254" href="#254">254</a>         @Override
-<a class="jxr_linenumber" name="255" href="#255">255</a>         <strong class="jxr_keyword">public</strong> Optional&lt;Long&gt; readCommitTimestampFromCache(<strong class="jxr_keyword">long</strong> startTimestamp) {
-<a class="jxr_linenumber" name="256" href="#256">256</a>             <strong class="jxr_keyword">if</strong> (commitCache.containsKey(startTimestamp)) {
-<a class="jxr_linenumber" name="257" href="#257">257</a>                 <strong class="jxr_keyword">return</strong> Optional.of(commitCache.get(startTimestamp));
-<a class="jxr_linenumber" name="258" href="#258">258</a>             }
-<a class="jxr_linenumber" name="259" href="#259">259</a>             <strong class="jxr_keyword">return</strong> Optional.absent();
-<a class="jxr_linenumber" name="260" href="#260">260</a>         }
+<a class="jxr_linenumber" name="173" href="#173">173</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a>     <em class="jxr_comment">// AbstractTransactionManager overwritten methods</em>
+<a class="jxr_linenumber" name="175" href="#175">175</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="176" href="#176">176</a> 
+<a class="jxr_linenumber" name="177" href="#177">177</a>     @Override
+<a class="jxr_linenumber" name="178" href="#178">178</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preCommit(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {
+<a class="jxr_linenumber" name="179" href="#179">179</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="180" href="#180">180</a>             <em class="jxr_comment">// Flush all pending writes</em>
+<a class="jxr_linenumber" name="181" href="#181">181</a>             <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> hBaseTx = enforceHBaseTransactionAsParam(transaction);
+<a class="jxr_linenumber" name="182" href="#182">182</a>             hBaseTx.flushTables();
+<a class="jxr_linenumber" name="183" href="#183">183</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="184" href="#184">184</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(<span class="jxr_string">"Exception while flushing writes"</span>, e);
+<a class="jxr_linenumber" name="185" href="#185">185</a>         }
+<a class="jxr_linenumber" name="186" href="#186">186</a>     }
+<a class="jxr_linenumber" name="187" href="#187">187</a> 
+<a class="jxr_linenumber" name="188" href="#188">188</a>     @Override
+<a class="jxr_linenumber" name="189" href="#189">189</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> preRollback(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; transaction) <strong class="jxr_keyword">throws</strong> TransactionManagerException {
+<a class="jxr_linenumber" name="190" href="#190">190</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="191" href="#191">191</a>             <em class="jxr_comment">// Flush all pending writes</em>
+<a class="jxr_linenumber" name="192" href="#192">192</a>             <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> hBaseTx = enforceHBaseTransactionAsParam(transaction);
+<a class="jxr_linenumber" name="193" href="#193">193</a>             hBaseTx.flushTables();
+<a class="jxr_linenumber" name="194" href="#194">194</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="195" href="#195">195</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionManagerException.html">TransactionManagerException</a>(<span class="jxr_string">"Exception while flushing writes"</span>, e);
+<a class="jxr_linenumber" name="196" href="#196">196</a>         }
+<a class="jxr_linenumber" name="197" href="#197">197</a>     }
+<a class="jxr_linenumber" name="198" href="#198">198</a> 
+<a class="jxr_linenumber" name="199" href="#199">199</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="200" href="#200">200</a>     <em class="jxr_comment">// HBaseTransactionClient method implementations</em>
+<a class="jxr_linenumber" name="201" href="#201">201</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="202" href="#202">202</a> 
+<a class="jxr_linenumber" name="203" href="#203">203</a>     @Override
+<a class="jxr_linenumber" name="204" href="#204">204</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isCommitted(<a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> hBaseCellId) <strong class="jxr_keyword">throws</strong> TransactionException {
+<a class="jxr_linenumber" name="205" href="#205">205</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="206" href="#206">206</a>             <a href="../../../../org/apache/omid/committable/CommitTable.html">CommitTimestamp</a> tentativeCommitTimestamp =
+<a class="jxr_linenumber" name="207" href="#207">207</a>                     locateCellCommitTimestamp(hBaseCellId.getTimestamp(), tsoClient.getEpoch(),
+<a class="jxr_linenumber" name="208" href="#208">208</a>                                               <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">CommitTimestampLocatorImpl</a>(hBaseCellId, Maps.&lt;Long, Long&gt;newHashMap()));
+<a class="jxr_linenumber" name="209" href="#209">209</a> 
+<a class="jxr_linenumber" name="210" href="#210">210</a>             <em class="jxr_comment">// If transaction that added the cell was invalidated</em>
+<a class="jxr_linenumber" name="211" href="#211">211</a>             <strong class="jxr_keyword">if</strong> (!tentativeCommitTimestamp.isValid()) {
+<a class="jxr_linenumber" name="212" href="#212">212</a>                 <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="213" href="#213">213</a>             }
+<a class="jxr_linenumber" name="214" href="#214">214</a> 
+<a class="jxr_linenumber" name="215" href="#215">215</a>             <strong class="jxr_keyword">switch</strong> (tentativeCommitTimestamp.getLocation()) {
+<a class="jxr_linenumber" name="216" href="#216">216</a>                 <strong class="jxr_keyword">case</strong> COMMIT_TABLE:
+<a class="jxr_linenumber" name="217" href="#217">217</a>                 <strong class="jxr_keyword">case</strong> SHADOW_CELL:
+<a class="jxr_linenumber" name="218" href="#218">218</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="219" href="#219">219</a>                 <strong class="jxr_keyword">case</strong> NOT_PRESENT:
+<a class="jxr_linenumber" name="220" href="#220">220</a>                     <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="221" href="#221">221</a>                 <strong class="jxr_keyword">case</strong> CACHE: <em class="jxr_comment">// cache was empty</em>
+<a class="jxr_linenumber" name="222" href="#222">222</a>                 <strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="223" href="#223">223</a>                     <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="224" href="#224">224</a>             }
+<a class="jxr_linenumber" name="225" href="#225">225</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="226" href="#226">226</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Failure while checking if a transaction was committed"</span>, e);
+<a class="jxr_linenumber" name="227" href="#227">227</a>         }
+<a class="jxr_linenumber" name="228" href="#228">228</a>     }
+<a class="jxr_linenumber" name="229" href="#229">229</a> 
+<a class="jxr_linenumber" name="230" href="#230">230</a>     @Override
+<a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getLowWatermark() <strong class="jxr_keyword">throws</strong> TransactionException {
+<a class="jxr_linenumber" name="232" href="#232">232</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="233" href="#233">233</a>             <strong class="jxr_keyword">return</strong> commitTableClient.readLowWatermark().get();
+<a class="jxr_linenumber" name="234" href="#234">234</a>         } <strong class="jxr_keyword">catch</strong> (ExecutionException ee) {
+<a class="jxr_linenumber" name="235" href="#235">235</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Error reading low watermark"</span>, ee.getCause());
+<a class="jxr_linenumber" name="236" href="#236">236</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException ie) {
+<a class="jxr_linenumber" name="237" href="#237">237</a>             Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="238" href="#238">238</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TransactionException.html">TransactionException</a>(<span class="jxr_string">"Interrupted reading low watermark"</span>, ie);
+<a class="jxr_linenumber" name="239" href="#239">239</a>         }
+<a class="jxr_linenumber" name="240" href="#240">240</a>     }
+<a class="jxr_linenumber" name="241" href="#241">241</a> 
+<a class="jxr_linenumber" name="242" href="#242">242</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="243" href="#243">243</a>     <em class="jxr_comment">// Helper methods</em>
+<a class="jxr_linenumber" name="244" href="#244">244</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="245" href="#245">245</a> 
+<a class="jxr_linenumber" name="246" href="#246">246</a>     <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransaction.html">HBaseTransaction</a> enforceHBaseTransactionAsParam(AbstractTransaction&lt;? <strong class="jxr_keyword">extends</strong> CellId&gt; tx) {
+<a class="jxr_linenumber" name="247" href="#247">247</a> 
+<a class="jxr_linenumber" name="248" href="#248">248</a>         <strong class="jxr_keyword">if</strong> (tx instanceof HBaseTransaction) {
+<a class="jxr_linenumber" name="249" href="#249">249</a>             <strong class="jxr_keyword">return</strong> (HBaseTransaction) tx;
+<a class="jxr_linenumber" name="250" href="#250">250</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="251" href="#251">251</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
+<a class="jxr_linenumber" name="252" href="#252">252</a>                     <span class="jxr_string">"The transaction object passed is not an instance of HBaseTransaction"</span>);
+<a class="jxr_linenumber" name="253" href="#253">253</a>         }
+<a class="jxr_linenumber" name="254" href="#254">254</a> 
+<a class="jxr_linenumber" name="255" href="#255">255</a>     }
+<a class="jxr_linenumber" name="256" href="#256">256</a> 
+<a class="jxr_linenumber" name="257" href="#257">257</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">CommitTimestampLocatorImpl</a> <strong class="jxr_keyword">implements</strong> <a href="../../../../org/apache/omid/transaction/CommitTimestampLocator.html">CommitTimestampLocator</a> {
+<a class="jxr_linenumber" name="258" href="#258">258</a> 
+<a class="jxr_linenumber" name="259" href="#259">259</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> hBaseCellId;
+<a class="jxr_linenumber" name="260" href="#260">260</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Long, Long&gt; commitCache;
 <a class="jxr_linenumber" name="261" href="#261">261</a> 
-<a class="jxr_linenumber" name="262" href="#262">262</a>         @Override
-<a class="jxr_linenumber" name="263" href="#263">263</a>         <strong class="jxr_keyword">public</strong> Optional&lt;Long&gt; readCommitTimestampFromShadowCell(<strong class="jxr_keyword">long</strong> startTimestamp) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="264" href="#264">264</a> 
-<a class="jxr_linenumber" name="265" href="#265">265</a>             Get get = <strong class="jxr_keyword">new</strong> Get(hBaseCellId.getRow());
-<a class="jxr_linenumber" name="266" href="#266">266</a>             byte[] family = hBaseCellId.getFamily();
-<a class="jxr_linenumber" name="267" href="#267">267</a>             byte[] shadowCellQualifier = CellUtils.addShadowCellSuffixPrefix(hBaseCellId.getQualifier());
-<a class="jxr_linenumber" name="268" href="#268">268</a>             get.addColumn(family, shadowCellQualifier);
-<a class="jxr_linenumber" name="269" href="#269">269</a>             get.setMaxVersions(1);
-<a class="jxr_linenumber" name="270" href="#270">270</a>             get.setTimeStamp(startTimestamp);
-<a class="jxr_linenumber" name="271" href="#271">271</a>             Result result = tableAccessWrapper.get(get);
-<a class="jxr_linenumber" name="272" href="#272">272</a>             <strong class="jxr_keyword">if</strong> (result.containsColumn(family, shadowCellQualifier)) {
-<a class="jxr_linenumber" name="273" href="#273">273</a>                 <strong class="jxr_keyword">return</strong> Optional.of(Bytes.toLong(result.getValue(family, shadowCellQualifier)));
-<a class="jxr_linenumber" name="274" href="#274">274</a>             }
-<a class="jxr_linenumber" name="275" href="#275">275</a>             <strong class="jxr_keyword">return</strong> Optional.absent();
-<a class="jxr_linenumber" name="276" href="#276">276</a>         }
+<a class="jxr_linenumber" name="262" href="#262">262</a>         <a href="../../../../org/apache/omid/transaction/HBaseTransactionManager.html">CommitTimestampLocatorImpl</a>(<a href="../../../../org/apache/omid/transaction/HBaseCellId.html">HBaseCellId</a> hBaseCellId, Map&lt;Long, Long&gt; commitCache) {
+<a class="jxr_linenumber" name="263" href="#263">263</a>             <strong class="jxr_keyword">this</strong>.hBaseCellId = hBaseCellId;
+<a class="jxr_linenumber" name="264" href="#264">264</a>             <strong class="jxr_keyword">this</strong>.commitCache = commitCache;
+<a class="jxr_linenumber" name="265" href="#265">265</a>         }
+<a class="jxr_linenumber" name="266" href="#266">266</a> 
+<a class="jxr_linenumber" name="267" href="#267">267</a>         @Override
+<a class="jxr_linenumber" name="268" href="#268">268</a>         <strong class="jxr_keyword">public</strong> Optional&lt;Long&gt; readCommitTimestampFromCache(<strong class="jxr_keyword">long</strong> startTimestamp) {
+<a class="jxr_linenumber" name="269" href="#269">269</a>             <strong class="jxr_keyword">if</strong> (commitCache.containsKey(startTimestamp)) {
+<a class="jxr_linenumber" name="270" href="#270">270</a>                 <strong class="jxr_keyword">return</strong> Optional.of(commitCache.get(startTimestamp));
+<a class="jxr_linenumber" name="271" href="#271">271</a>             }
+<a class="jxr_linenumber" name="272" href="#272">272</a>             <strong class="jxr_keyword">return</strong> Optional.absent();
+<a class="jxr_linenumber" name="273" href="#273">273</a>         }
+<a class="jxr_linenumber" name="274" href="#274">274</a> 
+<a class="jxr_linenumber" name="275" href="#275">275</a>         @Override
+<a class="jxr_linenumber" name="276" href="#276">276</a>         <strong class="jxr_keyword">public</strong> Optional&lt;Long&gt; readCommitTimestampFromShadowCell(<strong class="jxr_keyword">long</strong> startTimestamp) <strong class="jxr_keyword">throws</strong> IOException {
 <a class="jxr_linenumber" name="277" href="#277">277</a> 
-<a class="jxr_linenumber" name="278" href="#278">278</a>     }
-<a class="jxr_linenumber" name="279" href="#279">279</a> 
-<a class="jxr_linenumber" name="280" href="#280">280</a> }
+<a class="jxr_linenumber" name="278" href="#278">278</a>             Get get = <strong class="jxr_keyword">new</strong> Get(hBaseCellId.getRow());
+<a class="jxr_linenumber" name="279" href="#279">279</a>             byte[] family = hBaseCellId.getFamily();
+<a class="jxr_linenumber" name="280" href="#280">280</a>             byte[] shadowCellQualifier = CellUtils.addShadowCellSuffix(hBaseCellId.getQualifier());
+<a class="jxr_linenumber" name="281" href="#281">281</a>             get.addColumn(family, shadowCellQualifier);
+<a class="jxr_linenumber" name="282" href="#282">282</a>             get.setMaxVersions(1);
+<a class="jxr_linenumber" name="283" href="#283">283</a>             get.setTimeStamp(startTimestamp);
+<a class="jxr_linenumber" name="284" href="#284">284</a>             Result result = hBaseCellId.getTable().get(get);
+<a class="jxr_linenumber" name="285" href="#285">285</a>             <strong class="jxr_keyword">if</strong> (result.containsColumn(family, shadowCellQualifier)) {
+<a class="jxr_linenumber" name="286" href="#286">286</a>                 <strong class="jxr_keyword">return</strong> Optional.of(Bytes.toLong(result.getValue(family, shadowCellQualifier)));
+<a class="jxr_linenumber" name="287" href="#287">287</a>             }
+<a class="jxr_linenumber" name="288" href="#288">288</a>             <strong class="jxr_keyword">return</strong> Optional.absent();
+<a class="jxr_linenumber" name="289" href="#289">289</a>         }
+<a class="jxr_linenumber" name="290" href="#290">290</a> 
+<a class="jxr_linenumber" name="291" href="#291">291</a>     }
+<a class="jxr_linenumber" name="292" href="#292">292</a> 
+<a class="jxr_linenumber" name="293" href="#293">293</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[36/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/transaction/TestEndToEndScenariosWithHA.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/transaction/TestEndToEndScenariosWithHA.html b/xref-test/org/apache/omid/transaction/TestEndToEndScenariosWithHA.html
index 59b78be..b69abfe 100644
--- a/xref-test/org/apache/omid/transaction/TestEndToEndScenariosWithHA.html
+++ b/xref-test/org/apache/omid/transaction/TestEndToEndScenariosWithHA.html
@@ -27,400 +27,399 @@
 <a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.omid.transaction;
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.hadoop.hbase.HConstants.HBASE_CLIENT_RETRIES_NUMBER;
-<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_CF_NAME;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConnType.HA;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.RetryPolicy;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFramework;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFrameworkFactory;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.NodeCache;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.NodeCacheListener;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.retry.ExponentialBackoffRetry;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.LeaseManagement;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.PausableLeaseManager;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Guice;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Injector;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestEndToEndScenariosWithHA.html">TestEndToEndScenariosWithHA</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TEST_LEASE_PERIOD_MS = 5_000;
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CURRENT_TSO_PATH = <span class="jxr_string">"/CURRENT_TSO_PATH"</span>;
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_LEASE_PATH = <span class="jxr_string">"/TSO_LEASE_PATH"</span>;
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NAMESPACE = <span class="jxr_string">"omid"</span>;
-<a class="jxr_linenumber" name="66" href="#66">66</a>  
-<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestEndToEndScenariosWithHA.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier1 = Bytes.toBytes(<span class="jxr_string">"test-q1"</span>);
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier2 = Bytes.toBytes(<span class="jxr_string">"test-q2l"</span>);
-<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"row1"</span>);
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row2 = Bytes.toBytes(<span class="jxr_string">"row2"</span>);
-<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] initialData = Bytes.toBytes(<span class="jxr_string">"testWrite-0"</span>);
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data1_q1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1-q1"</span>);
-<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data1_q2 = Bytes.toBytes(<span class="jxr_string">"testWrite-1-q2"</span>);
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data2_q1 = Bytes.toBytes(<span class="jxr_string">"testWrite-2-q1"</span>);
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data2_q2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2-q2"</span>);
-<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO1_PORT = 2223;
-<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO2_PORT = 4321;
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> CountDownLatch barrierTillTSOAddressPublication;
-<a class="jxr_linenumber" name="82" href="#82">82</a>  
-<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> CuratorFramework zkClient;
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> TSOServer tso1;
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> TSOServer tso2;
-<a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a> leaseManager1;
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> TransactionManager tm;
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>      @BeforeMethod(alwaysRun = <strong class="jxr_keyword">true</strong>, timeOut = 30_000)
-<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setup() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="94" href="#94">94</a>          <em class="jxr_comment">// Get the zkConnection string from minicluster</em>
-<a class="jxr_linenumber" name="95" href="#95">95</a>          String zkConnection = <span class="jxr_string">"localhost:"</span> + hBaseUtils.getZkCluster().getClientPort();
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>          zkClient = provideInitializedZookeeperClient(zkConnection);
-<a class="jxr_linenumber" name="98" href="#98">98</a>  
-<a class="jxr_linenumber" name="99" href="#99">99</a>          <em class="jxr_comment">// Synchronize TSO start</em>
-<a class="jxr_linenumber" name="100" href="#100">100</a>         barrierTillTSOAddressPublication = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
-<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">final</strong> NodeCache currentTSOZNode = <strong class="jxr_keyword">new</strong> NodeCache(zkClient, CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="102" href="#102">102</a>         currentTSOZNode.getListenable().addListener(<strong class="jxr_keyword">new</strong> NodeCacheListener() {
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>             @Override
-<a class="jxr_linenumber" name="105" href="#105">105</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> nodeChanged() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="106" href="#106">106</a>                 byte[] currentTSOAndEpochAsBytes = currentTSOZNode.getCurrentData().getData();
-<a class="jxr_linenumber" name="107" href="#107">107</a>                 String currentTSOAndEpoch = <strong class="jxr_keyword">new</strong> String(currentTSOAndEpochAsBytes, Charsets.UTF_8);
-<a class="jxr_linenumber" name="108" href="#108">108</a>                 <strong class="jxr_keyword">if</strong> (currentTSOAndEpoch.endsWith(<span class="jxr_string">"#0"</span>)) { <em class="jxr_comment">// Wait till a TSO instance publishes the epoch</em>
-<a class="jxr_linenumber" name="109" href="#109">109</a>                     barrierTillTSOAddressPublication.countDown();
-<a class="jxr_linenumber" name="110" href="#110">110</a>                 }
-<a class="jxr_linenumber" name="111" href="#111">111</a>             }
-<a class="jxr_linenumber" name="112" href="#112">112</a> 
-<a class="jxr_linenumber" name="113" href="#113">113</a>         });
-<a class="jxr_linenumber" name="114" href="#114">114</a>         currentTSOZNode.start(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>         <em class="jxr_comment">// Configure TSO 1</em>
-<a class="jxr_linenumber" name="117" href="#117">117</a>         TSOServerConfig config1 = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="118" href="#118">118</a>         config1.setPort(TSO1_PORT);
-<a class="jxr_linenumber" name="119" href="#119">119</a>         config1.setConflictMapSize(1000);
-<a class="jxr_linenumber" name="120" href="#120">120</a>         config1.setLeaseModule(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestHALeaseManagementModule.html">TestHALeaseManagementModule</a>(TEST_LEASE_PERIOD_MS, TSO_LEASE_PATH, CURRENT_TSO_PATH, zkConnection, NAMESPACE));
-<a class="jxr_linenumber" name="121" href="#121">121</a>         Injector injector1 = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestTSOModule.html">TestTSOModule</a>(hbaseConf, config1));
-<a class="jxr_linenumber" name="122" href="#122">122</a>         LOG.info(<span class="jxr_string">"===================== Starting TSO 1 ====================="</span>);
-<a class="jxr_linenumber" name="123" href="#123">123</a>         tso1 = injector1.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="124" href="#124">124</a>         leaseManager1 = (PausableLeaseManager) injector1.getInstance(LeaseManagement.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="125" href="#125">125</a>         tso1.startAndWait();
-<a class="jxr_linenumber" name="126" href="#126">126</a>         TestUtils.waitForSocketListening(<span class="jxr_string">"localhost"</span>, TSO1_PORT, 100);
-<a class="jxr_linenumber" name="127" href="#127">127</a>         LOG.info(<span class="jxr_string">"================ Finished loading TSO 1 =================="</span>);
-<a class="jxr_linenumber" name="128" href="#128">128</a> 
-<a class="jxr_linenumber" name="129" href="#129">129</a>         <em class="jxr_comment">// Configure TSO 2</em>
-<a class="jxr_linenumber" name="130" href="#130">130</a>         TSOServerConfig config2 = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="131" href="#131">131</a>         config2.setPort(TSO2_PORT);
-<a class="jxr_linenumber" name="132" href="#132">132</a>         config2.setConflictMapSize(1000);
-<a class="jxr_linenumber" name="133" href="#133">133</a>         config2.setLeaseModule(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestHALeaseManagementModule.html">TestHALeaseManagementModule</a>(TEST_LEASE_PERIOD_MS, TSO_LEASE_PATH, CURRENT_TSO_PATH, zkConnection, NAMESPACE));
-<a class="jxr_linenumber" name="134" href="#134">134</a>         Injector injector2 = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestTSOModule.html">TestTSOModule</a>(hbaseConf, config2));
-<a class="jxr_linenumber" name="135" href="#135">135</a>         LOG.info(<span class="jxr_string">"===================== Starting TSO 2 ====================="</span>);
-<a class="jxr_linenumber" name="136" href="#136">136</a>         tso2 = injector2.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="137" href="#137">137</a>         injector2.getInstance(LeaseManagement.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="138" href="#138">138</a>         tso2.startAndWait();
-<a class="jxr_linenumber" name="139" href="#139">139</a>         <em class="jxr_comment">// Don't do this here: TestUtils.waitForSocketListening("localhost", 4321, 100);</em>
-<a class="jxr_linenumber" name="140" href="#140">140</a>         LOG.info(<span class="jxr_string">"================ Finished loading TSO 2 =================="</span>);
-<a class="jxr_linenumber" name="141" href="#141">141</a> 
-<a class="jxr_linenumber" name="142" href="#142">142</a>         <em class="jxr_comment">// Wait till the master TSO is up</em>
-<a class="jxr_linenumber" name="143" href="#143">143</a>         barrierTillTSOAddressPublication.await();
-<a class="jxr_linenumber" name="144" href="#144">144</a>         currentTSOZNode.close();
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>         <em class="jxr_comment">// Configure HBase TM</em>
-<a class="jxr_linenumber" name="147" href="#147">147</a>         LOG.info(<span class="jxr_string">"===================== Starting TM ====================="</span>);
-<a class="jxr_linenumber" name="148" href="#148">148</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
-<a class="jxr_linenumber" name="149" href="#149">149</a>         hbaseOmidClientConf.setConnectionType(HA);
-<a class="jxr_linenumber" name="150" href="#150">150</a>         hbaseOmidClientConf.setConnectionString(zkConnection);
-<a class="jxr_linenumber" name="151" href="#151">151</a>         hbaseOmidClientConf.getOmidClientConfiguration().setZkCurrentTsoPath(CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="152" href="#152">152</a>         hbaseOmidClientConf.getOmidClientConfiguration().setZkNamespace(NAMESPACE);
-<a class="jxr_linenumber" name="153" href="#153">153</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
-<a class="jxr_linenumber" name="154" href="#154">154</a>         hbaseConf.setInt(HBASE_CLIENT_RETRIES_NUMBER, 3);
-<a class="jxr_linenumber" name="155" href="#155">155</a>         tm = HBaseTransactionManager.builder(hbaseOmidClientConf).build();
-<a class="jxr_linenumber" name="156" href="#156">156</a>         LOG.info(<span class="jxr_string">"===================== TM Started ========================="</span>);
-<a class="jxr_linenumber" name="157" href="#157">157</a>     }
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Charsets;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Guice;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> com.google.inject.Injector;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.TestUtils;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.LeaseManagement;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.PausableLeaseManager;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServer;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.RetryPolicy;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFramework;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.CuratorFrameworkFactory;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.NodeCache;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.framework.recipes.cache.NodeCacheListener;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.curator.retry.ExponentialBackoffRetry;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Get;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.AfterMethod;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_CF_NAME;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.client.OmidClientConfiguration.ConnType.HA;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.hadoop.hbase.HConstants.HBASE_CLIENT_RETRIES_NUMBER;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertEquals;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.fail;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  
+<a class="jxr_linenumber" name="58" href="#58">58</a>  @Test(groups = <span class="jxr_string">"sharedHBase"</span>)
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/transaction/TestEndToEndScenariosWithHA.html">TestEndToEndScenariosWithHA</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/omid/transaction/OmidTestBase.html">OmidTestBase</a> {
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TEST_LEASE_PERIOD_MS = 5_000;
+<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CURRENT_TSO_PATH = <span class="jxr_string">"/CURRENT_TSO_PATH"</span>;
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TSO_LEASE_PATH = <span class="jxr_string">"/TSO_LEASE_PATH"</span>;
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NAMESPACE = <span class="jxr_string">"omid"</span>;
+<a class="jxr_linenumber" name="65" href="#65">65</a>  
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestEndToEndScenariosWithHA.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="67" href="#67">67</a>  
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier1 = Bytes.toBytes(<span class="jxr_string">"test-q1"</span>);
+<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] qualifier2 = Bytes.toBytes(<span class="jxr_string">"test-q2l"</span>);
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row1 = Bytes.toBytes(<span class="jxr_string">"row1"</span>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row2 = Bytes.toBytes(<span class="jxr_string">"row2"</span>);
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] initialData = Bytes.toBytes(<span class="jxr_string">"testWrite-0"</span>);
+<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data1_q1 = Bytes.toBytes(<span class="jxr_string">"testWrite-1-q1"</span>);
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data1_q2 = Bytes.toBytes(<span class="jxr_string">"testWrite-1-q2"</span>);
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data2_q1 = Bytes.toBytes(<span class="jxr_string">"testWrite-2-q1"</span>);
+<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] data2_q2 = Bytes.toBytes(<span class="jxr_string">"testWrite-2-q2"</span>);
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO1_PORT = 2223;
+<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> TSO2_PORT = 4321;
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> CountDownLatch barrierTillTSOAddressPublication;
+<a class="jxr_linenumber" name="81" href="#81">81</a>  
+<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> CuratorFramework zkClient;
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> TSOServer tso1;
+<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> TSOServer tso2;
+<a class="jxr_linenumber" name="86" href="#86">86</a>  
+<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/tso/PausableLeaseManager.html">PausableLeaseManager</a> leaseManager1;
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> TransactionManager tm;
+<a class="jxr_linenumber" name="90" href="#90">90</a>  
+<a class="jxr_linenumber" name="91" href="#91">91</a>      @BeforeMethod(alwaysRun = <strong class="jxr_keyword">true</strong>, timeOut = 30_000)
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setup() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="93" href="#93">93</a>          <em class="jxr_comment">// Get the zkConnection string from minicluster</em>
+<a class="jxr_linenumber" name="94" href="#94">94</a>          String zkConnection = <span class="jxr_string">"localhost:"</span> + hBaseUtils.getZkCluster().getClientPort();
+<a class="jxr_linenumber" name="95" href="#95">95</a>  
+<a class="jxr_linenumber" name="96" href="#96">96</a>          zkClient = provideInitializedZookeeperClient(zkConnection);
+<a class="jxr_linenumber" name="97" href="#97">97</a>  
+<a class="jxr_linenumber" name="98" href="#98">98</a>          <em class="jxr_comment">// Synchronize TSO start</em>
+<a class="jxr_linenumber" name="99" href="#99">99</a>          barrierTillTSOAddressPublication = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">final</strong> NodeCache currentTSOZNode = <strong class="jxr_keyword">new</strong> NodeCache(zkClient, CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="101" href="#101">101</a>         currentTSOZNode.getListenable().addListener(<strong class="jxr_keyword">new</strong> NodeCacheListener() {
+<a class="jxr_linenumber" name="102" href="#102">102</a> 
+<a class="jxr_linenumber" name="103" href="#103">103</a>             @Override
+<a class="jxr_linenumber" name="104" href="#104">104</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> nodeChanged() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="105" href="#105">105</a>                 byte[] currentTSOAndEpochAsBytes = currentTSOZNode.getCurrentData().getData();
+<a class="jxr_linenumber" name="106" href="#106">106</a>                 String currentTSOAndEpoch = <strong class="jxr_keyword">new</strong> String(currentTSOAndEpochAsBytes, Charsets.UTF_8);
+<a class="jxr_linenumber" name="107" href="#107">107</a>                 <strong class="jxr_keyword">if</strong> (currentTSOAndEpoch.endsWith(<span class="jxr_string">"#0"</span>)) { <em class="jxr_comment">// Wait till a TSO instance publishes the epoch</em>
+<a class="jxr_linenumber" name="108" href="#108">108</a>                     barrierTillTSOAddressPublication.countDown();
+<a class="jxr_linenumber" name="109" href="#109">109</a>                 }
+<a class="jxr_linenumber" name="110" href="#110">110</a>             }
+<a class="jxr_linenumber" name="111" href="#111">111</a> 
+<a class="jxr_linenumber" name="112" href="#112">112</a>         });
+<a class="jxr_linenumber" name="113" href="#113">113</a>         currentTSOZNode.start(<strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="114" href="#114">114</a> 
+<a class="jxr_linenumber" name="115" href="#115">115</a>         <em class="jxr_comment">// Configure TSO 1</em>
+<a class="jxr_linenumber" name="116" href="#116">116</a>         TSOServerConfig config1 = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="117" href="#117">117</a>         config1.setPort(TSO1_PORT);
+<a class="jxr_linenumber" name="118" href="#118">118</a>         config1.setConflictMapSize(1000);
+<a class="jxr_linenumber" name="119" href="#119">119</a>         config1.setLeaseModule(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestHALeaseManagementModule.html">TestHALeaseManagementModule</a>(TEST_LEASE_PERIOD_MS, TSO_LEASE_PATH, CURRENT_TSO_PATH, zkConnection, NAMESPACE));
+<a class="jxr_linenumber" name="120" href="#120">120</a>         Injector injector1 = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestTSOModule.html">TestTSOModule</a>(hbaseConf, config1));
+<a class="jxr_linenumber" name="121" href="#121">121</a>         LOG.info(<span class="jxr_string">"===================== Starting TSO 1 ====================="</span>);
+<a class="jxr_linenumber" name="122" href="#122">122</a>         tso1 = injector1.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="123" href="#123">123</a>         leaseManager1 = (PausableLeaseManager) injector1.getInstance(LeaseManagement.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="124" href="#124">124</a>         tso1.startAndWait();
+<a class="jxr_linenumber" name="125" href="#125">125</a>         TestUtils.waitForSocketListening(<span class="jxr_string">"localhost"</span>, TSO1_PORT, 100);
+<a class="jxr_linenumber" name="126" href="#126">126</a>         LOG.info(<span class="jxr_string">"================ Finished loading TSO 1 =================="</span>);
+<a class="jxr_linenumber" name="127" href="#127">127</a> 
+<a class="jxr_linenumber" name="128" href="#128">128</a>         <em class="jxr_comment">// Configure TSO 2</em>
+<a class="jxr_linenumber" name="129" href="#129">129</a>         TSOServerConfig config2 = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="130" href="#130">130</a>         config2.setPort(TSO2_PORT);
+<a class="jxr_linenumber" name="131" href="#131">131</a>         config2.setConflictMapSize(1000);
+<a class="jxr_linenumber" name="132" href="#132">132</a>         config2.setLeaseModule(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestHALeaseManagementModule.html">TestHALeaseManagementModule</a>(TEST_LEASE_PERIOD_MS, TSO_LEASE_PATH, CURRENT_TSO_PATH, zkConnection, NAMESPACE));
+<a class="jxr_linenumber" name="133" href="#133">133</a>         Injector injector2 = Guice.createInjector(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/transaction/TestTSOModule.html">TestTSOModule</a>(hbaseConf, config2));
+<a class="jxr_linenumber" name="134" href="#134">134</a>         LOG.info(<span class="jxr_string">"===================== Starting TSO 2 ====================="</span>);
+<a class="jxr_linenumber" name="135" href="#135">135</a>         tso2 = injector2.getInstance(TSOServer.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="136" href="#136">136</a>         injector2.getInstance(LeaseManagement.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="137" href="#137">137</a>         tso2.startAndWait();
+<a class="jxr_linenumber" name="138" href="#138">138</a>         <em class="jxr_comment">// Don't do this here: TestUtils.waitForSocketListening("localhost", 4321, 100);</em>
+<a class="jxr_linenumber" name="139" href="#139">139</a>         LOG.info(<span class="jxr_string">"================ Finished loading TSO 2 =================="</span>);
+<a class="jxr_linenumber" name="140" href="#140">140</a> 
+<a class="jxr_linenumber" name="141" href="#141">141</a>         <em class="jxr_comment">// Wait till the master TSO is up</em>
+<a class="jxr_linenumber" name="142" href="#142">142</a>         barrierTillTSOAddressPublication.await();
+<a class="jxr_linenumber" name="143" href="#143">143</a>         currentTSOZNode.close();
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>         <em class="jxr_comment">// Configure HBase TM</em>
+<a class="jxr_linenumber" name="146" href="#146">146</a>         LOG.info(<span class="jxr_string">"===================== Starting TM ====================="</span>);
+<a class="jxr_linenumber" name="147" href="#147">147</a>         HBaseOmidClientConfiguration hbaseOmidClientConf = <strong class="jxr_keyword">new</strong> HBaseOmidClientConfiguration();
+<a class="jxr_linenumber" name="148" href="#148">148</a>         hbaseOmidClientConf.setConnectionType(HA);
+<a class="jxr_linenumber" name="149" href="#149">149</a>         hbaseOmidClientConf.setConnectionString(zkConnection);
+<a class="jxr_linenumber" name="150" href="#150">150</a>         hbaseOmidClientConf.getOmidClientConfiguration().setZkCurrentTsoPath(CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="151" href="#151">151</a>         hbaseOmidClientConf.getOmidClientConfiguration().setZkNamespace(NAMESPACE);
+<a class="jxr_linenumber" name="152" href="#152">152</a>         hbaseOmidClientConf.setHBaseConfiguration(hbaseConf);
+<a class="jxr_linenumber" name="153" href="#153">153</a>         hbaseConf.setInt(HBASE_CLIENT_RETRIES_NUMBER, 3);
+<a class="jxr_linenumber" name="154" href="#154">154</a>         tm = HBaseTransactionManager.builder(hbaseOmidClientConf).build();
+<a class="jxr_linenumber" name="155" href="#155">155</a>         LOG.info(<span class="jxr_string">"===================== TM Started ========================="</span>);
+<a class="jxr_linenumber" name="156" href="#156">156</a>     }
+<a class="jxr_linenumber" name="157" href="#157">157</a> 
 <a class="jxr_linenumber" name="158" href="#158">158</a> 
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>     @AfterMethod(alwaysRun = <strong class="jxr_keyword">true</strong>, timeOut = 60_000)
-<a class="jxr_linenumber" name="161" href="#161">161</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cleanup() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="162" href="#162">162</a>         LOG.info(<span class="jxr_string">"Cleanup"</span>);
-<a class="jxr_linenumber" name="163" href="#163">163</a>         HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
-<a class="jxr_linenumber" name="164" href="#164">164</a>         deleteTable(admin, TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
-<a class="jxr_linenumber" name="165" href="#165">165</a>         hBaseUtils.createTable(TableName.valueOf((DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME)),
-<a class="jxr_linenumber" name="166" href="#166">166</a>                                <strong class="jxr_keyword">new</strong> byte[][]{DEFAULT_TIMESTAMP_STORAGE_CF_NAME.getBytes()},
-<a class="jxr_linenumber" name="167" href="#167">167</a>                                Integer.MAX_VALUE);
-<a class="jxr_linenumber" name="168" href="#168">168</a>         tso1.stopAndWait();
-<a class="jxr_linenumber" name="169" href="#169">169</a>         TestUtils.waitForSocketNotListening(<span class="jxr_string">"localhost"</span>, TSO1_PORT, 100);
-<a class="jxr_linenumber" name="170" href="#170">170</a>         tso2.stopAndWait();
-<a class="jxr_linenumber" name="171" href="#171">171</a>         TestUtils.waitForSocketNotListening(<span class="jxr_string">"localhost"</span>, TSO2_PORT, 100);
-<a class="jxr_linenumber" name="172" href="#172">172</a> 
-<a class="jxr_linenumber" name="173" href="#173">173</a>         zkClient.delete().forPath(TSO_LEASE_PATH);
-<a class="jxr_linenumber" name="174" href="#174">174</a>         LOG.info(<span class="jxr_string">"ZKPath {} deleted"</span>, TSO_LEASE_PATH);
-<a class="jxr_linenumber" name="175" href="#175">175</a>         zkClient.delete().forPath(CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="176" href="#176">176</a>         LOG.info(<span class="jxr_string">"ZKPaths {} deleted"</span>, CURRENT_TSO_PATH);
-<a class="jxr_linenumber" name="177" href="#177">177</a> 
-<a class="jxr_linenumber" name="178" href="#178">178</a>         zkClient.close();
-<a class="jxr_linenumber" name="179" href="#179">179</a>     }
-<a class="jxr_linenumber" name="180" href="#180">180</a> 
-<a class="jxr_linenumber" name="181" href="#181">181</a>     <em class="jxr_comment">//</em>
-<a class="jxr_linenumber" name="182" href="#182">182</a>     <em class="jxr_comment">// TSO 1 is MASTER &amp; TSO 2 is BACKUP</em>
-<a class="jxr_linenumber" name="183" href="#183">183</a>     <em class="jxr_comment">// Setup: TX 0 -&gt; Add initial data to cells R1C1 (v0) &amp; R2C2 (v0)</em>
-<a class="jxr_linenumber" name="184" href="#184">184</a>     <em class="jxr_comment">// TX 1 starts (TSO1)</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a>     <em class="jxr_comment">// TX 1 modifies cells R1C1 &amp; R2C2 (v1)</em>
-<a class="jxr_linenumber" name="186" href="#186">186</a>     <em class="jxr_comment">// Interleaved Read TX -IR TX- starts (TSO1)</em>
-<a class="jxr_linenumber" name="187" href="#187">187</a>     <em class="jxr_comment">// TSO 1 PAUSES -&gt; TSO 2 becomes MASTER</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a>     <em class="jxr_comment">// IR TX reads R1C1 -&gt; should get v0</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a>     <em class="jxr_comment">// TX 1 tries to commit -&gt; should abort because was started in TSO 1</em>
-<a class="jxr_linenumber" name="190" href="#190">190</a>     <em class="jxr_comment">// IR TX reads R2C2 -&gt; should get v0</em>
-<a class="jxr_linenumber" name="191" href="#191">191</a>     <em class="jxr_comment">// IR TX tries to commit -&gt; should abort because was started in TSO 1</em>
-<a class="jxr_linenumber" name="192" href="#192">192</a>     <em class="jxr_comment">// End of Test state: R1C1 &amp; R2C2 (v0)</em>
-<a class="jxr_linenumber" name="193" href="#193">193</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="194" href="#194">194</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScenario1() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="195" href="#195">195</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
-<a class="jxr_linenumber" name="196" href="#196">196</a> 
-<a class="jxr_linenumber" name="197" href="#197">197</a>             <em class="jxr_comment">// Write initial values for the test</em>
-<a class="jxr_linenumber" name="198" href="#198">198</a>             HBaseTransaction tx0 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="199" href="#199">199</a>             <strong class="jxr_keyword">long</strong> initialEpoch = tx0.getEpoch();
-<a class="jxr_linenumber" name="200" href="#200">200</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing initial values for cells ({}) "</span>, tx0, Bytes.toString(initialData));
-<a class="jxr_linenumber" name="201" href="#201">201</a>             Put putInitialDataRow1 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="202" href="#202">202</a>             putInitialDataRow1.addColumn(TEST_FAMILY.getBytes(), qualifier1, initialData);
-<a class="jxr_linenumber" name="203" href="#203">203</a>             txTable.put(tx0, putInitialDataRow1);
-<a class="jxr_linenumber" name="204" href="#204">204</a>             Put putInitialDataRow2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="205" href="#205">205</a>             putInitialDataRow2.addColumn(TEST_FAMILY.getBytes(), qualifier2, initialData);
-<a class="jxr_linenumber" name="206" href="#206">206</a>             txTable.put(tx0, putInitialDataRow2);
-<a class="jxr_linenumber" name="207" href="#207">207</a>             tm.commit(tx0);
-<a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a>             <em class="jxr_comment">// Initial checks</em>
-<a class="jxr_linenumber" name="210" href="#210">210</a>             checkRowValues(txTable, initialData, initialData);
-<a class="jxr_linenumber" name="211" href="#211">211</a> 
-<a class="jxr_linenumber" name="212" href="#212">212</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="213" href="#213">213</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing values for cells ({}, {}) "</span>, tx1, Bytes.toString(data1_q1),
-<a class="jxr_linenumber" name="214" href="#214">214</a>                      Bytes.toString(data1_q2));
-<a class="jxr_linenumber" name="215" href="#215">215</a>             Put putData1R1Q1 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="216" href="#216">216</a>             putData1R1Q1.addColumn(TEST_FAMILY.getBytes(), qualifier1, data1_q1);
-<a class="jxr_linenumber" name="217" href="#217">217</a>             txTable.put(tx1, putData1R1Q1);
-<a class="jxr_linenumber" name="218" href="#218">218</a>             Put putData1R2Q2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="219" href="#219">219</a>             putData1R2Q2.addColumn(TEST_FAMILY.getBytes(), qualifier2, data1_q2);
-<a class="jxr_linenumber" name="220" href="#220">220</a>             txTable.put(tx1, putData1R2Q2);
-<a class="jxr_linenumber" name="221" href="#221">221</a> 
-<a class="jxr_linenumber" name="222" href="#222">222</a>             Transaction interleavedReadTx = tm.begin();
-<a class="jxr_linenumber" name="223" href="#223">223</a> 
-<a class="jxr_linenumber" name="224" href="#224">224</a>             LOG.info(<span class="jxr_string">"Starting Interleaving Read Tx {} for checking cell values"</span>, interleavedReadTx.getTransactionId());
-<a class="jxr_linenumber" name="225" href="#225">225</a> 
-<a class="jxr_linenumber" name="226" href="#226">226</a>             <em class="jxr_comment">// Simulate a GC pause to change mastership (should throw a ServiceUnavailable exception)</em>
+<a class="jxr_linenumber" name="159" href="#159">159</a>     @AfterMethod(alwaysRun = <strong class="jxr_keyword">true</strong>, timeOut = 60_000)
+<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cleanup() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="161" href="#161">161</a>         LOG.info(<span class="jxr_string">"Cleanup"</span>);
+<a class="jxr_linenumber" name="162" href="#162">162</a>         HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
+<a class="jxr_linenumber" name="163" href="#163">163</a>         deleteTable(admin, TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
+<a class="jxr_linenumber" name="164" href="#164">164</a>         hBaseUtils.createTable(Bytes.toBytes(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME),
+<a class="jxr_linenumber" name="165" href="#165">165</a>                                <strong class="jxr_keyword">new</strong> byte[][]{DEFAULT_TIMESTAMP_STORAGE_CF_NAME.getBytes()},
+<a class="jxr_linenumber" name="166" href="#166">166</a>                                Integer.MAX_VALUE);
+<a class="jxr_linenumber" name="167" href="#167">167</a>         tso1.stopAndWait();
+<a class="jxr_linenumber" name="168" href="#168">168</a>         TestUtils.waitForSocketNotListening(<span class="jxr_string">"localhost"</span>, TSO1_PORT, 100);
+<a class="jxr_linenumber" name="169" href="#169">169</a>         tso2.stopAndWait();
+<a class="jxr_linenumber" name="170" href="#170">170</a>         TestUtils.waitForSocketNotListening(<span class="jxr_string">"localhost"</span>, TSO2_PORT, 100);
+<a class="jxr_linenumber" name="171" href="#171">171</a> 
+<a class="jxr_linenumber" name="172" href="#172">172</a>         zkClient.delete().forPath(TSO_LEASE_PATH);
+<a class="jxr_linenumber" name="173" href="#173">173</a>         LOG.info(<span class="jxr_string">"ZKPath {} deleted"</span>, TSO_LEASE_PATH);
+<a class="jxr_linenumber" name="174" href="#174">174</a>         zkClient.delete().forPath(CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="175" href="#175">175</a>         LOG.info(<span class="jxr_string">"ZKPaths {} deleted"</span>, CURRENT_TSO_PATH);
+<a class="jxr_linenumber" name="176" href="#176">176</a> 
+<a class="jxr_linenumber" name="177" href="#177">177</a>         zkClient.close();
+<a class="jxr_linenumber" name="178" href="#178">178</a>     }
+<a class="jxr_linenumber" name="179" href="#179">179</a> 
+<a class="jxr_linenumber" name="180" href="#180">180</a>     <em class="jxr_comment">//</em>
+<a class="jxr_linenumber" name="181" href="#181">181</a>     <em class="jxr_comment">// TSO 1 is MASTER &amp; TSO 2 is BACKUP</em>
+<a class="jxr_linenumber" name="182" href="#182">182</a>     <em class="jxr_comment">// Setup: TX 0 -&gt; Add initial data to cells R1C1 (v0) &amp; R2C2 (v0)</em>
+<a class="jxr_linenumber" name="183" href="#183">183</a>     <em class="jxr_comment">// TX 1 starts (TSO1)</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a>     <em class="jxr_comment">// TX 1 modifies cells R1C1 &amp; R2C2 (v1)</em>
+<a class="jxr_linenumber" name="185" href="#185">185</a>     <em class="jxr_comment">// Interleaved Read TX -IR TX- starts (TSO1)</em>
+<a class="jxr_linenumber" name="186" href="#186">186</a>     <em class="jxr_comment">// TSO 1 PAUSES -&gt; TSO 2 becomes MASTER</em>
+<a class="jxr_linenumber" name="187" href="#187">187</a>     <em class="jxr_comment">// IR TX reads R1C1 -&gt; should get v0</em>
+<a class="jxr_linenumber" name="188" href="#188">188</a>     <em class="jxr_comment">// TX 1 tries to commit -&gt; should abort because was started in TSO 1</em>
+<a class="jxr_linenumber" name="189" href="#189">189</a>     <em class="jxr_comment">// IR TX reads R2C2 -&gt; should get v0</em>
+<a class="jxr_linenumber" name="190" href="#190">190</a>     <em class="jxr_comment">// IR TX tries to commit -&gt; should abort because was started in TSO 1</em>
+<a class="jxr_linenumber" name="191" href="#191">191</a>     <em class="jxr_comment">// End of Test state: R1C1 &amp; R2C2 (v0)</em>
+<a class="jxr_linenumber" name="192" href="#192">192</a>     @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="193" href="#193">193</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScenario1() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="194" href="#194">194</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="195" href="#195">195</a> 
+<a class="jxr_linenumber" name="196" href="#196">196</a>             <em class="jxr_comment">// Write initial values for the test</em>
+<a class="jxr_linenumber" name="197" href="#197">197</a>             HBaseTransaction tx0 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="198" href="#198">198</a>             <strong class="jxr_keyword">long</strong> initialEpoch = tx0.getEpoch();
+<a class="jxr_linenumber" name="199" href="#199">199</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing initial values for cells ({}) "</span>, tx0, Bytes.toString(initialData));
+<a class="jxr_linenumber" name="200" href="#200">200</a>             Put putInitialDataRow1 = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="201" href="#201">201</a>             putInitialDataRow1.add(TEST_FAMILY.getBytes(), qualifier1, initialData);
+<a class="jxr_linenumber" name="202" href="#202">202</a>             txTable.put(tx0, putInitialDataRow1);
+<a class="jxr_linenumber" name="203" href="#203">203</a>             Put putInitialDataRow2 = <strong class="jxr_keyword">new</strong> Put(row2);
+<a class="jxr_linenumber" name="204" href="#204">204</a>             putInitialDataRow2.add(TEST_FAMILY.getBytes(), qualifier2, initialData);
+<a class="jxr_linenumber" name="205" href="#205">205</a>             txTable.put(tx0, putInitialDataRow2);
+<a class="jxr_linenumber" name="206" href="#206">206</a>             tm.commit(tx0);
+<a class="jxr_linenumber" name="207" href="#207">207</a> 
+<a class="jxr_linenumber" name="208" href="#208">208</a>             <em class="jxr_comment">// Initial checks</em>
+<a class="jxr_linenumber" name="209" href="#209">209</a>             checkRowValues(txTable, initialData, initialData);
+<a class="jxr_linenumber" name="210" href="#210">210</a> 
+<a class="jxr_linenumber" name="211" href="#211">211</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="212" href="#212">212</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing values for cells ({}, {}) "</span>, tx1, Bytes.toString(data1_q1),
+<a class="jxr_linenumber" name="213" href="#213">213</a>                      Bytes.toString(data1_q2));
+<a class="jxr_linenumber" name="214" href="#214">214</a>             Put putData1R1Q1 = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="215" href="#215">215</a>             putData1R1Q1.add(TEST_FAMILY.getBytes(), qualifier1, data1_q1);
+<a class="jxr_linenumber" name="216" href="#216">216</a>             txTable.put(tx1, putData1R1Q1);
+<a class="jxr_linenumber" name="217" href="#217">217</a>             Put putData1R2Q2 = <strong class="jxr_keyword">new</strong> Put(row2);
+<a class="jxr_linenumber" name="218" href="#218">218</a>             putData1R2Q2.add(TEST_FAMILY.getBytes(), qualifier2, data1_q2);
+<a class="jxr_linenumber" name="219" href="#219">219</a>             txTable.put(tx1, putData1R2Q2);
+<a class="jxr_linenumber" name="220" href="#220">220</a> 
+<a class="jxr_linenumber" name="221" href="#221">221</a>             Transaction interleavedReadTx = tm.begin();
+<a class="jxr_linenumber" name="222" href="#222">222</a> 
+<a class="jxr_linenumber" name="223" href="#223">223</a>             LOG.info(<span class="jxr_string">"Starting Interleaving Read Tx {} for checking cell values"</span>, interleavedReadTx.getTransactionId());
+<a class="jxr_linenumber" name="224" href="#224">224</a> 
+<a class="jxr_linenumber" name="225" href="#225">225</a>             <em class="jxr_comment">// Simulate a GC pause to change mastership (should throw a ServiceUnavailable exception)</em>
+<a class="jxr_linenumber" name="226" href="#226">226</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
 <a class="jxr_linenumber" name="227" href="#227">227</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
-<a class="jxr_linenumber" name="228" href="#228">228</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
-<a class="jxr_linenumber" name="229" href="#229">229</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++ PAUSING TSO 1 +++++++++++++++++++"</span>);
+<a class="jxr_linenumber" name="228" href="#228">228</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++ PAUSING TSO 1 +++++++++++++++++++"</span>);
+<a class="jxr_linenumber" name="229" href="#229">229</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
 <a class="jxr_linenumber" name="230" href="#230">230</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
-<a class="jxr_linenumber" name="231" href="#231">231</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
-<a class="jxr_linenumber" name="232" href="#232">232</a>             leaseManager1.pausedInStillInLeasePeriod();
-<a class="jxr_linenumber" name="233" href="#233">233</a> 
-<a class="jxr_linenumber" name="234" href="#234">234</a>             <em class="jxr_comment">// Read interleaved and check the values writen by tx 1</em>
-<a class="jxr_linenumber" name="235" href="#235">235</a>             Get getRow1 = <strong class="jxr_keyword">new</strong> Get(row1).setMaxVersions(1);
-<a class="jxr_linenumber" name="236" href="#236">236</a>             getRow1.addColumn(TEST_FAMILY.getBytes(), qualifier1);
-<a class="jxr_linenumber" name="237" href="#237">237</a>             Result r = txTable.get(interleavedReadTx, getRow1);
-<a class="jxr_linenumber" name="238" href="#238">238</a>             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier1), initialData,
-<a class="jxr_linenumber" name="239" href="#239">239</a>                          <span class="jxr_string">"Unexpected value for SI read R1Q1"</span> + interleavedReadTx + <span class="jxr_string">": "</span>
-<a class="jxr_linenumber" name="240" href="#240">240</a>                                  + Bytes.toString(r.getValue(TEST_FAMILY.getBytes(), qualifier1)));
-<a class="jxr_linenumber" name="241" href="#241">241</a> 
-<a class="jxr_linenumber" name="242" href="#242">242</a>             <em class="jxr_comment">// Try to commit, but it should abort due to the change in mastership</em>
-<a class="jxr_linenumber" name="243" href="#243">243</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="244" href="#244">244</a>                 tm.commit(tx1);
-<a class="jxr_linenumber" name="245" href="#245">245</a>                 fail();
-<a class="jxr_linenumber" name="246" href="#246">246</a>             } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="247" href="#247">247</a>                 <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="248" href="#248">248</a>                 LOG.info(<span class="jxr_string">"Rollback cause for Tx {}: "</span>, tx1, e.getCause());
-<a class="jxr_linenumber" name="249" href="#249">249</a>                 assertEquals(tx1.getStatus(), Transaction.Status.ROLLEDBACK);
-<a class="jxr_linenumber" name="250" href="#250">250</a>                 assertEquals(tx1.getEpoch(), initialEpoch);
-<a class="jxr_linenumber" name="251" href="#251">251</a>             }
-<a class="jxr_linenumber" name="252" href="#252">252</a> 
-<a class="jxr_linenumber" name="253" href="#253">253</a>             <em class="jxr_comment">// Read interleaved and check the values written by tx 1</em>
-<a class="jxr_linenumber" name="254" href="#254">254</a>             Get getRow2 = <strong class="jxr_keyword">new</strong> Get(row2).setMaxVersions(1);
-<a class="jxr_linenumber" name="255" href="#255">255</a>             r = txTable.get(interleavedReadTx, getRow2);
-<a class="jxr_linenumber" name="256" href="#256">256</a>             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier2), initialData,
-<a class="jxr_linenumber" name="257" href="#257">257</a>                          <span class="jxr_string">"Unexpected value for SI read R2Q2"</span> + interleavedReadTx + <span class="jxr_string">": "</span>
-<a class="jxr_linenumber" name="258" href="#258">258</a>                                  + Bytes.toString(r.getValue(TEST_FAMILY.getBytes(), qualifier2)));
-<a class="jxr_linenumber" name="259" href="#259">259</a> 
-<a class="jxr_linenumber" name="260" href="#260">260</a>             <em class="jxr_comment">// Should commit because its a read only tx does not have to contact the TSO</em>
-<a class="jxr_linenumber" name="261" href="#261">261</a>             tm.commit(interleavedReadTx);
-<a class="jxr_linenumber" name="262" href="#262">262</a>             assertEquals(interleavedReadTx.getEpoch(), initialEpoch);
-<a class="jxr_linenumber" name="263" href="#263">263</a>             assertEquals(interleavedReadTx.getStatus(), Transaction.Status.COMMITTED_RO);
-<a class="jxr_linenumber" name="264" href="#264">264</a> 
-<a class="jxr_linenumber" name="265" href="#265">265</a>             LOG.info(<span class="jxr_string">"Wait till the client is informed about the connection parameters of the new TSO"</span>);
-<a class="jxr_linenumber" name="266" href="#266">266</a>             TestUtils.waitForSocketListening(<span class="jxr_string">"localhost"</span>, TSO2_PORT, 100);
-<a class="jxr_linenumber" name="267" href="#267">267</a> 
-<a class="jxr_linenumber" name="268" href="#268">268</a>             checkRowValues(txTable, initialData, initialData);
-<a class="jxr_linenumber" name="269" href="#269">269</a> 
-<a class="jxr_linenumber" name="270" href="#270">270</a>             <em class="jxr_comment">// Need to resume to let other test progress</em>
-<a class="jxr_linenumber" name="271" href="#271">271</a>             leaseManager1.resume();
-<a class="jxr_linenumber" name="272" href="#272">272</a> 
-<a class="jxr_linenumber" name="273" href="#273">273</a>         }
-<a class="jxr_linenumber" name="274" href="#274">274</a> 
-<a class="jxr_linenumber" name="275" href="#275">275</a>     }
-<a class="jxr_linenumber" name="276" href="#276">276</a> 
-<a class="jxr_linenumber" name="277" href="#277">277</a>     <em class="jxr_comment">//</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a>     <em class="jxr_comment">// TSO 1 is MASTER &amp; TSO 2 is BACKUP</em>
-<a class="jxr_linenumber" name="279" href="#279">279</a>     <em class="jxr_comment">// Setup: TX 0 -&gt; Add initial data to cells R1C1 (v0) &amp; R2C2 (v0)</em>
-<a class="jxr_linenumber" name="280" href="#280">280</a>     <em class="jxr_comment">// TX 1 starts (TSO1)</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a>     <em class="jxr_comment">// TX 1 modifies cells R1C1 &amp; R2C2 (v1)</em>
-<a class="jxr_linenumber" name="282" href="#282">282</a>     <em class="jxr_comment">// TSO 1 is KILLED -&gt; TSO 2 becomes MASTER</em>
-<a class="jxr_linenumber" name="283" href="#283">283</a>     <em class="jxr_comment">// TX 1 tries to commit -&gt; should abort because was started in TSO 1</em>
-<a class="jxr_linenumber" name="284" href="#284">284</a>     <em class="jxr_comment">// TX 2 starts (TSO1)</em>
-<a class="jxr_linenumber" name="285" href="#285">285</a>     <em class="jxr_comment">// TX 2 reads R1C1 -&gt; should get v0</em>
-<a class="jxr_linenumber" name="286" href="#286">286</a>     <em class="jxr_comment">// TX 2 reads R2C2 -&gt; should get v0</em>
-<a class="jxr_linenumber" name="287" href="#287">287</a>     <em class="jxr_comment">// TX 2 modifies cells R1C1 &amp; R2C2 (v2)</em>
-<a class="jxr_linenumber" name="288" href="#288">288</a>     <em class="jxr_comment">// TX 2 commits</em>
-<a class="jxr_linenumber" name="289" href="#289">289</a>     <em class="jxr_comment">// End of Test state: R1C1 &amp; R2C2 (v2)</em>
-<a class="jxr_linenumber" name="290" href="#290">290</a>     @Test(timeOut = 60_000)
-<a class="jxr_linenumber" name="291" href="#291">291</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScenario2() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="292" href="#292">292</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(connection, TEST_TABLE)) {
-<a class="jxr_linenumber" name="293" href="#293">293</a> 
-<a class="jxr_linenumber" name="294" href="#294">294</a>             <em class="jxr_comment">// Write initial values for the test</em>
-<a class="jxr_linenumber" name="295" href="#295">295</a>             HBaseTransaction tx0 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="296" href="#296">296</a>             <strong class="jxr_keyword">long</strong> initialEpoch = tx0.getEpoch();
-<a class="jxr_linenumber" name="297" href="#297">297</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing initial values for cells ({}) "</span>, tx0, Bytes.toString(initialData));
-<a class="jxr_linenumber" name="298" href="#298">298</a>             Put putInitialDataRow1 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="299" href="#299">299</a>             putInitialDataRow1.addColumn(TEST_FAMILY.getBytes(), qualifier1, initialData);
-<a class="jxr_linenumber" name="300" href="#300">300</a>             txTable.put(tx0, putInitialDataRow1);
-<a class="jxr_linenumber" name="301" href="#301">301</a>             Put putInitialDataRow2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="302" href="#302">302</a>             putInitialDataRow2.addColumn(TEST_FAMILY.getBytes(), qualifier2, initialData);
-<a class="jxr_linenumber" name="303" href="#303">303</a>             txTable.put(tx0, putInitialDataRow2);
-<a class="jxr_linenumber" name="304" href="#304">304</a>             tm.commit(tx0);
-<a class="jxr_linenumber" name="305" href="#305">305</a> 
-<a class="jxr_linenumber" name="306" href="#306">306</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="307" href="#307">307</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing values for cells ({}, {}) "</span>, tx1, Bytes.toString(data1_q1),
-<a class="jxr_linenumber" name="308" href="#308">308</a>                      Bytes.toString(data1_q2));
-<a class="jxr_linenumber" name="309" href="#309">309</a>             Put putData1R1Q1 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="310" href="#310">310</a>             putData1R1Q1.addColumn(TEST_FAMILY.getBytes(), qualifier1, data1_q1);
-<a class="jxr_linenumber" name="311" href="#311">311</a>             txTable.put(tx1, putData1R1Q1);
-<a class="jxr_linenumber" name="312" href="#312">312</a>             Put putData1R2Q2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="313" href="#313">313</a>             putData1R2Q2.addColumn(TEST_FAMILY.getBytes(), qualifier2, data1_q2);
-<a class="jxr_linenumber" name="314" href="#314">314</a>             txTable.put(tx1, putData1R2Q2);
-<a class="jxr_linenumber" name="315" href="#315">315</a> 
-<a class="jxr_linenumber" name="316" href="#316">316</a>             <em class="jxr_comment">// Provoke change in mastership (should throw a Connection exception)</em>
+<a class="jxr_linenumber" name="231" href="#231">231</a>             leaseManager1.pausedInStillInLeasePeriod();
+<a class="jxr_linenumber" name="232" href="#232">232</a> 
+<a class="jxr_linenumber" name="233" href="#233">233</a>             <em class="jxr_comment">// Read interleaved and check the values writen by tx 1</em>
+<a class="jxr_linenumber" name="234" href="#234">234</a>             Get getRow1 = <strong class="jxr_keyword">new</strong> Get(row1).setMaxVersions(1);
+<a class="jxr_linenumber" name="235" href="#235">235</a>             getRow1.addColumn(TEST_FAMILY.getBytes(), qualifier1);
+<a class="jxr_linenumber" name="236" href="#236">236</a>             Result r = txTable.get(interleavedReadTx, getRow1);
+<a class="jxr_linenumber" name="237" href="#237">237</a>             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier1), initialData,
+<a class="jxr_linenumber" name="238" href="#238">238</a>                          <span class="jxr_string">"Unexpected value for SI read R1Q1"</span> + interleavedReadTx + <span class="jxr_string">": "</span>
+<a class="jxr_linenumber" name="239" href="#239">239</a>                                  + Bytes.toString(r.getValue(TEST_FAMILY.getBytes(), qualifier1)));
+<a class="jxr_linenumber" name="240" href="#240">240</a> 
+<a class="jxr_linenumber" name="241" href="#241">241</a>             <em class="jxr_comment">// Try to commit, but it should abort due to the change in mastership</em>
+<a class="jxr_linenumber" name="242" href="#242">242</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="243" href="#243">243</a>                 tm.commit(tx1);
+<a class="jxr_linenumber" name="244" href="#244">244</a>                 fail();
+<a class="jxr_linenumber" name="245" href="#245">245</a>             } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
+<a class="jxr_linenumber" name="246" href="#246">246</a>                 <em class="jxr_comment">// Expected</em>
+<a class="jxr_linenumber" name="247" href="#247">247</a>                 LOG.info(<span class="jxr_string">"Rollback cause for Tx {}: "</span>, tx1, e.getCause());
+<a class="jxr_linenumber" name="248" href="#248">248</a>                 assertEquals(tx1.getStatus(), Transaction.Status.ROLLEDBACK);
+<a class="jxr_linenumber" name="249" href="#249">249</a>                 assertEquals(tx1.getEpoch(), initialEpoch);
+<a class="jxr_linenumber" name="250" href="#250">250</a>             }
+<a class="jxr_linenumber" name="251" href="#251">251</a> 
+<a class="jxr_linenumber" name="252" href="#252">252</a>             <em class="jxr_comment">// Read interleaved and check the values written by tx 1</em>
+<a class="jxr_linenumber" name="253" href="#253">253</a>             Get getRow2 = <strong class="jxr_keyword">new</strong> Get(row2).setMaxVersions(1);
+<a class="jxr_linenumber" name="254" href="#254">254</a>             r = txTable.get(interleavedReadTx, getRow2);
+<a class="jxr_linenumber" name="255" href="#255">255</a>             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier2), initialData,
+<a class="jxr_linenumber" name="256" href="#256">256</a>                          <span class="jxr_string">"Unexpected value for SI read R2Q2"</span> + interleavedReadTx + <span class="jxr_string">": "</span>
+<a class="jxr_linenumber" name="257" href="#257">257</a>                                  + Bytes.toString(r.getValue(TEST_FAMILY.getBytes(), qualifier2)));
+<a class="jxr_linenumber" name="258" href="#258">258</a> 
+<a class="jxr_linenumber" name="259" href="#259">259</a>             <em class="jxr_comment">// Should commit because its a read only tx does not have to contact the TSO</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a>             tm.commit(interleavedReadTx);
+<a class="jxr_linenumber" name="261" href="#261">261</a>             assertEquals(interleavedReadTx.getEpoch(), initialEpoch);
+<a class="jxr_linenumber" name="262" href="#262">262</a>             assertEquals(interleavedReadTx.getStatus(), Transaction.Status.COMMITTED_RO);
+<a class="jxr_linenumber" name="263" href="#263">263</a> 
+<a class="jxr_linenumber" name="264" href="#264">264</a>             LOG.info(<span class="jxr_string">"Wait till the client is informed about the connection parameters of the new TSO"</span>);
+<a class="jxr_linenumber" name="265" href="#265">265</a>             TestUtils.waitForSocketListening(<span class="jxr_string">"localhost"</span>, TSO2_PORT, 100);
+<a class="jxr_linenumber" name="266" href="#266">266</a> 
+<a class="jxr_linenumber" name="267" href="#267">267</a>             checkRowValues(txTable, initialData, initialData);
+<a class="jxr_linenumber" name="268" href="#268">268</a> 
+<a class="jxr_linenumber" name="269" href="#269">269</a>             <em class="jxr_comment">// Need to resume to let other test progress</em>
+<a class="jxr_linenumber" name="270" href="#270">270</a>             leaseManager1.resume();
+<a class="jxr_linenumber" name="271" href="#271">271</a> 
+<a class="jxr_linenumber" name="272" href="#272">272</a>         }
+<a class="jxr_linenumber" name="273" href="#273">273</a> 
+<a class="jxr_linenumber" name="274" href="#274">274</a>     }
+<a class="jxr_linenumber" name="275" href="#275">275</a> 
+<a class="jxr_linenumber" name="276" href="#276">276</a>     <em class="jxr_comment">//</em>
+<a class="jxr_linenumber" name="277" href="#277">277</a>     <em class="jxr_comment">// TSO 1 is MASTER &amp; TSO 2 is BACKUP</em>
+<a class="jxr_linenumber" name="278" href="#278">278</a>     <em class="jxr_comment">// Setup: TX 0 -&gt; Add initial data to cells R1C1 (v0) &amp; R2C2 (v0)</em>
+<a class="jxr_linenumber" name="279" href="#279">279</a>     <em class="jxr_comment">// TX 1 starts (TSO1)</em>
+<a class="jxr_linenumber" name="280" href="#280">280</a>     <em class="jxr_comment">// TX 1 modifies cells R1C1 &amp; R2C2 (v1)</em>
+<a class="jxr_linenumber" name="281" href="#281">281</a>     <em class="jxr_comment">// TSO 1 is KILLED -&gt; TSO 2 becomes MASTER</em>
+<a class="jxr_linenumber" name="282" href="#282">282</a>     <em class="jxr_comment">// TX 1 tries to commit -&gt; should abort because was started in TSO 1</em>
+<a class="jxr_linenumber" name="283" href="#283">283</a>     <em class="jxr_comment">// TX 2 starts (TSO1)</em>
+<a class="jxr_linenumber" name="284" href="#284">284</a>     <em class="jxr_comment">// TX 2 reads R1C1 -&gt; should get v0</em>
+<a class="jxr_linenumber" name="285" href="#285">285</a>     <em class="jxr_comment">// TX 2 reads R2C2 -&gt; should get v0</em>
+<a class="jxr_linenumber" name="286" href="#286">286</a>     <em class="jxr_comment">// TX 2 modifies cells R1C1 &amp; R2C2 (v2)</em>
+<a class="jxr_linenumber" name="287" href="#287">287</a>     <em class="jxr_comment">// TX 2 commits</em>
+<a class="jxr_linenumber" name="288" href="#288">288</a>     <em class="jxr_comment">// End of Test state: R1C1 &amp; R2C2 (v2)</em>
+<a class="jxr_linenumber" name="289" href="#289">289</a>     @Test(timeOut = 60_000)
+<a class="jxr_linenumber" name="290" href="#290">290</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testScenario2() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="291" href="#291">291</a>         <strong class="jxr_keyword">try</strong> (TTable txTable = <strong class="jxr_keyword">new</strong> TTable(hbaseConf, TEST_TABLE)) {
+<a class="jxr_linenumber" name="292" href="#292">292</a> 
+<a class="jxr_linenumber" name="293" href="#293">293</a>             <em class="jxr_comment">// Write initial values for the test</em>
+<a class="jxr_linenumber" name="294" href="#294">294</a>             HBaseTransaction tx0 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="295" href="#295">295</a>             <strong class="jxr_keyword">long</strong> initialEpoch = tx0.getEpoch();
+<a class="jxr_linenumber" name="296" href="#296">296</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing initial values for cells ({}) "</span>, tx0, Bytes.toString(initialData));
+<a class="jxr_linenumber" name="297" href="#297">297</a>             Put putInitialDataRow1 = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="298" href="#298">298</a>             putInitialDataRow1.add(TEST_FAMILY.getBytes(), qualifier1, initialData);
+<a class="jxr_linenumber" name="299" href="#299">299</a>             txTable.put(tx0, putInitialDataRow1);
+<a class="jxr_linenumber" name="300" href="#300">300</a>             Put putInitialDataRow2 = <strong class="jxr_keyword">new</strong> Put(row2);
+<a class="jxr_linenumber" name="301" href="#301">301</a>             putInitialDataRow2.add(TEST_FAMILY.getBytes(), qualifier2, initialData);
+<a class="jxr_linenumber" name="302" href="#302">302</a>             txTable.put(tx0, putInitialDataRow2);
+<a class="jxr_linenumber" name="303" href="#303">303</a>             tm.commit(tx0);
+<a class="jxr_linenumber" name="304" href="#304">304</a> 
+<a class="jxr_linenumber" name="305" href="#305">305</a>             HBaseTransaction tx1 = (HBaseTransaction) tm.begin();
+<a class="jxr_linenumber" name="306" href="#306">306</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing values for cells ({}, {}) "</span>, tx1, Bytes.toString(data1_q1),
+<a class="jxr_linenumber" name="307" href="#307">307</a>                      Bytes.toString(data1_q2));
+<a class="jxr_linenumber" name="308" href="#308">308</a>             Put putData1R1Q1 = <strong class="jxr_keyword">new</strong> Put(row1);
+<a class="jxr_linenumber" name="309" href="#309">309</a>             putData1R1Q1.add(TEST_FAMILY.getBytes(), qualifier1, data1_q1);
+<a class="jxr_linenumber" name="310" href="#310">310</a>             txTable.put(tx1, putData1R1Q1);
+<a class="jxr_linenumber" name="311" href="#311">311</a>             Put putData1R2Q2 = <strong class="jxr_keyword">new</strong> Put(row2);
+<a class="jxr_linenumber" name="312" href="#312">312</a>             putData1R2Q2.add(TEST_FAMILY.getBytes(), qualifier2, data1_q2);
+<a class="jxr_linenumber" name="313" href="#313">313</a>             txTable.put(tx1, putData1R2Q2);
+<a class="jxr_linenumber" name="314" href="#314">314</a> 
+<a class="jxr_linenumber" name="315" href="#315">315</a>             <em class="jxr_comment">// Provoke change in mastership (should throw a Connection exception)</em>
+<a class="jxr_linenumber" name="316" href="#316">316</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
 <a class="jxr_linenumber" name="317" href="#317">317</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
-<a class="jxr_linenumber" name="318" href="#318">318</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
-<a class="jxr_linenumber" name="319" href="#319">319</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++ KILLING TSO 1 +++++++++++++++++++"</span>);
+<a class="jxr_linenumber" name="318" href="#318">318</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++ KILLING TSO 1 +++++++++++++++++++"</span>);
+<a class="jxr_linenumber" name="319" href="#319">319</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
 <a class="jxr_linenumber" name="320" href="#320">320</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
-<a class="jxr_linenumber" name="321" href="#321">321</a>             LOG.info(<span class="jxr_string">"++++++++++++++++++++++++++++++++++++++++++++++++++++++"</span>);
-<a class="jxr_linenumber" name="322" href="#322">322</a>             tso1.stopAndWait();
-<a class="jxr_linenumber" name="323" href="#323">323</a>             TestUtils.waitForSocketNotListening(<span class="jxr_string">"localhost"</span>, TSO1_PORT, 100);
-<a class="jxr_linenumber" name="324" href="#324">324</a> 
-<a class="jxr_linenumber" name="325" href="#325">325</a>             <em class="jxr_comment">// Try to commit, but it should abort due to the change in mastership</em>
-<a class="jxr_linenumber" name="326" href="#326">326</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="327" href="#327">327</a>                 tm.commit(tx1);
-<a class="jxr_linenumber" name="328" href="#328">328</a>                 String failMsg = String.format(<span class="jxr_string">"%s should not commit. Initial epoch was: %d"</span>, tx1, initialEpoch);
-<a class="jxr_linenumber" name="329" href="#329">329</a>                 fail(failMsg);
-<a class="jxr_linenumber" name="330" href="#330">330</a>             } <strong class="jxr_keyword">catch</strong> (RollbackException e) {
-<a class="jxr_linenumber" name="331" href="#331">331</a>                 <em class="jxr_comment">// Expected</em>
-<a class="jxr_linenumber" name="332" href="#332">332</a>                 LOG.info(<span class="jxr_string">"Rollback cause for Tx {}: "</span>, tx1, e.getCause());
-<a class="jxr_linenumber" name="333" href="#333">333</a>                 assertEquals(tx1.getStatus(), Transaction.Status.ROLLEDBACK);
-<a class="jxr_linenumber" name="334" href="#334">334</a>                 assertEquals(tx1.getEpoch(), initialEpoch);
-<a class="jxr_linenumber" name="335" href="#335">335</a>             }
-<a class="jxr_linenumber" name="336" href="#336">336</a> 
-<a class="jxr_linenumber" name="337" href="#337">337</a>             LOG.info(<span class="jxr_string">"Sleep some time till the client is informed about"</span>
-<a class="jxr_linenumber" name="338" href="#338">338</a>                              + <span class="jxr_string">"the new TSO connection parameters and how can connect"</span>);
-<a class="jxr_linenumber" name="339" href="#339">339</a>             TimeUnit.SECONDS.sleep(10 + 2);
-<a class="jxr_linenumber" name="340" href="#340">340</a> 
-<a class="jxr_linenumber" name="341" href="#341">341</a>             HBaseTransaction tx2 = (HBaseTransaction) tm.begin();
-<a class="jxr_linenumber" name="342" href="#342">342</a>             LOG.info(<span class="jxr_string">"Starting Tx {} writing values for cells ({}, {}) "</span>, tx2, Bytes.toString(data1_q1),
-<a class="jxr_linenumber" name="343" href="#343">343</a>                      Bytes.toString(data1_q2));
-<a class="jxr_linenumber" name="344" href="#344">344</a>             Get getData1R1Q1 = <strong class="jxr_keyword">new</strong> Get(row1).setMaxVersions(1);
-<a class="jxr_linenumber" name="345" href="#345">345</a>             Result r = txTable.get(tx2, getData1R1Q1);
-<a class="jxr_linenumber" name="346" href="#346">346</a>             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier1), initialData,
-<a class="jxr_linenumber" name="347" href="#347">347</a>                          <span class="jxr_string">"Unexpected value for SI read R1Q1"</span> + tx2 + <span class="jxr_string">": "</span>
-<a class="jxr_linenumber" name="348" href="#348">348</a>                                  + Bytes.toString(r.getValue(TEST_FAMILY.getBytes(), qualifier1)));
-<a class="jxr_linenumber" name="349" href="#349">349</a>             Get getData1R2Q2 = <strong class="jxr_keyword">new</strong> Get(row2).setMaxVersions(1);
-<a class="jxr_linenumber" name="350" href="#350">350</a>             r = txTable.get(tx2, getData1R2Q2);
-<a class="jxr_linenumber" name="351" href="#351">351</a>             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier2), initialData,
-<a class="jxr_linenumber" name="352" href="#352">352</a>                          <span class="jxr_string">"Unexpected value for SI read R1Q1"</span> + tx2 + <span class="jxr_string">": "</span>
-<a class="jxr_linenumber" name="353" href="#353">353</a>                                  + Bytes.toString(r.getValue(TEST_FAMILY.getBytes(), qualifier2)));
-<a class="jxr_linenumber" name="354" href="#354">354</a> 
-<a class="jxr_linenumber" name="355" href="#355">355</a>             Put putData2R1Q1 = <strong class="jxr_keyword">new</strong> Put(row1);
-<a class="jxr_linenumber" name="356" href="#356">356</a>             putData2R1Q1.addColumn(TEST_FAMILY.getBytes(), qualifier1, data2_q1);
-<a class="jxr_linenumber" name="357" href="#357">357</a>             txTable.put(tx2, putData2R1Q1);
-<a class="jxr_linenumber" name="358" href="#358">358</a>             Put putData2R2Q2 = <strong class="jxr_keyword">new</strong> Put(row2);
-<a class="jxr_linenumber" name="359" href="#359">359</a>             putData2R2Q2.addColumn(TEST_FAMILY.getBytes(), qualifier2, data2_q2);
-<a class="jxr_linenumber" name="360" href="#360">360</a>             txTable.put(tx2, putData2R2Q2);
-<a class="jxr_linenumber" name="361" href="#361">361</a>             <em class="jxr_comment">// This one should commit in the new TSO</em>
-<a class="jxr_linenumber" name="362" href="#362">362</a>             tm.commit(tx2);
-<a class="jxr_linenumber" name="363" href="#363">363</a> 
-<a class="jxr_linenumber" name="364" href="#364">364</a>             assertEquals(tx2.getStatus(), Transaction.Status.COMMITTED);
-<a class="jxr_linenumber" name="365" href="#365">365</a>             assertTrue(tx2.getEpoch() &gt; tx0.getCommitTimestamp());
-<a class="jxr_linenumber" name="366" href="#366">366</a> 
-<a class="jxr_linenumber" name="367" href="#367">367</a>             checkRowValues(txTable, data2_q1, data2_q2);
-<a class="jxr_linenumber" name="368" href="#368">368</a>         }
-<a class="jxr_linenumber" name="369" href="#369">369</a> 
-<a class="jxr_linenumber" name="370" href="#370">370</a>     }
-<a class="jxr_linenumber" name="371" href="#371">371</a> 
-<a class="jxr_linenumber" name="372" href="#372">372</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkRowValues(TTable txTable, 

<TRUNCATED>


[05/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/TSOChannelHandler.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/TSOChannelHandler.html b/xref/org/apache/omid/tso/TSOChannelHandler.html
index 02acc44..9c8bb12 100644
--- a/xref/org/apache/omid/tso/TSOChannelHandler.html
+++ b/xref/org/apache/omid/tso/TSOChannelHandler.html
@@ -180,123 +180,119 @@
 <a class="jxr_linenumber" name="170" href="#170">170</a>                 TSOProto.CommitRequest cr = request.getCommitRequest();
 <a class="jxr_linenumber" name="171" href="#171">171</a>                 requestProcessor.commitRequest(cr.getStartTimestamp(),
 <a class="jxr_linenumber" name="172" href="#172">172</a>                                                cr.getCellIdList(),
-<a class="jxr_linenumber" name="173" href="#173">173</a>                                                cr.getTableIdList(),
-<a class="jxr_linenumber" name="174" href="#174">174</a>                                                cr.getIsRetry(),
-<a class="jxr_linenumber" name="175" href="#175">175</a>                                                ctx.getChannel(),
-<a class="jxr_linenumber" name="176" href="#176">176</a>                                                <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a>(metrics));
-<a class="jxr_linenumber" name="177" href="#177">177</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (request.hasFenceRequest()) {
-<a class="jxr_linenumber" name="178" href="#178">178</a>                 TSOProto.FenceRequest fr = request.getFenceRequest();
-<a class="jxr_linenumber" name="179" href="#179">179</a>                 requestProcessor.fenceRequest(fr.getTableId(), ctx.getChannel(), <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="180" href="#180">180</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="181" href="#181">181</a>                 LOG.error(<span class="jxr_string">"Invalid request {}. Closing channel {}"</span>, request, ctx.getChannel());
-<a class="jxr_linenumber" name="182" href="#182">182</a>                 ctx.getChannel().close();
-<a class="jxr_linenumber" name="183" href="#183">183</a>             }
-<a class="jxr_linenumber" name="184" href="#184">184</a>         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="185" href="#185">185</a>             LOG.error(<span class="jxr_string">"Unknown message type"</span>, msg);
-<a class="jxr_linenumber" name="186" href="#186">186</a>         }
-<a class="jxr_linenumber" name="187" href="#187">187</a>     }
-<a class="jxr_linenumber" name="188" href="#188">188</a> 
-<a class="jxr_linenumber" name="189" href="#189">189</a>     @SuppressWarnings(<span class="jxr_string">"ThrowableResultOfMethodCallIgnored"</span>)
-<a class="jxr_linenumber" name="190" href="#190">190</a>     @Override
-<a class="jxr_linenumber" name="191" href="#191">191</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) {
-<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">if</strong> (e.getCause() instanceof ClosedChannelException) {
-<a class="jxr_linenumber" name="193" href="#193">193</a>             LOG.warn(<span class="jxr_string">"ClosedChannelException caught. Cause: "</span>, e.getCause());
-<a class="jxr_linenumber" name="194" href="#194">194</a>             <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="195" href="#195">195</a>         }
-<a class="jxr_linenumber" name="196" href="#196">196</a>         LOG.warn(<span class="jxr_string">"Unexpected exception from downstream. Closing channel {}"</span>, ctx.getChannel(), e.getCause());
-<a class="jxr_linenumber" name="197" href="#197">197</a>         ctx.getChannel().close();
-<a class="jxr_linenumber" name="198" href="#198">198</a>     }
-<a class="jxr_linenumber" name="199" href="#199">199</a> 
-<a class="jxr_linenumber" name="200" href="#200">200</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="201" href="#201">201</a>     <em class="jxr_comment">// Closeable implementation</em>
-<a class="jxr_linenumber" name="202" href="#202">202</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="203" href="#203">203</a>     @Override
-<a class="jxr_linenumber" name="204" href="#204">204</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="205" href="#205">205</a>         closeConnection();
-<a class="jxr_linenumber" name="206" href="#206">206</a>         factory.releaseExternalResources();
-<a class="jxr_linenumber" name="207" href="#207">207</a>     }
+<a class="jxr_linenumber" name="173" href="#173">173</a>                                                cr.getIsRetry(),
+<a class="jxr_linenumber" name="174" href="#174">174</a>                                                ctx.getChannel(),
+<a class="jxr_linenumber" name="175" href="#175">175</a>                                                <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/MonitoringContext.html">MonitoringContext</a>(metrics));
+<a class="jxr_linenumber" name="176" href="#176">176</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="177" href="#177">177</a>                 LOG.error(<span class="jxr_string">"Invalid request {}. Closing channel {}"</span>, request, ctx.getChannel());
+<a class="jxr_linenumber" name="178" href="#178">178</a>                 ctx.getChannel().close();
+<a class="jxr_linenumber" name="179" href="#179">179</a>             }
+<a class="jxr_linenumber" name="180" href="#180">180</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="181" href="#181">181</a>             LOG.error(<span class="jxr_string">"Unknown message type"</span>, msg);
+<a class="jxr_linenumber" name="182" href="#182">182</a>         }
+<a class="jxr_linenumber" name="183" href="#183">183</a>     }
+<a class="jxr_linenumber" name="184" href="#184">184</a> 
+<a class="jxr_linenumber" name="185" href="#185">185</a>     @SuppressWarnings(<span class="jxr_string">"ThrowableResultOfMethodCallIgnored"</span>)
+<a class="jxr_linenumber" name="186" href="#186">186</a>     @Override
+<a class="jxr_linenumber" name="187" href="#187">187</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) {
+<a class="jxr_linenumber" name="188" href="#188">188</a>         <strong class="jxr_keyword">if</strong> (e.getCause() instanceof ClosedChannelException) {
+<a class="jxr_linenumber" name="189" href="#189">189</a>             LOG.warn(<span class="jxr_string">"ClosedChannelException caught. Cause: "</span>, e.getCause());
+<a class="jxr_linenumber" name="190" href="#190">190</a>             <strong class="jxr_keyword">return</strong>;
+<a class="jxr_linenumber" name="191" href="#191">191</a>         }
+<a class="jxr_linenumber" name="192" href="#192">192</a>         LOG.warn(<span class="jxr_string">"Unexpected exception from downstream. Closing channel {}"</span>, ctx.getChannel(), e.getCause());
+<a class="jxr_linenumber" name="193" href="#193">193</a>         ctx.getChannel().close();
+<a class="jxr_linenumber" name="194" href="#194">194</a>     }
+<a class="jxr_linenumber" name="195" href="#195">195</a> 
+<a class="jxr_linenumber" name="196" href="#196">196</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="197" href="#197">197</a>     <em class="jxr_comment">// Closeable implementation</em>
+<a class="jxr_linenumber" name="198" href="#198">198</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="199" href="#199">199</a>     @Override
+<a class="jxr_linenumber" name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="201" href="#201">201</a>         closeConnection();
+<a class="jxr_linenumber" name="202" href="#202">202</a>         factory.releaseExternalResources();
+<a class="jxr_linenumber" name="203" href="#203">203</a>     }
+<a class="jxr_linenumber" name="204" href="#204">204</a> 
+<a class="jxr_linenumber" name="205" href="#205">205</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="206" href="#206">206</a>     <em class="jxr_comment">// Helper methods and classes</em>
+<a class="jxr_linenumber" name="207" href="#207">207</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
 <a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="210" href="#210">210</a>     <em class="jxr_comment">// Helper methods and classes</em>
-<a class="jxr_linenumber" name="211" href="#211">211</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="212" href="#212">212</a> 
-<a class="jxr_linenumber" name="213" href="#213">213</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="214" href="#214">214</a> <em class="jxr_javadoccomment">     * Contains the required context for handshake</em>
-<a class="jxr_linenumber" name="215" href="#215">215</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a> {
-<a class="jxr_linenumber" name="217" href="#217">217</a> 
-<a class="jxr_linenumber" name="218" href="#218">218</a>         <strong class="jxr_keyword">boolean</strong> handshakeComplete;
+<a class="jxr_linenumber" name="209" href="#209">209</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="210" href="#210">210</a> <em class="jxr_javadoccomment">     * Contains the required context for handshake</em>
+<a class="jxr_linenumber" name="211" href="#211">211</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="212" href="#212">212</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a> {
+<a class="jxr_linenumber" name="213" href="#213">213</a> 
+<a class="jxr_linenumber" name="214" href="#214">214</a>         <strong class="jxr_keyword">boolean</strong> handshakeComplete;
+<a class="jxr_linenumber" name="215" href="#215">215</a> 
+<a class="jxr_linenumber" name="216" href="#216">216</a>         <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a>() {
+<a class="jxr_linenumber" name="217" href="#217">217</a>             handshakeComplete = false;
+<a class="jxr_linenumber" name="218" href="#218">218</a>         }
 <a class="jxr_linenumber" name="219" href="#219">219</a> 
-<a class="jxr_linenumber" name="220" href="#220">220</a>         <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a>() {
-<a class="jxr_linenumber" name="221" href="#221">221</a>             handshakeComplete = false;
+<a class="jxr_linenumber" name="220" href="#220">220</a>         <strong class="jxr_keyword">boolean</strong> getHandshakeComplete() {
+<a class="jxr_linenumber" name="221" href="#221">221</a>             <strong class="jxr_keyword">return</strong> handshakeComplete;
 <a class="jxr_linenumber" name="222" href="#222">222</a>         }
 <a class="jxr_linenumber" name="223" href="#223">223</a> 
-<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">boolean</strong> getHandshakeComplete() {
-<a class="jxr_linenumber" name="225" href="#225">225</a>             <strong class="jxr_keyword">return</strong> handshakeComplete;
+<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">void</strong> setHandshakeComplete() {
+<a class="jxr_linenumber" name="225" href="#225">225</a>             handshakeComplete = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="226" href="#226">226</a>         }
 <a class="jxr_linenumber" name="227" href="#227">227</a> 
-<a class="jxr_linenumber" name="228" href="#228">228</a>         <strong class="jxr_keyword">void</strong> setHandshakeComplete() {
-<a class="jxr_linenumber" name="229" href="#229">229</a>             handshakeComplete = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="230" href="#230">230</a>         }
+<a class="jxr_linenumber" name="228" href="#228">228</a>     }
+<a class="jxr_linenumber" name="229" href="#229">229</a> 
+<a class="jxr_linenumber" name="230" href="#230">230</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkHandshake(<strong class="jxr_keyword">final</strong> ChannelHandlerContext ctx, TSOProto.HandshakeRequest request) {
 <a class="jxr_linenumber" name="231" href="#231">231</a> 
-<a class="jxr_linenumber" name="232" href="#232">232</a>     }
-<a class="jxr_linenumber" name="233" href="#233">233</a> 
-<a class="jxr_linenumber" name="234" href="#234">234</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkHandshake(<strong class="jxr_keyword">final</strong> ChannelHandlerContext ctx, TSOProto.HandshakeRequest request) {
-<a class="jxr_linenumber" name="235" href="#235">235</a> 
-<a class="jxr_linenumber" name="236" href="#236">236</a>         TSOProto.HandshakeResponse.Builder response = TSOProto.HandshakeResponse.newBuilder();
-<a class="jxr_linenumber" name="237" href="#237">237</a>         <strong class="jxr_keyword">if</strong> (request.hasClientCapabilities()) {
-<a class="jxr_linenumber" name="238" href="#238">238</a> 
-<a class="jxr_linenumber" name="239" href="#239">239</a>             response.setClientCompatible(<strong class="jxr_keyword">true</strong>)
-<a class="jxr_linenumber" name="240" href="#240">240</a>                     .setServerCapabilities(TSOProto.Capabilities.newBuilder().build());
-<a class="jxr_linenumber" name="241" href="#241">241</a>             <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a> tsoCtx = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a>();
-<a class="jxr_linenumber" name="242" href="#242">242</a>             tsoCtx.setHandshakeComplete();
-<a class="jxr_linenumber" name="243" href="#243">243</a>             ctx.setAttachment(tsoCtx);
-<a class="jxr_linenumber" name="244" href="#244">244</a>         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="245" href="#245">245</a>             response.setClientCompatible(false);
-<a class="jxr_linenumber" name="246" href="#246">246</a>         }
-<a class="jxr_linenumber" name="247" href="#247">247</a>         ctx.getChannel().write(TSOProto.Response.newBuilder().setHandshakeResponse(response.build()).build());
+<a class="jxr_linenumber" name="232" href="#232">232</a>         TSOProto.HandshakeResponse.Builder response = TSOProto.HandshakeResponse.newBuilder();
+<a class="jxr_linenumber" name="233" href="#233">233</a>         <strong class="jxr_keyword">if</strong> (request.hasClientCapabilities()) {
+<a class="jxr_linenumber" name="234" href="#234">234</a> 
+<a class="jxr_linenumber" name="235" href="#235">235</a>             response.setClientCompatible(<strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="236" href="#236">236</a>                     .setServerCapabilities(TSOProto.Capabilities.newBuilder().build());
+<a class="jxr_linenumber" name="237" href="#237">237</a>             <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a> tsoCtx = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a>();
+<a class="jxr_linenumber" name="238" href="#238">238</a>             tsoCtx.setHandshakeComplete();
+<a class="jxr_linenumber" name="239" href="#239">239</a>             ctx.setAttachment(tsoCtx);
+<a class="jxr_linenumber" name="240" href="#240">240</a>         } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="241" href="#241">241</a>             response.setClientCompatible(false);
+<a class="jxr_linenumber" name="242" href="#242">242</a>         }
+<a class="jxr_linenumber" name="243" href="#243">243</a>         ctx.getChannel().write(TSOProto.Response.newBuilder().setHandshakeResponse(response.build()).build());
+<a class="jxr_linenumber" name="244" href="#244">244</a> 
+<a class="jxr_linenumber" name="245" href="#245">245</a>     }
+<a class="jxr_linenumber" name="246" href="#246">246</a> 
+<a class="jxr_linenumber" name="247" href="#247">247</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> handshakeCompleted(ChannelHandlerContext ctx) {
 <a class="jxr_linenumber" name="248" href="#248">248</a> 
-<a class="jxr_linenumber" name="249" href="#249">249</a>     }
-<a class="jxr_linenumber" name="250" href="#250">250</a> 
-<a class="jxr_linenumber" name="251" href="#251">251</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> handshakeCompleted(ChannelHandlerContext ctx) {
-<a class="jxr_linenumber" name="252" href="#252">252</a> 
-<a class="jxr_linenumber" name="253" href="#253">253</a>         Object o = ctx.getAttachment();
-<a class="jxr_linenumber" name="254" href="#254">254</a>         <strong class="jxr_keyword">if</strong> (o instanceof TSOChannelContext) {
-<a class="jxr_linenumber" name="255" href="#255">255</a>             <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a> tsoCtx = (TSOChannelContext) o;
-<a class="jxr_linenumber" name="256" href="#256">256</a>             <strong class="jxr_keyword">return</strong> tsoCtx.getHandshakeComplete();
-<a class="jxr_linenumber" name="257" href="#257">257</a>         }
-<a class="jxr_linenumber" name="258" href="#258">258</a>         <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="259" href="#259">259</a> 
-<a class="jxr_linenumber" name="260" href="#260">260</a>     }
-<a class="jxr_linenumber" name="261" href="#261">261</a> 
-<a class="jxr_linenumber" name="262" href="#262">262</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="263" href="#263">263</a> <em class="jxr_javadoccomment">     * Netty pipeline configuration</em>
-<a class="jxr_linenumber" name="264" href="#264">264</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="265" href="#265">265</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOPipelineFactory</a> <strong class="jxr_keyword">implements</strong> ChannelPipelineFactory {
-<a class="jxr_linenumber" name="266" href="#266">266</a> 
-<a class="jxr_linenumber" name="267" href="#267">267</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ChannelHandler handler;
+<a class="jxr_linenumber" name="249" href="#249">249</a>         Object o = ctx.getAttachment();
+<a class="jxr_linenumber" name="250" href="#250">250</a>         <strong class="jxr_keyword">if</strong> (o instanceof TSOChannelContext) {
+<a class="jxr_linenumber" name="251" href="#251">251</a>             <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOChannelContext</a> tsoCtx = (TSOChannelContext) o;
+<a class="jxr_linenumber" name="252" href="#252">252</a>             <strong class="jxr_keyword">return</strong> tsoCtx.getHandshakeComplete();
+<a class="jxr_linenumber" name="253" href="#253">253</a>         }
+<a class="jxr_linenumber" name="254" href="#254">254</a>         <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="255" href="#255">255</a> 
+<a class="jxr_linenumber" name="256" href="#256">256</a>     }
+<a class="jxr_linenumber" name="257" href="#257">257</a> 
+<a class="jxr_linenumber" name="258" href="#258">258</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="259" href="#259">259</a> <em class="jxr_javadoccomment">     * Netty pipeline configuration</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="261" href="#261">261</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOPipelineFactory</a> <strong class="jxr_keyword">implements</strong> ChannelPipelineFactory {
+<a class="jxr_linenumber" name="262" href="#262">262</a> 
+<a class="jxr_linenumber" name="263" href="#263">263</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ChannelHandler handler;
+<a class="jxr_linenumber" name="264" href="#264">264</a> 
+<a class="jxr_linenumber" name="265" href="#265">265</a>         <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOPipelineFactory</a>(ChannelHandler handler) {
+<a class="jxr_linenumber" name="266" href="#266">266</a>             <strong class="jxr_keyword">this</strong>.handler = handler;
+<a class="jxr_linenumber" name="267" href="#267">267</a>         }
 <a class="jxr_linenumber" name="268" href="#268">268</a> 
-<a class="jxr_linenumber" name="269" href="#269">269</a>         <a href="../../../../org/apache/omid/tso/TSOChannelHandler.html">TSOPipelineFactory</a>(ChannelHandler handler) {
-<a class="jxr_linenumber" name="270" href="#270">270</a>             <strong class="jxr_keyword">this</strong>.handler = handler;
-<a class="jxr_linenumber" name="271" href="#271">271</a>         }
-<a class="jxr_linenumber" name="272" href="#272">272</a> 
-<a class="jxr_linenumber" name="273" href="#273">273</a>         <strong class="jxr_keyword">public</strong> ChannelPipeline getPipeline() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="274" href="#274">274</a> 
-<a class="jxr_linenumber" name="275" href="#275">275</a>             ChannelPipeline pipeline = Channels.pipeline();
-<a class="jxr_linenumber" name="276" href="#276">276</a>             <em class="jxr_comment">// Max packet length is 10MB. Transactions with so many cells</em>
-<a class="jxr_linenumber" name="277" href="#277">277</a>             <em class="jxr_comment">// that the packet is rejected will receive a ServiceUnavailableException.</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a>             <em class="jxr_comment">// 10MB is enough for 2 million cells in a transaction though.</em>
-<a class="jxr_linenumber" name="279" href="#279">279</a>             pipeline.addLast(<span class="jxr_string">"lengthbaseddecoder"</span>, <strong class="jxr_keyword">new</strong> LengthFieldBasedFrameDecoder(10 * 1024 * 1024, 0, 4, 0, 4));
-<a class="jxr_linenumber" name="280" href="#280">280</a>             pipeline.addLast(<span class="jxr_string">"lengthprepender"</span>, <strong class="jxr_keyword">new</strong> LengthFieldPrepender(4));
-<a class="jxr_linenumber" name="281" href="#281">281</a>             pipeline.addLast(<span class="jxr_string">"protobufdecoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufDecoder(TSOProto.Request.getDefaultInstance()));
-<a class="jxr_linenumber" name="282" href="#282">282</a>             pipeline.addLast(<span class="jxr_string">"protobufencoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufEncoder());
-<a class="jxr_linenumber" name="283" href="#283">283</a>             pipeline.addLast(<span class="jxr_string">"handler"</span>, handler);
+<a class="jxr_linenumber" name="269" href="#269">269</a>         <strong class="jxr_keyword">public</strong> ChannelPipeline getPipeline() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="270" href="#270">270</a> 
+<a class="jxr_linenumber" name="271" href="#271">271</a>             ChannelPipeline pipeline = Channels.pipeline();
+<a class="jxr_linenumber" name="272" href="#272">272</a>             <em class="jxr_comment">// Max packet length is 10MB. Transactions with so many cells</em>
+<a class="jxr_linenumber" name="273" href="#273">273</a>             <em class="jxr_comment">// that the packet is rejected will receive a ServiceUnavailableException.</em>
+<a class="jxr_linenumber" name="274" href="#274">274</a>             <em class="jxr_comment">// 10MB is enough for 2 million cells in a transaction though.</em>
+<a class="jxr_linenumber" name="275" href="#275">275</a>             pipeline.addLast(<span class="jxr_string">"lengthbaseddecoder"</span>, <strong class="jxr_keyword">new</strong> LengthFieldBasedFrameDecoder(10 * 1024 * 1024, 0, 4, 0, 4));
+<a class="jxr_linenumber" name="276" href="#276">276</a>             pipeline.addLast(<span class="jxr_string">"lengthprepender"</span>, <strong class="jxr_keyword">new</strong> LengthFieldPrepender(4));
+<a class="jxr_linenumber" name="277" href="#277">277</a>             pipeline.addLast(<span class="jxr_string">"protobufdecoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufDecoder(TSOProto.Request.getDefaultInstance()));
+<a class="jxr_linenumber" name="278" href="#278">278</a>             pipeline.addLast(<span class="jxr_string">"protobufencoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufEncoder());
+<a class="jxr_linenumber" name="279" href="#279">279</a>             pipeline.addLast(<span class="jxr_string">"handler"</span>, handler);
+<a class="jxr_linenumber" name="280" href="#280">280</a> 
+<a class="jxr_linenumber" name="281" href="#281">281</a>             <strong class="jxr_keyword">return</strong> pipeline;
+<a class="jxr_linenumber" name="282" href="#282">282</a>         }
+<a class="jxr_linenumber" name="283" href="#283">283</a>     }
 <a class="jxr_linenumber" name="284" href="#284">284</a> 
-<a class="jxr_linenumber" name="285" href="#285">285</a>             <strong class="jxr_keyword">return</strong> pipeline;
-<a class="jxr_linenumber" name="286" href="#286">286</a>         }
-<a class="jxr_linenumber" name="287" href="#287">287</a>     }
-<a class="jxr_linenumber" name="288" href="#288">288</a> 
-<a class="jxr_linenumber" name="289" href="#289">289</a> }
+<a class="jxr_linenumber" name="285" href="#285">285</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/TSOModule.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/TSOModule.html b/xref/org/apache/omid/tso/TSOModule.html
index 4afea17..2fd7416 100644
--- a/xref/org/apache/omid/tso/TSOModule.html
+++ b/xref/org/apache/omid/tso/TSOModule.html
@@ -34,65 +34,56 @@
 <a class="jxr_linenumber" name="24" href="#24">24</a>  
 <a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> javax.inject.Named;
 <a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> javax.inject.Singleton;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.tso.TSOServerConfig.TIMESTAMP_TYPE;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.net.SocketException;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.UnknownHostException;
 <a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.net.SocketException;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.net.UnknownHostException;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.TSOServer.TSO_HOST_AND_PORT_KEY;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TSOModule.html">TSOModule</a> <strong class="jxr_keyword">extends</strong> AbstractModule {
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> config;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <a href="../../../../org/apache/omid/tso/TSOModule.html">TSOModule</a>(<a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> config) {
-<a class="jxr_linenumber" name="40" href="#40">40</a>          Preconditions.checkArgument(config.getNumConcurrentCTWriters() &gt;= 2, <span class="jxr_string">"# of Commit Table writers must be &gt;= 2"</span>);
-<a class="jxr_linenumber" name="41" href="#41">41</a>          <strong class="jxr_keyword">this</strong>.config = config;
-<a class="jxr_linenumber" name="42" href="#42">42</a>      }
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.omid.tso.TSOServer.TSO_HOST_AND_PORT_KEY;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TSOModule.html">TSOModule</a> <strong class="jxr_keyword">extends</strong> AbstractModule {
+<a class="jxr_linenumber" name="33" href="#33">33</a>  
+<a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> config;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  
+<a class="jxr_linenumber" name="36" href="#36">36</a>      <a href="../../../../org/apache/omid/tso/TSOModule.html">TSOModule</a>(<a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> config) {
+<a class="jxr_linenumber" name="37" href="#37">37</a>          Preconditions.checkArgument(config.getNumConcurrentCTWriters() &gt;= 2, <span class="jxr_string">"# of Commit Table writers must be &gt;= 2"</span>);
+<a class="jxr_linenumber" name="38" href="#38">38</a>          <strong class="jxr_keyword">this</strong>.config = config;
+<a class="jxr_linenumber" name="39" href="#39">39</a>      }
+<a class="jxr_linenumber" name="40" href="#40">40</a>  
+<a class="jxr_linenumber" name="41" href="#41">41</a>      @Override
+<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> configure() {
 <a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>      @Override
-<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> configure() {
-<a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>          bind(TSOChannelHandler.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="48" href="#48">48</a>          bind(TSOStateManager.<strong class="jxr_keyword">class</strong>).to(TSOStateManagerImpl.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="49" href="#49">49</a>  
-<a class="jxr_linenumber" name="50" href="#50">50</a>          <strong class="jxr_keyword">if</strong> (config.getTimestampTypeEnum() == TIMESTAMP_TYPE.WORLD_TIME) {
-<a class="jxr_linenumber" name="51" href="#51">51</a>              bind(TimestampOracle.<strong class="jxr_keyword">class</strong>).to(WorldClockOracleImpl.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="52" href="#52">52</a>          } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="53" href="#53">53</a>              bind(TimestampOracle.<strong class="jxr_keyword">class</strong>).to(TimestampOracleImpl.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="54" href="#54">54</a>          }
-<a class="jxr_linenumber" name="55" href="#55">55</a>  
-<a class="jxr_linenumber" name="56" href="#56">56</a>          bind(Panicker.<strong class="jxr_keyword">class</strong>).to(SystemExitPanicker.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="57" href="#57">57</a>  
-<a class="jxr_linenumber" name="58" href="#58">58</a>          install(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/BatchPoolModule.html">BatchPoolModule</a>(config));
-<a class="jxr_linenumber" name="59" href="#59">59</a>          <em class="jxr_comment">// Disruptor setup</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>          install(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/DisruptorModule.html">DisruptorModule</a>(config));
-<a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      }
-<a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>      @Provides
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> provideTSOServerConfig() {
-<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">return</strong> config;
-<a class="jxr_linenumber" name="67" href="#67">67</a>      }
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>      @Provides
-<a class="jxr_linenumber" name="70" href="#70">70</a>      @Named(TSO_HOST_AND_PORT_KEY)
-<a class="jxr_linenumber" name="71" href="#71">71</a>      String provideTSOHostAndPort() <strong class="jxr_keyword">throws</strong> SocketException, UnknownHostException {
-<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">return</strong> NetworkInterfaceUtils.getTSOHostAndPort(config);
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="44" href="#44">44</a>          bind(TSOChannelHandler.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="45" href="#45">45</a>          bind(TSOStateManager.<strong class="jxr_keyword">class</strong>).to(TSOStateManagerImpl.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="46" href="#46">46</a>          bind(TimestampOracle.<strong class="jxr_keyword">class</strong>).to(TimestampOracleImpl.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="47" href="#47">47</a>          bind(Panicker.<strong class="jxr_keyword">class</strong>).to(SystemExitPanicker.<strong class="jxr_keyword">class</strong>).in(Singleton.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="48" href="#48">48</a>  
+<a class="jxr_linenumber" name="49" href="#49">49</a>          install(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/BatchPoolModule.html">BatchPoolModule</a>(config));
+<a class="jxr_linenumber" name="50" href="#50">50</a>          <em class="jxr_comment">// Disruptor setup</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>          install(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/DisruptorModule.html">DisruptorModule</a>(config));
+<a class="jxr_linenumber" name="52" href="#52">52</a>  
+<a class="jxr_linenumber" name="53" href="#53">53</a>      }
+<a class="jxr_linenumber" name="54" href="#54">54</a>  
+<a class="jxr_linenumber" name="55" href="#55">55</a>      @Provides
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> provideTSOServerConfig() {
+<a class="jxr_linenumber" name="57" href="#57">57</a>          <strong class="jxr_keyword">return</strong> config;
+<a class="jxr_linenumber" name="58" href="#58">58</a>      }
+<a class="jxr_linenumber" name="59" href="#59">59</a>  
+<a class="jxr_linenumber" name="60" href="#60">60</a>      @Provides
+<a class="jxr_linenumber" name="61" href="#61">61</a>      @Named(TSO_HOST_AND_PORT_KEY)
+<a class="jxr_linenumber" name="62" href="#62">62</a>      String provideTSOHostAndPort() <strong class="jxr_keyword">throws</strong> SocketException, UnknownHostException {
+<a class="jxr_linenumber" name="63" href="#63">63</a>          <strong class="jxr_keyword">return</strong> NetworkInterfaceUtils.getTSOHostAndPort(config);
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      }
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>      @Provides
+<a class="jxr_linenumber" name="68" href="#68">68</a>      <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a>[] getPersistenceProcessorHandler(Provider&lt;PersistenceProcessorHandler&gt; provider) {
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a>[] persistenceProcessorHandlers = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a>[config.getNumConcurrentCTWriters()];
+<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; persistenceProcessorHandlers.length; i++) {
+<a class="jxr_linenumber" name="71" href="#71">71</a>              persistenceProcessorHandlers[i] = provider.get();
+<a class="jxr_linenumber" name="72" href="#72">72</a>          }
+<a class="jxr_linenumber" name="73" href="#73">73</a>          <strong class="jxr_keyword">return</strong> persistenceProcessorHandlers;
 <a class="jxr_linenumber" name="74" href="#74">74</a>      }
 <a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>      @Provides
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a>[] getPersistenceProcessorHandler(Provider&lt;PersistenceProcessorHandler&gt; provider) {
-<a class="jxr_linenumber" name="78" href="#78">78</a>          <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a>[] persistenceProcessorHandlers = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/tso/PersistenceProcessorHandler.html">PersistenceProcessorHandler</a>[config.getNumConcurrentCTWriters()];
-<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; persistenceProcessorHandlers.length; i++) {
-<a class="jxr_linenumber" name="80" href="#80">80</a>              persistenceProcessorHandlers[i] = provider.get();
-<a class="jxr_linenumber" name="81" href="#81">81</a>          }
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">return</strong> persistenceProcessorHandlers;
-<a class="jxr_linenumber" name="83" href="#83">83</a>      }
-<a class="jxr_linenumber" name="84" href="#84">84</a>  
-<a class="jxr_linenumber" name="85" href="#85">85</a>  }
+<a class="jxr_linenumber" name="76" href="#76">76</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/TSOServer.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/TSOServer.html b/xref/org/apache/omid/tso/TSOServer.html
index 865558b..687371c 100644
--- a/xref/org/apache/omid/tso/TSOServer.html
+++ b/xref/org/apache/omid/tso/TSOServer.html
@@ -72,7 +72,7 @@
 <a class="jxr_linenumber" name="62" href="#62">62</a>  
 <a class="jxr_linenumber" name="63" href="#63">63</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
 <a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/tso/TSOServer.html">TSOServer</a> getInitializedTsoServer(<a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> config) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/omid/tso/TSOServer.html">TSOServer</a> getInitializedTsoServer(<a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a> config) <strong class="jxr_keyword">throws</strong> IOException {
 <a class="jxr_linenumber" name="66" href="#66">66</a>          LOG.info(<span class="jxr_string">"Configuring TSO Server..."</span>);
 <a class="jxr_linenumber" name="67" href="#67">67</a>          Injector injector = Guice.createInjector(buildModuleList(config));
 <a class="jxr_linenumber" name="68" href="#68">68</a>          LOG.info(<span class="jxr_string">"TSO Server configured. Creating instance..."</span>);

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref/org/apache/omid/tso/TSOServerConfig.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/omid/tso/TSOServerConfig.html b/xref/org/apache/omid/tso/TSOServerConfig.html
index 3a5b91f..8a62aa6 100644
--- a/xref/org/apache/omid/tso/TSOServerConfig.html
+++ b/xref/org/apache/omid/tso/TSOServerConfig.html
@@ -54,155 +54,136 @@
 <a class="jxr_linenumber" name="44" href="#44">44</a>          LOW_CPU
 <a class="jxr_linenumber" name="45" href="#45">45</a>      };
 <a class="jxr_linenumber" name="46" href="#46">46</a>  
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> enum <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TIMESTAMP_TYPE</a> {
-<a class="jxr_linenumber" name="48" href="#48">48</a>        INCREMENTAL,
-<a class="jxr_linenumber" name="49" href="#49">49</a>        WORLD_TIME
-<a class="jxr_linenumber" name="50" href="#50">50</a>      };
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <em class="jxr_comment">// Instantiation</em>
-<a class="jxr_linenumber" name="54" href="#54">54</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a>() {
-<a class="jxr_linenumber" name="56" href="#56">56</a>          <strong class="jxr_keyword">this</strong>(CONFIG_FILE_NAME);
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <em class="jxr_comment">// Instantiation</em>
+<a class="jxr_linenumber" name="49" href="#49">49</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a>() {
+<a class="jxr_linenumber" name="51" href="#51">51</a>          <strong class="jxr_keyword">this</strong>(CONFIG_FILE_NAME);
+<a class="jxr_linenumber" name="52" href="#52">52</a>      }
+<a class="jxr_linenumber" name="53" href="#53">53</a>  
+<a class="jxr_linenumber" name="54" href="#54">54</a>      @VisibleForTesting
+<a class="jxr_linenumber" name="55" href="#55">55</a>      <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a>(String configFileName) {
+<a class="jxr_linenumber" name="56" href="#56">56</a>          <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a>().loadSettings(configFileName, DEFAULT_CONFIG_FILE_NAME, <strong class="jxr_keyword">this</strong>);
 <a class="jxr_linenumber" name="57" href="#57">57</a>      }
 <a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>      @VisibleForTesting
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TSOServerConfig</a>(String configFileName) {
-<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/omid/YAMLUtils.html">YAMLUtils</a>().loadSettings(configFileName, DEFAULT_CONFIG_FILE_NAME, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="62" href="#62">62</a>      }
-<a class="jxr_linenumber" name="63" href="#63">63</a>  
-<a class="jxr_linenumber" name="64" href="#64">64</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <em class="jxr_comment">// Configuration parameters</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> Module timestampStoreModule;
-<a class="jxr_linenumber" name="69" href="#69">69</a>  
-<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> Module commitTableStoreModule;
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> Module leaseModule;
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> port;
-<a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics;
-<a class="jxr_linenumber" name="77" href="#77">77</a>  
-<a class="jxr_linenumber" name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> conflictMapSize;
-<a class="jxr_linenumber" name="79" href="#79">79</a>  
-<a class="jxr_linenumber" name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> numConcurrentCTWriters;
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> batchSizePerCTWriter;
-<a class="jxr_linenumber" name="83" href="#83">83</a>  
-<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> batchPersistTimeoutInMs;
-<a class="jxr_linenumber" name="85" href="#85">85</a>  
-<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> String waitStrategy;
-<a class="jxr_linenumber" name="87" href="#87">87</a>  
-<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> String networkIfaceName = NetworkUtils.getDefaultNetworkInterface();
-<a class="jxr_linenumber" name="89" href="#89">89</a>  
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> String timestampType;
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getPort() {
-<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">return</strong> port;
-<a class="jxr_linenumber" name="94" href="#94">94</a>      }
-<a class="jxr_linenumber" name="95" href="#95">95</a>  
-<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPort(<strong class="jxr_keyword">int</strong> port) {
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">this</strong>.port = port;
-<a class="jxr_linenumber" name="98" href="#98">98</a>      }
-<a class="jxr_linenumber" name="99" href="#99">99</a>  
-<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getConflictMapSize() {
-<a class="jxr_linenumber" name="101" href="#101">101</a>         <strong class="jxr_keyword">return</strong> conflictMapSize;
-<a class="jxr_linenumber" name="102" href="#102">102</a>     }
-<a class="jxr_linenumber" name="103" href="#103">103</a> 
-<a class="jxr_linenumber" name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConflictMapSize(<strong class="jxr_keyword">int</strong> conflictMapSize) {
-<a class="jxr_linenumber" name="105" href="#105">105</a>         <strong class="jxr_keyword">this</strong>.conflictMapSize = conflictMapSize;
-<a class="jxr_linenumber" name="106" href="#106">106</a>     }
-<a class="jxr_linenumber" name="107" href="#107">107</a> 
-<a class="jxr_linenumber" name="108" href="#108">108</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getNumConcurrentCTWriters() {
-<a class="jxr_linenumber" name="109" href="#109">109</a>         <strong class="jxr_keyword">return</strong> numConcurrentCTWriters;
-<a class="jxr_linenumber" name="110" href="#110">110</a>     }
-<a class="jxr_linenumber" name="111" href="#111">111</a> 
-<a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setNumConcurrentCTWriters(<strong class="jxr_keyword">int</strong> numConcurrentCTWriters) {
-<a class="jxr_linenumber" name="113" href="#113">113</a>         <strong class="jxr_keyword">this</strong>.numConcurrentCTWriters = numConcurrentCTWriters;
-<a class="jxr_linenumber" name="114" href="#114">114</a>     }
-<a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getBatchSizePerCTWriter() {
-<a class="jxr_linenumber" name="117" href="#117">117</a>         <strong class="jxr_keyword">return</strong> batchSizePerCTWriter;
-<a class="jxr_linenumber" name="118" href="#118">118</a>     }
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setBatchSizePerCTWriter(<strong class="jxr_keyword">int</strong> batchSizePerCTWriter) {
-<a class="jxr_linenumber" name="121" href="#121">121</a>         <strong class="jxr_keyword">this</strong>.batchSizePerCTWriter = batchSizePerCTWriter;
-<a class="jxr_linenumber" name="122" href="#122">122</a>     }
-<a class="jxr_linenumber" name="123" href="#123">123</a> 
-<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getBatchPersistTimeoutInMs() {
-<a class="jxr_linenumber" name="125" href="#125">125</a>         <strong class="jxr_keyword">return</strong> batchPersistTimeoutInMs;
-<a class="jxr_linenumber" name="126" href="#126">126</a>     }
-<a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setBatchPersistTimeoutInMs(<strong class="jxr_keyword">int</strong> value) {
-<a class="jxr_linenumber" name="129" href="#129">129</a>         <strong class="jxr_keyword">this</strong>.batchPersistTimeoutInMs = value;
-<a class="jxr_linenumber" name="130" href="#130">130</a>     }
-<a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>     <strong class="jxr_keyword">public</strong> String getNetworkIfaceName() {
-<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">return</strong> networkIfaceName;
-<a class="jxr_linenumber" name="134" href="#134">134</a>     }
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setNetworkIfaceName(String networkIfaceName) {
-<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">this</strong>.networkIfaceName = networkIfaceName;
-<a class="jxr_linenumber" name="138" href="#138">138</a>     }
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> String getTimestampType() {
-<a class="jxr_linenumber" name="141" href="#141">141</a>         <strong class="jxr_keyword">return</strong> timestampType;
-<a class="jxr_linenumber" name="142" href="#142">142</a>     }
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
-<a class="jxr_linenumber" name="144" href="#144">144</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTimestampType(String type) {
-<a class="jxr_linenumber" name="145" href="#145">145</a>         <strong class="jxr_keyword">this</strong>.timestampType = type;
-<a class="jxr_linenumber" name="146" href="#146">146</a>     }
-<a class="jxr_linenumber" name="147" href="#147">147</a> 
-<a class="jxr_linenumber" name="148" href="#148">148</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">TIMESTAMP_TYPE</a> getTimestampTypeEnum() {
-<a class="jxr_linenumber" name="149" href="#149">149</a>         <strong class="jxr_keyword">return</strong> TSOServerConfig.TIMESTAMP_TYPE.valueOf(timestampType);
-<a class="jxr_linenumber" name="150" href="#150">150</a>     }
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> Module getTimestampStoreModule() {
-<a class="jxr_linenumber" name="153" href="#153">153</a>         <strong class="jxr_keyword">return</strong> timestampStoreModule;
-<a class="jxr_linenumber" name="154" href="#154">154</a>     }
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTimestampStoreModule(Module timestampStoreModule) {
-<a class="jxr_linenumber" name="157" href="#157">157</a>         <strong class="jxr_keyword">this</strong>.timestampStoreModule = timestampStoreModule;
-<a class="jxr_linenumber" name="158" href="#158">158</a>     }
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>     <strong class="jxr_keyword">public</strong> Module getCommitTableStoreModule() {
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">return</strong> commitTableStoreModule;
-<a class="jxr_linenumber" name="162" href="#162">162</a>     }
-<a class="jxr_linenumber" name="163" href="#163">163</a> 
-<a class="jxr_linenumber" name="164" href="#164">164</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCommitTableStoreModule(Module commitTableStoreModule) {
-<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">this</strong>.commitTableStoreModule = commitTableStoreModule;
-<a class="jxr_linenumber" name="166" href="#166">166</a>     }
-<a class="jxr_linenumber" name="167" href="#167">167</a> 
-<a class="jxr_linenumber" name="168" href="#168">168</a>     <strong class="jxr_keyword">public</strong> Module getLeaseModule() {
-<a class="jxr_linenumber" name="169" href="#169">169</a>         <strong class="jxr_keyword">return</strong> leaseModule;
-<a class="jxr_linenumber" name="170" href="#170">170</a>     }
-<a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setLeaseModule(Module leaseModule) {
-<a class="jxr_linenumber" name="173" href="#173">173</a>         <strong class="jxr_keyword">this</strong>.leaseModule = leaseModule;
-<a class="jxr_linenumber" name="174" href="#174">174</a>     }
-<a class="jxr_linenumber" name="175" href="#175">175</a> 
-<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> getMetrics() {
-<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">return</strong> metrics;
-<a class="jxr_linenumber" name="178" href="#178">178</a>     }
-<a class="jxr_linenumber" name="179" href="#179">179</a> 
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMetrics(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics) {
-<a class="jxr_linenumber" name="181" href="#181">181</a>         <strong class="jxr_keyword">this</strong>.metrics = metrics;
-<a class="jxr_linenumber" name="182" href="#182">182</a>     }
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> String getWaitStrategy() {
-<a class="jxr_linenumber" name="185" href="#185">185</a>         <strong class="jxr_keyword">return</strong> waitStrategy;
-<a class="jxr_linenumber" name="186" href="#186">186</a>     }
-<a class="jxr_linenumber" name="187" href="#187">187</a> 
-<a class="jxr_linenumber" name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">WAIT_STRATEGY</a> getWaitStrategyEnum() {
-<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">return</strong> TSOServerConfig.WAIT_STRATEGY.valueOf(waitStrategy);
-<a class="jxr_linenumber" name="190" href="#190">190</a>     }
-<a class="jxr_linenumber" name="191" href="#191">191</a> 
-<a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setWaitStrategy(String waitStrategy) {
-<a class="jxr_linenumber" name="193" href="#193">193</a>         <strong class="jxr_keyword">this</strong>.waitStrategy = waitStrategy;
-<a class="jxr_linenumber" name="194" href="#194">194</a>     }
-<a class="jxr_linenumber" name="195" href="#195">195</a> }
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <em class="jxr_comment">// Configuration parameters</em>
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="62" href="#62">62</a>  
+<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> Module timestampStoreModule;
+<a class="jxr_linenumber" name="64" href="#64">64</a>  
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> Module commitTableStoreModule;
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> Module leaseModule;
+<a class="jxr_linenumber" name="68" href="#68">68</a>  
+<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> port;
+<a class="jxr_linenumber" name="70" href="#70">70</a>  
+<a class="jxr_linenumber" name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics;
+<a class="jxr_linenumber" name="72" href="#72">72</a>  
+<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> conflictMapSize;
+<a class="jxr_linenumber" name="74" href="#74">74</a>  
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> numConcurrentCTWriters;
+<a class="jxr_linenumber" name="76" href="#76">76</a>  
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> batchSizePerCTWriter;
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> batchPersistTimeoutInMs;
+<a class="jxr_linenumber" name="80" href="#80">80</a>  
+<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> String waitStrategy;
+<a class="jxr_linenumber" name="82" href="#82">82</a>  
+<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> String networkIfaceName = NetworkUtils.getDefaultNetworkInterface();
+<a class="jxr_linenumber" name="84" href="#84">84</a>  
+<a class="jxr_linenumber" name="85" href="#85">85</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getPort() {
+<a class="jxr_linenumber" name="86" href="#86">86</a>          <strong class="jxr_keyword">return</strong> port;
+<a class="jxr_linenumber" name="87" href="#87">87</a>      }
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPort(<strong class="jxr_keyword">int</strong> port) {
+<a class="jxr_linenumber" name="90" href="#90">90</a>          <strong class="jxr_keyword">this</strong>.port = port;
+<a class="jxr_linenumber" name="91" href="#91">91</a>      }
+<a class="jxr_linenumber" name="92" href="#92">92</a>  
+<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getConflictMapSize() {
+<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">return</strong> conflictMapSize;
+<a class="jxr_linenumber" name="95" href="#95">95</a>      }
+<a class="jxr_linenumber" name="96" href="#96">96</a>  
+<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConflictMapSize(<strong class="jxr_keyword">int</strong> conflictMapSize) {
+<a class="jxr_linenumber" name="98" href="#98">98</a>          <strong class="jxr_keyword">this</strong>.conflictMapSize = conflictMapSize;
+<a class="jxr_linenumber" name="99" href="#99">99</a>      }
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getNumConcurrentCTWriters() {
+<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">return</strong> numConcurrentCTWriters;
+<a class="jxr_linenumber" name="103" href="#103">103</a>     }
+<a class="jxr_linenumber" name="104" href="#104">104</a> 
+<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setNumConcurrentCTWriters(<strong class="jxr_keyword">int</strong> numConcurrentCTWriters) {
+<a class="jxr_linenumber" name="106" href="#106">106</a>         <strong class="jxr_keyword">this</strong>.numConcurrentCTWriters = numConcurrentCTWriters;
+<a class="jxr_linenumber" name="107" href="#107">107</a>     }
+<a class="jxr_linenumber" name="108" href="#108">108</a> 
+<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getBatchSizePerCTWriter() {
+<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">return</strong> batchSizePerCTWriter;
+<a class="jxr_linenumber" name="111" href="#111">111</a>     }
+<a class="jxr_linenumber" name="112" href="#112">112</a> 
+<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setBatchSizePerCTWriter(<strong class="jxr_keyword">int</strong> batchSizePerCTWriter) {
+<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">this</strong>.batchSizePerCTWriter = batchSizePerCTWriter;
+<a class="jxr_linenumber" name="115" href="#115">115</a>     }
+<a class="jxr_linenumber" name="116" href="#116">116</a> 
+<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getBatchPersistTimeoutInMs() {
+<a class="jxr_linenumber" name="118" href="#118">118</a>         <strong class="jxr_keyword">return</strong> batchPersistTimeoutInMs;
+<a class="jxr_linenumber" name="119" href="#119">119</a>     }
+<a class="jxr_linenumber" name="120" href="#120">120</a> 
+<a class="jxr_linenumber" name="121" href="#121">121</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setBatchPersistTimeoutInMs(<strong class="jxr_keyword">int</strong> value) {
+<a class="jxr_linenumber" name="122" href="#122">122</a>         <strong class="jxr_keyword">this</strong>.batchPersistTimeoutInMs = value;
+<a class="jxr_linenumber" name="123" href="#123">123</a>     }
+<a class="jxr_linenumber" name="124" href="#124">124</a> 
+<a class="jxr_linenumber" name="125" href="#125">125</a>     <strong class="jxr_keyword">public</strong> String getNetworkIfaceName() {
+<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">return</strong> networkIfaceName;
+<a class="jxr_linenumber" name="127" href="#127">127</a>     }
+<a class="jxr_linenumber" name="128" href="#128">128</a> 
+<a class="jxr_linenumber" name="129" href="#129">129</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setNetworkIfaceName(String networkIfaceName) {
+<a class="jxr_linenumber" name="130" href="#130">130</a>         <strong class="jxr_keyword">this</strong>.networkIfaceName = networkIfaceName;
+<a class="jxr_linenumber" name="131" href="#131">131</a>     }
+<a class="jxr_linenumber" name="132" href="#132">132</a> 
+<a class="jxr_linenumber" name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> Module getTimestampStoreModule() {
+<a class="jxr_linenumber" name="134" href="#134">134</a>         <strong class="jxr_keyword">return</strong> timestampStoreModule;
+<a class="jxr_linenumber" name="135" href="#135">135</a>     }
+<a class="jxr_linenumber" name="136" href="#136">136</a> 
+<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTimestampStoreModule(Module timestampStoreModule) {
+<a class="jxr_linenumber" name="138" href="#138">138</a>         <strong class="jxr_keyword">this</strong>.timestampStoreModule = timestampStoreModule;
+<a class="jxr_linenumber" name="139" href="#139">139</a>     }
+<a class="jxr_linenumber" name="140" href="#140">140</a> 
+<a class="jxr_linenumber" name="141" href="#141">141</a>     <strong class="jxr_keyword">public</strong> Module getCommitTableStoreModule() {
+<a class="jxr_linenumber" name="142" href="#142">142</a>         <strong class="jxr_keyword">return</strong> commitTableStoreModule;
+<a class="jxr_linenumber" name="143" href="#143">143</a>     }
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCommitTableStoreModule(Module commitTableStoreModule) {
+<a class="jxr_linenumber" name="146" href="#146">146</a>         <strong class="jxr_keyword">this</strong>.commitTableStoreModule = commitTableStoreModule;
+<a class="jxr_linenumber" name="147" href="#147">147</a>     }
+<a class="jxr_linenumber" name="148" href="#148">148</a> 
+<a class="jxr_linenumber" name="149" href="#149">149</a>     <strong class="jxr_keyword">public</strong> Module getLeaseModule() {
+<a class="jxr_linenumber" name="150" href="#150">150</a>         <strong class="jxr_keyword">return</strong> leaseModule;
+<a class="jxr_linenumber" name="151" href="#151">151</a>     }
+<a class="jxr_linenumber" name="152" href="#152">152</a> 
+<a class="jxr_linenumber" name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setLeaseModule(Module leaseModule) {
+<a class="jxr_linenumber" name="154" href="#154">154</a>         <strong class="jxr_keyword">this</strong>.leaseModule = leaseModule;
+<a class="jxr_linenumber" name="155" href="#155">155</a>     }
+<a class="jxr_linenumber" name="156" href="#156">156</a> 
+<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> getMetrics() {
+<a class="jxr_linenumber" name="158" href="#158">158</a>         <strong class="jxr_keyword">return</strong> metrics;
+<a class="jxr_linenumber" name="159" href="#159">159</a>     }
+<a class="jxr_linenumber" name="160" href="#160">160</a> 
+<a class="jxr_linenumber" name="161" href="#161">161</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMetrics(<a href="../../../../org/apache/omid/metrics/MetricsRegistry.html">MetricsRegistry</a> metrics) {
+<a class="jxr_linenumber" name="162" href="#162">162</a>         <strong class="jxr_keyword">this</strong>.metrics = metrics;
+<a class="jxr_linenumber" name="163" href="#163">163</a>     }
+<a class="jxr_linenumber" name="164" href="#164">164</a> 
+<a class="jxr_linenumber" name="165" href="#165">165</a>     <strong class="jxr_keyword">public</strong> String getWaitStrategy() {
+<a class="jxr_linenumber" name="166" href="#166">166</a>         <strong class="jxr_keyword">return</strong> waitStrategy;
+<a class="jxr_linenumber" name="167" href="#167">167</a>     }
+<a class="jxr_linenumber" name="168" href="#168">168</a> 
+<a class="jxr_linenumber" name="169" href="#169">169</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/omid/tso/TSOServerConfig.html">WAIT_STRATEGY</a> getWaitStrategyEnum() {
+<a class="jxr_linenumber" name="170" href="#170">170</a>         <strong class="jxr_keyword">return</strong> TSOServerConfig.WAIT_STRATEGY.valueOf(waitStrategy);
+<a class="jxr_linenumber" name="171" href="#171">171</a>     }
+<a class="jxr_linenumber" name="172" href="#172">172</a> 
+<a class="jxr_linenumber" name="173" href="#173">173</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setWaitStrategy(String waitStrategy) {
+<a class="jxr_linenumber" name="174" href="#174">174</a>         <strong class="jxr_keyword">this</strong>.waitStrategy = waitStrategy;
+<a class="jxr_linenumber" name="175" href="#175">175</a>     }
+<a class="jxr_linenumber" name="176" href="#176">176</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>


[26/48] incubator-omid-site git commit: [wagon-git] commit to branch asf-site 9/20/18 10:51 AM

Posted by oh...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/TestRequestProcessor.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/TestRequestProcessor.html b/xref-test/org/apache/omid/tso/TestRequestProcessor.html
index 13bdbcc..0691cef 100644
--- a/xref-test/org/apache/omid/tso/TestRequestProcessor.html
+++ b/xref-test/org/apache/omid/tso/TestRequestProcessor.html
@@ -29,189 +29,175 @@
 <a class="jxr_linenumber" name="19" href="#19">19</a>  
 <a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Lists;
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.util.concurrent.SettableFuture;
-<a class="jxr_linenumber" name="22" href="#22">22</a>  
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.transaction.AbstractTransactionManager;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.Channel;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.mockito.ArgumentCaptor;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyLong;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.eq;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.timeout;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TestRequestProcessor.html">TestRequestProcessor</a> {
-<a class="jxr_linenumber" name="47" href="#47">47</a>  
-<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestRequestProcessor.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.MetricsRegistry;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.omid.metrics.NullMetricsProvider;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.jboss.netty.channel.Channel;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.mockito.ArgumentCaptor;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.BeforeMethod;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.testng.annotations.Test;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.any;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.anyLong;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Matchers.eq;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.doReturn;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.mock;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.timeout;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.mockito.Mockito.verify;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.testng.Assert.assertTrue;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/omid/tso/TestRequestProcessor.html">TestRequestProcessor</a> {
+<a class="jxr_linenumber" name="44" href="#44">44</a>  
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(TestRequestProcessor.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> CONFLICT_MAP_SIZE = 1000;
+<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> CONFLICT_MAP_ASSOCIATIVITY = 32;
 <a class="jxr_linenumber" name="49" href="#49">49</a>  
-<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> CONFLICT_MAP_SIZE = 1000;
-<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> CONFLICT_MAP_ASSOCIATIVITY = 32;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> MetricsRegistry metrics = <strong class="jxr_keyword">new</strong> NullMetricsProvider();
-<a class="jxr_linenumber" name="54" href="#54">54</a>  
-<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> PersistenceProcessor persist;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  
-<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> TSOStateManager stateManager;
+<a class="jxr_linenumber" name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> MetricsRegistry metrics = <strong class="jxr_keyword">new</strong> NullMetricsProvider();
+<a class="jxr_linenumber" name="51" href="#51">51</a>  
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> PersistenceProcessor persist;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> TSOStateManager stateManager;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  
+<a class="jxr_linenumber" name="56" href="#56">56</a>      <em class="jxr_comment">// Request processor under test</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> RequestProcessor requestProc;
 <a class="jxr_linenumber" name="58" href="#58">58</a>  
-<a class="jxr_linenumber" name="59" href="#59">59</a>      <em class="jxr_comment">// Request processor under test</em>
-<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> RequestProcessor requestProc;
+<a class="jxr_linenumber" name="59" href="#59">59</a>      @BeforeMethod
+<a class="jxr_linenumber" name="60" href="#60">60</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeMethod() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="61" href="#61">61</a>  
-<a class="jxr_linenumber" name="62" href="#62">62</a>      @BeforeMethod
-<a class="jxr_linenumber" name="63" href="#63">63</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeMethod() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="62" href="#62">62</a>          <em class="jxr_comment">// Build the required scaffolding for the test</em>
+<a class="jxr_linenumber" name="63" href="#63">63</a>          MetricsRegistry metrics = <strong class="jxr_keyword">new</strong> NullMetricsProvider();
 <a class="jxr_linenumber" name="64" href="#64">64</a>  
-<a class="jxr_linenumber" name="65" href="#65">65</a>          <em class="jxr_comment">// Build the required scaffolding for the test</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>          MetricsRegistry metrics = <strong class="jxr_keyword">new</strong> NullMetricsProvider();
+<a class="jxr_linenumber" name="65" href="#65">65</a>          TimestampOracleImpl timestampOracle =
+<a class="jxr_linenumber" name="66" href="#66">66</a>                  <strong class="jxr_keyword">new</strong> TimestampOracleImpl(metrics, <strong class="jxr_keyword">new</strong> TimestampOracleImpl.InMemoryTimestampStorage(), <strong class="jxr_keyword">new</strong> MockPanicker());
 <a class="jxr_linenumber" name="67" href="#67">67</a>  
-<a class="jxr_linenumber" name="68" href="#68">68</a>          TSOServerConfig config = <strong class="jxr_keyword">new</strong> TSOServerConfig();
-<a class="jxr_linenumber" name="69" href="#69">69</a>          config.setConflictMapSize(CONFLICT_MAP_SIZE);
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>          TimestampOracleImpl timestampOracle =
-<a class="jxr_linenumber" name="72" href="#72">72</a>                  <strong class="jxr_keyword">new</strong> TimestampOracleImpl(metrics, <strong class="jxr_keyword">new</strong> TimestampOracleImpl.InMemoryTimestampStorage(), <strong class="jxr_keyword">new</strong> MockPanicker());
-<a class="jxr_linenumber" name="73" href="#73">73</a>  
-<a class="jxr_linenumber" name="74" href="#74">74</a>          stateManager = <strong class="jxr_keyword">new</strong> TSOStateManagerImpl(timestampOracle);
-<a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          persist = mock(PersistenceProcessor.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="77" href="#77">77</a>          SettableFuture&lt;Void&gt; f = SettableFuture.create();
-<a class="jxr_linenumber" name="78" href="#78">78</a>          f.set(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="79" href="#79">79</a>          doReturn(f).when(persist).persistLowWatermark(any(Long.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="80" href="#80">80</a>  
-<a class="jxr_linenumber" name="81" href="#81">81</a>          requestProc = <strong class="jxr_keyword">new</strong> RequestProcessorImpl(metrics, timestampOracle, persist, <strong class="jxr_keyword">new</strong> MockPanicker(), config);
-<a class="jxr_linenumber" name="82" href="#82">82</a>  
-<a class="jxr_linenumber" name="83" href="#83">83</a>          <em class="jxr_comment">// Initialize the state for the experiment</em>
-<a class="jxr_linenumber" name="84" href="#84">84</a>          stateManager.register(requestProc);
-<a class="jxr_linenumber" name="85" href="#85">85</a>          stateManager.initialize();
-<a class="jxr_linenumber" name="86" href="#86">86</a>  
-<a class="jxr_linenumber" name="87" href="#87">87</a>      }
+<a class="jxr_linenumber" name="68" href="#68">68</a>          stateManager = <strong class="jxr_keyword">new</strong> TSOStateManagerImpl(timestampOracle);
+<a class="jxr_linenumber" name="69" href="#69">69</a>  
+<a class="jxr_linenumber" name="70" href="#70">70</a>          persist = mock(PersistenceProcessor.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="71" href="#71">71</a>          SettableFuture&lt;Void&gt; f = SettableFuture.create();
+<a class="jxr_linenumber" name="72" href="#72">72</a>          f.set(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="73" href="#73">73</a>          doReturn(f).when(persist).persistLowWatermark(any(Long.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="74" href="#74">74</a>  
+<a class="jxr_linenumber" name="75" href="#75">75</a>          TSOServerConfig config = <strong class="jxr_keyword">new</strong> TSOServerConfig();
+<a class="jxr_linenumber" name="76" href="#76">76</a>          config.setConflictMapSize(CONFLICT_MAP_SIZE);
+<a class="jxr_linenumber" name="77" href="#77">77</a>  
+<a class="jxr_linenumber" name="78" href="#78">78</a>          requestProc = <strong class="jxr_keyword">new</strong> RequestProcessorImpl(metrics, timestampOracle, persist, <strong class="jxr_keyword">new</strong> MockPanicker(), config);
+<a class="jxr_linenumber" name="79" href="#79">79</a>  
+<a class="jxr_linenumber" name="80" href="#80">80</a>          <em class="jxr_comment">// Initialize the state for the experiment</em>
+<a class="jxr_linenumber" name="81" href="#81">81</a>          stateManager.register(requestProc);
+<a class="jxr_linenumber" name="82" href="#82">82</a>          stateManager.initialize();
+<a class="jxr_linenumber" name="83" href="#83">83</a>  
+<a class="jxr_linenumber" name="84" href="#84">84</a>      }
+<a class="jxr_linenumber" name="85" href="#85">85</a>  
+<a class="jxr_linenumber" name="86" href="#86">86</a>      @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="87" href="#87">87</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestamp() <strong class="jxr_keyword">throws</strong> Exception {
 <a class="jxr_linenumber" name="88" href="#88">88</a>  
-<a class="jxr_linenumber" name="89" href="#89">89</a>      @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTimestamp() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>          requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="93" href="#93">93</a>          ArgumentCaptor&lt;Long&gt; firstTScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="94" href="#94">94</a>          verify(persist, timeout(100).times(1)).addTimestampToBatch(
-<a class="jxr_linenumber" name="95" href="#95">95</a>                  firstTScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>          <strong class="jxr_keyword">long</strong> firstTS = firstTScapture.getValue();
-<a class="jxr_linenumber" name="98" href="#98">98</a>          <em class="jxr_comment">// verify that timestamps increase monotonically</em>
-<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 100; i++) {
-<a class="jxr_linenumber" name="100" href="#100">100</a>             requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="101" href="#101">101</a>             verify(persist, timeout(100).times(1)).addTimestampToBatch(eq(firstTS), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="102" href="#102">102</a>             firstTS += AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="103" href="#103">103</a>         }
-<a class="jxr_linenumber" name="104" href="#104">104</a> 
-<a class="jxr_linenumber" name="105" href="#105">105</a>     }
-<a class="jxr_linenumber" name="106" href="#106">106</a> 
-<a class="jxr_linenumber" name="107" href="#107">107</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="108" href="#108">108</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="109" href="#109">109</a> 
-<a class="jxr_linenumber" name="110" href="#110">110</a>         requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="111" href="#111">111</a>         ArgumentCaptor&lt;Long&gt; TScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="112" href="#112">112</a>         verify(persist, timeout(100).times(1)).addTimestampToBatch(
-<a class="jxr_linenumber" name="113" href="#113">113</a>                 TScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">long</strong> firstTS = TScapture.getValue();
+<a class="jxr_linenumber" name="89" href="#89">89</a>          requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="90" href="#90">90</a>          ArgumentCaptor&lt;Long&gt; firstTScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="91" href="#91">91</a>          verify(persist, timeout(100).times(1)).addTimestampToBatch(
+<a class="jxr_linenumber" name="92" href="#92">92</a>                  firstTScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="93" href="#93">93</a>  
+<a class="jxr_linenumber" name="94" href="#94">94</a>          <strong class="jxr_keyword">long</strong> firstTS = firstTScapture.getValue();
+<a class="jxr_linenumber" name="95" href="#95">95</a>          <em class="jxr_comment">// verify that timestamps increase monotonically</em>
+<a class="jxr_linenumber" name="96" href="#96">96</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 100; i++) {
+<a class="jxr_linenumber" name="97" href="#97">97</a>              requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="98" href="#98">98</a>              verify(persist, timeout(100).times(1)).addTimestampToBatch(eq(firstTS++), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="99" href="#99">99</a>          }
+<a class="jxr_linenumber" name="100" href="#100">100</a> 
+<a class="jxr_linenumber" name="101" href="#101">101</a>     }
+<a class="jxr_linenumber" name="102" href="#102">102</a> 
+<a class="jxr_linenumber" name="103" href="#103">103</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommit() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>         requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="107" href="#107">107</a>         ArgumentCaptor&lt;Long&gt; TScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="108" href="#108">108</a>         verify(persist, timeout(100).times(1)).addTimestampToBatch(
+<a class="jxr_linenumber" name="109" href="#109">109</a>                 TScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">long</strong> firstTS = TScapture.getValue();
+<a class="jxr_linenumber" name="111" href="#111">111</a> 
+<a class="jxr_linenumber" name="112" href="#112">112</a>         List&lt;Long&gt; writeSet = Lists.newArrayList(1L, 20L, 203L);
+<a class="jxr_linenumber" name="113" href="#113">113</a>         requestProc.commitRequest(firstTS - 1, writeSet, false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="114" href="#114">114</a>         verify(persist, timeout(100).times(1)).addAbortToBatch(eq(firstTS - 1), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
 <a class="jxr_linenumber" name="115" href="#115">115</a> 
-<a class="jxr_linenumber" name="116" href="#116">116</a>         List&lt;Long&gt; writeSet = Lists.newArrayList(1L, 20L, 203L);
-<a class="jxr_linenumber" name="117" href="#117">117</a>         requestProc.commitRequest(firstTS - AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN, writeSet, <strong class="jxr_keyword">new</strong> ArrayList&lt;Long&gt;(0), false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="118" href="#118">118</a>         verify(persist, timeout(100).times(1)).addAbortToBatch(eq(firstTS - AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="119" href="#119">119</a> 
-<a class="jxr_linenumber" name="120" href="#120">120</a>         requestProc.commitRequest(firstTS, writeSet, <strong class="jxr_keyword">new</strong> ArrayList&lt;Long&gt;(0), false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="121" href="#121">121</a>         ArgumentCaptor&lt;Long&gt; commitTScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="122" href="#122">122</a> 
-<a class="jxr_linenumber" name="123" href="#123">123</a>         verify(persist, timeout(100).times(1)).addCommitToBatch(eq(firstTS), commitTScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="124" href="#124">124</a>         assertTrue(commitTScapture.getValue() &gt; firstTS, <span class="jxr_string">"Commit TS must be greater than start TS"</span>);
-<a class="jxr_linenumber" name="125" href="#125">125</a> 
-<a class="jxr_linenumber" name="126" href="#126">126</a>         <em class="jxr_comment">// test conflict</em>
-<a class="jxr_linenumber" name="127" href="#127">127</a>         requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="128" href="#128">128</a>         TScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="129" href="#129">129</a>         verify(persist, timeout(100).times(2)).addTimestampToBatch(
-<a class="jxr_linenumber" name="130" href="#130">130</a>                 TScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="131" href="#131">131</a>         <strong class="jxr_keyword">long</strong> secondTS = TScapture.getValue();
-<a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a>         requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="134" href="#134">134</a>         TScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="135" href="#135">135</a>         verify(persist, timeout(100).times(3)).addTimestampToBatch(
-<a class="jxr_linenumber" name="136" href="#136">136</a>                 TScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">long</strong> thirdTS = TScapture.getValue();
-<a class="jxr_linenumber" name="138" href="#138">138</a> 
-<a class="jxr_linenumber" name="139" href="#139">139</a>         requestProc.commitRequest(thirdTS, writeSet, <strong class="jxr_keyword">new</strong> ArrayList&lt;Long&gt;(0), false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="140" href="#140">140</a>         verify(persist, timeout(100).times(1)).addCommitToBatch(eq(thirdTS), anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="141" href="#141">141</a>         requestProc.commitRequest(secondTS, writeSet, <strong class="jxr_keyword">new</strong> ArrayList&lt;Long&gt;(0), false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="142" href="#142">142</a>         verify(persist, timeout(100).times(1)).addAbortToBatch(eq(secondTS), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="143" href="#143">143</a> 
-<a class="jxr_linenumber" name="144" href="#144">144</a>     }
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testFence() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="148" href="#148">148</a> 
-<a class="jxr_linenumber" name="149" href="#149">149</a>         requestProc.fenceRequest(666L, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="150" href="#150">150</a>         ArgumentCaptor&lt;Long&gt; firstTScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="151" href="#151">151</a>         verify(persist, timeout(100).times(1)).addFenceToBatch(eq(666L),
-<a class="jxr_linenumber" name="152" href="#152">152</a>                 firstTScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="153" href="#153">153</a> 
-<a class="jxr_linenumber" name="154" href="#154">154</a>     }
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>     @Test(timeOut = 30_000)
-<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitRequestAbortsWhenResettingRequestProcessorState() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="116" href="#116">116</a>         requestProc.commitRequest(firstTS, writeSet, false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="117" href="#117">117</a>         ArgumentCaptor&lt;Long&gt; commitTScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="118" href="#118">118</a> 
+<a class="jxr_linenumber" name="119" href="#119">119</a>         verify(persist, timeout(100).times(1)).addCommitToBatch(eq(firstTS), commitTScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="120" href="#120">120</a>         assertTrue(commitTScapture.getValue() &gt; firstTS, <span class="jxr_string">"Commit TS must be greater than start TS"</span>);
+<a class="jxr_linenumber" name="121" href="#121">121</a> 
+<a class="jxr_linenumber" name="122" href="#122">122</a>         <em class="jxr_comment">// test conflict</em>
+<a class="jxr_linenumber" name="123" href="#123">123</a>         requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="124" href="#124">124</a>         TScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="125" href="#125">125</a>         verify(persist, timeout(100).times(2)).addTimestampToBatch(
+<a class="jxr_linenumber" name="126" href="#126">126</a>                 TScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="127" href="#127">127</a>         <strong class="jxr_keyword">long</strong> secondTS = TScapture.getValue();
+<a class="jxr_linenumber" name="128" href="#128">128</a> 
+<a class="jxr_linenumber" name="129" href="#129">129</a>         requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="130" href="#130">130</a>         TScapture = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="131" href="#131">131</a>         verify(persist, timeout(100).times(3)).addTimestampToBatch(
+<a class="jxr_linenumber" name="132" href="#132">132</a>                 TScapture.capture(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">long</strong> thirdTS = TScapture.getValue();
+<a class="jxr_linenumber" name="134" href="#134">134</a> 
+<a class="jxr_linenumber" name="135" href="#135">135</a>         requestProc.commitRequest(thirdTS, writeSet, false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="136" href="#136">136</a>         verify(persist, timeout(100).times(1)).addCommitToBatch(eq(thirdTS), anyLong(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="137" href="#137">137</a>         requestProc.commitRequest(secondTS, writeSet, false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="138" href="#138">138</a>         verify(persist, timeout(100).times(1)).addAbortToBatch(eq(secondTS), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="139" href="#139">139</a> 
+<a class="jxr_linenumber" name="140" href="#140">140</a>     }
+<a class="jxr_linenumber" name="141" href="#141">141</a> 
+<a class="jxr_linenumber" name="142" href="#142">142</a>     @Test(timeOut = 30_000)
+<a class="jxr_linenumber" name="143" href="#143">143</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCommitRequestAbortsWhenResettingRequestProcessorState() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="144" href="#144">144</a> 
+<a class="jxr_linenumber" name="145" href="#145">145</a>         List&lt;Long&gt; writeSet = Collections.emptyList();
+<a class="jxr_linenumber" name="146" href="#146">146</a> 
+<a class="jxr_linenumber" name="147" href="#147">147</a>         <em class="jxr_comment">// Start a transaction...</em>
+<a class="jxr_linenumber" name="148" href="#148">148</a>         requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="149" href="#149">149</a>         ArgumentCaptor&lt;Long&gt; capturedTS = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="150" href="#150">150</a>         verify(persist, timeout(100).times(1)).addTimestampToBatch(capturedTS.capture(),
+<a class="jxr_linenumber" name="151" href="#151">151</a>                                                                    any(Channel.<strong class="jxr_keyword">class</strong>),
+<a class="jxr_linenumber" name="152" href="#152">152</a>                                                                    any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="153" href="#153">153</a>         <strong class="jxr_keyword">long</strong> startTS = capturedTS.getValue();
+<a class="jxr_linenumber" name="154" href="#154">154</a> 
+<a class="jxr_linenumber" name="155" href="#155">155</a>         <em class="jxr_comment">// ... simulate the reset of the RequestProcessor state (e.g. due to</em>
+<a class="jxr_linenumber" name="156" href="#156">156</a>         <em class="jxr_comment">// a change in mastership) and...</em>
+<a class="jxr_linenumber" name="157" href="#157">157</a>         stateManager.initialize();
 <a class="jxr_linenumber" name="158" href="#158">158</a> 
-<a class="jxr_linenumber" name="159" href="#159">159</a>         List&lt;Long&gt; writeSet = Collections.emptyList();
-<a class="jxr_linenumber" name="160" href="#160">160</a> 
-<a class="jxr_linenumber" name="161" href="#161">161</a>         <em class="jxr_comment">// Start a transaction...</em>
-<a class="jxr_linenumber" name="162" href="#162">162</a>         requestProc.timestampRequest(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="163" href="#163">163</a>         ArgumentCaptor&lt;Long&gt; capturedTS = ArgumentCaptor.forClass(Long.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="164" href="#164">164</a>         verify(persist, timeout(100).times(1)).addTimestampToBatch(capturedTS.capture(),
-<a class="jxr_linenumber" name="165" href="#165">165</a>                                                                    any(Channel.<strong class="jxr_keyword">class</strong>),
-<a class="jxr_linenumber" name="166" href="#166">166</a>                                                                    any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">long</strong> startTS = capturedTS.getValue();
-<a class="jxr_linenumber" name="168" href="#168">168</a> 
-<a class="jxr_linenumber" name="169" href="#169">169</a>         <em class="jxr_comment">// ... simulate the reset of the RequestProcessor state (e.g. due to</em>
-<a class="jxr_linenumber" name="170" href="#170">170</a>         <em class="jxr_comment">// a change in mastership) and...</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a>         stateManager.initialize();
-<a class="jxr_linenumber" name="172" href="#172">172</a> 
-<a class="jxr_linenumber" name="173" href="#173">173</a>         <em class="jxr_comment">// ...check that the transaction is aborted when trying to commit</em>
-<a class="jxr_linenumber" name="174" href="#174">174</a>         requestProc.commitRequest(startTS, writeSet, <strong class="jxr_keyword">new</strong> ArrayList&lt;Long&gt;(0), false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="175" href="#175">175</a>         verify(persist, timeout(100).times(1)).addAbortToBatch(eq(startTS), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="176" href="#176">176</a> 
-<a class="jxr_linenumber" name="177" href="#177">177</a>     }
+<a class="jxr_linenumber" name="159" href="#159">159</a>         <em class="jxr_comment">// ...check that the transaction is aborted when trying to commit</em>
+<a class="jxr_linenumber" name="160" href="#160">160</a>         requestProc.commitRequest(startTS, writeSet, false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="161" href="#161">161</a>         verify(persist, timeout(100).times(1)).addAbortToBatch(eq(startTS), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="162" href="#162">162</a> 
+<a class="jxr_linenumber" name="163" href="#163">163</a>     }
+<a class="jxr_linenumber" name="164" href="#164">164</a> 
+<a class="jxr_linenumber" name="165" href="#165">165</a>     @Test(timeOut = 5_000)
+<a class="jxr_linenumber" name="166" href="#166">166</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLowWatermarkIsStoredOnlyWhenACacheElementIsEvicted() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="167" href="#167">167</a> 
+<a class="jxr_linenumber" name="168" href="#168">168</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> ANY_START_TS = 1;
+<a class="jxr_linenumber" name="169" href="#169">169</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> FIRST_COMMIT_TS_EVICTED = 1L;
+<a class="jxr_linenumber" name="170" href="#170">170</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> NEXT_COMMIT_TS_THAT_SHOULD_BE_EVICTED = 2L;
+<a class="jxr_linenumber" name="171" href="#171">171</a> 
+<a class="jxr_linenumber" name="172" href="#172">172</a>         <em class="jxr_comment">// Fill the cache to provoke a cache eviction</em>
+<a class="jxr_linenumber" name="173" href="#173">173</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> i = 0; i &lt; CONFLICT_MAP_SIZE + CONFLICT_MAP_ASSOCIATIVITY; i++) {
+<a class="jxr_linenumber" name="174" href="#174">174</a>             <strong class="jxr_keyword">long</strong> writeSetElementHash = i + 1; <em class="jxr_comment">// This is to match the assigned CT: K/V in cache = WS Element Hash/CT</em>
+<a class="jxr_linenumber" name="175" href="#175">175</a>             List&lt;Long&gt; writeSet = Lists.newArrayList(writeSetElementHash);
+<a class="jxr_linenumber" name="176" href="#176">176</a>             requestProc.commitRequest(ANY_START_TS, writeSet, false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
+<a class="jxr_linenumber" name="177" href="#177">177</a>         }
 <a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>     @Test(timeOut = 5_000)
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLowWatermarkIsStoredOnlyWhenACacheElementIsEvicted() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="181" href="#181">181</a> 
-<a class="jxr_linenumber" name="182" href="#182">182</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> ANY_START_TS = 1;
-<a class="jxr_linenumber" name="183" href="#183">183</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> FIRST_COMMIT_TS_EVICTED = AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> NEXT_COMMIT_TS_THAT_SHOULD_BE_EVICTED = FIRST_COMMIT_TS_EVICTED + AbstractTransactionManager.MAX_CHECKPOINTS_PER_TXN;
-<a class="jxr_linenumber" name="185" href="#185">185</a> 
-<a class="jxr_linenumber" name="186" href="#186">186</a>         <em class="jxr_comment">// Fill the cache to provoke a cache eviction</em>
-<a class="jxr_linenumber" name="187" href="#187">187</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">long</strong> i = 0; i &lt; CONFLICT_MAP_SIZE + CONFLICT_MAP_ASSOCIATIVITY; i++) {
-<a class="jxr_linenumber" name="188" href="#188">188</a>             <strong class="jxr_keyword">long</strong> writeSetElementHash = i + 1; <em class="jxr_comment">// This is to match the assigned CT: K/V in cache = WS Element Hash/CT</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a>             List&lt;Long&gt; writeSet = Lists.newArrayList(writeSetElementHash);
-<a class="jxr_linenumber" name="190" href="#190">190</a>             requestProc.commitRequest(ANY_START_TS, writeSet, <strong class="jxr_keyword">new</strong> ArrayList&lt;Long&gt;(0), false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> MonitoringContext(metrics));
-<a class="jxr_linenumber" name="191" href="#191">191</a>         }
-<a class="jxr_linenumber" name="192" href="#192">192</a> 
-<a class="jxr_linenumber" name="193" href="#193">193</a>         Thread.currentThread().sleep(3000); <em class="jxr_comment">// Allow the Request processor to finish the request processing</em>
-<a class="jxr_linenumber" name="194" href="#194">194</a> 
-<a class="jxr_linenumber" name="195" href="#195">195</a>         <em class="jxr_comment">// Check that first time its called is on init</em>
-<a class="jxr_linenumber" name="196" href="#196">196</a>         verify(persist, timeout(100).times(1)).persistLowWatermark(eq(0L));
-<a class="jxr_linenumber" name="197" href="#197">197</a>         <em class="jxr_comment">// Then, check it is called when cache is full and the first element is evicted (should be a AbstractTransactionManager.NUM_OF_CHECKPOINTS)</em>
-<a class="jxr_linenumber" name="198" href="#198">198</a>         verify(persist, timeout(100).times(1)).persistLowWatermark(eq(FIRST_COMMIT_TS_EVICTED));
-<a class="jxr_linenumber" name="199" href="#199">199</a>         <em class="jxr_comment">// Finally it should never be called with the next element</em>
-<a class="jxr_linenumber" name="200" href="#200">200</a>         verify(persist, timeout(100).never()).persistLowWatermark(eq(NEXT_COMMIT_TS_THAT_SHOULD_BE_EVICTED));
-<a class="jxr_linenumber" name="201" href="#201">201</a> 
-<a class="jxr_linenumber" name="202" href="#202">202</a>     }
-<a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a> }
+<a class="jxr_linenumber" name="179" href="#179">179</a>         Thread.currentThread().sleep(3000); <em class="jxr_comment">// Allow the Request processor to finish the request processing</em>
+<a class="jxr_linenumber" name="180" href="#180">180</a> 
+<a class="jxr_linenumber" name="181" href="#181">181</a>         <em class="jxr_comment">// Check that first time its called is on init</em>
+<a class="jxr_linenumber" name="182" href="#182">182</a>         verify(persist, timeout(100).times(1)).persistLowWatermark(eq(0L));
+<a class="jxr_linenumber" name="183" href="#183">183</a>         <em class="jxr_comment">// Then, check it is called when cache is full and the first element is evicted (should be a 1)</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a>         verify(persist, timeout(100).times(1)).persistLowWatermark(eq(FIRST_COMMIT_TS_EVICTED));
+<a class="jxr_linenumber" name="185" href="#185">185</a>         <em class="jxr_comment">// Finally it should never be called with the next element</em>
+<a class="jxr_linenumber" name="186" href="#186">186</a>         verify(persist, timeout(100).never()).persistLowWatermark(eq(NEXT_COMMIT_TS_THAT_SHOULD_BE_EVICTED));
+<a class="jxr_linenumber" name="187" href="#187">187</a> 
+<a class="jxr_linenumber" name="188" href="#188">188</a>     }
+<a class="jxr_linenumber" name="189" href="#189">189</a> 
+<a class="jxr_linenumber" name="190" href="#190">190</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-omid-site/blob/581871ee/xref-test/org/apache/omid/tso/TestTSOChannelHandlerNetty.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/omid/tso/TestTSOChannelHandlerNetty.html b/xref-test/org/apache/omid/tso/TestTSOChannelHandlerNetty.html
index b2159ef..a42bf8a 100644
--- a/xref-test/org/apache/omid/tso/TestTSOChannelHandlerNetty.html
+++ b/xref-test/org/apache/omid/tso/TestTSOChannelHandlerNetty.html
@@ -258,95 +258,77 @@
 <a class="jxr_linenumber" name="248" href="#248">248</a>         testWritingTimestampRequest(channel);
 <a class="jxr_linenumber" name="249" href="#249">249</a> 
 <a class="jxr_linenumber" name="250" href="#250">250</a>         testWritingCommitRequest(channel);
-<a class="jxr_linenumber" name="251" href="#251">251</a> 
-<a class="jxr_linenumber" name="252" href="#252">252</a>         testWritingFenceRequest(channel);
-<a class="jxr_linenumber" name="253" href="#253">253</a>     }
-<a class="jxr_linenumber" name="254" href="#254">254</a> 
-<a class="jxr_linenumber" name="255" href="#255">255</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testWritingTimestampRequest(Channel channel) <strong class="jxr_keyword">throws</strong> InterruptedException {
-<a class="jxr_linenumber" name="256" href="#256">256</a>         <em class="jxr_comment">// Reset mock</em>
-<a class="jxr_linenumber" name="257" href="#257">257</a>         reset(requestProcessor);
-<a class="jxr_linenumber" name="258" href="#258">258</a>         TSOProto.Request.Builder tsBuilder = TSOProto.Request.newBuilder();
-<a class="jxr_linenumber" name="259" href="#259">259</a>         TSOProto.TimestampRequest.Builder tsRequestBuilder = TSOProto.TimestampRequest.newBuilder();
-<a class="jxr_linenumber" name="260" href="#260">260</a>         tsBuilder.setTimestampRequest(tsRequestBuilder.build());
-<a class="jxr_linenumber" name="261" href="#261">261</a>         <em class="jxr_comment">// Write into the channel</em>
-<a class="jxr_linenumber" name="262" href="#262">262</a>         channel.write(tsBuilder.build()).await();
-<a class="jxr_linenumber" name="263" href="#263">263</a>         verify(requestProcessor, timeout(100).times(1)).timestampRequest(any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="264" href="#264">264</a>         verify(requestProcessor, timeout(100).never())
-<a class="jxr_linenumber" name="265" href="#265">265</a>                 .commitRequest(anyLong(), anyCollectionOf(Long.<strong class="jxr_keyword">class</strong>), anyCollectionOf(Long.<strong class="jxr_keyword">class</strong>), anyBoolean(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="266" href="#266">266</a>     }
-<a class="jxr_linenumber" name="267" href="#267">267</a> 
-<a class="jxr_linenumber" name="268" href="#268">268</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testWritingCommitRequest(Channel channel) <strong class="jxr_keyword">throws</strong> InterruptedException {
-<a class="jxr_linenumber" name="269" href="#269">269</a>         <em class="jxr_comment">// Reset mock</em>
-<a class="jxr_linenumber" name="270" href="#270">270</a>         reset(requestProcessor);
-<a class="jxr_linenumber" name="271" href="#271">271</a>         TSOProto.Request.Builder commitBuilder = TSOProto.Request.newBuilder();
-<a class="jxr_linenumber" name="272" href="#272">272</a>         TSOProto.CommitRequest.Builder commitRequestBuilder = TSOProto.CommitRequest.newBuilder();
-<a class="jxr_linenumber" name="273" href="#273">273</a>         commitRequestBuilder.setStartTimestamp(666);
-<a class="jxr_linenumber" name="274" href="#274">274</a>         commitRequestBuilder.addCellId(666);
-<a class="jxr_linenumber" name="275" href="#275">275</a>         commitBuilder.setCommitRequest(commitRequestBuilder.build());
-<a class="jxr_linenumber" name="276" href="#276">276</a>         TSOProto.Request r = commitBuilder.build();
-<a class="jxr_linenumber" name="277" href="#277">277</a>         assertTrue(r.hasCommitRequest());
-<a class="jxr_linenumber" name="278" href="#278">278</a>         <em class="jxr_comment">// Write into the channel</em>
-<a class="jxr_linenumber" name="279" href="#279">279</a>         channel.write(commitBuilder.build()).await();
-<a class="jxr_linenumber" name="280" href="#280">280</a>         verify(requestProcessor, timeout(100).never()).timestampRequest(any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="281" href="#281">281</a>         verify(requestProcessor, timeout(100).times(1))
-<a class="jxr_linenumber" name="282" href="#282">282</a>                 .commitRequest(eq(666L), anyCollectionOf(Long.<strong class="jxr_keyword">class</strong>), anyCollectionOf(Long.<strong class="jxr_keyword">class</strong>), eq(false), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="283" href="#283">283</a>     }
-<a class="jxr_linenumber" name="284" href="#284">284</a> 
-<a class="jxr_linenumber" name="285" href="#285">285</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testWritingFenceRequest(Channel channel) <strong class="jxr_keyword">throws</strong> InterruptedException {
-<a class="jxr_linenumber" name="286" href="#286">286</a>         <em class="jxr_comment">// Reset mock</em>
-<a class="jxr_linenumber" name="287" href="#287">287</a>         reset(requestProcessor);
-<a class="jxr_linenumber" name="288" href="#288">288</a>         TSOProto.Request.Builder fenceBuilder = TSOProto.Request.newBuilder();
-<a class="jxr_linenumber" name="289" href="#289">289</a>         TSOProto.FenceRequest.Builder fenceRequestBuilder = TSOProto.FenceRequest.newBuilder();
-<a class="jxr_linenumber" name="290" href="#290">290</a>         fenceRequestBuilder.setTableId(666);
-<a class="jxr_linenumber" name="291" href="#291">291</a>         fenceBuilder.setFenceRequest(fenceRequestBuilder.build());
-<a class="jxr_linenumber" name="292" href="#292">292</a>         TSOProto.Request r = fenceBuilder.build();
-<a class="jxr_linenumber" name="293" href="#293">293</a>         assertTrue(r.hasFenceRequest());
-<a class="jxr_linenumber" name="294" href="#294">294</a>         <em class="jxr_comment">// Write into the channel</em>
-<a class="jxr_linenumber" name="295" href="#295">295</a>         channel.write(fenceBuilder.build()).await();
-<a class="jxr_linenumber" name="296" href="#296">296</a>         verify(requestProcessor, timeout(100).never()).timestampRequest(any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="297" href="#297">297</a>         verify(requestProcessor, timeout(100).times(1))
-<a class="jxr_linenumber" name="298" href="#298">298</a>                 .fenceRequest(eq(666L), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="299" href="#299">299</a>     }
-<a class="jxr_linenumber" name="300" href="#300">300</a> 
-<a class="jxr_linenumber" name="301" href="#301">301</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="302" href="#302">302</a>     <em class="jxr_comment">// Helper methods</em>
-<a class="jxr_linenumber" name="303" href="#303">303</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="304" href="#304">304</a> 
-<a class="jxr_linenumber" name="305" href="#305">305</a>     <strong class="jxr_keyword">private</strong> ClientBootstrap createNettyClientBootstrap() {
+<a class="jxr_linenumber" name="251" href="#251">251</a>     }
+<a class="jxr_linenumber" name="252" href="#252">252</a> 
+<a class="jxr_linenumber" name="253" href="#253">253</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testWritingTimestampRequest(Channel channel) <strong class="jxr_keyword">throws</strong> InterruptedException {
+<a class="jxr_linenumber" name="254" href="#254">254</a>         <em class="jxr_comment">// Reset mock</em>
+<a class="jxr_linenumber" name="255" href="#255">255</a>         reset(requestProcessor);
+<a class="jxr_linenumber" name="256" href="#256">256</a>         TSOProto.Request.Builder tsBuilder = TSOProto.Request.newBuilder();
+<a class="jxr_linenumber" name="257" href="#257">257</a>         TSOProto.TimestampRequest.Builder tsRequestBuilder = TSOProto.TimestampRequest.newBuilder();
+<a class="jxr_linenumber" name="258" href="#258">258</a>         tsBuilder.setTimestampRequest(tsRequestBuilder.build());
+<a class="jxr_linenumber" name="259" href="#259">259</a>         <em class="jxr_comment">// Write into the channel</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a>         channel.write(tsBuilder.build()).await();
+<a class="jxr_linenumber" name="261" href="#261">261</a>         verify(requestProcessor, timeout(100).times(1)).timestampRequest(any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="262" href="#262">262</a>         verify(requestProcessor, timeout(100).never())
+<a class="jxr_linenumber" name="263" href="#263">263</a>                 .commitRequest(anyLong(), anyCollectionOf(Long.<strong class="jxr_keyword">class</strong>), anyBoolean(), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="264" href="#264">264</a>     }
+<a class="jxr_linenumber" name="265" href="#265">265</a> 
+<a class="jxr_linenumber" name="266" href="#266">266</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testWritingCommitRequest(Channel channel) <strong class="jxr_keyword">throws</strong> InterruptedException {
+<a class="jxr_linenumber" name="267" href="#267">267</a>         <em class="jxr_comment">// Reset mock</em>
+<a class="jxr_linenumber" name="268" href="#268">268</a>         reset(requestProcessor);
+<a class="jxr_linenumber" name="269" href="#269">269</a>         TSOProto.Request.Builder commitBuilder = TSOProto.Request.newBuilder();
+<a class="jxr_linenumber" name="270" href="#270">270</a>         TSOProto.CommitRequest.Builder commitRequestBuilder = TSOProto.CommitRequest.newBuilder();
+<a class="jxr_linenumber" name="271" href="#271">271</a>         commitRequestBuilder.setStartTimestamp(666);
+<a class="jxr_linenumber" name="272" href="#272">272</a>         commitRequestBuilder.addCellId(666);
+<a class="jxr_linenumber" name="273" href="#273">273</a>         commitBuilder.setCommitRequest(commitRequestBuilder.build());
+<a class="jxr_linenumber" name="274" href="#274">274</a>         TSOProto.Request r = commitBuilder.build();
+<a class="jxr_linenumber" name="275" href="#275">275</a>         assertTrue(r.hasCommitRequest());
+<a class="jxr_linenumber" name="276" href="#276">276</a>         <em class="jxr_comment">// Write into the channel</em>
+<a class="jxr_linenumber" name="277" href="#277">277</a>         channel.write(commitBuilder.build()).await();
+<a class="jxr_linenumber" name="278" href="#278">278</a>         verify(requestProcessor, timeout(100).never()).timestampRequest(any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="279" href="#279">279</a>         verify(requestProcessor, timeout(100).times(1))
+<a class="jxr_linenumber" name="280" href="#280">280</a>                 .commitRequest(eq(666L), anyCollectionOf(Long.<strong class="jxr_keyword">class</strong>), eq(false), any(Channel.<strong class="jxr_keyword">class</strong>), any(MonitoringContext.<strong class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="281" href="#281">281</a>     }
+<a class="jxr_linenumber" name="282" href="#282">282</a> 
+<a class="jxr_linenumber" name="283" href="#283">283</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="284" href="#284">284</a>     <em class="jxr_comment">// Helper methods</em>
+<a class="jxr_linenumber" name="285" href="#285">285</a>     <em class="jxr_comment">// ----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="286" href="#286">286</a> 
+<a class="jxr_linenumber" name="287" href="#287">287</a>     <strong class="jxr_keyword">private</strong> ClientBootstrap createNettyClientBootstrap() {
+<a class="jxr_linenumber" name="288" href="#288">288</a> 
+<a class="jxr_linenumber" name="289" href="#289">289</a>         ChannelFactory factory = <strong class="jxr_keyword">new</strong> NioClientSocketChannelFactory(
+<a class="jxr_linenumber" name="290" href="#290">290</a>                 Executors.newCachedThreadPool(
+<a class="jxr_linenumber" name="291" href="#291">291</a>                         <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"client-boss-%d"</span>).build()),
+<a class="jxr_linenumber" name="292" href="#292">292</a>                 Executors.newCachedThreadPool(
+<a class="jxr_linenumber" name="293" href="#293">293</a>                         <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"client-worker-%d"</span>).build()), 1);
+<a class="jxr_linenumber" name="294" href="#294">294</a>         <em class="jxr_comment">// Create the bootstrap</em>
+<a class="jxr_linenumber" name="295" href="#295">295</a>         ClientBootstrap bootstrap = <strong class="jxr_keyword">new</strong> ClientBootstrap(factory);
+<a class="jxr_linenumber" name="296" href="#296">296</a>         bootstrap.setOption(<span class="jxr_string">"tcpNoDelay"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="297" href="#297">297</a>         bootstrap.setOption(<span class="jxr_string">"keepAlive"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="298" href="#298">298</a>         bootstrap.setOption(<span class="jxr_string">"reuseAddress"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="299" href="#299">299</a>         bootstrap.setOption(<span class="jxr_string">"connectTimeoutMillis"</span>, 100);
+<a class="jxr_linenumber" name="300" href="#300">300</a>         ChannelPipeline pipeline = bootstrap.getPipeline();
+<a class="jxr_linenumber" name="301" href="#301">301</a>         pipeline.addLast(<span class="jxr_string">"lengthbaseddecoder"</span>, <strong class="jxr_keyword">new</strong> LengthFieldBasedFrameDecoder(8 * 1024, 0, 4, 0, 4));
+<a class="jxr_linenumber" name="302" href="#302">302</a>         pipeline.addLast(<span class="jxr_string">"lengthprepender"</span>, <strong class="jxr_keyword">new</strong> LengthFieldPrepender(4));
+<a class="jxr_linenumber" name="303" href="#303">303</a>         pipeline.addLast(<span class="jxr_string">"protobufdecoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufDecoder(TSOProto.Response.getDefaultInstance()));
+<a class="jxr_linenumber" name="304" href="#304">304</a>         pipeline.addLast(<span class="jxr_string">"protobufencoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufEncoder());
+<a class="jxr_linenumber" name="305" href="#305">305</a>         pipeline.addLast(<span class="jxr_string">"handler"</span>, <strong class="jxr_keyword">new</strong> SimpleChannelHandler() {
 <a class="jxr_linenumber" name="306" href="#306">306</a> 
-<a class="jxr_linenumber" name="307" href="#307">307</a>         ChannelFactory factory = <strong class="jxr_keyword">new</strong> NioClientSocketChannelFactory(
-<a class="jxr_linenumber" name="308" href="#308">308</a>                 Executors.newCachedThreadPool(
-<a class="jxr_linenumber" name="309" href="#309">309</a>                         <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"client-boss-%d"</span>).build()),
-<a class="jxr_linenumber" name="310" href="#310">310</a>                 Executors.newCachedThreadPool(
-<a class="jxr_linenumber" name="311" href="#311">311</a>                         <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder().setNameFormat(<span class="jxr_string">"client-worker-%d"</span>).build()), 1);
-<a class="jxr_linenumber" name="312" href="#312">312</a>         <em class="jxr_comment">// Create the bootstrap</em>
-<a class="jxr_linenumber" name="313" href="#313">313</a>         ClientBootstrap bootstrap = <strong class="jxr_keyword">new</strong> ClientBootstrap(factory);
-<a class="jxr_linenumber" name="314" href="#314">314</a>         bootstrap.setOption(<span class="jxr_string">"tcpNoDelay"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="315" href="#315">315</a>         bootstrap.setOption(<span class="jxr_string">"keepAlive"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="316" href="#316">316</a>         bootstrap.setOption(<span class="jxr_string">"reuseAddress"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="317" href="#317">317</a>         bootstrap.setOption(<span class="jxr_string">"connectTimeoutMillis"</span>, 100);
-<a class="jxr_linenumber" name="318" href="#318">318</a>         ChannelPipeline pipeline = bootstrap.getPipeline();
-<a class="jxr_linenumber" name="319" href="#319">319</a>         pipeline.addLast(<span class="jxr_string">"lengthbaseddecoder"</span>, <strong class="jxr_keyword">new</strong> LengthFieldBasedFrameDecoder(8 * 1024, 0, 4, 0, 4));
-<a class="jxr_linenumber" name="320" href="#320">320</a>         pipeline.addLast(<span class="jxr_string">"lengthprepender"</span>, <strong class="jxr_keyword">new</strong> LengthFieldPrepender(4));
-<a class="jxr_linenumber" name="321" href="#321">321</a>         pipeline.addLast(<span class="jxr_string">"protobufdecoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufDecoder(TSOProto.Response.getDefaultInstance()));
-<a class="jxr_linenumber" name="322" href="#322">322</a>         pipeline.addLast(<span class="jxr_string">"protobufencoder"</span>, <strong class="jxr_keyword">new</strong> ProtobufEncoder());
-<a class="jxr_linenumber" name="323" href="#323">323</a>         pipeline.addLast(<span class="jxr_string">"handler"</span>, <strong class="jxr_keyword">new</strong> SimpleChannelHandler() {
-<a class="jxr_linenumber" name="324" href="#324">324</a> 
-<a class="jxr_linenumber" name="325" href="#325">325</a>             @Override
-<a class="jxr_linenumber" name="326" href="#326">326</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {
-<a class="jxr_linenumber" name="327" href="#327">327</a>                 LOG.info(<span class="jxr_string">"Channel {} connected"</span>, ctx.getChannel());
-<a class="jxr_linenumber" name="328" href="#328">328</a>             }
-<a class="jxr_linenumber" name="329" href="#329">329</a> 
-<a class="jxr_linenumber" name="330" href="#330">330</a>             @Override
-<a class="jxr_linenumber" name="331" href="#331">331</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="332" href="#332">332</a>                 LOG.error(<span class="jxr_string">"Error on channel {}"</span>, ctx.getChannel(), e.getCause());
-<a class="jxr_linenumber" name="333" href="#333">333</a>             }
-<a class="jxr_linenumber" name="334" href="#334">334</a> 
-<a class="jxr_linenumber" name="335" href="#335">335</a>         });
-<a class="jxr_linenumber" name="336" href="#336">336</a>         <strong class="jxr_keyword">return</strong> bootstrap;
-<a class="jxr_linenumber" name="337" href="#337">337</a>     }
-<a class="jxr_linenumber" name="338" href="#338">338</a> 
-<a class="jxr_linenumber" name="339" href="#339">339</a> }
+<a class="jxr_linenumber" name="307" href="#307">307</a>             @Override
+<a class="jxr_linenumber" name="308" href="#308">308</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {
+<a class="jxr_linenumber" name="309" href="#309">309</a>                 LOG.info(<span class="jxr_string">"Channel {} connected"</span>, ctx.getChannel());
+<a class="jxr_linenumber" name="310" href="#310">310</a>             }
+<a class="jxr_linenumber" name="311" href="#311">311</a> 
+<a class="jxr_linenumber" name="312" href="#312">312</a>             @Override
+<a class="jxr_linenumber" name="313" href="#313">313</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="314" href="#314">314</a>                 LOG.error(<span class="jxr_string">"Error on channel {}"</span>, ctx.getChannel(), e.getCause());
+<a class="jxr_linenumber" name="315" href="#315">315</a>             }
+<a class="jxr_linenumber" name="316" href="#316">316</a> 
+<a class="jxr_linenumber" name="317" href="#317">317</a>         });
+<a class="jxr_linenumber" name="318" href="#318">318</a>         <strong class="jxr_keyword">return</strong> bootstrap;
+<a class="jxr_linenumber" name="319" href="#319">319</a>     }
+<a class="jxr_linenumber" name="320" href="#320">320</a> 
+<a class="jxr_linenumber" name="321" href="#321">321</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>