
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2019-10-18
 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="http://hbase.apache.org/" 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.4.11</li>
				<li class="divider">|</li>
				<li class="publishDate version-date">Last Published: 2019-10-18</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="https://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>
