MediaWiki
1.30.0
|
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. More... | |
getLiveLocation ( $item) | |
Get the location of an item on the "live" ring. More... | |
getLiveLocations ( $item, $limit) | |
Get the location of an item on the "live" ring, as well as the next locations. More... | |
getLiveLocationWeights () | |
Get the map of "live" locations to weight (ignores 0-weight items) More... | |
getLiveRing () | |
Get the "live" hash ring (which does not include ejected locations) More... | |
getLocation ( $item) | |
Get the location of an item on the ring. More... | |
getLocations ( $item, $limit) | |
Get the location of an item on the ring, as well as the next locations. More... | |
getLocationWeights () | |
Get the map of locations to weight (ignores 0-weight items) More... | |
newWithoutLocation ( $location) | |
Get a new hash ring with a location removed from the ring. More... | |
Public Attributes | |
const | RING_SIZE = 268435456 |
Protected Attributes | |
Array | $ejectionExpiries = [] |
(location => UNIX timestamp) More... | |
int | $ejectionNextExpiry = INF |
UNIX timestamp. More... | |
HashRing null | $liveRing |
Array | $ring = [] |
(location => (start, end)) More... | |
Array | $sourceMap = [] |
(location => weight) More... | |
Convenience class for weighted consistent hash rings.
Definition at line 28 of file HashRing.php.
HashRing::__construct | ( | array | $map | ) |
array | $map | (location => weight) |
Definition at line 46 of file HashRing.php.
References $hashes, as, captcha-old\count, key, RING_SIZE, and use.
HashRing::ejectFromLiveRing | ( | $location, | |
$ttl | |||
) |
Remove a location from the "live" hash ring.
string | $location | |
int | $ttl | Seconds |
Definition at line 158 of file HashRing.php.
References captcha-old\count.
Referenced by JobQueueFederated\tryJobInsertions().
HashRing::getLiveLocation | ( | $item | ) |
Get the location of an item on the "live" ring.
string | $item |
UnexpectedValueException |
Definition at line 213 of file HashRing.php.
References getLiveRing().
Referenced by JobQueueFederated\tryJobInsertions().
HashRing::getLiveLocations | ( | $item, | |
$limit | |||
) |
Get the location of an item on the "live" ring, as well as the next locations.
string | $item | |
int | $limit | Maximum number of locations to return |
UnexpectedValueException |
Definition at line 225 of file HashRing.php.
References getLiveRing().
HashRing::getLiveLocationWeights | ( | ) |
Get the map of "live" locations to weight (ignores 0-weight items)
UnexpectedValueException |
Definition at line 235 of file HashRing.php.
References getLiveRing().
Referenced by JobQueueFederated\tryJobInsertions().
HashRing::getLiveRing | ( | ) |
Get the "live" hash ring (which does not include ejected locations)
UnexpectedValueException |
Definition at line 176 of file HashRing.php.
References $liveRing, captcha-old\count, and use.
Referenced by JobQueueFederated\doBatchPush(), getLiveLocation(), getLiveLocations(), and getLiveLocationWeights().
HashRing::getLocation | ( | $item | ) |
Get the location of an item on the ring.
string | $item |
Definition at line 86 of file HashRing.php.
References getLocations().
HashRing::getLocations | ( | $item, | |
$limit | |||
) |
Get the location of an item on the ring, as well as the next locations.
string | $item | |
int | $limit | Maximum number of locations to return |
Definition at line 99 of file HashRing.php.
References as, captcha-old\count, and list.
Referenced by getLocation().
HashRing::getLocationWeights | ( | ) |
Get the map of locations to weight (ignores 0-weight items)
Definition at line 134 of file HashRing.php.
References $sourceMap.
HashRing::newWithoutLocation | ( | $location | ) |
Get a new hash ring with a location removed from the ring.
string | $location |
Definition at line 144 of file HashRing.php.
References $sourceMap, and captcha-old\count.
|
protected |
(location => UNIX timestamp)
Definition at line 37 of file HashRing.php.
|
protected |
UNIX timestamp.
Definition at line 39 of file HashRing.php.
|
protected |
Definition at line 35 of file HashRing.php.
Referenced by getLiveRing().
|
protected |
(location => (start, end))
Definition at line 32 of file HashRing.php.
|
protected |
(location => weight)
Definition at line 30 of file HashRing.php.
Referenced by getLocationWeights(), and newWithoutLocation().
const HashRing::RING_SIZE = 268435456 |
Definition at line 41 of file HashRing.php.
Referenced by __construct().