
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2019-04-06
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Apache HBase &#x2013;  
      Apache HBase (TM) ACID Properties
    </title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />

		<link href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/spacelab/bootstrap.min.css" rel="stylesheet" />
		<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="./css/bootswatch.css" rel="stylesheet" />
		<link href="./css/reflow-skin.css" rel="stylesheet" />


		<link href="./css/lightbox.css" rel="stylesheet" />

		<link href="./css/site.css" rel="stylesheet" />
		<link href="./css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->



	</head>

	<body class="page-acid-semantics project-hbase" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache HBase Project <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>
									<li ><a href="http://www.apache.org/dyn/closer.cgi/hbase/" title="Downloads" class="externalLink">Downloads</a></li>
									<li ><a href="https://issues.apache.org/jira/browse/HBASE?report=com.atlassian.jira.plugin.system.project:changelog-panel#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel" title="Release Notes" class="externalLink">Release Notes</a></li>
									<li ><a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li>
									<li ><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="source-repository.html" title="Source Repository">Source Repository</a></li>
									<li ><a href="https://reviews.apache.org" title="ReviewBoard" class="externalLink">ReviewBoard</a></li>
									<li ><a href="team-list.html" title="Team">Team</a></li>
									<li ><a href="sponsors.html" title="Thanks">Thanks</a></li>
									<li ><a href="http://blogs.apache.org/hbase/" title="Blog" class="externalLink">Blog</a></li>
									<li ><a href="resources.html" title="Other resources">Other resources</a></li>
								</ul>
							</li>
							<li class="dropdown active">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="book.html" title="Reference Guide" target="_blank">Reference Guide</a></li>
									<li ><a href="apache_hbase_reference_guide.pdf" title="Reference Guide (PDF)" target="_blank">Reference Guide (PDF)</a></li>
									<li ><a href="book.html#quickstart" title="Getting Started" target="_blank">Getting Started</a></li>
									<li ><a href="apidocs/index.html" title="User API" target="_blank">User API</a></li>
									<li ><a href="devapidocs/index.html" title="Developer API" target="_blank">Developer API</a></li>
									<li ><a href="xref/index.html" title="X-Ref">X-Ref</a></li>
									<li ><a href="http://abloz.com/hbase/book.html" title="中文参考指南(单页)" target="_blank" class="externalLink">中文参考指南(单页)</a></li>
									<li ><a href="book.html#faq" title="FAQ" target="_blank">FAQ</a></li>
									<li ><a href="book.html#other.info" title="Videos/Presentations" target="_blank">Videos/Presentations</a></li>
									<li ><a href="http://wiki.apache.org/hadoop/Hbase" title="Wiki" target="_blank" class="externalLink">Wiki</a></li>
									<li class="active"><a href="" title="ACID Semantics" target="_blank">ACID Semantics</a></li>
									<li ><a href="book.html#arch.bulk.load" title="Bulk Loads" target="_blank">Bulk Loads</a></li>
									<li ><a href="metrics.html" title="Metrics" target="_blank">Metrics</a></li>
									<li ><a href="cygwin.html" title="HBase on Windows" target="_blank">HBase on Windows</a></li>
									<li ><a href="replication.html" title="Cluster replication" target="_blank">Cluster replication</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">0.94 Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="0.94/apidocs/index.html" title="API" target="_blank">API</a></li>
									<li ><a href="0.94/xref/index.html" title="X-Ref" target="_blank">X-Ref</a></li>
									<li ><a href="0.94/book.html" title="Ref Guide (single-page)" target="_blank">Ref Guide (single-page)</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="http://www.apache.org/foundation/" title="Apache Software Foundation" target="_blank" class="externalLink">Apache Software Foundation</a></li>
									<li ><a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works" target="_blank" class="externalLink">How Apache Works</a></li>
									<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache" target="_blank" class="externalLink">Sponsoring Apache</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="./" id="bannerLeft"><img src="images/hbase_logo.png" alt='"'Apache HBase'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://hbasecon.com/" id="bannerRight"><img src="images/hbasecon2015.30percent.png" alt='"'Apache HBase Orca'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="projectVersion version-date">Version: 1.2.12</li>
				<li class="divider">|</li>
				<li class="publishDate version-date">Last Published: 2019-04-06</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span12">
			<div class="body-content">
