MediaWiki
REL1_24
|
Convenience class for weighted consistent hash rings. More...
Public Member Functions | |
__construct (array $map) | |
ejectFromLiveRing ($location, $ttl) | |
Remove a location from the "live" hash ring. | |
getLiveLocation ($item) | |
Get the location of an item on the "live" ring. | |
getLiveLocations ($item) | |
Get the location of an item on the "live" ring, as well as the next locations. | |
getLiveLocationWeights () | |
Get the map of "live" locations to weight (ignores 0-weight items) | |
getLiveRing () | |
Get the "live" hash ring (which does not include ejected locations) | |
getLocation ($item) | |
Get the location of an item on the ring. | |
getLocations ($item, $limit) | |
Get the location of an item on the ring, as well as the next locations. | |
getLocationWeights () | |
Get the map of locations to weight (ignores 0-weight items) | |
newWithoutLocation ($location) | |
Get a new hash ring with a location removed from the ring. | |
Public Attributes | |
const | RING_SIZE = 268435456 |
Protected Attributes | |
Array | $ejectionExpiries = array() |
(location => UNIX timestamp) * | |
integer | $ejectionNextExpiry = INF |
UNIX timestamp *. | |
Array | $liveRing |
(location => (start, end)) * | |
Array | $ring = array() |
(location => (start, end)) * | |
Array | $sourceMap = array() |
(location => weight) * |
Convenience class for weighted consistent hash rings.
Definition at line 29 of file HashRing.php.
HashRing::__construct | ( | array $ | map | ) |
HashRing::ejectFromLiveRing | ( | $ | location, |
$ | ttl | ||
) |
Remove a location from the "live" hash ring.
string | $location | |
integer | $ttl | Seconds |
Definition at line 154 of file HashRing.php.
HashRing::getLiveLocation | ( | $ | item | ) |
Get the location of an item on the "live" ring.
string | $item |
UnexpectedValueException |
Definition at line 209 of file HashRing.php.
HashRing::getLiveLocations | ( | $ | item | ) |
Get the location of an item on the "live" ring, as well as the next locations.
string | $item | |
integer | $limit | Maximum number of locations to return |
UnexpectedValueException |
Definition at line 221 of file HashRing.php.
Get the map of "live" locations to weight (ignores 0-weight items)
UnexpectedValueException |
Definition at line 231 of file HashRing.php.
Get the "live" hash ring (which does not include ejected locations)
UnexpectedValueException |
Definition at line 172 of file HashRing.php.
HashRing::getLocation | ( | $ | item | ) |
Get the location of an item on the ring.
string | $item |
Definition at line 82 of file HashRing.php.
HashRing::getLocations | ( | $ | item, |
$ | limit | ||
) |
Get the location of an item on the ring, as well as the next locations.
string | $item | |
integer | $limit | Maximum number of locations to return |
Definition at line 95 of file HashRing.php.
Get the map of locations to weight (ignores 0-weight items)
Definition at line 130 of file HashRing.php.
HashRing::newWithoutLocation | ( | $ | location | ) |
Get a new hash ring with a location removed from the ring.
string | $location |
Definition at line 140 of file HashRing.php.
Array HashRing::$ejectionExpiries = array() [protected] |
(location => UNIX timestamp) *
Definition at line 34 of file HashRing.php.
integer HashRing::$ejectionNextExpiry = INF [protected] |
UNIX timestamp *.
Definition at line 35 of file HashRing.php.
Array HashRing::$liveRing [protected] |
(location => (start, end)) *
Definition at line 33 of file HashRing.php.
Array HashRing::$ring = array() [protected] |
(location => (start, end)) *
Definition at line 31 of file HashRing.php.
Array HashRing::$sourceMap = array() [protected] |
(location => weight) *
Definition at line 30 of file HashRing.php.
const HashRing::RING_SIZE = 268435456 |
Definition at line 37 of file HashRing.php.
Referenced by __construct().