swift/etc
Alistair Coles 7365110b95 Use deterministic shard names, use configured account prefix
Before, shard range container names were based on their upper
bound. Now they are based on their index so that any process finding N
shard ranges in potentially dissimilar replicas of a container will
use the same shard container names.

Before, the shard containers' account prefix was fixed as
'.sharded_'. Now it is '<prefix>shards_' where <prefix> is the
configurable autocreate account prefix.

Usually only one process would be expected to find shard
ranges. However, if more than one process is finding shard ranges
then, assuming they are using the same epoch and shard range number,
they will now create the same shard range containers. Each process is
likely to select different bounds for those shard ranges, but boundary
disputes can be resolved during replication. The fact that each
process created the same shard container means that only object rows
close to boundaries will need to be relocated.

A shard container name has the form:

  <root-container-name>-H(parent-container-name)-<epoch>-<index>

where H is the md5 hash function.

The hash of the parent container is included to differentiate shards
of shard-x and shard-y if shard-x and shard-y were to be sharded at
the same epoch.

For example, the second shard range of a root container named 'foo'
would have container name:

  shard-name = foo-H(foo)-<epoch>-1

The third shard-range of that shard would have name:

  foo-H(shard-name)-<epoch>-2

Change-Id: I8cf5d72a9256ee2bae141ebdb892db2cb578f39a
2018-03-05 09:03:39 +00:00
..
account-server.conf-sample Add cautionary note re delay_reaping in account-server.conf-sample 2017-09-27 22:52:47 +01:00
container-reconciler.conf-sample Change schedule priority of daemon/server in config 2016-08-10 23:56:15 +02:00
container-server.conf-sample Use deterministic shard names, use configured account prefix 2018-03-05 09:03:39 +00:00
container-sync-realms.conf-sample Removing some redundant words 2016-03-25 17:20:24 +07:00
dispersion.conf-sample Fix swift-dispersion in multi-region setups 2016-06-01 15:35:47 +02:00
drive-audit.conf-sample Added comment for "user" option in drive-audit config 2016-11-21 22:13:11 +01:00
internal-client.conf-sample add symlink to container sync default and sample config 2017-12-14 12:13:20 -08:00
keymaster.conf-sample fix barbican integration 2018-01-13 14:40:28 -05:00
memcache.conf-sample fixups for ipv6 memcache_servers docs 2016-01-12 21:08:58 -08:00
mime.types-sample PEP 8 compliance and small modification to mime.types file 2010-11-23 19:26:02 -06:00
object-expirer.conf-sample Add request_tries option to object-expirer.conf-sample 2018-01-15 15:29:11 +00:00
object-server.conf-sample Improve object-updater's stats logging 2018-01-17 13:59:23 -08:00
proxy-server.conf-sample Merge "Add support for data segments to SLO and SegmentedIterable" 2018-02-01 12:52:55 +00:00
rsyncd.conf-sample Remove deprecated vm_test_mode option 2017-05-25 13:02:42 -07:00
swift-rsyslog.conf-sample Add sample rsyslog.conf. 2013-06-25 10:24:26 +08:00
swift.conf-sample Update and optimize documentation links 2017-08-01 15:12:00 +01:00