blob: 2a63ca7fde9c7367e377191c8cc1293eb7e90719 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MultiVersionConcurrencyControl (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="MultiVersionConcurrencyControl (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MultiVersionConcurrencyControl.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MobStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" target="_top">Frames</a></li>
<li><a href="MultiVersionConcurrencyControl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
<h2 title="Class MultiVersionConcurrencyControl" class="title">Class MultiVersionConcurrencyControl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.38">MultiVersionConcurrencyControl</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Manages the read/write consistency. This provides an interface for readers to determine what
entries to ignore, and a mechanism for writers to obtain new write numbers, then "commit"
the new writes for readers to read (thus forming atomic transactions).</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a></span></code>
<div class="block">Write number and whether write has completed given out at start of a write transaction.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#FIXED_SIZE">FIXED_SIZE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#NONE">NONE</a></span></code>
<div class="block">Represents no value, or not set.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#readPoint">readPoint</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#READPOINT_ADVANCE_WAIT_TIME">READPOINT_ADVANCE_WAIT_TIME</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#readWaiters">readWaiters</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#regionName">regionName</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#writePoint">writePoint</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#writeQueue">writeQueue</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#MultiVersionConcurrencyControl--">MultiVersionConcurrencyControl</a></span>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#MultiVersionConcurrencyControl-long-">MultiVersionConcurrencyControl</a></span>(long&nbsp;startPoint)</code>
<div class="block">Construct and set read point.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#MultiVersionConcurrencyControl-java.lang.String-">MultiVersionConcurrencyControl</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#advanceTo-long-">advanceTo</a></span>(long&nbsp;newStartPoint)</code>
<div class="block">Step the MVCC forward on to a new read/write basis.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#await--">await</a></span>()</code>
<div class="block">Wait until the read point catches up to the write point; i.e.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#begin--">begin</a></span>()</code>
<div class="block">Call <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#begin-java.lang.Runnable-"><code>begin(Runnable)</code></a> with an empty <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><code>Runnable</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#begin-java.lang.Runnable-">begin</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;action)</code>
<div class="block">Start a write transaction.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#complete-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">complete</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)</code>
<div class="block">Mark the <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver"><code>MultiVersionConcurrencyControl.WriteEntry</code></a> as complete and advance the read point as much as possible.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#completeAndWait-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">completeAndWait</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;e)</code>
<div class="block">Complete a <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver"><code>MultiVersionConcurrencyControl.WriteEntry</code></a> that was created by <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#begin--"><code>begin()</code></a> then wait until the
read point catches up to our write.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#getReadPoint--">getReadPoint</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#getWritePoint--">getWritePoint</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#tryAdvanceTo-long-long-">tryAdvanceTo</a></span>(long&nbsp;newStartPoint,
long&nbsp;expected)</code>
<div class="block">Step the MVCC forward on to a new read/write basis.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#waitForRead-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">waitForRead</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;e)</code>
<div class="block">Wait for the global readPoint to advance up to the passed in write entry number.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.39">LOG</a></pre>
</li>
</ul>
<a name="READPOINT_ADVANCE_WAIT_TIME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>READPOINT_ADVANCE_WAIT_TIME</h4>
<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.40">READPOINT_ADVANCE_WAIT_TIME</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.READPOINT_ADVANCE_WAIT_TIME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="regionName">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>regionName</h4>
<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.42">regionName</a></pre>
</li>
</ul>
<a name="readPoint">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readPoint</h4>
<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.43">readPoint</a></pre>
</li>
</ul>
<a name="writePoint">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writePoint</h4>
<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.44">writePoint</a></pre>
</li>
</ul>
<a name="readWaiters">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readWaiters</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.45">readWaiters</a></pre>
</li>
</ul>
<a name="NONE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NONE</h4>
<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.49">NONE</a></pre>
<div class="block">Represents no value, or not set.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.NONE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="writeQueue">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeQueue</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.57">writeQueue</a></pre>
</li>
</ul>
<a name="FIXED_SIZE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FIXED_SIZE</h4>
<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.300">FIXED_SIZE</a></pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="MultiVersionConcurrencyControl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MultiVersionConcurrencyControl</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.59">MultiVersionConcurrencyControl</a>()</pre>
</li>
</ul>
<a name="MultiVersionConcurrencyControl-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MultiVersionConcurrencyControl</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.63">MultiVersionConcurrencyControl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName)</pre>
</li>
</ul>
<a name="MultiVersionConcurrencyControl-long-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MultiVersionConcurrencyControl</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.70">MultiVersionConcurrencyControl</a>(long&nbsp;startPoint)</pre>
<div class="block">Construct and set read point. Write point is uninitialized.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="advanceTo-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>advanceTo</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.79">advanceTo</a>(long&nbsp;newStartPoint)</pre>
<div class="block">Step the MVCC forward on to a new read/write basis.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newStartPoint</code> - </dd>
</dl>
</li>
</ul>
<a name="tryAdvanceTo-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tryAdvanceTo</h4>
<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.99">tryAdvanceTo</a>(long&nbsp;newStartPoint,
long&nbsp;expected)</pre>
<div class="block">Step the MVCC forward on to a new read/write basis.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newStartPoint</code> - Point to move read and write points to.</dd>
<dd><code>expected</code> - If not -1 (#NONE)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns false if <code>expected</code> is not equal to the
current <code>readPoint</code> or if <code>startPoint</code> is less than current
<code>readPoint</code></dd>
</dl>
</li>
</ul>
<a name="begin--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>begin</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.124">begin</a>()</pre>
<div class="block">Call <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#begin-java.lang.Runnable-"><code>begin(Runnable)</code></a> with an empty <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><code>Runnable</code></a>.</div>
</li>
</ul>
<a name="begin-java.lang.Runnable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>begin</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.140">begin</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;action)</pre>
<div class="block">Start a write transaction. Create a new <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver"><code>MultiVersionConcurrencyControl.WriteEntry</code></a> with a new write number and add it
to our queue of ongoing writes. Return this WriteEntry instance. To complete the write
transaction and wait for it to be visible, call <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#completeAndWait-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-"><code>completeAndWait(WriteEntry)</code></a>. If the
write failed, call <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#complete-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-"><code>complete(WriteEntry)</code></a> so we can clean up AFTER removing ALL trace of
the failed write transaction.
<p>
The <code>action</code> will be executed under the lock which means it can keep the same order with
mvcc.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#complete-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-"><code>complete(WriteEntry)</code></a>,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#completeAndWait-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-"><code>completeAndWait(WriteEntry)</code></a></dd>
</dl>
</li>
</ul>
<a name="await--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>await</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.154">await</a>()</pre>
<div class="block">Wait until the read point catches up to the write point; i.e. wait on all outstanding mvccs
to complete.</div>
</li>
</ul>
<a name="completeAndWait-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>completeAndWait</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.166">completeAndWait</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;e)</pre>
<div class="block">Complete a <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver"><code>MultiVersionConcurrencyControl.WriteEntry</code></a> that was created by <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#begin--"><code>begin()</code></a> then wait until the
read point catches up to our write.
At the end of this call, the global read point is at least as large as the write point
of the passed in WriteEntry. Thus, the write is visible to MVCC readers.</div>
</li>
</ul>
<a name="complete-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>complete</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.186">complete</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)</pre>
<div class="block">Mark the <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver"><code>MultiVersionConcurrencyControl.WriteEntry</code></a> as complete and advance the read point as much as possible.
Call this even if the write has FAILED (AFTER backing out the write transaction
changes completely) so we can clean up the outstanding transaction.
How much is the read point advanced?
Let S be the set of all write numbers that are completed. Set the read point to the highest
numbered write of S.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>writeEntry</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if e is visible to MVCC readers (that is, readpoint >= e.writeNumber)</dd>
</dl>
</li>
</ul>
<a name="waitForRead-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>waitForRead</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.227">waitForRead</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;e)</pre>
<div class="block">Wait for the global readPoint to advance up to the passed in write entry number.</div>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.252">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="getReadPoint--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadPoint</h4>
<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.261">getReadPoint</a>()</pre>
</li>
</ul>
<a name="getWritePoint--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getWritePoint</h4>
<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html#line.265">getWritePoint</a>()</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MultiVersionConcurrencyControl.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MobStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" target="_top">Frames</a></li>
<li><a href="MultiVersionConcurrencyControl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>