<!-- Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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. --> 
<div class="section"> 
 <div class="page-header">
  <h2 id="About_this_Document">About this Document</h2>
 </div> 
 <p>Apache HBase (TM) is not an ACID compliant database. However, it does guarantee certain specific properties.</p> 
 <p>This specification enumerates the ACID properties of HBase.</p> 
</div> 
<div class="section"> 
 <h2 id="Definitions">Definitions</h2> 
 <p>For the sake of common vocabulary, we define the following terms:</p> 
 <dl> 
  <dt>
    Atomicity 
  </dt> 
  <dd>
    an operation is atomic if it either completes entirely or not at all 
  </dd> 
  <dt>
    Consistency 
  </dt> 
  <dd>
    all actions cause the table to transition from one valid state directly to another (eg a row will not disappear during an update, etc) 
  </dd> 
  <dt>
    Isolation 
  </dt> 
  <dd>
    an operation is isolated if it appears to complete independently of any other concurrent transaction 
  </dd> 
  <dt>
    Durability 
  </dt> 
  <dd>
    any update that reports &quot;successful&quot; to the client will not be lost 
  </dd> 
  <dt>
    Visibility 
  </dt> 
  <dd>
    an update is considered visible if any subsequent read will see the update as having been committed 
  </dd> 
 </dl> 
 <p> The terms <i>must</i> and <i>may</i> are used as specified by RFC 2119. In short, the word &quot;must&quot; implies that, if some case exists where the statement is not true, it is a bug. The word &quot;may&quot; implies that, even if the guarantee is provided in a current release, users should not rely on it. </p> 
