hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From st...@apache.org
Subject svn commit: r1620690 [15/40] - in /hbase/hbase.apache.org/trunk: ./ apidocs/org/apache/hadoop/hbase/client/ apidocs/org/apache/hadoop/hbase/client/class-use/ apidocs/org/apache/hadoop/hbase/coprocessor/ apidocs/org/apache/hadoop/hbase/coprocessor/class...
Date Tue, 26 Aug 2014 18:49:10 GMT
Added: hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelService.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelService.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelService.html (added)
+++ hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelService.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,174 @@
+<!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 (version 1.7.0_51) on Tue Aug 26 11:17:40 PDT 2014 -->
+<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
+<title>Uses of Interface org.apache.hadoop.hbase.security.visibility.VisibilityLabelService (HBase 2.0.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.apache.hadoop.hbase.security.visibility.VisibilityLabelService (HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" title="interface in org.apache.hadoop.hbase.security.visibility">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelService.html" target="_top">Frames</a></li>
+<li><a href="VisibilityLabelService.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All 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>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.hadoop.hbase.security.visibility.VisibilityLabelService" class="title">Uses of Interface<br>org.apache.hadoop.hbase.security.visibility.VisibilityLabelService</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityLabelService</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.security.visibility">org.apache.hadoop.hbase.security.visibility</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.security.visibility">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityLabelService</a> in <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a> that implement <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityLabelService</a></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>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.html" title="class in org.apache.hadoop.hbase.security.visibility">DefaultVisibilityLabelServiceImpl</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityLabelService</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityLabelService</a></code></td>
+<td class="colLast"><span class="strong">VisibilityLabelServiceManager.</span><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html#getVisibilityLabelService()">getVisibilityLabelService</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityLabelService</a></code></td>
+<td class="colLast"><span class="strong">VisibilityLabelServiceManager.</span><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html#getVisibilityLabelService(org.apache.hadoop.conf.Configuration)">getVisibilityLabelService</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" title="interface in org.apache.hadoop.hbase.security.visibility">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelService.html" target="_top">Frames</a></li>
+<li><a href="VisibilityLabelService.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All 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>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
+</body>
+</html>

Added: hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelServiceManager.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelServiceManager.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelServiceManager.html (added)
+++ hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelServiceManager.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,157 @@
+<!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 (version 1.7.0_51) on Tue Aug 26 11:17:40 PDT 2014 -->
+<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.security.visibility.VisibilityLabelServiceManager (HBase 2.0.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.apache.hadoop.hbase.security.visibility.VisibilityLabelServiceManager (HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelServiceManager.html" target="_top">Frames</a></li>
+<li><a href="VisibilityLabelServiceManager.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All 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>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.security.visibility.VisibilityLabelServiceManager" class="title">Uses of Class<br>org.apache.hadoop.hbase.security.visibility.VisibilityLabelServiceManager</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelServiceManager</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.security.visibility">org.apache.hadoop.hbase.security.visibility</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.security.visibility">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelServiceManager</a> in <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelServiceManager</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelServiceManager</a></code></td>
+<td class="colLast"><span class="strong">VisibilityLabelServiceManager.</span><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html#getInstance()">getInstance</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelServiceManager.html" target="_top">Frames</a></li>
+<li><a href="VisibilityLabelServiceManager.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All 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>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
+</body>
+</html>

Added: hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelsCache.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelsCache.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelsCache.html (added)
+++ hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelsCache.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,177 @@
+<!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 (version 1.7.0_51) on Tue Aug 26 11:17:40 PDT 2014 -->
+<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.security.visibility.VisibilityLabelsCache (HBase 2.0.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.apache.hadoop.hbase.security.visibility.VisibilityLabelsCache (HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelsCache.html" target="_top">Frames</a></li>
+<li><a href="VisibilityLabelsCache.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All 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>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.security.visibility.VisibilityLabelsCache" class="title">Uses of Class<br>org.apache.hadoop.hbase.security.visibility.VisibilityLabelsCache</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelsCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.security.visibility">org.apache.hadoop.hbase.security.visibility</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.security.visibility">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelsCache</a> in <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelsCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelsCache</a></code></td>
+<td class="colLast"><span class="strong">VisibilityLabelsCache.</span><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html#createAndGet(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher, org.apache.hadoop.conf.Configuration)">createAndGet</a></strong>(<a href="../../../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;watcher,
+            org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
+<div class="block">Creates the singleton instance, if not yet present, and returns the same.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelsCache</a></code></td>
+<td class="colLast"><span class="strong">VisibilityLabelsCache.</span><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a> with parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelsCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/ZKVisibilityLabelWatcher.html#ZKVisibilityLabelWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher, org.apache.hadoop.hbase.security.visibility.VisibilityLabelsCache, org.apache.hadoop.conf.Configuration)">ZKVisibilityLabelWatcher</a></strong>(<a href="../../../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;watcher,
+                        <a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelsCache</a>&nbsp;labelsCache,
+                        org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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><a href="../../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/security/visibility/class-use/VisibilityLabelsCache.html" target="_top">Frames</a></li>
+<li><a href="VisibilityLabelsCache.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All 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>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
+</body>
+</html>

Added: hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/util/MultiHConnection.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/util/MultiHConnection.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/util/MultiHConnection.html (added)
+++ hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/util/MultiHConnection.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,300 @@
+<!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 (version 1.7.0_51) on Tue Aug 26 11:13:17 PDT 2014 -->
+<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
+<title>MultiHConnection (HBase 2.0.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MultiHConnection (HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/MultiHConnection.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/util/ModifyRegionUtils.RegionFillTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MultiHConnection.html" target="_top">Frames</a></li>
+<li><a href="MultiHConnection.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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>Nested&nbsp;|&nbsp;</li>
+<li>Field&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>Field&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.util</div>
+<h2 title="Class MultiHConnection" class="title">Class MultiHConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/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.util.MultiHConnection</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Private
+public class <span class="strong">MultiHConnection</span>
+extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Provides ability to create multiple HConnection instances and allows to process a batch of
+ actions using HConnection.processBatchCallback()</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" 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><strong><a href="../../../../../org/apache/hadoop/hbase/util/MultiHConnection.html#MultiHConnection(org.apache.hadoop.conf.Configuration, int)">MultiHConnection</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                int&nbsp;noOfConnections)</code>
+<div class="block">Create multiple HConnection instances and initialize a thread pool executor</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/util/MultiHConnection.html#close()">close</a></strong>()</code>
+<div class="block">Close the open connections and shutdown the batchpool</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/util/MultiHConnection.html#processBatchCallback(java.util.List, org.apache.hadoop.hbase.TableName, java.lang.Object[], org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;actions,
+                    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;results,
+                    <a href="../../../../../org/apache/hadoop/hbase/client/coprocessor/Batch.Callback.html" title="interface in org.apache.hadoop.hbase.client.coprocessor">Batch.Callback</a>&lt;R&gt;&nbsp;callback)</code>
+<div class="block">Randomly pick a connection and process the batch of actions for a given table</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="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang
 /Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/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">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="MultiHConnection(org.apache.hadoop.conf.Configuration, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MultiHConnection</h4>
+<pre>public&nbsp;MultiHConnection(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                int&nbsp;noOfConnections)
+                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Create multiple HConnection instances and initialize a thread pool executor</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>conf</code> - configuration</dd><dd><code>noOfConnections</code> - total no of HConnections to create</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()</pre>
+<div class="block">Close the open connections and shutdown the batchpool</div>
+</li>
+</ul>
+<a name="processBatchCallback(java.util.List, org.apache.hadoop.hbase.TableName, java.lang.Object[], org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>processBatchCallback</h4>
+<pre>public&nbsp;&lt;R&gt;&nbsp;void&nbsp;processBatchCallback(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;actions,
+                            <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;results,
+                            <a href="../../../../../org/apache/hadoop/hbase/client/coprocessor/Batch.Callback.html" title="interface in org.apache.hadoop.hbase.client.coprocessor">Batch.Callback</a>&lt;R&gt;&nbsp;callback)
+                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Randomly pick a connection and process the batch of actions for a given table</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>actions</code> - the actions</dd><dd><code>tableName</code> - table name</dd><dd><code>results</code> - the results array</dd><dd><code>callback</code> - </dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/MultiHConnection.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/util/ModifyRegionUtils.RegionFillTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MultiHConnection.html" target="_top">Frames</a></li>
+<li><a href="MultiHConnection.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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>Nested&nbsp;|&nbsp;</li>
+<li>Field&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>Field&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; 2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
+</body>
+</html>

Added: hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/util/class-use/MultiHConnection.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/util/class-use/MultiHConnection.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/util/class-use/MultiHConnection.html (added)
+++ hbase/hbase.apache.org/trunk/apidocs/org/apache/hadoop/hbase/util/class-use/MultiHConnection.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,117 @@
+<!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 (version 1.7.0_51) on Tue Aug 26 11:17:38 PDT 2014 -->
+<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.util.MultiHConnection (HBase 2.0.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.apache.hadoop.hbase.util.MultiHConnection (HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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><a href="../../../../../../org/apache/hadoop/hbase/util/MultiHConnection.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/MultiHConnection.html" target="_top">Frames</a></li>
+<li><a href="MultiHConnection.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.util.MultiHConnection" class="title">Uses of Class<br>org.apache.hadoop.hbase.util.MultiHConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.util.MultiHConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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><a href="../../../../../../org/apache/hadoop/hbase/util/MultiHConnection.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/MultiHConnection.html" target="_top">Frames</a></li>
+<li><a href="MultiHConnection.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
+</body>
+</html>

Added: hbase/hbase.apache.org/trunk/appendix_hfile_format.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/appendix_hfile_format.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/appendix_hfile_format.html (added)
+++ hbase/hbase.apache.org/trunk/appendix_hfile_format.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,232 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+   <title>Appendix&nbsp;A.&nbsp;HFile format</title><link rel="stylesheet" type="text/css" href="${baserdir}/src/main/site/resources/css/freebsd_docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><script type="text/javascript">
+    var disqus_shortname = 'hbase'; // required: replace example with your forum shortname
+    var disqus_url = 'http://hbase.apache.org/book/hfile_format.html';
+    </script><div class="appendix"><div class="titlepage"><div><div><h2 class="title"><a name="hfile_format"></a>Appendix&nbsp;A.&nbsp;HFile format</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#hfilev1">A.1. HBase File Format (version 1)</a></span></dt><dd><dl><dt><span class="section"><a href="#hfilev1.overview">A.1.1. Overview of Version 1</a></span></dt><dt><span class="section"><a href="#d9858e31">A.1.2.  Block index format in version 1 </a></span></dt></dl></dd><dt><span class="section"><a href="#hfilev2">A.2. 
+      HBase file format with inline blocks (version 2)
+      </a></span></dt><dd><dl><dt><span class="section"><a href="#d9858e60">A.2.1. Motivation </a></span></dt><dt><span class="section"><a href="#hfilev2.overview">A.2.2. Overview of Version 2</a></span></dt><dt><span class="section"><a href="#d9858e83">A.2.3. Unified version 2 block format</a></span></dt><dt><span class="section"><a href="#d9858e152">A.2.4.  Block index in version 2</a></span></dt><dt><span class="section"><a href="#d9858e177">A.2.5. 
+      Root block index format in version 2</a></span></dt><dt><span class="section"><a href="#d9858e230">A.2.6. 
+      Non-root block index format in version 2</a></span></dt><dt><span class="section"><a href="#d9858e255">A.2.7. 
+      Bloom filters in version 2</a></span></dt><dt><span class="section"><a href="#d9858e292">A.2.8. File Info format in versions 1 and 2</a></span></dt><dt><span class="section"><a href="#d9858e338">A.2.9. 
+      Fixed file trailer format differences between versions 1 and 2</a></span></dt><dt><span class="section"><a href="#d9858e481">A.2.10. getShortMidpointKey(an optimization for data index block)</a></span></dt></dl></dd><dt><span class="section"><a href="#hfilev3">A.3. HBase File Format with Security Enhancements (version 3)</a></span></dt><dd><dl><dt><span class="section"><a href="#hfilev3.motivation">A.3.1. Motivation </a></span></dt><dt><span class="section"><a href="#hfilev3.overview">A.3.2. Overview</a></span></dt><dt><span class="section"><a href="#hvilev3.infoblock">A.3.3. File Info Block in Version 3</a></span></dt><dt><span class="section"><a href="#hfilev3.datablock">A.3.4. Data Blocks in Version 3</a></span></dt><dt><span class="section"><a href="#hfilev3.fixedtrailer">A.3.5. Fixed File Trailer in Version 3</a></span></dt></dl></dd></dl></div><p>This appendix describes the evolution of the HFile format.</p><div class="section"><div class="titlepage"><div><div><h2 class=
 "title" style="clear: both"><a name="hfilev1"></a>A.1.&nbsp;HBase File Format (version 1)</h2></div></div></div><p>As we will be discussing changes to the HFile format, it is useful to give a short overview of the original (HFile version 1) format.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="hfilev1.overview"></a>A.1.1.&nbsp;Overview of Version 1</h3></div></div></div><p>An HFile in version 1 format is structured as follows:
+           <span class="inlinemediaobject"><img src="images/hfile.png" align="middle" alt="HFile Version 1"></span>
+           <a href="#ftn.d9858e24" class="footnote" name="d9858e24"><sup class="footnote">[1]</sup></a>
+       </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e31"></a>A.1.2.&nbsp; Block index format in version 1 </h3></div></div></div><p>The block index in version 1 is very straightforward. For each entry, it contains: </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Offset (long)</p></li><li class="listitem"><p>Uncompressed size (int)</p></li><li class="listitem"><p>Key (a serialized byte array written using Bytes.writeByteArray) </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>Key length as a variable-length integer (VInt)
+                  </p></li><li class="listitem"><p>
+                     Key bytes
+                 </p></li></ol></div></li></ol></div><p>The number of entries in the block index is stored in the fixed file trailer, and has to be passed in to the method that reads the block index. One of the limitations of the block index in version 1 is that it does not provide the compressed size of a block, which turns out to be necessary for decompression. Therefore, the HFile reader has to infer this compressed size from the offset difference between blocks. We fix this limitation in version 2, where we store on-disk block size instead of uncompressed size, and get uncompressed size from the block header.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="hfilev2"></a>A.2.&nbsp;
+      HBase file format with inline blocks (version 2)
+      </h2></div></div></div><p>Note:  this feature was introduced in HBase 0.92</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e60"></a>A.2.1.&nbsp;Motivation </h3></div></div></div><p>We found it necessary to revise the HFile format after encountering high memory usage and slow startup times caused by large Bloom filters and block indexes in the region server. Bloom filters can get as large as 100 MB per HFile, which adds up to 2 GB when aggregated over 20 regions. Block indexes can grow as large as 6 GB in aggregate size over the same set of regions. A region is not considered opened until all of its block index data is loaded. Large Bloom filters produce a different performance problem: the first get request that requires a Bloom filter lookup will incur the latency of loading the entire Bloom filter bit array.</p><p>To speed up region server startup we break Bloom filters and block indexes into multiple blocks and write those blocks out
  as they fill up, which also reduces the HFile writer&#8217;s memory footprint. In the Bloom filter case, &#8220;filling up a block&#8221; means accumulating enough keys to efficiently utilize a fixed-size bit array, and in the block index case we accumulate an &#8220;index block&#8221; of the desired size. Bloom filter blocks and index blocks (we call these &#8220;inline blocks&#8221;) become interspersed with data blocks, and as a side effect we can no longer rely on the difference between block offsets to determine data block length, as it was done in version 1.</p><p>HFile is a low-level file format by design, and it should not deal with application-specific details such as Bloom filters, which are handled at StoreFile level. Therefore, we call Bloom filter blocks in an HFile "inline" blocks. We also supply HFile with an interface to write those inline blocks. </p><p>Another format modification aimed at reducing the region server startup time is to use a contiguous &#8220;load-o
 n-open&#8221; section that has to be loaded in memory at the time an HFile is being opened. Currently, as an HFile opens, there are separate seek operations to read the trailer, data/meta indexes, and file info. To read the Bloom filter, there are two more seek operations for its &#8220;data&#8221; and &#8220;meta&#8221; portions. In version 2, we seek once to read the trailer and seek again to read everything else we need to open the file from a contiguous block.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="hfilev2.overview"></a>A.2.2.&nbsp;Overview of Version 2</h3></div></div></div><p>The version of HBase introducing the above features reads both version 1 and 2 HFiles, but only writes version 2 HFiles. A version 2 HFile is structured as follows:
+           <span class="inlinemediaobject"><img src="images/hfilev2.png" align="middle" alt="HFile Version 2"></span>
+
+   </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e83"></a>A.2.3.&nbsp;Unified version 2 block format</h3></div></div></div><p>In the version 2 every block in the data section contains the following fields: </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>8 bytes: Block type, a sequence of bytes equivalent to version 1's "magic records". Supported block types are: </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>DATA &#8211; data blocks
+                  </p></li><li class="listitem"><p>
+                     LEAF_INDEX &#8211; leaf-level index blocks in a multi-level-block-index
+                 </p></li><li class="listitem"><p>
+                     BLOOM_CHUNK &#8211; Bloom filter chunks
+                  </p></li><li class="listitem"><p>
+                     META &#8211; meta blocks (not used for Bloom filters in version 2 anymore)
+                  </p></li><li class="listitem"><p>
+                     INTERMEDIATE_INDEX &#8211; intermediate-level index blocks in a multi-level blockindex
+                  </p></li><li class="listitem"><p>
+                     ROOT_INDEX &#8211; root&gt;level index blocks in a multi&gt;level block index
+                  </p></li><li class="listitem"><p>
+                     FILE_INFO &#8211; the &#8220;file info&#8221; block, a small key&gt;value map of metadata
+                  </p></li><li class="listitem"><p>
+                     BLOOM_META &#8211; a Bloom filter metadata block in the load&gt;on&gt;open section
+                  </p></li><li class="listitem"><p>
+                     TRAILER &#8211; a fixed&gt;size file trailer. As opposed to the above, this is not an
+                     HFile v2 block but a fixed&gt;size (for each HFile version) data structure
+                  </p></li><li class="listitem"><p>
+                      INDEX_V1 &#8211; this block type is only used for legacy HFile v1 block
+                  </p></li></ol></div></li><li class="listitem"><p>Compressed size of the block's data, not including the header (int).
+         </p><p>
+Can be used for skipping the current data block when scanning HFile data.
+                  </p></li><li class="listitem"><p>Uncompressed size of the block's data, not including the header (int)</p><p>
+ This is equal to the compressed size if the compression algorithm is NONE
+                  </p></li><li class="listitem"><p>File offset of the previous block of the same type (long)</p><p>
+ Can be used for seeking to the previous data/index block
+                  </p></li><li class="listitem"><p>Compressed data (or uncompressed data if the compression algorithm is NONE).</p></li></ol></div><p>The above format of blocks is used in the following HFile sections:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Scanned block section. The section is named so because it contains all data blocks that need to be read when an HFile is scanned sequentially. &nbsp;Also contains leaf block index and Bloom chunk blocks. </p></li><li class="listitem"><p>Non-scanned block section. This section still contains unified-format v2 blocks but it does not have to be read when doing a sequential scan. This section contains &#8220;meta&#8221; blocks and intermediate-level index blocks.
+         </p></li></ol></div><p>We are supporting &#8220;meta&#8221; blocks in version 2 the same way they were supported in version 1, even though we do not store Bloom filter data in these blocks anymore. </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e152"></a>A.2.4.&nbsp; Block index in version 2</h3></div></div></div><p>There are three types of block indexes in HFile version 2, stored in two different formats (root and non-root): </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Data index &#8212; version 2 multi-level block index, consisting of:</p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>
+ Version 2 root index, stored in the data block index section of the file
+             </p></li><li class="listitem"><p>
+Optionally, version 2 intermediate levels, stored in the non%root format in   the data index section of the file.    Intermediate levels can only be present if leaf level blocks are present
+             </p></li><li class="listitem"><p>
+Optionally, version 2 leaf levels, stored in the non%root format inline with   data blocks
+             </p></li></ol></div></li><li class="listitem"><p>Meta index &#8212; version 2 root index format only, stored in the meta index section of the file</p></li><li class="listitem"><p>Bloom index &#8212; version 2 root index format only, stored in the &#8220;load-on-open&#8221; section as part of Bloom filter metadata.</p></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e177"></a>A.2.5.&nbsp;
+      Root block index format in version 2</h3></div></div></div><p>This format applies to:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Root level of the version 2 data index</p></li><li class="listitem"><p>Entire meta and Bloom indexes in version 2, which are always single-level. </p></li></ol></div><p>A version 2 root index block is a sequence of entries of the following format, similar to entries of a version 1 block index, but storing on-disk size instead of uncompressed size. </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Offset (long) </p><p>
+This offset may point to a data block or to a deeper&gt;level index block.
+             </p></li><li class="listitem"><p>On-disk size (int) </p></li><li class="listitem"><p>Key (a serialized byte array stored using Bytes.writeByteArray) </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>Key (VInt)
+             </p></li><li class="listitem"><p>Key bytes
+             </p></li></ol></div></li></ol></div><p>A single-level version 2 block index consists of just a single root index block. To read a root index block of version 2, one needs to know the number of entries. For the data index and the meta index the number of entries is stored in the trailer, and for the Bloom index it is stored in the compound Bloom filter metadata.</p><p>For a multi-level block index we also store the following fields in the root index block in the load-on-open section of the HFile, in addition to the data structure described above:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Middle leaf index block offset</p></li><li class="listitem"><p>Middle leaf block on-disk size (meaning the leaf index block containing the reference to the &#8220;middle&#8221; data block of the file) </p></li><li class="listitem"><p>The index of the mid-key (defined below) in the middle leaf-level block.</p></li></ol></div><p></p><p>These addit
 ional fields are used to efficiently retrieve the mid-key of the HFile used in HFile splits, which we define as the first key of the block with a zero-based index of (n &#8211; 1) / 2, if the total number of blocks in the HFile is n. This definition is consistent with how the mid-key was determined in HFile version 1, and is reasonable in general, because blocks are likely to be the same size on average, but we don&#8217;t have any estimates on individual key/value pair sizes. </p><p></p><p>When writing a version 2 HFile, the total number of data blocks pointed to by every leaf-level index block is kept track of. When we finish writing and the total number of leaf-level blocks is determined, it is clear which leaf-level block contains the mid-key, and the fields listed above are computed. &nbsp;When reading the HFile and the mid-key is requested, we retrieve the middle leaf index block (potentially from the block cache) and get the mid-key value from the appropriate position inside 
 that leaf block.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e230"></a>A.2.6.&nbsp;
+      Non-root block index format in version 2</h3></div></div></div><p>This format applies to intermediate-level and leaf index blocks of a version 2 multi-level data block index. Every non-root index block is structured as follows. </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>numEntries: the number of entries (int). </p></li><li class="listitem"><p>entryOffsets: the &#8220;secondary index&#8221; of offsets of entries in the block, to facilitate a quick binary search on the key (numEntries + 1 int values). The last value is the total length of all entries in this index block. For example, in a non-root index block with entry sizes 60, 80, 50 the &#8220;secondary index&#8221; will contain the following int array: {0, 60, 140, 190}.</p></li><li class="listitem"><p>Entries. Each entry contains: </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>
+Offset of the block referenced by this entry in the file (long)
+             </p></li><li class="listitem"><p>
+On&gt;disk size of the referenced block (int)
+             </p></li><li class="listitem"><p>
+Key. The length can be calculated from entryOffsets.
+             </p></li></ol></div></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e255"></a>A.2.7.&nbsp;
+      Bloom filters in version 2</h3></div></div></div><p>In contrast with version 1, in a version 2 HFile Bloom filter metadata is stored in the load-on-open section of the HFile for quick startup. </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A compound Bloom filter. </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>
+ Bloom filter version = 3 (int). There used to be a DynamicByteBloomFilter class that had the Bloom   filter version number 2
+             </p></li><li class="listitem"><p>
+The total byte size of all compound Bloom filter chunks (long)
+             </p></li><li class="listitem"><p>
+ Number of hash functions (int
+             </p></li><li class="listitem"><p>
+Type of hash functions (int)
+             </p></li><li class="listitem"><p>
+The total key count inserted into the Bloom filter (long)
+             </p></li><li class="listitem"><p>
+The maximum total number of keys in the Bloom filter (long)
+             </p></li><li class="listitem"><p>
+The number of chunks (int)
+             </p></li><li class="listitem"><p>
+Comparator class used for Bloom filter keys, a UTF&gt;8 encoded string stored   using Bytes.writeByteArray
+             </p></li><li class="listitem"><p>
+ Bloom block index in the version 2 root block index format
+             </p></li></ol></div></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e292"></a>A.2.8.&nbsp;File Info format in versions 1 and 2</h3></div></div></div><p>The file info block is a serialized <a class="link" href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/io/HbaseMapWritable.html" target="_top">HbaseMapWritable</a> (essentially a map from byte arrays to byte arrays) with the following keys, among others. StoreFile-level logic adds more keys to this.</p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><tbody><tr><td>
+               <p>hfile.LASTKEY </p>
+            </td><td>
+               <p>The last key of the file (byte array) </p>
+            </td></tr><tr><td>
+               <p>hfile.AVG_KEY_LEN </p>
+            </td><td>
+               <p>The average key length in the file (int) </p>
+            </td></tr><tr><td>
+               <p>hfile.AVG_VALUE_LEN </p>
+            </td><td>
+               <p>The average value length in the file (int) </p>
+            </td></tr></tbody></table></div><p>File info format did not change in version 2. However, we moved the file info to the final section of the file, which can be loaded as one block at the time the HFile is being opened. Also, we do not store comparator in the version 2 file info anymore. Instead, we store it in the fixed file trailer. This is because we need to know the comparator at the time of parsing the load-on-open section of the HFile.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e338"></a>A.2.9.&nbsp;
+      Fixed file trailer format differences between versions 1 and 2</h3></div></div></div><p>The following table shows common and different fields between fixed file trailers in versions 1 and 2. Note that the size of the trailer is different depending on the version, so it is &#8220;fixed&#8221; only within one version. However, the version is always stored as the last four-byte integer in the file. </p><p></p><div class="informaltable"><table border="1"><colgroup><col class="c1"><col class="c2"></colgroup><tbody><tr><td>
+               <p>Version 1 </p>
+            </td><td>
+               <p>Version 2 </p>
+            </td></tr><tr><td colspan="2" align="center">
+               <p>File info offset (long) </p>
+            </td></tr><tr><td>
+               <p>Data index offset (long) </p>
+            </td><td>
+                <p>loadOnOpenOffset (long)</p>
+                <p><span class="emphasis"><em>The offset of the section that we need toload when opening the file.</em></span></p>
+            </td></tr><tr><td colspan="2" align="center">
+               <p>Number of data index entries (int) </p>
+            </td></tr><tr><td>
+               <p>metaIndexOffset (long)</p>
+               <p>This field is not being used by the version 1 reader, so we removed it from version 2.</p>
+            </td><td>
+               <p>uncompressedDataIndexSize (long)</p>
+               <p>The total uncompressed size of the whole data block index, including root-level, intermediate-level, and leaf-level blocks.</p>
+            </td></tr><tr><td colspan="2" align="center">
+               <p>Number of meta index entries (int) </p>
+            </td></tr><tr><td colspan="2" align="center">
+               <p>Total uncompressed bytes (long) </p>
+            </td></tr><tr><td>
+               <p>numEntries (int) </p>
+            </td><td>
+               <p>numEntries (long) </p>
+            </td></tr><tr><td colspan="2" align="center">
+               <p>Compression codec: 0 = LZO, 1 = GZ, 2 = NONE (int) </p>
+            </td></tr><tr><td>
+               <p></p>
+            </td><td>
+               <p>The number of levels in the data block index (int) </p>
+            </td></tr><tr><td>
+               <p></p>
+            </td><td>
+               <p>firstDataBlockOffset (long)</p>
+               <p>The offset of the first first data block. Used when scanning. </p>
+            </td></tr><tr><td>
+               <p></p>
+            </td><td>
+               <p>lastDataBlockEnd (long)</p>
+               <p>The offset of the first byte after the last key/value data block. We don't need to go beyond this offset when scanning. </p>
+            </td></tr><tr><td>
+               <p>Version: 1 (int) </p>
+            </td><td>
+               <p>Version: 2 (int) </p>
+            </td></tr></tbody></table></div><p></p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d9858e481"></a>A.2.10.&nbsp;getShortMidpointKey(an optimization for data index block)</h3></div></div></div><p>Note: this optimization was introduced in HBase 0.95+</p><p>HFiles contain many blocks that contain a range of sorted Cells. Each cell has a key. To save IO when reading Cells, the HFile also has an index that maps a Cell's start key to the offset of the beginning of a particular block. Prior to this optimization, HBase would use the key of the first cell in each data block as the index key.</p><p>In HBASE-7845, we generate a new key that is lexicographically larger than the last key of the previous block and lexicographically equal or smaller than the start key of the current block. While actual keys can potentially be very long, this "fake key" or "virtual key" can be much shorter. For example, if the stop key of previous block is "the 
 quick brown fox", the start key of current block is "the who", we could use "the r" as our virtual key in our hfile index.</p><p>There are two benefits to this:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>having shorter keys reduces the hfile index size, (allowing us to keep more indexes in memory), and</p></li><li class="listitem"><p>using something closer to the end key of the previous block allows us to avoid a potential extra IO when the target key lives in between the "virtual key" and the key of the first element in the target block.</p></li></ul></div><p>This optimization (implemented by the getShortMidpointKey method) is inspired by LevelDB's ByteWiseComparatorImpl::FindShortestSeparator() and FindShortSuccessor().</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="hfilev3"></a>A.3.&nbsp;HBase File Format with Security Enhancements (version 3)</h
 2></div></div></div><p>Note: this feature was introduced in HBase 0.98</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="hfilev3.motivation"></a>A.3.1.&nbsp;Motivation </h3></div></div></div><p>
+        Version 3 of HFile makes changes needed to ease management of encryption at rest and
+        cell-level metadata (which in turn is needed for cell-level ACLs and cell-level visibility
+        labels). For more information see <a class="xref" href="#">???</a>,
+        <a class="xref" href="#">???</a>, <a class="xref" href="#">???</a>, and
+        <a class="xref" href="#">???</a>.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="hfilev3.overview"></a>A.3.2.&nbsp;Overview</h3></div></div></div><p>
+        The version of HBase introducing the above features reads HFiles in versions 1, 2, and 3 but
+        only writes version 3 HFiles. Version 3 HFiles are structured the same as version 2 HFiles.
+        For more information see <a class="xref" href="#hfilev2.overview" title="A.2.2.&nbsp;Overview of Version 2">Section&nbsp;A.2.2, &#8220;Overview of Version 2&#8221;</a>.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="hvilev3.infoblock"></a>A.3.3.&nbsp;File Info Block in Version 3</h3></div></div></div><p>
+        Version 3 added two additional pieces of information to the reserved keys in the file info
+        block.
+        </p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><tbody><tr><td>
+                    <p>hfile.MAX_TAGS_LEN</p>
+                 </td><td>
+                    <p>
+                      The maximum number of bytes needed to store the serialized tags for any single
+                      cell in this hfile (int)
+                    </p>
+                 </td></tr><tr><td>
+                    <p>hfile.TAGS_COMPRESSED</p>
+                 </td><td>
+                    <p>Does the block encoder for this hfile compress tags? (boolean)</p>
+                    <p>
+                      Should only be present if <code class="classname">hfile.MAX_TAGS_LEN</code> is also
+                      present.
+                    </p>
+                 </td></tr></tbody></table></div><p>
+      </p><p>
+        When reading a Version 3 HFile the presence of <code class="classname">MAX_TAGS_LEN</code> is used
+        to determine how to deserialize the cells within a data block. Therefore, consumers must
+        read the file's info block prior to reading any data blocks.
+      </p><p>
+        When writing a Version 3 HFile, HBase will always include <code class="classname">MAX_TAGS_LEN
+        </code> when flushing the memstore to underlying filesystem and when using prefix tree
+        encoding for data blocks, as described in <a class="xref" href="#">???</a>. When compacting
+        extant files, the default writer will omit <code class="classname">MAX_TAGS_LEN</code> if all of the
+        files selected do not themselves contain any cells with tags. See
+        <a class="xref" href="#">???</a> for details on the compaction file selection algorithm.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="hfilev3.datablock"></a>A.3.4.&nbsp;Data Blocks in Version 3</h3></div></div></div><p>
+        Within an HFile, HBase cells are stored in data blocks as a sequence of KeyValues (see <a class="xref" href="#hfilev1.overview" title="A.1.1.&nbsp;Overview of Version 1">Section&nbsp;A.1.1, &#8220;Overview of Version 1&#8221;</a>, or <a class="link" href="http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html" target="_top">Lars George's
+        excellent introduction to HBase Storage</a>). In version 3, these KeyValue optionally
+        will include a set of 0 or more tags:
+        </p><div class="informaltable"><table border="1"><colgroup><col class="c1"><col class="c2"></colgroup><tbody><tr><td>
+                  <p>Version 1 &amp; 2</p>
+                  <p>Version 3 without MAX_TAGS_LEN</p>
+                </td><td><p>Version 3 with MAX_TAGS_LEN</p></td></tr><tr><td colspan="2" align="center">
+                  <p>Key Length (4 bytes)</p>
+                </td></tr><tr><td colspan="2" align="center">
+                  <p>Value Length (4 bytes)</p>
+                </td></tr><tr><td colspan="2" align="center">
+                  <p>Key bytes (variable)</p>
+                </td></tr><tr><td colspan="2" align="center">
+                  <p>Value bytes (variable)</p>
+                </td></tr><tr><td class="auto-generated">&nbsp;</td><td align="center">
+                  <p>Tags Length (2 bytes)</p>
+                </td></tr><tr><td class="auto-generated">&nbsp;</td><td align="center">
+                  <p>Tags bytes (variable)</p>
+                </td></tr></tbody></table></div><p>
+      </p><p>
+        If the info block for a given HFile contains an entry for
+        <code class="classname">MAX_TAGS_LEN</code> each cell will have the length of that cell's tags
+        included, even if that length is zero. The actual tags are stored as a sequence of tag
+        length (2 bytes), tag type (1 byte), tag bytes (variable). The format an individual tag's
+        bytes depends on the tag type.
+      </p><p>
+        Note that the dependence on the contents of the info block implies that prior to reading
+        any data blocks you must first process a file's info block. It also implies that prior to
+        writing a data block you must know if the file's info block will include
+        <code class="classname">MAX_TAGS_LEN</code>.
+      </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="hfilev3.fixedtrailer"></a>A.3.5.&nbsp;Fixed File Trailer in Version 3</h3></div></div></div><p>
+        The fixed file trailers written with HFile version 3 are always serialized with protocol
+        buffers. Additionally, it adds an optional field to the version 2 protocol buffer named
+        encryption_key. If HBase is configured to encrypt HFiles this field will store a data
+        encryption key for this particular HFile, encrypted with the current cluster master key
+        using AES. For more information see <a class="xref" href="#">???</a>.
+      </p></div></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.d9858e24" class="footnote"><p><a href="#d9858e24" class="para"><sup class="para">[1] </sup></a>Image courtesy of Lars George, <a class="link" href="http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html" target="_top">hbase-architecture-101-storage.html</a>.</p></div></div></div><div id="disqus_thread"></div><script type="text/javascript">
+    /* * * DON'T EDIT BELOW THIS LINE * * */
+    (function() {
+        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
+        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+    })();
+</script><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript><a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a></body></html>
\ No newline at end of file



Mime
View raw message