Choose ushards according to persistent record
authorRobert Newson <robert.newson@cloudant.com>
Tue, 23 Apr 2013 21:54:48 +0000 (22:54 +0100)
committerRobert Newson <rnewson@apache.org>
Wed, 23 Jul 2014 17:46:19 +0000 (18:46 +0100)
commitf9c22769ea089812e401554f06626f7d0d1dac4b
tree486a0e5cd95411dbaa3f4e81042a6cbe1e6bb573
parenta0d743062007113c5aa81526f4f1285c083b8daa
Choose ushards according to persistent record

The order of nodes in the by_range section of "dbs" documents is now
promoted to the principal order for ushards. Ushards still accounts
for Liveness, selecting the first live replica and still supports
Spread by rotating this list using the CRC32 of the database name
(since many databases will have the same layout).

If by_range and by_node are not symmetrical then by_node is used and
order is undefined to match existing behavior.
include/mem3.hrl
src/mem3.erl
src/mem3_shards.erl
src/mem3_util.erl