@Override public Map<K, V> getAll(Set<K> keys) { if (CollectionUtil.isEmpty(keys)) { return emptyMap(); } int keysSize = keys.size(); Map<Integer, List<Data>> partitionToKeyData = new HashMap<Integer, List<Data>>(); List<Object> resultingKeyValuePairs = new ArrayList<Object>(keysSize * 2); getAllInternal(keys, partitionToKeyData, resultingKeyValuePairs); Map<K, V> result = createHashMap(keysSize); for (int i = 0; i < resultingKeyValuePairs.size(); ) { K key = toObject(resultingKeyValuePairs.get(i++)); V value = toObject(resultingKeyValuePairs.get(i++)); result.put(key, value); } return result; }
@Override public Map<K, V> getAll(Set<K> keys) { if (CollectionUtil.isEmpty(keys)) { return emptyMap(); } int keysSize = keys.size(); Map<Integer, List<Data>> partitionToKeyData = new HashMap<Integer, List<Data>>(); List<Object> resultingKeyValuePairs = new ArrayList<Object>(keysSize * 2); getAllInternal(keys, partitionToKeyData, resultingKeyValuePairs); Map<K, V> result = createHashMap(keysSize); for (int i = 0; i < resultingKeyValuePairs.size(); ) { K key = toObject(resultingKeyValuePairs.get(i++)); V value = toObject(resultingKeyValuePairs.get(i++)); result.put(key, value); } return result; }
@Override protected void getAllInternal(Set<K> keys, Map<Integer, List<Data>> partitionToKeyData, List<Object> resultingKeyValuePairs) { Map<Object, Data> keyMap = createHashMap(keys.size()); if (serializeKeys) { fillPartitionToKeyData(keys, partitionToKeyData, keyMap, null); } Collection<?> ncKeys = serializeKeys ? keyMap.values() : new LinkedList<K>(keys); populateResultFromNearCache(ncKeys, resultingKeyValuePairs); if (ncKeys.isEmpty()) { return; } Map<Data, Object> reverseKeyMap = null; if (!serializeKeys) { reverseKeyMap = createHashMap(ncKeys.size()); fillPartitionToKeyData(keys, partitionToKeyData, keyMap, reverseKeyMap); } Map<Object, Long> reservations = getNearCacheReservations(ncKeys, keyMap); try { int currentSize = resultingKeyValuePairs.size(); super.getAllInternal(keys, partitionToKeyData, resultingKeyValuePairs); populateResultFromRemote(currentSize, resultingKeyValuePairs, reservations, reverseKeyMap); } finally { releaseRemainingReservedKeys(reservations); } }
@Override protected void getAllInternal(Set<K> keys, Map<Integer, List<Data>> partitionToKeyData, List<Object> resultingKeyValuePairs) { Map<Object, Data> keyMap = createHashMap(keys.size()); if (serializeKeys) { fillPartitionToKeyData(keys, partitionToKeyData, keyMap, null); } Collection<?> ncKeys = serializeKeys ? keyMap.values() : new LinkedList<K>(keys); populateResultFromNearCache(ncKeys, resultingKeyValuePairs); if (ncKeys.isEmpty()) { return; } Map<Data, Object> reverseKeyMap = null; if (!serializeKeys) { reverseKeyMap = createHashMap(ncKeys.size()); fillPartitionToKeyData(keys, partitionToKeyData, keyMap, reverseKeyMap); } Map<Object, Long> reservations = getNearCacheReservations(ncKeys, keyMap); try { int currentSize = resultingKeyValuePairs.size(); super.getAllInternal(keys, partitionToKeyData, resultingKeyValuePairs); populateResultFromRemote(currentSize, resultingKeyValuePairs, reservations, reverseKeyMap); } finally { releaseRemainingReservedKeys(reservations); } }