public class Sharded<R,S extends ShardInfo<R>>
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private Hashing |
algo |
static java.util.regex.Pattern |
DEFAULT_KEY_TAG_PATTERN |
static int |
DEFAULT_WEIGHT |
private java.util.TreeMap<java.lang.Long,S> |
nodes |
private java.util.Map<ShardInfo<R>,R> |
resources |
private java.util.regex.Pattern |
tagPattern
The default pattern used for extracting a key tag.
|
| Constructor and Description |
|---|
Sharded(java.util.List<S> shards) |
Sharded(java.util.List<S> shards,
Hashing algo) |
Sharded(java.util.List<S> shards,
Hashing algo,
java.util.regex.Pattern tagPattern) |
Sharded(java.util.List<S> shards,
java.util.regex.Pattern tagPattern) |
| Modifier and Type | Method and Description |
|---|---|
java.util.Collection<S> |
getAllShardInfo() |
java.util.Collection<R> |
getAllShards() |
java.lang.String |
getKeyTag(java.lang.String key)
A key tag is a special pattern inside a key that, if preset, is the only part of the key hashed
in order to select the server for this key.
|
R |
getShard(byte[] key) |
R |
getShard(java.lang.String key) |
S |
getShardInfo(byte[] key) |
S |
getShardInfo(java.lang.String key) |
private void |
initialize(java.util.List<S> shards) |
public static final int DEFAULT_WEIGHT
private final Hashing algo
private java.util.regex.Pattern tagPattern
public static final java.util.regex.Pattern DEFAULT_KEY_TAG_PATTERN
public Sharded(java.util.List<S> shards)
public Sharded(java.util.List<S> shards, java.util.regex.Pattern tagPattern)
private void initialize(java.util.List<S> shards)
public R getShard(byte[] key)
public R getShard(java.lang.String key)
public S getShardInfo(byte[] key)
public S getShardInfo(java.lang.String key)
public java.lang.String getKeyTag(java.lang.String key)
key - 'm_using_some_form_of_key_hashing_for_partitioning,_but_whpublic java.util.Collection<S> getAllShardInfo()
public java.util.Collection<R> getAllShards()