</div> 
<div class="section"> 
 <h2 id="APIs_to_consider">APIs to consider</h2> 
 <ul> 
  <li>Read APIs 
   <ul> 
    <li>get</li> 
    <li>scan</li> 
   </ul> </li> 
  <li>Write APIs</li> 
  <ul> 
   <li>put</li> 
   <li>batch put</li> 
   <li>delete</li> 
  </ul> 
  <li>Combination (read-modify-write) APIs</li> 
  <ul> 
   <li>incrementColumnValue</li> 
   <li>checkAndPut</li> 
  </ul> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="Guarantees_Provided">Guarantees Provided</h2> 
 <div class="section"> 
  <h2 id="Atomicity">Atomicity</h2> 
  <ol style="list-style-type: decimal"> 
   <li>All mutations are atomic within a row. Any put will either wholely succeed or wholely fail.[3]</li> 
   <ol style="list-style-type: decimal"> 
    <li>An operation that returns a &quot;success&quot; code has completely succeeded.</li> 
    <li>An operation that returns a &quot;failure&quot; code has completely failed.</li> 
    <li>An operation that times out may have succeeded and may have failed. However, it will not have partially succeeded or failed.</li> 
   </ol> 
   <li> This is true even if the mutation crosses multiple column families within a row.</li> 
   <li> APIs that mutate several rows will _not_ be atomic across the multiple rows. For example, a multiput that operates on rows 'a','b', and 'c' may return having mutated some but not all of the rows. In such cases, these APIs will return a list of success codes, each of which may be succeeded, failed, or timed out as described above.</li> 
   <li> The checkAndPut API happens atomically like the typical compareAndSet (CAS) operation found in many hardware architectures.</li> 
   <li> The order of mutations is seen to happen in a well-defined order for each row, with no interleaving. For example, if one writer issues the mutation &quot;a=1,b=1,c=1&quot; and another writer issues the mutation &quot;a=2,b=2,c=2&quot;, the row must either be &quot;a=1,b=1,c=1&quot; or &quot;a=2,b=2,c=2&quot; and must <i>not</i> be something like &quot;a=1,b=2,c=1&quot;.</li> 
   <ol style="list-style-type: decimal"> 
    <li>Please note that this is not true _across rows_ for multirow batch mutations.</li> 
   </ol> 
  </ol> 
 </div> 
 <div class="section"> 
  <h2 id="Consistency_and_Isolation">Consistency and Isolation</h2> 
  <ol style="list-style-type: decimal"> 
   <li>All rows returned via any access API will consist of a complete row that existed at some point in the table's history.</li> 
   <li>This is true across column families - i.e a get of a full row that occurs concurrent with some mutations 1,2,3,4,5 will return a complete row that existed at some point in time between mutation i and i+1 for some i between 1 and 5.</li> 
   <li>The state of a row will only move forward through the history of edits to it.</li> 
  </ol> 
  <div class="section"> 
   <h2 id="Consistency_of_Scans">Consistency of Scans</h2> 
   <p> A scan is <b>not</b> a consistent view of a table. Scans do <b>not</b> exhibit <i>snapshot isolation</i>. </p> 
   <p> Rather, scans have the following properties: </p> 
   <ol style="list-style-type: decimal"> 
    <li> Any row returned by the scan will be a consistent view (i.e. that version of the complete row existed at some point in time) [1] </li> 
    <li> A scan will always reflect a view of the data <i>at least as new as</i> the beginning of the scan. This satisfies the visibility guarantees enumerated below.</li> 
    <ol style="list-style-type: decimal"> 
     <li>For example, if client A writes data X and then communicates via a side channel to client B, any scans started by client B will contain data at least as new as X.</li> 
     <li>A scan _must_ reflect all mutations committed prior to the construction of the scanner, and _may_ reflect some mutations committed subsequent to the construction of the scanner.</li> 
     <li>Scans must include <i>all</i> data written prior to the scan (except in the case where data is subsequently mutated, in which case it _may_ reflect the mutation)</li> 
    </ol> 
   </ol> 
   <p> Those familiar with relational databases will recognize this isolation level as &quot;read committed&quot;. </p> 
   <p> Please note that the guarantees listed above regarding scanner consistency are referring to &quot;transaction commit time&quot;, not the &quot;timestamp&quot; field of each cell. That is to say, a scanner started at time <i>t</i> may see edits with a timestamp value greater than <i>t</i>, if those edits were committed with a &quot;forward dated&quot; timestamp before the scanner was constructed. </p> 
  </div> 
 </div> 
 <div class="section"> 
  <h2 id="Visibility">Visibility</h2> 
  <ol style="list-style-type: decimal"> 
   <li> When a client receives a &quot;success&quot; response for any mutation, that mutation is immediately visible to both that client and any client with whom it later communicates through side channels. [3]</li> 
   <li> A row must never exhibit so-called &quot;time-travel&quot; properties. That is to say, if a series of mutations moves a row sequentially through a series of states, any sequence of concurrent reads will return a subsequence of those states.</li> 
   <ol style="list-style-type: decimal"> 
    <li>For example, if a row's cells are mutated using the &quot;incrementColumnValue&quot; API, a client must never see the value of any cell decrease.</li> 
    <li>This is true regardless of which read API is used to read back the mutation.</li> 
   </ol> 
   <li> Any version of a cell that has been returned to a read operation is guaranteed to be durably stored.</li> 
  </ol> 
 </div> 
 <div class="section"> 
  <h2 id="Durability">Durability</h2> 
  <ol style="list-style-type: decimal"> 
   <li> All visible data is also durable data. That is to say, a read will never return data that has not been made durable on disk[2]</li> 
   <li> Any operation that returns a &quot;success&quot; code (eg does not throw an exception) will be made durable.[3]</li> 
   <li> Any operation that returns a &quot;failure&quot; code will not be made durable (subject to the Atomicity guarantees above)</li> 
   <li> All reasonable failure scenarios will not affect any of the guarantees of this document.</li> 
  </ol> 
 </div> 
 <div class="section"> 
  <h2 id="Tunability">Tunability</h2> 
  <p>All of the above guarantees must be possible within Apache HBase. For users who would like to trade off some guarantees for performance, HBase may offer several tuning options. For example:</p> 
  <ul> 
   <li>Visibility may be tuned on a per-read basis to allow stale reads or time travel.</li> 
   <li>Durability may be tuned to only flush data to disk on a periodic basis</li> 
  </ul> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="More_Information">More Information</h2> 
 <p> For more information, see the <a href="book.html#client">client architecture</a> or <a href="book.html#datamodel">data model</a> sections in the Apache HBase Reference Guide. </p> 
</div> 
<div class="section"> 
 <h2 id="Footnotes">Footnotes</h2> 
 <p>[1] A consistent view is not guaranteed intra-row scanning -- i.e. fetching a portion of a row in one RPC then going back to fetch another portion of the row in a subsequent RPC. Intra-row scanning happens when you set a limit on how many values to return per Scan#next (See <a class="externalLink" href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html#setBatch(int)">Scan#setBatch(int)</a>). </p> 
 <p>[2] In the context of Apache HBase, &quot;durably on disk&quot; implies an hflush() call on the transaction log. This does not actually imply an fsync() to magnetic media, but rather just that the data has been written to the OS cache on all replicas of the log. In the case of a full datacenter power loss, it is possible that the edits are not truly durable.</p> 
 <p>[3] Puts will either wholely succeed or wholely fail, provided that they are actually sent to the RegionServer. If the writebuffer is used, Puts will not be sent until the writebuffer is filled or it is explicitly flushed.</p> 
