Files
d5c532a94ed84b445fa7019c87fa80413ae52f4c
swift /doc /source /ring.rst
Kota Tsuyuzaki d40031b46f Add Composite Ring Functionality
* Adds a composite_builder module which provides the functionality to
 build a composite ring from a number of component ring builders.
* Add id to RingBuilder to differentiate rings in composite.
 A RingBuilder now gets a UUID when it is saved to file if
 it does not already have one. A RingBuilder loaded from
 file does NOT get a UUID assigned unless it was previously persisted in
 the file. This forces users to explicitly assign an id to
 existing ring builders by saving the state back to file.
 The UUID is included in first line of the output from:
 swift-ring-builder <builder-file>
Background:
This is another implementation for Composite Ring [1]
to enable better dispersion for global erasure coded cluster.
The most significant difference from the related-change [1] is that this
solution attempts to solve the problem as an offline tool rather than
dynamic compositing on the running servers. Due to the change, we gain
advantages such as:
- Less code and being simple
- No complex state validation on the running server
- Easy deployments with an offline tool
This patch does not provide a command line utility for managing
composite rings. The interface for such a tool is still under
discussion; this patch provides the enabling functionality first.
Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>
Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
[1] Related-Change: I80ef36d3ac4d4b7c97a1d034b7fc8e0dc2214d16
Change-Id: I0d8928b55020592f8e75321d1f7678688301d797
2017年05月15日 16:42:00 -07:00

551 B

Partitioned Consistent Hash Ring

Ring

swift.common.ring.ring

Ring Builder

swift.common.ring.builder

Composite Ring Builder

swift.common.ring.composite_builder