initial version w/ size limit
Merge remote-tracking branch 'origin/jd-cuttlefish' into feature/pevm-metadata-cache
make cache disablable
Correctly enocde the update response when return_body is true
Revert path changes I need for flymake to work correctly
Key-specific changes for FS2 testing
Oops, fix typo in setup of test key #1
Merge pull request #714 from basho/bug/rdb/crdt-returnbody

Correctly enocde the update response when return_body is true
added secure_referer_check to riak_kv schema
Slight documentation change to secure_referer_check
Merge pull request #720 from basho/jd-secure-referer-check

added secure_referer_check to riak_kv schema
Improve the documentation for the storage_backend setting.

Also cleanup that spurious 'default' option.
Merge pull request #722 from basho/bugfix/sdc/storage-backend-docs

Improve the documentation for the storage_backend setting.
Fix merge to properly operate over dict.

Note: not the most efficient implementation that most likely exists.
For this initial PR I was mainly focusing on ensuring I had the
semantics of the merge correctly to start a discussion.

Ensure we convert the inner dict to a list, uniquely sort the list, so
we can uniquely merge both contents, and then map over the results to
convert the inner list back to a dict.

This is necessary because mutators add data to this dictionary and we
can not guarantee an internal sort order, which causes siblings with a
default of allow_mult=true for the same value.

This is a side effect of the inner data structure not being an orddict.
Merge pull request #723 from basho/bugfix/csm/merge

Fix merge to properly operate over dict.
Add hook to Yokozuna for handoff

Yokozuna needs to hook into KV handoff in order to behave in a
predictable manner during ownership change. Yokozuna doesn't have
vnodes. Instead it piggy-backs the KV vnode. When an object is written
Yokozuna's index hook is called so that Solr may be updated. When
ownership change happens this hook will be executed for writes
arriving at the new node because they are writes like any
other. However in order for successful indexing the indexes and bucket
properties must arrive at the new node first.

If the indexes don't arrive before the ownership handoff objects then
those objects will fail to index and cause incorrect query results for
the user. If the bucket properties don't arrive before then the index
hook won't be invoked at all and index entries will again be
missing. Currently Yokozuna uses some tricky code to detect a
handoff-based write and do a busy wait for the index to appear. This
is undesirable because it blocks the vnode. It also doesn't work for
the new bucket properties based on cluster metadata since they are no
longer stored in the ring.

Rather than create more hacks this patch adds a handoff hook to
Yokozuna. This way Yokozuna can make sure the indexes and properties
are sync'd before KV is allowed to send its data. This removes the
race on the new node and will allow removal of the busy-wait hack
currently in the vnode write path.
Fix type specification.
Merge pull request #725 from basho/feature/csm/specifications

Fix type specification.
Avoid mutator code path when necessary.

Avoid the mutator code path completely when there are no registered
mutators, which prevents the mutators_applied item from being added to
the metadata dictionary when there are no mutators.
Merge pull request #719 from basho/feature/csm/avoid-mutator-path

Avoid mutator code path when necessary.