basho/riak_kv — pull request #693 by evanmcc (2013-10-08 23:29:56+00:00)
Title: Optionally remove use of BIF timers from get and put FSMs.

The BIF timer lock is quite expensive to take, and as the number of
cores in your system increases, so does contention on it for commonly
spawned processes.

This patch has very little performance impact on systems below 20 cores,
but is necessary to achieve higher performance down the road.

It transfers responsibility for killing the FSMs to the client (although we
retain the older code path in case the new one is a problem), backstopping
the client by using cheaper state transition timers. Logic is added to
reconnect the client with remotely spawned put coordinators.

Also addresses #683