You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by bu...@apache.org on 2012/03/23 20:08:14 UTC

svn commit: r809758 [7/9] - in /websites/staging/accumulo/trunk/content: ./ accumulo/ accumulo/1.4/ accumulo/1.4/examples/ accumulo/1.4/user_manual/ accumulo/downloads/ accumulo/downloads/1.3.5/ accumulo/example/ accumulo/governance/ accumulo/user_manu...

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/Table_Configuration.html
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/Table_Configuration.html
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/Table_Design.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/Table_Design.html (added)
+++ websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/Table_Design.html Fri Mar 23 19:08:12 2012
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    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.
+-->
+  <link href="/accumulo/css/accumulo.css" rel="stylesheet" type="text/css">
+  <title>Apache Accumulo User Manual: Table Design</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script type="text/javascript">
+
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-21103458-6']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+
+  </script>
+</head>
+
+<body>
+  <div id="banner">&nbsp;
+  </div>
+
+  <div id="navigation">
+  <h1 id="project">Project</h1>
+<ul>
+<li><a href="/accumulo">Home</a></li>
+<li><a href="http://incubator.apache.org/projects/accumulo.html">Incubator page</a></li>
+<li><a href="/accumulo/downloads/downloads.html">Downloads</a></li>
+<li><a href="/accumulo/notable_features.html">Features</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+</ul>
+<h1 id="community">Community</h1>
+<ul>
+<li><a href="/accumulo/get_involved.html">Get Involved</a></li>
+<li><a href="/accumulo/mailing_list.html">Mailing Lists</a></li>
+<li><a href="https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-2&amp;selectedProjectId=12312121&amp;reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport">People</a></li>
+</ul>
+<h1 id="development">Development</h1>
+<ul>
+<li><a href="/accumulo/source.html">Source &amp; Guide</a></li>
+<li><a href="https://issues.apache.org/jira/browse/accumulo">Issues</a></li>
+<li><a href="https://builds.apache.org/view/A-F/view/Accumulo/">Builds</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
+<li><a href="/accumulo/screenshots.html">Screenshots</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
+</ul>
+<h1 id="asf-links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+  </div>
+
+  <div id="bannertext">
+    <img id="logo" alt="Apache Accumulo (Incubating)" src="/accumulo/images/accumulo-logo.png"/>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Apache Accumulo User Manual: Table Design</h1>
+    <p><strong> Next:</strong> <a href="High_Speed_Ingest.html">High-Speed Ingest</a> <strong> Up:</strong> <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.4</a> <strong> Previous:</strong> <a href="Table_Configuration.html">Table Configuration</a>   <strong> <a href="Contents.html">Contents</a></strong> <br />
+</p>
+<p><a id=CHILD_LINKS></a><strong>Subsections</strong></p>
+<ul>
+<li><a href="Table_Design.html#Basic_Table">Basic Table</a></li>
+<li><a href="Table_Design.html#RowID_Design">RowID Design</a></li>
+<li><a href="Table_Design.html#Indexing">Indexing</a></li>
+<li><a href="Table_Design.html#Entity-Attribute_and_Graph_Tables">Entity-Attribute and Graph Tables</a></li>
+<li><a href="Table_Design.html#Document-Partitioned_Indexing">Document-Partitioned Indexing</a></li>
+</ul>
+<hr />
+<h2 id="wzxhzdk10wzxhzdk11-table-design"><a id=Table_Design></a> Table Design</h2>
+<h2 id="wzxhzdk12wzxhzdk13-basic-table"><a id=Basic_Table></a> Basic Table</h2>
+<p>Since Accumulo tables are sorted by row ID, each table can be thought of as being indexed by the row ID. Lookups performed row ID can be executed quickly, by doing a binary search, first across the tablets, and then within a tablet. Clients should choose a row ID carefully in order to support their desired application. A simple rule is to select a unique identifier as the row ID for each entity to be stored and assign all the other attributes to be tracked to be columns under this row ID. For example, if we have the following data in a comma-separated file: </p>
+<div class="codehilite"><pre>    <span class="n">userid</span><span class="p">,</span><span class="n">age</span><span class="p">,</span><span class="n">address</span><span class="p">,</span><span class="n">account</span><span class="o">-</span><span class="n">balance</span>
+</pre></div>
+
+
+<p>We might choose to store this data using the userid as the rowID and the rest of the data in column families: </p>
+<div class="codehilite"><pre><span class="n">Mutation</span> <span class="n">m</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Mutation</span><span class="p">(</span><span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="n">userid</span><span class="p">));</span>
+<span class="n">m</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;age&quot;</span><span class="p">),</span> <span class="n">age</span><span class="p">);</span>
+<span class="n">m</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;address&quot;</span><span class="p">),</span> <span class="n">address</span><span class="p">);</span>
+<span class="n">m</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;balance&quot;</span><span class="p">),</span> <span class="n">account_balance</span><span class="p">);</span>
+
+<span class="n">writer</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">m</span><span class="p">);</span>
+</pre></div>
+
+
+<p>We could then retrieve any of the columns for a specific userid by specifying the userid as the range of a scanner and fetching specific columns: </p>
+<div class="codehilite"><pre><span class="n">Range</span> <span class="n">r</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Range</span><span class="p">(</span><span class="n">userid</span><span class="p">,</span> <span class="n">userid</span><span class="p">);</span> <span class="sr">//</span> <span class="n">single</span> <span class="n">row</span>
+<span class="n">Scanner</span> <span class="n">s</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">createScanner</span><span class="p">(</span><span class="s">&quot;userdata&quot;</span><span class="p">,</span> <span class="n">auths</span><span class="p">);</span>
+<span class="n">s</span><span class="o">.</span><span class="n">setRange</span><span class="p">(</span><span class="n">r</span><span class="p">);</span>
+<span class="n">s</span><span class="o">.</span><span class="n">fetchColumnFamily</span><span class="p">(</span><span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;age&quot;</span><span class="p">));</span>
+
+<span class="k">for</span><span class="p">(</span><span class="n">Entry</span><span class="sr">&lt;Key,Value&gt;</span> <span class="n">entry</span> <span class="p">:</span> <span class="n">s</span><span class="p">)</span>
+    <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">getValue</span><span class="p">()</span><span class="o">.</span><span class="n">toString</span><span class="p">());</span>
+</pre></div>
+
+
+<h2 id="wzxhzdk14wzxhzdk15-rowid-design"><a id=RowID_Design></a> RowID Design</h2>
+<p>Often it is necessary to transform the rowID in order to have rows ordered in a way that is optimal for anticipated access patterns. A good example of this is reversing the order of components of internet domain names in order to group rows of the same parent domain together: </p>
+<div class="codehilite"><pre><span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">code</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">labs</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">mail</span>
+<span class="n">com</span><span class="o">.</span><span class="n">yahoo</span><span class="o">.</span><span class="n">mail</span>
+<span class="n">com</span><span class="o">.</span><span class="n">yahoo</span><span class="o">.</span><span class="n">research</span>
+</pre></div>
+
+
+<p>Some data may result in the creation of very large rows - rows with many columns. In this case the table designer may wish to split up these rows for better load balancing while keeping them sorted together for scanning purposes. This can be done by appending a random substring at the end of the row: </p>
+<div class="codehilite"><pre><span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">code_00</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">code_01</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">code_02</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">labs_00</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">mail_00</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">mail_01</span>
+</pre></div>
+
+
+<p>It could also be done by adding a string representation of some period of time such as date to the week or month: </p>
+<div class="codehilite"><pre><span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">code_201003</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">code_201004</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">code_201005</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">labs_201003</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">mail_201003</span>
+<span class="n">com</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">mail_201004</span>
+</pre></div>
+
+
+<p>Appending dates provides the additional capability of restricting a scan to a given date range. </p>
+<h2 id="wzxhzdk16wzxhzdk17-indexing"><a id=Indexing></a> Indexing</h2>
+<p>In order to support lookups via more than one attribute of an entity, additional indexes can be built. However, because Accumulo tables can support any number of columns without specifying them beforehand, a single additional index will often suffice for supporting lookups of records in the main table. Here, the index has, as the rowID, the Value or Term from the main table, the column families are the same, and the column qualifier of the index table contains the rowID from the main table. </p>
+<p><img alt="converted table" src="img4.png" /></p>
+<p>Note: We store rowIDs in the column qualifier rather than the Value so that we can have more than one rowID associated with a particular term within the index. If we stored this in the Value we would only see one of the rows in which the value appears since Accumulo is configured by default to return the one most recent value associated with a key. </p>
+<p>Lookups can then be done by scanning the Index Table first for occurrences of the desired values in the columns specified, which returns a list of row ID from the main table. These can then be used to retrieve each matching record, in their entirety, or a subset of their columns, from the Main Table. </p>
+<p>To support efficient lookups of multiple rowIDs from the same table, the Accumulo client library provides a BatchScanner. Users specify a set of Ranges to the BatchScanner, which performs the lookups in multiple threads to multiple servers and returns an Iterator over all the rows retrieved. The rows returned are NOT in sorted order, as is the case with the basic Scanner interface. </p>
+<div class="codehilite"><pre><span class="sr">//</span> <span class="n">first</span> <span class="n">we</span> <span class="n">scan</span> <span class="n">the</span> <span class="nb">index</span> <span class="k">for</span> <span class="n">IDs</span> <span class="n">of</span> <span class="n">rows</span> <span class="n">matching</span> <span class="k">our</span> <span class="n">query</span>
+
+<span class="n">Text</span> <span class="n">term</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;mySearchTerm&quot;</span><span class="p">);</span>
+
+<span class="n">HashSet</span><span class="sr">&lt;Text&gt;</span> <span class="n">matchingRows</span> <span class="o">=</span> <span class="k">new</span> <span class="n">HashSet</span><span class="sr">&lt;Text&gt;</span><span class="p">();</span>
+
+<span class="n">Scanner</span> <span class="n">indexScanner</span> <span class="o">=</span> <span class="n">createScanner</span><span class="p">(</span><span class="s">&quot;index&quot;</span><span class="p">,</span> <span class="n">auths</span><span class="p">);</span>
+<span class="n">indexScanner</span><span class="o">.</span><span class="n">setRange</span><span class="p">(</span><span class="k">new</span> <span class="n">Range</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">term</span><span class="p">));</span>
+
+<span class="sr">//</span> <span class="n">we</span> <span class="n">retrieve</span> <span class="n">the</span> <span class="n">matching</span> <span class="n">rowIDs</span> <span class="ow">and</span> <span class="n">create</span> <span class="n">a</span> <span class="n">set</span> <span class="n">of</span> <span class="n">ranges</span>
+<span class="k">for</span><span class="p">(</span><span class="n">Entry</span><span class="sr">&lt;Key,Value&gt;</span> <span class="n">entry</span> <span class="p">:</span> <span class="n">indexScanner</span><span class="p">)</span>
+    <span class="n">matchingRows</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="n">entry</span><span class="o">.</span><span class="n">getValue</span><span class="p">()));</span>
+
+<span class="sr">//</span> <span class="n">now</span> <span class="n">we</span> <span class="n">pass</span> <span class="n">the</span> <span class="n">set</span> <span class="n">of</span> <span class="n">rowIDs</span> <span class="n">to</span> <span class="n">the</span> <span class="n">batch</span> <span class="n">scanner</span> <span class="n">to</span> <span class="n">retrieve</span> <span class="n">them</span>
+<span class="n">BatchScanner</span> <span class="n">bscan</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">createBatchScanner</span><span class="p">(</span><span class="s">&quot;table&quot;</span><span class="p">,</span> <span class="n">auths</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span>
+
+<span class="n">bscan</span><span class="o">.</span><span class="n">setRanges</span><span class="p">(</span><span class="n">matchingRows</span><span class="p">);</span>
+<span class="n">bscan</span><span class="o">.</span><span class="n">fetchFamily</span><span class="p">(</span><span class="s">&quot;attributes&quot;</span><span class="p">);</span>
+
+<span class="k">for</span><span class="p">(</span><span class="n">Entry</span><span class="sr">&lt;Key,Value&gt;</span> <span class="n">entry</span> <span class="p">:</span> <span class="n">scan</span><span class="p">)</span>
+    <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">getValue</span><span class="p">());</span>
+</pre></div>
+
+
+<p>One advantage of the dynamic schema capabilities of Accumulo is that different fields may be indexed into the same physical table. However, it may be necessary to create different index tables if the terms must be formatted differently in order to maintain proper sort order. For example, real numbers must be formatted differently than their usual notation in order to be sorted correctly. In these cases, usually one index per unique data type will suffice. </p>
+<h2 id="wzxhzdk18wzxhzdk19-entity-attribute-and-graph-tables"><a id=Entity-Attribute_and_Graph_Tables></a> Entity-Attribute and Graph Tables</h2>
+<p>Accumulo is ideal for storing entities and their attributes, especially of the attributes are sparse. It is often useful to join several datasets together on common entities within the same table. This can allow for the representation of graphs, including nodes, their attributes, and connections to other nodes. </p>
+<p>Rather than storing individual events, Entity-Attribute or Graph tables store aggregate information about the entities involved in the events and the relationships between entities. This is often preferrable when single events aren't very useful and when a continuously updated summarization is desired. </p>
+<p>The physical schema for an entity-attribute or graph table is as follows: </p>
+<p><img alt="converted table" src="img5.png" /></p>
+<p>For example, to keep track of employees, managers and products the following entity-attribute table could be used. Note that the weights are not always necessary and are set to 0 when not used. </p>
+<p><img alt="converted table" src="img6.png" /> <br />
+</p>
+<p>To allow efficient updating of edge weights, an aggregating iterator can be configured to add the value of all mutations applied with the same key. These types of tables can easily be created from raw events by simply extracting the entities, attributes, and relationships from individual events and inserting the keys into Accumulo each with a count of 1. The aggregating iterator will take care of maintaining the edge weights. </p>
+<h2 id="wzxhzdk20wzxhzdk21-document-partitioned-indexing"><a id=Document-Partitioned_Indexing></a> Document-Partitioned Indexing</h2>
+<p>Using a simple index as described above works well when looking for records that match one of a set of given criteria. When looking for records that match more than one criterion simultaneously, such as when looking for documents that contain all of the words <code>the' and</code>white' and `house', there are several issues. </p>
+<p>First is that the set of all records matching any one of the search terms must be sent to the client, which incurs a lot of network traffic. The second problem is that the client is responsible for performing set intersection on the sets of records returned to eliminate all but the records matching all search terms. The memory of the client may easily be overwhelmed during this operation. </p>
+<p>For these reasons Accumulo includes support for a scheme known as sharded indexing, in which these set operations can be performed at the TabletServers and decisions about which records to include in the result set can be made without incurring network traffic. </p>
+<p>This is accomplished via partitioning records into bins that each reside on at most one TabletServer, and then creating an index of terms per record within each bin as follows: </p>
+<p><img alt="converted table" src="img7.png" /></p>
+<p>Documents or records are mapped into bins by a user-defined ingest application. By storing the BinID as the RowID we ensure that all the information for a particular bin is contained in a single tablet and hosted on a single TabletServer since Accumulo never splits rows across tablets. Storing the Terms as column families serves to enable fast lookups of all the documents within this bin that contain the given term. </p>
+<p>Finally, we perform set intersection operations on the TabletServer via a special iterator called the Intersecting Iterator. Since documents are partitioned into many bins, a search of all documents must search every bin. We can use the BatchScanner to scan all bins in parallel. The Intersecting Iterator should be enabled on a BatchScanner within user query code as follows: </p>
+<div class="codehilite"><pre><span class="n">Text</span><span class="o">[]</span> <span class="n">terms</span> <span class="o">=</span> <span class="p">{</span><span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;the&quot;</span><span class="p">),</span> <span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;white&quot;</span><span class="p">),</span> <span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;house&quot;</span><span class="p">)};</span>
+
+<span class="n">BatchScanner</span> <span class="n">bs</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">createBatchScanner</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">auths</span><span class="p">,</span> <span class="mi">20</span><span class="p">);</span>
+<span class="n">IteratorSetting</span> <span class="n">iter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">IteratorSetting</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="s">&quot;ii&quot;</span><span class="p">,</span> <span class="n">IntersectingIterator</span><span class="o">.</span><span class="n">class</span><span class="p">);</span>
+<span class="n">IntersectingIterator</span><span class="o">.</span><span class="n">setColumnFamilies</span><span class="p">(</span><span class="n">iter</span><span class="p">,</span> <span class="n">terms</span><span class="p">);</span>
+<span class="n">bs</span><span class="o">.</span><span class="n">addScanIterator</span><span class="p">(</span><span class="n">iter</span><span class="p">);</span>
+<span class="n">bs</span><span class="o">.</span><span class="n">setRanges</span><span class="p">(</span><span class="n">Collections</span><span class="o">.</span><span class="n">singleton</span><span class="p">(</span><span class="k">new</span> <span class="n">Range</span><span class="p">()));</span>
+
+<span class="k">for</span><span class="p">(</span><span class="n">Entry</span><span class="sr">&lt;Key,Value&gt;</span> <span class="n">entry</span> <span class="p">:</span> <span class="n">bs</span><span class="p">)</span> <span class="p">{</span>
+    <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot; &quot;</span> <span class="o">+</span> <span class="n">entry</span><span class="o">.</span><span class="n">getKey</span><span class="p">()</span><span class="o">.</span><span class="n">getColumnQualifier</span><span class="p">());</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>This code effectively has the BatchScanner scan all tablets of a table, looking for documents that match all the given terms. Because all tablets are being scanned for every query, each query is more expensive than other Accumulo scans, which typically involve a small number of TabletServers. This reduces the number of concurrent queries supported and is subject to what is known as the `straggler' problem in which every query runs as slow as the slowest server participating. </p>
+<p>Of course, fast servers will return their results to the client which can display them to the user immediately while they wait for the rest of the results to arrive. If the results are unordered this is quite effective as the first results to arrive are as good as any others to the user. </p>
+<hr />
+<p><strong> Next:</strong> <a href="High_Speed_Ingest.html">High-Speed Ingest</a> <strong> Up:</strong> <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.4</a> <strong> Previous:</strong> <a href="Table_Configuration.html">Table Configuration</a>   <strong> <a href="Contents.html">Contents</a></strong></p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div> 
+    <a alt="Apache Incubator" href="http://incubator.apache.org">
+      <img id="asf-logo" alt="Apache Incubator" src="/accumulo/images/apache-incubator-logo.png" width="150"/>
+    </a>
+
+  </div>
+
+</body>
+</html>

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/Writing_Accumulo_Clients.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/Writing_Accumulo_Clients.html (added)
+++ websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/Writing_Accumulo_Clients.html Fri Mar 23 19:08:12 2012
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    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.
+-->
+  <link href="/accumulo/css/accumulo.css" rel="stylesheet" type="text/css">
+  <title>Apache Accumulo User Manual: Writing Accumulo Clients</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script type="text/javascript">
+
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-21103458-6']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+
+  </script>
+</head>
+
+<body>
+  <div id="banner">&nbsp;
+  </div>
+
+  <div id="navigation">
+  <h1 id="project">Project</h1>
+<ul>
+<li><a href="/accumulo">Home</a></li>
+<li><a href="http://incubator.apache.org/projects/accumulo.html">Incubator page</a></li>
+<li><a href="/accumulo/downloads/downloads.html">Downloads</a></li>
+<li><a href="/accumulo/notable_features.html">Features</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+</ul>
+<h1 id="community">Community</h1>
+<ul>
+<li><a href="/accumulo/get_involved.html">Get Involved</a></li>
+<li><a href="/accumulo/mailing_list.html">Mailing Lists</a></li>
+<li><a href="https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-2&amp;selectedProjectId=12312121&amp;reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport">People</a></li>
+</ul>
+<h1 id="development">Development</h1>
+<ul>
+<li><a href="/accumulo/source.html">Source &amp; Guide</a></li>
+<li><a href="https://issues.apache.org/jira/browse/accumulo">Issues</a></li>
+<li><a href="https://builds.apache.org/view/A-F/view/Accumulo/">Builds</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
+<li><a href="/accumulo/screenshots.html">Screenshots</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
+</ul>
+<h1 id="asf-links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+  </div>
+
+  <div id="bannertext">
+    <img id="logo" alt="Apache Accumulo (Incubating)" src="/accumulo/images/accumulo-logo.png"/>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Apache Accumulo User Manual: Writing Accumulo Clients</h1>
+    <p><strong> Next:</strong> <a href="Table_Configuration.html">Table Configuration</a> <strong> Up:</strong> <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.4</a> <strong> Previous:</strong> <a href="Accumulo_Shell.html">Accumulo Shell</a>   <strong> <a href="Contents.html">Contents</a></strong> <br />
+</p>
+<p><a id=CHILD_LINKS></a><strong>Subsections</strong></p>
+<ul>
+<li><a href="Writing_Accumulo_Clients.html#Running_Client_Code">Running Client Code</a></li>
+<li><a href="Writing_Accumulo_Clients.html#Connecting">Connecting</a></li>
+<li><a href="Writing_Accumulo_Clients.html#Writing_Data">Writing Data</a></li>
+<li><a href="Writing_Accumulo_Clients.html#Reading_Data">Reading Data</a></li>
+</ul>
+<hr />
+<h2 id="wzxhzdk8wzxhzdk9-writing-accumulo-clients"><a id=Writing_Accumulo_Clients></a> Writing Accumulo Clients</h2>
+<h2 id="wzxhzdk10wzxhzdk11-running-client-code"><a id=Running_Client_Code></a> Running Client Code</h2>
+<p>There are multiple ways to run Java code that uses Accumulo. Below is a list of the different ways to execute client code. </p>
+<ul>
+<li>using java executable </li>
+<li>using the accumulo script </li>
+<li>using the tool script </li>
+</ul>
+<p>Inorder to run client code written to run against Accumulo, you will need to include the jars that Accumulo depends on in your classpath. Accumulo client code depends on Hadoop and Zookeeper. For Hadoop add the hadoop core jar, all of the jars in the Hadoop lib directory, and the conf directory to the classpath. For Zookeeper 3.3 you only need to add the Zookeeper jar, and not what is in the Zookeeper lib directory. You can run the following command on a configured Accumulo system to see what its using for its classpath. </p>
+<div class="codehilite"><pre><span class="nv">$ACCUMULO_HOME</span><span class="sr">/bin/</span><span class="n">accumulo</span> <span class="n">classpath</span>
+</pre></div>
+
+
+<p>Another option for running your code is to put a jar file in $ACCUMULO_HOME/lib/ext. After doing this you can use the accumulo script to execute your code. For example if you create a jar containing the class com.foo.Client and placed that in lib/ext, then you could use the command $ACCUMULO_HOME/bin/accumulo com.foo.Client to execute your code. </p>
+<p>If you are writing map reduce job that access Accumulo, then you can use the bin/tool.sh script to run those jobs. See the map reduce example. </p>
+<h2 id="wzxhzdk12wzxhzdk13-connecting"><a id=Connecting></a> Connecting</h2>
+<p>All clients must first identify the Accumulo instance to which they will be communicating. Code to do this is as follows: </p>
+<div class="codehilite"><pre><span class="n">String</span> <span class="n">instanceName</span> <span class="o">=</span> <span class="s">&quot;myinstance&quot;</span><span class="p">;</span>
+<span class="n">String</span> <span class="n">zooServers</span> <span class="o">=</span> <span class="s">&quot;zooserver-one,zooserver-two&quot;</span>
+<span class="n">Instance</span> <span class="n">inst</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ZooKeeperInstance</span><span class="p">(</span><span class="n">instanceName</span><span class="p">,</span> <span class="n">zooServers</span><span class="p">);</span>
+
+<span class="n">Connector</span> <span class="n">conn</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">getConnector</span><span class="p">(</span><span class="s">&quot;user&quot;</span><span class="p">,</span> <span class="s">&quot;passwd&quot;</span><span class="p">);</span>
+</pre></div>
+
+
+<h2 id="wzxhzdk14wzxhzdk15-writing-data"><a id=Writing_Data></a> Writing Data</h2>
+<p>Data are written to Accumulo by creating Mutation objects that represent all the changes to the columns of a single row. The changes are made atomically in the TabletServer. Clients then add Mutations to a BatchWriter which submits them to the appropriate TabletServers. </p>
+<p>Mutations can be created thus: </p>
+<div class="codehilite"><pre><span class="n">Text</span> <span class="n">rowID</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;row1&quot;</span><span class="p">);</span>
+<span class="n">Text</span> <span class="n">colFam</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;myColFam&quot;</span><span class="p">);</span>
+<span class="n">Text</span> <span class="n">colQual</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Text</span><span class="p">(</span><span class="s">&quot;myColQual&quot;</span><span class="p">);</span>
+<span class="n">ColumnVisibility</span> <span class="n">colVis</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ColumnVisibility</span><span class="p">(</span><span class="s">&quot;public&quot;</span><span class="p">);</span>
+<span class="n">long</span> <span class="n">timestamp</span> <span class="o">=</span> <span class="n">System</span><span class="o">.</span><span class="n">currentTimeMillis</span><span class="p">();</span>
+
+<span class="n">Value</span> <span class="n">value</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Value</span><span class="p">(</span><span class="s">&quot;myValue&quot;</span><span class="o">.</span><span class="n">getBytes</span><span class="p">());</span>
+
+<span class="n">Mutation</span> <span class="n">mutation</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Mutation</span><span class="p">(</span><span class="n">rowID</span><span class="p">);</span>
+<span class="n">mutation</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="n">colFam</span><span class="p">,</span> <span class="n">colQual</span><span class="p">,</span> <span class="n">colVis</span><span class="p">,</span> <span class="n">timestamp</span><span class="p">,</span> <span class="n">value</span><span class="p">);</span>
+</pre></div>
+
+
+<h3 id="wzxhzdk16wzxhzdk17-batchwriter"><a id=BatchWriter></a> BatchWriter</h3>
+<p>The BatchWriter is highly optimized to send Mutations to multiple TabletServers and automatically batches Mutations destined for the same TabletServer to amortize network overhead. Care must be taken to avoid changing the contents of any Object passed to the BatchWriter since it keeps objects in memory while batching. </p>
+<p>Mutations are added to a BatchWriter thus: </p>
+<div class="codehilite"><pre><span class="n">long</span> <span class="n">memBuf</span> <span class="o">=</span> <span class="mi">1000000</span><span class="n">L</span><span class="p">;</span> <span class="sr">//</span> <span class="n">bytes</span> <span class="n">to</span> <span class="n">store</span> <span class="n">before</span> <span class="n">sending</span> <span class="n">a</span> <span class="n">batch</span>
+<span class="n">long</span> <span class="n">timeout</span> <span class="o">=</span> <span class="mi">1000</span><span class="n">L</span><span class="p">;</span> <span class="sr">//</span> <span class="n">milliseconds</span> <span class="n">to</span> <span class="nb">wait</span> <span class="n">before</span> <span class="n">sending</span>
+<span class="nb">int</span> <span class="n">numThreads</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>
+
+<span class="n">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span>
+    <span class="n">conn</span><span class="o">.</span><span class="n">createBatchWriter</span><span class="p">(</span><span class="s">&quot;table&quot;</span><span class="p">,</span> <span class="n">memBuf</span><span class="p">,</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">numThreads</span><span class="p">)</span>
+
+<span class="n">writer</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">mutation</span><span class="p">);</span>
+
+<span class="n">writer</span><span class="o">.</span><span class="nb">close</span><span class="p">();</span>
+</pre></div>
+
+
+<p>An example of using the batch writer can be found at <br />
+accumulo/docs/examples/README.batch </p>
+<h2 id="wzxhzdk18wzxhzdk19-reading-data"><a id=Reading_Data></a> Reading Data</h2>
+<p>Accumulo is optimized to quickly retrieve the value associated with a given key, and to efficiently return ranges of consecutive keys and their associated values. </p>
+<h3 id="wzxhzdk20wzxhzdk21-scanner"><a id=Scanner></a> Scanner</h3>
+<p>To retrieve data, Clients use a Scanner, which provides acts like an Iterator over keys and values. Scanners can be configured to start and stop at particular keys, and to return a subset of the columns available. </p>
+<div class="codehilite"><pre><span class="sr">//</span> <span class="n">specify</span> <span class="n">which</span> <span class="n">visibilities</span> <span class="n">we</span> <span class="n">are</span> <span class="n">allowed</span> <span class="n">to</span> <span class="n">see</span>
+<span class="n">Authorizations</span> <span class="n">auths</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Authorizations</span><span class="p">(</span><span class="s">&quot;public&quot;</span><span class="p">);</span>
+
+<span class="n">Scanner</span> <span class="n">scan</span> <span class="o">=</span>
+    <span class="n">conn</span><span class="o">.</span><span class="n">createScanner</span><span class="p">(</span><span class="s">&quot;table&quot;</span><span class="p">,</span> <span class="n">auths</span><span class="p">);</span>
+
+<span class="n">scan</span><span class="o">.</span><span class="n">setRange</span><span class="p">(</span><span class="k">new</span> <span class="n">Range</span><span class="p">(</span><span class="s">&quot;harry&quot;</span><span class="p">,</span><span class="s">&quot;john&quot;</span><span class="p">));</span>
+<span class="n">scan</span><span class="o">.</span><span class="n">fetchFamily</span><span class="p">(</span><span class="s">&quot;attributes&quot;</span><span class="p">);</span>
+
+<span class="k">for</span><span class="p">(</span><span class="n">Entry</span><span class="sr">&lt;Key,Value&gt;</span> <span class="n">entry</span> <span class="p">:</span> <span class="n">scan</span><span class="p">)</span> <span class="p">{</span>
+    <span class="n">String</span> <span class="n">row</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">getKey</span><span class="p">()</span><span class="o">.</span><span class="n">getRow</span><span class="p">();</span>
+    <span class="n">Value</span> <span class="n">value</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">getValue</span><span class="p">();</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<h3 id="wzxhzdk22wzxhzdk23-isolated-scanner"><a id=Isolated_Scanner></a> Isolated Scanner</h3>
+<p>Accumulo supports the ability to present an isolated view of rows when scanning. There are three possible ways that a row could change in accumulo : </p>
+<ul>
+<li>a mutation applied to a table </li>
+<li>iterators executed as part of a minor or major compaction </li>
+<li>bulk import of new files </li>
+</ul>
+<p>Isolation guarantees that either all or none of the changes made by these operations on a row are seen. Use the IsolatedScanner to obtain an isolated view of an accumulo table. When using the regular scanner it is possible to see a non isolated view of a row. For example if a mutation modifies three columns, it is possible that you will only see two of those modifications. With the isolated scanner either all three of the changes are seen or none. </p>
+<p>The IsolatedScanner buffers rows on the client side so a large row will not crash a tablet server. By default rows are buffered in memory, but the user can easily supply their own buffer if they wish to buffer to disk when rows are large. </p>
+<p>For an example, look at the following <br />
+src/examples/src/main/java/org/apache/accumulo/examples/isolation/InterferenceTest.java</p>
+<h3 id="wzxhzdk24wzxhzdk25-batchscanner"><a id=BatchScanner></a> BatchScanner</h3>
+<p>For some types of access, it is more efficient to retrieve several ranges simultaneously. This arises when accessing a set of rows that are not consecutive whose IDs have been retrieved from a secondary index, for example. </p>
+<p>The BatchScanner is configured similarly to the Scanner; it can be configured to retrieve a subset of the columns available, but rather than passing a single Range, BatchScanners accept a set of Ranges. It is important to note that the keys returned by a BatchScanner are not in sorted order since the keys streamed are from multiple TabletServers in parallel. </p>
+<div class="codehilite"><pre><span class="n">ArrayList</span><span class="sr">&lt;Range&gt;</span> <span class="n">ranges</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="sr">&lt;Range&gt;</span><span class="p">();</span>
+<span class="sr">//</span> <span class="n">populate</span> <span class="n">list</span> <span class="n">of</span> <span class="n">ranges</span> <span class="o">...</span>
+
+<span class="n">BatchScanner</span> <span class="n">bscan</span> <span class="o">=</span>
+    <span class="n">conn</span><span class="o">.</span><span class="n">createBatchScanner</span><span class="p">(</span><span class="s">&quot;table&quot;</span><span class="p">,</span> <span class="n">auths</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span>
+
+<span class="n">bscan</span><span class="o">.</span><span class="n">setRanges</span><span class="p">(</span><span class="n">ranges</span><span class="p">);</span>
+<span class="n">bscan</span><span class="o">.</span><span class="n">fetchFamily</span><span class="p">(</span><span class="s">&quot;attributes&quot;</span><span class="p">);</span>
+
+<span class="k">for</span><span class="p">(</span><span class="n">Entry</span><span class="sr">&lt;Key,Value&gt;</span> <span class="n">entry</span> <span class="p">:</span> <span class="n">scan</span><span class="p">)</span>
+    <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">getValue</span><span class="p">());</span>
+</pre></div>
+
+
+<p>An example of the BatchScanner can be found at <br />
+accumulo/docs/examples/README.batch </p>
+<hr />
+<p><strong> Next:</strong> <a href="Table_Configuration.html">Table Configuration</a> <strong> Up:</strong> <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.4</a> <strong> Previous:</strong> <a href="Accumulo_Shell.html">Accumulo Shell</a>   <strong> <a href="Contents.html">Contents</a></strong></p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div> 
+    <a alt="Apache Incubator" href="http://incubator.apache.org">
+      <img id="asf-logo" alt="Apache Incubator" src="/accumulo/images/apache-incubator-logo.png" width="150"/>
+    </a>
+
+  </div>
+
+</body>
+</html>

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/accumulo_user_manual.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/accumulo_user_manual.html (added)
+++ websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/accumulo_user_manual.html Fri Mar 23 19:08:12 2012
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    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.
+-->
+  <link href="/accumulo/css/accumulo.css" rel="stylesheet" type="text/css">
+  <title>Apache Accumulo User Manual: index</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script type="text/javascript">
+
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-21103458-6']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+
+  </script>
+</head>
+
+<body>
+  <div id="banner">&nbsp;
+  </div>
+
+  <div id="navigation">
+  <h1 id="project">Project</h1>
+<ul>
+<li><a href="/accumulo">Home</a></li>
+<li><a href="http://incubator.apache.org/projects/accumulo.html">Incubator page</a></li>
+<li><a href="/accumulo/downloads/downloads.html">Downloads</a></li>
+<li><a href="/accumulo/notable_features.html">Features</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+</ul>
+<h1 id="community">Community</h1>
+<ul>
+<li><a href="/accumulo/get_involved.html">Get Involved</a></li>
+<li><a href="/accumulo/mailing_list.html">Mailing Lists</a></li>
+<li><a href="https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-2&amp;selectedProjectId=12312121&amp;reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport">People</a></li>
+</ul>
+<h1 id="development">Development</h1>
+<ul>
+<li><a href="/accumulo/source.html">Source &amp; Guide</a></li>
+<li><a href="https://issues.apache.org/jira/browse/accumulo">Issues</a></li>
+<li><a href="https://builds.apache.org/view/A-F/view/Accumulo/">Builds</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
+<li><a href="/accumulo/screenshots.html">Screenshots</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
+</ul>
+<h1 id="asf-links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+  </div>
+
+  <div id="bannertext">
+    <img id="logo" alt="Apache Accumulo (Incubating)" src="/accumulo/images/accumulo-logo.png"/>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Apache Accumulo User Manual: index</h1>
+    <p><strong> Next:</strong> <a href="Contents.html">Contents</a>   <strong> <a href="Contents.html">Contents</a></strong> <br />
+</p>
+<h2 id="apache-accumulo-user-manual">Apache Accumulo User Manual</h2>
+<p>Version 1.4</p>
+<hr />
+<p><a id=CHILD_LINKS></a></p>
+<ul>
+<li><a href="Contents.html">Contents</a></li>
+<li><a href="Introduction.html">Introduction</a></li>
+<li><a href="Accumulo_Design.html">Accumulo Design</a></li>
+<li><a href="Accumulo_Shell.html">Accumulo Shell</a></li>
+<li><a href="Writing_Accumulo_Clients.html">Writing Accumulo Clients</a></li>
+<li><a href="Table_Configuration.html">Table Configuration</a></li>
+<li><a href="Table_Design.html">Table Design</a></li>
+<li><a href="High_Speed_Ingest.html">High-Speed Ingest</a></li>
+<li><a href="Analytics.html">Analytics</a></li>
+<li><a href="Security.html">Security</a></li>
+<li><a href="Administration.html">Administration</a></li>
+<li><a href="Shell_Commands.html">Shell Commands</a></li>
+</ul>
+<hr />
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div> 
+    <a alt="Apache Incubator" href="http://incubator.apache.org">
+      <img id="asf-logo" alt="Apache Incubator" src="/accumulo/images/apache-incubator-logo.png" width="150"/>
+    </a>
+
+  </div>
+
+</body>
+</html>

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/data_distribution.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/data_distribution.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/failure_handling.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/failure_handling.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img1.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img1.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img2.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img2.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img3.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img3.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img4.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img4.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img5.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img5.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img6.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img6.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img7.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/img7.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/index.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/index.html (added)
+++ websites/staging/accumulo/trunk/content/accumulo/1.4/user_manual/index.html Fri Mar 23 19:08:12 2012
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    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.
+-->
+  <link href="/accumulo/css/accumulo.css" rel="stylesheet" type="text/css">
+  <title>Apache Accumulo User Manual: index</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script type="text/javascript">
+
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-21103458-6']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+
+  </script>
+</head>
+
+<body>
+  <div id="banner">&nbsp;
+  </div>
+
+  <div id="navigation">
+  <h1 id="project">Project</h1>
+<ul>
+<li><a href="/accumulo">Home</a></li>
+<li><a href="http://incubator.apache.org/projects/accumulo.html">Incubator page</a></li>
+<li><a href="/accumulo/downloads/downloads.html">Downloads</a></li>
+<li><a href="/accumulo/notable_features.html">Features</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+</ul>
+<h1 id="community">Community</h1>
+<ul>
+<li><a href="/accumulo/get_involved.html">Get Involved</a></li>
+<li><a href="/accumulo/mailing_list.html">Mailing Lists</a></li>
+<li><a href="https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-2&amp;selectedProjectId=12312121&amp;reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport">People</a></li>
+</ul>
+<h1 id="development">Development</h1>
+<ul>
+<li><a href="/accumulo/source.html">Source &amp; Guide</a></li>
+<li><a href="https://issues.apache.org/jira/browse/accumulo">Issues</a></li>
+<li><a href="https://builds.apache.org/view/A-F/view/Accumulo/">Builds</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
+<li><a href="/accumulo/screenshots.html">Screenshots</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
+</ul>
+<h1 id="asf-links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+  </div>
+
+  <div id="bannertext">
+    <img id="logo" alt="Apache Accumulo (Incubating)" src="/accumulo/images/accumulo-logo.png"/>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Apache Accumulo User Manual: index</h1>
+    <p><strong> Next:</strong> <a href="Contents.html">Contents</a>   <strong> <a href="Contents.html">Contents</a></strong> <br />
+</p>
+<h2 id="apache-accumulo-user-manual">Apache Accumulo User Manual</h2>
+<p>Version 1.4</p>
+<hr />
+<p><a id=CHILD_LINKS></a></p>
+<ul>
+<li><a href="Contents.html">Contents</a></li>
+<li><a href="Introduction.html">Introduction</a></li>
+<li><a href="Accumulo_Design.html">Accumulo Design</a></li>
+<li><a href="Accumulo_Shell.html">Accumulo Shell</a></li>
+<li><a href="Writing_Accumulo_Clients.html">Writing Accumulo Clients</a></li>
+<li><a href="Table_Configuration.html">Table Configuration</a></li>
+<li><a href="Table_Design.html">Table Design</a></li>
+<li><a href="High_Speed_Ingest.html">High-Speed Ingest</a></li>
+<li><a href="Analytics.html">Analytics</a></li>
+<li><a href="Security.html">Security</a></li>
+<li><a href="Administration.html">Administration</a></li>
+<li><a href="Shell_Commands.html">Shell Commands</a></li>
+</ul>
+<hr />
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div> 
+    <a alt="Apache Incubator" href="http://incubator.apache.org">
+      <img id="asf-logo" alt="Apache Incubator" src="/accumulo/images/apache-incubator-logo.png" width="150"/>
+    </a>
+
+  </div>
+
+</body>
+</html>

Modified: websites/staging/accumulo/trunk/content/accumulo/downloads/1.3.5/accumulo-1.3.5-incubating-dist.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/downloads/1.3.5/accumulo-1.3.5-incubating-dist.html (original)
+++ websites/staging/accumulo/trunk/content/accumulo/downloads/1.3.5/accumulo-1.3.5-incubating-dist.html Fri Mar 23 19:08:12 2012
@@ -63,22 +63,14 @@
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
-<li><a href="/accumulo/user_manual_1.3-incubating">Manual v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.3-incubating/examples.html">Examples v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.4-incubating">Manual v1.4</a>
-<!-- - klzzwxh:0006 -->
-<!-- - Javadoc -->
-<!-- - Examples --></li>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
 <li><a href="/accumulo/screenshots.html">Screenshots</a></li>
-<li><a href="/accumulo/papers.html">Papers</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
 </ul>
-<!--
-# Development
- - Source code
- - Building
--->
-
-<h1 id="asf_links">ASF links</h1>
+<h1 id="asf-links">ASF links</h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
@@ -92,8 +84,7 @@
 
   <div id="content">
     <h1 class="title"></h1>
-    <meta http-equiv="refresh" content="0;url=http://www.apache.org/dyn/closer.cgi/incubator/accumulo/1.3.5-incubating/accumulo-1.3.5-incubating-dist.tar.gz">
-
+    <p><meta http-equiv="refresh" content="0;url=http://www.apache.org/dyn/closer.cgi/incubator/accumulo/1.3.5-incubating/accumulo-1.3.5-incubating-dist.tar.gz"></p>
 <p>You should be immediately redirected. If not, click <a href="http://www.apache.org/dyn/closer.cgi/incubator/accumulo/1.3.5-incubating/accumulo-1.3.5-incubating-dist.tar.gz">here</a>. </p>
   </div>
 

Modified: websites/staging/accumulo/trunk/content/accumulo/downloads/1.3.5/accumulo-1.3.5-incubating-src.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/downloads/1.3.5/accumulo-1.3.5-incubating-src.html (original)
+++ websites/staging/accumulo/trunk/content/accumulo/downloads/1.3.5/accumulo-1.3.5-incubating-src.html Fri Mar 23 19:08:12 2012
@@ -63,22 +63,14 @@
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
-<li><a href="/accumulo/user_manual_1.3-incubating">Manual v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.3-incubating/examples.html">Examples v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.4-incubating">Manual v1.4</a>
-<!-- - klzzwxh:0006 -->
-<!-- - Javadoc -->
-<!-- - Examples --></li>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
 <li><a href="/accumulo/screenshots.html">Screenshots</a></li>
-<li><a href="/accumulo/papers.html">Papers</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
 </ul>
-<!--
-# Development
- - Source code
- - Building
--->
-
-<h1 id="asf_links">ASF links</h1>
+<h1 id="asf-links">ASF links</h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
@@ -92,8 +84,7 @@
 
   <div id="content">
     <h1 class="title"></h1>
-    <meta http-equiv="refresh" content="0;url=http://www.apache.org/dyn/closer.cgi/incubator/accumulo/1.3.5-incubating/accumulo-1.3.5-incubating-src.tar.gz">
-
+    <p><meta http-equiv="refresh" content="0;url=http://www.apache.org/dyn/closer.cgi/incubator/accumulo/1.3.5-incubating/accumulo-1.3.5-incubating-src.tar.gz"></p>
 <p>You should be immediately redirected. If not, click <a href="http://www.apache.org/dyn/closer.cgi/incubator/accumulo/1.3.5-incubating/accumulo-1.3.5-incubating-src.tar.gz">here</a>. </p>
   </div>
 

Modified: websites/staging/accumulo/trunk/content/accumulo/downloads/downloads.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/downloads/downloads.html (original)
+++ websites/staging/accumulo/trunk/content/accumulo/downloads/downloads.html Fri Mar 23 19:08:12 2012
@@ -63,22 +63,14 @@
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
-<li><a href="/accumulo/user_manual_1.3-incubating">Manual v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.3-incubating/examples.html">Examples v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.4-incubating">Manual v1.4</a>
-<!-- - klzzwxh:0006 -->
-<!-- - Javadoc -->
-<!-- - Examples --></li>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
 <li><a href="/accumulo/screenshots.html">Screenshots</a></li>
-<li><a href="/accumulo/papers.html">Papers</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
 </ul>
-<!--
-# Development
- - Source code
- - Building
--->
-
-<h1 id="asf_links">ASF links</h1>
+<h1 id="asf-links">ASF links</h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>

Modified: websites/staging/accumulo/trunk/content/accumulo/example/wikisearch.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/example/wikisearch.html (original)
+++ websites/staging/accumulo/trunk/content/accumulo/example/wikisearch.html Fri Mar 23 19:08:12 2012
@@ -63,22 +63,14 @@
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
-<li><a href="/accumulo/user_manual_1.3-incubating">Manual v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.3-incubating/examples.html">Examples v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.4-incubating">Manual v1.4</a>
-<!-- - klzzwxh:0006 -->
-<!-- - Javadoc -->
-<!-- - Examples --></li>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
 <li><a href="/accumulo/screenshots.html">Screenshots</a></li>
-<li><a href="/accumulo/papers.html">Papers</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
 </ul>
-<!--
-# Development
- - Source code
- - Building
--->
-
-<h1 id="asf_links">ASF links</h1>
+<h1 id="asf-links">ASF links</h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
@@ -352,7 +344,6 @@ td {
 <td>0.27
 </tr>
 <table>
-
 <p>
 For comparison, these are the cold start lookup times (restart Accumulo, and drop the operating system disk cache):
 
@@ -380,8 +371,10 @@ For comparison, these are the cold start
 <td>8.13
 </table>
 
-<h3 id="random_query_load">Random Query Load</h3>
-<p>Random queries were generated using common english words.  A uniform random sample of 3 to 5 words taken from the 10000 most common words in the Project Gutenberg's online text collection were joined with “and”.  Words containing anything other than letters (such as contractions) were not used.  A client was started simultaneously on each of the 10 servers and each ran 100 random queries (1000 queries total).</p>
+### Random Query Load
+
+Random queries were generated using common english words.  A uniform random sample of 3 to 5 words taken from the 10000 most common words in the Project Gutenberg's online text collection were joined with “and”.  Words containing anything other than letters (such as contractions) were not used.  A client was started simultaneously on each of the 10 servers and each ran 100 random queries (1000 queries total).
+
 <table>
 <tr>
 <th>Time
@@ -400,8 +393,10 @@ For comparison, these are the cold start
 <td>275,655
 </table>
 
-<h3 id="query_load_during_ingest">Query Load During Ingest</h3>
-<p>The English wikipedia data was re-ingested on top of the existing, compacted data. The following  query samples were taken in 5 minute intervals while ingesting 132 articles/second:</p>
+### Query Load During Ingest
+
+The English wikipedia data was re-ingested on top of the existing, compacted data. The following  query samples were taken in 5 minute intervals while ingesting 132 articles/second:
+
 <table>
 <tr>
 <th>Query

Modified: websites/staging/accumulo/trunk/content/accumulo/get_involved.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/get_involved.html (original)
+++ websites/staging/accumulo/trunk/content/accumulo/get_involved.html Fri Mar 23 19:08:12 2012
@@ -63,21 +63,13 @@
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
-<li><a href="/accumulo/user_manual_1.3-incubating">Manual v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.3-incubating/examples.html">Examples v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.4-incubating">Manual v1.4</a>
-<!-- - <a href="/accumulo/getting_started.html">Getting Started</a> -->
-<!-- - Javadoc -->
-<!-- - Examples --></li>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
 <li><a href="/accumulo/screenshots.html">Screenshots</a></li>
-<li><a href="/accumulo/papers.html">Papers</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
 </ul>
-<!--
-# Development
- - Source code
- - Building
--->
-
 <h1 id="asf-links">ASF links</h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>

Added: websites/staging/accumulo/trunk/content/accumulo/glossary.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/glossary.html (added)
+++ websites/staging/accumulo/trunk/content/accumulo/glossary.html Fri Mar 23 19:08:12 2012
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    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.
+-->
+  <link href="/accumulo/css/accumulo.css" rel="stylesheet" type="text/css">
+  <title>Apache Accumulo Glossary</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script type="text/javascript">
+
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-21103458-6']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+
+  </script>
+</head>
+
+<body>
+  <div id="banner">&nbsp;
+  </div>
+
+  <div id="navigation">
+  <h1 id="project">Project</h1>
+<ul>
+<li><a href="/accumulo">Home</a></li>
+<li><a href="http://incubator.apache.org/projects/accumulo.html">Incubator page</a></li>
+<li><a href="/accumulo/downloads/downloads.html">Downloads</a></li>
+<li><a href="/accumulo/notable_features.html">Features</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+</ul>
+<h1 id="community">Community</h1>
+<ul>
+<li><a href="/accumulo/get_involved.html">Get Involved</a></li>
+<li><a href="/accumulo/mailing_list.html">Mailing Lists</a></li>
+<li><a href="https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-2&amp;selectedProjectId=12312121&amp;reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport">People</a></li>
+</ul>
+<h1 id="development">Development</h1>
+<ul>
+<li><a href="/accumulo/source.html">Source &amp; Guide</a></li>
+<li><a href="https://issues.apache.org/jira/browse/accumulo">Issues</a></li>
+<li><a href="https://builds.apache.org/view/A-F/view/Accumulo/">Builds</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
+<li><a href="/accumulo/screenshots.html">Screenshots</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
+</ul>
+<h1 id="asf-links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+  </div>
+
+  <div id="bannertext">
+    <img id="logo" alt="Apache Accumulo (Incubating)" src="/accumulo/images/accumulo-logo.png"/>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Apache Accumulo Glossary</h1>
+    <ul>
+<li><strong>authorizations</strong> - </li>
+<li><strong>column</strong> - </li>
+<li><strong>column family</strong> - </li>
+<li><strong>column qualifier</strong> - </li>
+<li><strong>column visibility</strong> -</li>
+<li><strong>key</strong> - </li>
+<li><strong>iterator</strong> - </li>
+<li><strong>iterator scopes</strong> - </li>
+<li><strong>log-structured merge-tree</strong> - </li>
+<li><strong>major compaction</strong> - </li>
+<li><strong>master</strong> - </li>
+<li><strong>minor compaction</strong> - </li>
+<li><strong>permissions</strong> - </li>
+<li><strong>row</strong> - </li>
+<li><strong>scan</strong> -</li>
+<li><strong>tablet</strong> - a contiguous key range; the unit of work for a tablet server</li>
+<li><strong>tablet server</strong> - </li>
+<li><strong>timestamp</strong> - </li>
+<li><strong>value</strong> - </li>
+</ul>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div> 
+    <a alt="Apache Incubator" href="http://incubator.apache.org">
+      <img id="asf-logo" alt="Apache Incubator" src="/accumulo/images/apache-incubator-logo.png" width="150"/>
+    </a>
+
+  </div>
+
+</body>
+</html>

Modified: websites/staging/accumulo/trunk/content/accumulo/governance/consensusBuilding.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/governance/consensusBuilding.html (original)
+++ websites/staging/accumulo/trunk/content/accumulo/governance/consensusBuilding.html Fri Mar 23 19:08:12 2012
@@ -63,22 +63,14 @@
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
-<li><a href="/accumulo/user_manual_1.3-incubating">Manual v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.3-incubating/examples.html">Examples v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.4-incubating">Manual v1.4</a>
-<!-- - klzzwxh:0006 -->
-<!-- - Javadoc -->
-<!-- - Examples --></li>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
 <li><a href="/accumulo/screenshots.html">Screenshots</a></li>
-<li><a href="/accumulo/papers.html">Papers</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
 </ul>
-<!--
-# Development
- - Source code
- - Building
--->
-
-<h1 id="asf_links">ASF links</h1>
+<h1 id="asf-links">ASF links</h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
@@ -100,7 +92,7 @@ amounts of unnecessary mail that everyon
 That is not to say that we want to avoid constructive discussion. This is 
 the lifeblood of a successful project. However, many ASF projects adopt a 
 shorthand notation for showing support, or otherwise, for a proposal.</p>
-<h2 id="expressing_support_or_otherwise">Expressing support (or otherwise)</h2>
+<h2 id="expressing-support-or-otherwise">Expressing support (or otherwise)</h2>
 <p>The notation used is "+1", "-1" and "0". It's also common to see "+0" and "-0".</p>
 <p>So, what do these notations mean?</p>
 <ul>
@@ -117,7 +109,7 @@ to help implement"</li>
 like "+1000".</p>
 <p>The important thing is that this is not an exact science. It's just a shorthand 
 way of communicating strength of feeling.</p>
-<h2 id="consensus_building_is_not_voting">Consensus Building is Not Voting</h2>
+<h2 id="consensus-building-is-not-voting">Consensus Building is Not Voting</h2>
 <p>The confusing thing about this notation is that it is the same notation
 used in a formal vote. Knowing when something is a vote and when it is a 
 preference is important. It's easy to tell though, if the subject does not have 

Modified: websites/staging/accumulo/trunk/content/accumulo/governance/lazyConsensus.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/governance/lazyConsensus.html (original)
+++ websites/staging/accumulo/trunk/content/accumulo/governance/lazyConsensus.html Fri Mar 23 19:08:12 2012
@@ -63,22 +63,14 @@
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
-<li><a href="/accumulo/user_manual_1.3-incubating">Manual v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.3-incubating/examples.html">Examples v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.4-incubating">Manual v1.4</a>
-<!-- - klzzwxh:0006 -->
-<!-- - Javadoc -->
-<!-- - Examples --></li>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
 <li><a href="/accumulo/screenshots.html">Screenshots</a></li>
-<li><a href="/accumulo/papers.html">Papers</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
 </ul>
-<!--
-# Development
- - Source code
- - Building
--->
-
-<h1 id="asf_links">ASF links</h1>
+<h1 id="asf-links">ASF links</h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
@@ -103,7 +95,7 @@ You just assume you have the community's
 to indicate disapproval. If you believe the community will support your action
 you can operate on lazy consensus as long as you are prepared to roll back 
 any work should a valid objection is raised.</p>
-<h2 id="avoiding_unnecessary_discussion">Avoiding Unnecessary Discussion</h2>
+<h2 id="avoiding-unnecessary-discussion">Avoiding Unnecessary Discussion</h2>
 <p>The key thing about lazy consensus is that it's easier for people to agree,
 by doing nothing, than it is to object, which requires an
 alternative to be proposed. This has two effects, firstly people are less 
@@ -115,7 +107,7 @@ of the project to watch what is happenin
 far down the road will cause upset, but objecting (or asking for clarification 
 of intent) early is likely to be greeted with relief that someone is watching
 and cares.</p>
-<h2 id="stating_lazy_consensus">Stating Lazy Consensus</h2>
+<h2 id="stating-lazy-consensus">Stating Lazy Consensus</h2>
 <p>Sometimes a member of the community will believe a specific action is the correct 
 one for the community but are not sure enough to proceed with the work under the 
 lazy consensus model. In these circumstances they can state Lazy Consensus is in 
@@ -128,7 +120,7 @@ around their proposal, nor are they requ
 supports their actions. However, this differs from assuming lazy consensus 
 since it allows space and time to <a href="/accumulo/governance/consensusBuilding.html">express support or objections</a> and corrections to 
 the proposal before work begins. </p>
-<h2 id="silence_is_consent">Silence is consent</h2>
+<h2 id="silence-is-consent">Silence is consent</h2>
 <p>People may choose to indicate their support for the actions taken with a +1 
 mail - quick and easy to read and reassuring for the implementer. However, 
 remember, in a lazy consensus world silence is the equivalent to support. This

Modified: websites/staging/accumulo/trunk/content/accumulo/governance/releasing.html
==============================================================================
--- websites/staging/accumulo/trunk/content/accumulo/governance/releasing.html (original)
+++ websites/staging/accumulo/trunk/content/accumulo/governance/releasing.html Fri Mar 23 19:08:12 2012
@@ -63,22 +63,14 @@
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
-<li><a href="/accumulo/user_manual_1.3-incubating">Manual v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.3-incubating/examples.html">Examples v1.3</a></li>
-<li><a href="/accumulo/user_manual_1.4-incubating">Manual v1.4</a>
-<!-- - klzzwxh:0006 -->
-<!-- - Javadoc -->
-<!-- - Examples --></li>
+<li><a href="/accumulo/1.4/user_manual">Manual 1.4</a></li>
+<li><a href="/accumulo/1.4/apidocs">Javadoc 1.4</a></li>
+<li><a href="/accumulo/1.4/examples">Examples 1.4</a></li>
 <li><a href="/accumulo/screenshots.html">Screenshots</a></li>
-<li><a href="/accumulo/papers.html">Papers</a></li>
+<li><a href="/accumulo/papers.html">Papers &amp; Other Links</a></li>
+<li><a href="/accumulo/glossary.html">Glossary</a></li>
 </ul>
-<!--
-# Development
- - Source code
- - Building
--->
-
-<h1 id="asf_links">ASF links</h1>
+<h1 id="asf-links">ASF links</h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
@@ -94,7 +86,7 @@
     <h1 class="title">Accumulo Release Guide</h1>
     <p>Accumulo works on a very simple cycle of major releases with the minor releases when needed. The intent is for all major features to be implemented in a major release, with only bug fixes and minor features being included in minor releases. API changes should only be made on major releases, with continued support of the previous API for at least one major revision. This will give user code a major revision to convert from the old API to the new API.</p>
 <p>Note: There will be times where API compatibility cannot be maintained, which we understand. However, this should only be considered when there is NO other option.</p>
-<h2 id="major_release">Major Release</h2>
+<h2 id="major-release">Major Release</h2>
 <ol>
 <li>Vote to start the major release process.  This should be in consensus with the community and should be discussed on the accumulo-dev mailing list before the next steps take place. The majority of the committers must +1 the vote and all -1s need to be discussed.<ul>
 <li>There is not a strict time limit between major releases, but some consideration should be made because we don't want to give our early adopters version fatigue.</li>
@@ -112,7 +104,7 @@
 <li>Test the branch as per our testing criteria.</li>
 <li>Once testing is deemed successful and release documentation is complete, move on to Releasing.</li>
 </ol>
-<h2 id="minor_release">Minor Release</h2>
+<h2 id="minor-release">Minor Release</h2>
 <ol>
 <li>Upon detection and/or resolution of a bug, discussion needs to be made on the accumulo-dev list to determine if the community thinks the bug is critical or if there have been sufficient minor bug fixes to warrant a minor release.</li>
 <li>Make any necessary documentation changes, including a change log.</li>