expose timeouts via webmachine
- remove redundant default
- clarify error message
Merge pull request #476 from branch bwf-mr-const-hash

Squashed commit of the following:

commit 0c07454626517c6f26013ea373cbcf516e3033ee
Author: Bryan Fink <bryan@basho.com>
Date:   Sat Feb 2 10:17:43 2013 -0500

    cleanup and rework contant reduce hash

    Builds on commit in #475 with more documentation, variable name cleanup,
    and a more failure-tolerant up-vnode-finder strategy.

commit 58040e86689d93ee68abb16744b1d8598a9a9cd2
Author: Dreyk <gunin@satissoft.ru>
Date:   Fri Feb 1 13:44:49 2013 +0400

    Update src/riak_kv_mrc_pipe.erl

    Reduce phase must be started on live node.
Make AAE rehash delete missing data from relevant hashtree

This change ensures that AAE does not attempt to continually repair
deleted keys that an AAE hashtree believes still exist.
Change AAE hashtrees to buffer/batch deletes

AAE already buffers writes and submits them as a single write-batch to
LevelDB for better performance. Since deletes are also valid batch
operations, this change buffers deletes alongside writes and submits
all operations as a single write-batch as necessary.

This change also fixes a potential bug in the previous approach that
could reorder a write to happen after a delete, even if the delete
occured after the write -- thus reviving a dead hash.
Merge pull request #478 from basho/jdb-aae-deleted
Merge branch '1.3'
Merge pull request #462 from basho/pevm-expose-timeouts

Expose FSM timeouts via the HTTP API
Randomize the LevelDB write_buffer_size used for AAE

LevelDB as used for normal Riak K/V data randomizes the write_buffer_size
to protect against multiple buffers filling up simultaneously under heavy
uniform load. This commit does the same for the LevelDB instances created
by AAE.
Merge pull request #482 from basho/jdb-aae-randomize
Improve AAE backpressure on K/V vnode write-path

Original AAE design had riak_kv_vnode send async casts to the
riak_kv_index_hashtree to decouple the two processes and ensure AAE
had little impact on K/V performance. Testing uncovered issues where
the K/V vnode could operate faster the AAE hashtree, leading to
unbounded message queue growth. To fix this, the updates were changes
to be synchronous calls to add backpressure.

However, doing a blocking call for every update impacts K/V
performance.  This is especially noticeable when running a fast
backend, such as Memory or Bitcask. This commit moves to a hybrid
approach. A fixed number of updates are sent asynchronously after
which the next update is performed synchronously. The value is
currently hardcoded to 90 asynchronous requests. The worse-case
message queue size is therefore 91 outstanding messages.
Make the number of asynchronous AAE inserts configurable
Merge pull request #483 from basho/jdb-aae-async
Merge branch '1.3'
Make AAE default to 'off' when not configured

The intention of this commit is to make AAE be disabled by default
when performing an in-place upgrade of Riak, but be enabled by default
for new installs.

This change disables AAE when missing from the top-level app.config.
In Riak, the top-level app.config defaults to having AAE enabled, thus
overriding the default. However, users performing an in-place rolling
upgrade of Riak maintain their existing app.config which is missing
the override. Users who want to enable AAE after an upgrade will need
to add the appropriate settings to their app.config.
Merge pull request #486 from basho/jdb-aae-upgrade-off
Merge branch '1.3'
migrate mapred_test to riak_test

This suite had a fragile setup stage that would regularly cause the
automated testers to fail. It has been migrated to the following
riak_test modules, where it should be much more predictable:

mapred_notfound_failover
mapred_javascript
mapred_dead_pipe
mapred_buffer_prereduce
mapred_basic_compat
Merge pull request #489 from branch 'bwf-move-mapred-test'
Make hashtree_eqc close trees before destroy.

The hashtree API expects its backing leveldb instances to be closed
before destroying them. Without this patch, the property would abort
quickly with a badmatch error.