Return-Path:
If consecutive keys have identical portions (row, colf, colq, or colvis), there
is a flag to indicate that a portion is the same as that of the previous key.
This is applied when keys are stored on disk and when transferred over the
-network.
By default data written is stored outside of Java managed memory into a C++ STL map of maps. It maps rows to columns to values. This hierarchical structure @@ -203,10 +204,23 @@ blocks. The entire index never has to be written. When an index block exceeds the configurable size threshold, its written out between data blocks. The size of index blocks is configurable on a per table basis.
+RFile uses its index to locate a block of key values. Once it reaches a block +it performs a linear scan to find a key on interest. Starting with 1.5, Accumulo +will generate indexes of cached blocks in an adaptive manner. Accumulo indexes +the blocks that are read most frequently. When a block is read a few times, a +small index is generated. As a block is read more, larger indexes are generated +making future seeks faster. This strategy allows Accumulo to dynamically respond +to read patterns without precomputing block indexes when RFiles are written.
The Accumulo client API has a mock implementation that is useful writing unit test against Accumulo. Mock Accumulo is in memory and in process.
+Mini Accumulo cluster is a set of utility code that makes it easy to spin up +a local Accumulo instance running against the local filesystem. Mini Accumulo +is slower than Mock Accumulo, but its behavior is mirrors a real Accumulo +instance more closely.
Small, system-level tests of basic Accumulo features run in a test harness, external to the build and unit-tests. These tests start a complete Accumulo @@ -251,6 +265,12 @@ flexibility in resource allocation. The could be different from the Accumulo nodes.
Accumulo can be a source and/or sink for map reduce jobs.
+The Accumulo client code contains a lot of complexity. For example, the +client code locates tablets, retries in the case of failures, and supports +concurrent reading and writing. All of this is written in Java. The thrift +proxy wraps the Accumulo client API with thrift, making this API easily +available to other languages like Python, Ruby, C++, etc.
Users can provide a balancer plugin that decides how to distribute tablets @@ -318,13 +338,18 @@ even if major compactions were falling b was growing. Without this feature, ingest performance can roughly continue at a constant rate, even as scan performance decreases because tablets have too many files.
+User written iterators are a useful way to manipulate data in data in Accumulo.
+Before 1.5., users had to copy their iterators to each tablet server. Starting
+with 1.5 Accumulo can load iterators from HDFS using Apache commons VFS.
Ability to force tablets to compact to one file. Even tablets with one file are compacted. This is useful for improving query performance, permanently applying iterators, or using a new locality group configuration. One example of using iterators is applying a filtering iterator to remove data from a -table.
+table. As of 1.5, users can initiate a compaction with iterators only applied to +that compaction event.Arbitrary split points can be added to an online table at any point in time. This is useful for increasing ingest performance on a new table. It can also be @@ -338,14 +363,15 @@ data and copies its configuration. A clo mutated independently. Testing was the motivating reason behind this new feature. For example to test a new filtering iterator, clone the table, add the filter to the clone, and force a major compaction.
+An offline tables metadata and files can easily be copied to another cluster and +imported.
Compact each tablet that falls within a row range down to a single file.
-
Compact each tablet that falls within a row range down to a single file.
Added an operation to efficiently delete a range of rows from a table. Tablets
that fall completely within a range are simply dropped. Tablets overlapping the
-beginning and end of the range are split, compacted, and then merged.
-