Conflicts: src/riak_kv_app.erl src/riak_kv_vnode.erl
This fixes the problem demonstrated by the test in the previous commit.
This test demonstrates that all results delivered by gen_fsm:send_event are not counted against the buffer limit. This means that MR pipes using FSM sink type are effectively using a buffer 10x the size they think they are, because gen_fsm:*sync_*send_event is only used once every 10 results.
makes top-level fixed_indexes status on multi-backend, which messes with stats, unncessary allowing it to be removed
Add batch size parameter to control how many keys are fixed at a time. Add backpressure to query of bad idx entries to avoid having the reformat process flooded with msgs. Fixed problem with list keys and code triggering a second scan during 2i reformat transition.
- change delete in riak_client to honor timeouts passed in Options - change the various object interfaces to collect and pass on the timeout values
Use the cached riak_pipe stats for legacy stats When a broken stat is detected, register it. Fix bug where stats endpoints were calculating _all_ riak_kv stats Since adding many more stats, and most of the infrastructure for ad hoc querying of stats, the stat calculation code for the (not yet legacy) endpoints was calculating all stats for riak_kv. As there are about (ring_size * vnode stats) + (fsm stages * fsm stats) more stats now, this calculation, understandbly, took a long time. This patch instead only calculates the minimum subset of stats needed to support the (not yet legacy) stats endpoints.
The crypto library is implemented as a NIF, and long running NIFs can negatively impact the work balancing algorithm of the Erlang scheduler. Using normal crypto:sha(object) is unbounded in duration as the size of an object is unbounded. This commit therefore changes AAE to use an incremental SHA calculation (sha_init/sha_update/sha_final) with a set chunk size (defaults to 4096; configurable app var riak_kv/anti_entropy_sha_chunk).