Browse files

ACCUMULO-896 Added some info about automatic splitting to user manual.

ACCUMULO-1039 Added info about table creation and versioning iterator to docs.
ACCUMULO-1040 fixed code in documentation
ACCUMULO-804 another FileNotFoundException being thrown: going to keep it, though

git-svn-id: 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information...
keith-turner committed Mar 20, 2013
2 parents 6172c39 + 1b823f5 commit 8fb03016f7f1f7be06549c8c224d5f8db90af1f6
@@ -139,8 +139,8 @@ \subsection{Scanner}
for(Entry<Key,Value> entry : scan) {
- String row = e.getKey().getRow();
- Value value = e.getValue();
+ String row = entry.getKey().getRow();
+ Value value = entry.getValue();
@@ -195,7 +195,7 @@ \subsection{BatchScanner}
for(Entry<Key,Value> entry : scan)
- System.out.println(e.getValue());
+ System.out.println(entry.getValue());
@@ -62,12 +62,6 @@ \subsection{Tablet Server}
that was previously on a server that failed, reapplying any writes
found in the write-ahead log to the tablet.
-The Loggers accept updates to Tablet servers and write them to local
-on-disk storage. Each tablet server will write their updates to
-multiple loggers to preserve data in case of hardware failure.
\subsection{Garbage Collector}
Accumulo processes will share files stored in HDFS. Periodically, the Garbage
@@ -129,6 +123,23 @@ \section{Compactions}
remove deleted key-value pairs by omitting key-value pairs suppressed by a
delete entry when the new file is created.
+When a table is created it has one tablet. As the table grows its initial
+tablet eventually splits into two tablets. Its likely that one of these
+tablets will migrate to another tablet server. As the table continues to grow,
+its tablets will continue to split and be migrated. The decision to
+automatically split a tablet is based on the size of a tablets files. The
+size threshold at which a tablet splits is configurable per table. In addition
+to automatic splitting, a user can manually add split points to a table to
+create new tablets. Manually splitting a new table can parallelize reads and
+writes giving better initial performance without waiting for automatic
+As data is deleted from a table, tablets may shrink. Over time this can lead
+to small or empty tablets. To deal with this, merging of tablets was
+introduced in Accumulo 1.4. This is discussed in more detail later.
If a TabletServer fails, the Master detects it and automatically reassigns the tablets
@@ -230,6 +230,18 @@ \subsection{Versioning Iterators and Timestamps}
+When a table is created, by default its configured to use the
+VersioningIterator and keep one version. A table can be created without the
+VersioningIterator with the -ndi option in the shell. Also the Java API
+has the following method
+connector.tableOperations.create(String tableName, boolean limitVersion).
\subsubsection{Logical Time}
Accumulo 1.2 introduces the concept of logical time. This ensures that timestamps
@@ -691,4 +703,4 @@ \section{Exporting Tables}
distcp command. To export a table, it must be offline and stay offline while
discp runs. The reason it needs to stay offline is to prevent files from being
deleted. A table can be cloned and the clone taken offline inorder to avoid
-losing access to the table. See docs/examples/README.example for an example.
+losing access to the table. See docs/examples/README.export for an example.
@@ -16,6 +16,7 @@
package org.apache.accumulo.server.master.recovery;
import org.apache.hadoop.fs.FileSystem;
@@ -40,6 +41,8 @@ public long close(FileSystem fs, Path source) throws IOException {
}"Recovered lease on " + source.toString());
return 0;
+ } catch (FileNotFoundException ex) {
+ throw ex;
} catch (Exception ex) {
log.warn("Error recovery lease on " + source.toString(), ex);
@@ -16,6 +16,7 @@
package org.apache.accumulo.server.master.recovery;
import java.util.Collection;
import java.util.HashMap;
@@ -92,7 +93,8 @@ public void run() {
} else {
initiateSort(host, filename);
+ } catch (FileNotFoundException e) {
+ log.debug("Unable to initate log sort for " + filename + ": " + e);
} catch (Exception e) {
log.warn("Failed to initiate log sort " + filename, e);
} finally {

0 comments on commit 8fb0301

Please sign in to comment.