</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Apache HBase Project</li>
						<li >
							<a href="index.html" title="Overview">Overview</a>
						</li>
						<li >
							<a href="license.html" title="License">License</a>
						</li>
						<li >
							<a href="http://www.apache.org/dyn/closer.cgi/hbase/" title="Downloads" class="externalLink">Downloads</a>
						</li>
						<li >
							<a href="https://issues.apache.org/jira/browse/HBASE?report=com.atlassian.jira.plugin.system.project:changelog-panel#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel" title="Release Notes" class="externalLink">Release Notes</a>
						</li>
						<li >
							<a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
						</li>
						<li >
							<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="source-repository.html" title="Source Repository">Source Repository</a>
						</li>
						<li >
							<a href="https://reviews.apache.org" title="ReviewBoard" class="externalLink">ReviewBoard</a>
						</li>
						<li >
							<a href="team-list.html" title="Team">Team</a>
						</li>
						<li >
							<a href="sponsors.html" title="Thanks">Thanks</a>
						</li>
						<li >
							<a href="http://blogs.apache.org/hbase/" title="Blog" class="externalLink">Blog</a>
						</li>
						<li >
							<a href="resources.html" title="Other resources">Other resources</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Documentation</li>
						<li >
							<a href="book.html" title="Reference Guide" target="_blank">Reference Guide</a>
						</li>
						<li >
							<a href="apache_hbase_reference_guide.pdf" title="Reference Guide (PDF)" target="_blank">Reference Guide (PDF)</a>
						</li>
						<li >
							<a href="book.html#quickstart" title="Getting Started" target="_blank">Getting Started</a>
						</li>
						<li >
							<a href="apidocs/index.html" title="User API" target="_blank">User API</a>
						</li>
						<li >
							<a href="devapidocs/index.html" title="Developer API" target="_blank">Developer API</a>
						</li>
						<li >
							<a href="xref/index.html" title="X-Ref">X-Ref</a>
						</li>
						<li >
							<a href="http://abloz.com/hbase/book.html" title="中文参考指南(单页)" target="_blank" class="externalLink">中文参考指南(单页)</a>
						</li>
						<li >
							<a href="book.html#faq" title="FAQ" target="_blank">FAQ</a>
						</li>
						<li >
							<a href="book.html#other.info" title="Videos/Presentations" target="_blank">Videos/Presentations</a>
						</li>
						<li >
							<a href="http://wiki.apache.org/hadoop/Hbase" title="Wiki" target="_blank" class="externalLink">Wiki</a>
						</li>
						<li class="active">
							<a href="#" title="ACID Semantics" target="_blank">ACID Semantics</a>
						</li>
						<li >
							<a href="book.html#arch.bulk.load" title="Bulk Loads" target="_blank">Bulk Loads</a>
						</li>
						<li >
							<a href="metrics.html" title="Metrics" target="_blank">Metrics</a>
						</li>
						<li >
							<a href="cygwin.html" title="HBase on Windows" target="_blank">HBase on Windows</a>
						</li>
						<li >
							<a href="replication.html" title="Cluster replication" target="_blank">Cluster replication</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">0.94 Documentation</li>
						<li >
							<a href="0.94/apidocs/index.html" title="API" target="_blank">API</a>
						</li>
						<li >
							<a href="0.94/xref/index.html" title="X-Ref" target="_blank">X-Ref</a>
						</li>
						<li >
							<a href="0.94/book.html" title="Ref Guide (single-page)" target="_blank">Ref Guide (single-page)</a>
						</li>
						<li class="nav-header">ASF</li>
						<li >
							<a href="http://www.apache.org/foundation/" title="Apache Software Foundation" target="_blank" class="externalLink">Apache Software Foundation</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works" target="_blank" class="externalLink">How Apache Works</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache" target="_blank" class="externalLink">Sponsoring Apache</a>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2007-2019 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p>
				<p><a href="http://github.com/andriusvelykis/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

	<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
	<script src="./js/lightbox.min.js"></script>
	<script src="./js/reflow-scroll.js"></script>

	<script src="./js/reflow-skin.js"></script>

	</body>
</html>
