private Bucket pickBucket(String key) { return config.pickBucket(key); }
public Bucket pickBucket(String key) { return pickBucket(key.hashCode()); }
@Override public void batchLoad(final Collection<String> keys) { Map<Bucket, List<String>> map = new HashMap<>(); Bucket bucket; List<String> bucketKeys; for (String key : keys) { bucket = config.pickBucket(key); bucketKeys = map.get(bucket); if (bucketKeys == null) { bucketKeys = new ArrayList<>(); map.put(bucket, bucketKeys); } bucketKeys.add(key); } for (Map.Entry<Bucket, List<String>> entry : map.entrySet()) { serverProxy(entry.getKey()).batchGet(clientId, entry.getValue()); } }
@Override public void setBatchIfNotExists(Map<String, Object> batch) { Map<Bucket, List<Entry<String, String>>> map = new LinkedHashMap<>(); Bucket bucket; List<Entry<String, String>> bucketItems; for (String key : batch.keySet()) { bucket = config.pickBucket(key); bucketItems = map.get(bucket); if (bucketItems == null) { bucketItems = new ArrayList<>(); map.put(bucket, bucketItems); } bucketItems.add(new Entry<>(key, serializer.serialize(batch.get(key)).toString())); } for (Map.Entry<Bucket, List<Entry<String, String>>> entry : map.entrySet()) { serverProxy(entry.getKey()).batchSetIfNotExists(clientId, entry.getValue()); } }
@Override public void setBatch(Map<String, Object> batch) { Map<Bucket, List<Entry<String, String>>> map = new LinkedHashMap<>(); Bucket bucket; List<Entry<String, String>> bucketItems; Set<String> keys = batch.keySet(); for (String key : keys) { bucket = config.pickBucket(key); bucketItems = map.get(bucket); if (bucketItems == null) { bucketItems = new ArrayList<>(); map.put(bucket, bucketItems); } bucketItems.add(new Entry<>(key, serializer.serialize(batch.get(key)).toString())); } for (Map.Entry<Bucket, List<Entry<String, String>>> entry : map.entrySet()) { serverProxy(entry.getKey()).batchSet(clientId, entry.getValue()); } }