@Override public void handle(BulkGetCommand request) { List<String> memcacheKeys = request.getKeys(); InternalSetMultimap<String, String> keysPerMap = new InternalSetMultimap<String, String>(); ComposedKeyMap<String, String, String> mapNameAndKey2memcacheKey = new ComposedKeyMap<String, String, String>(); for (String memcacheKey : memcacheKeys) { MapNameAndKeyPair mapNameAndKeyPair = parseMemcacheKey(memcacheKey); String mapName = mapNameAndKeyPair.getMapName(); String hzKey = mapNameAndKeyPair.getKey(); keysPerMap.put(mapName, hzKey); mapNameAndKey2memcacheKey.put(mapName, hzKey, memcacheKey); } Collection<MemcacheEntry> allResults = new ArrayList<MemcacheEntry>(); for (Map.Entry<String, Set<String>> mapKeys : keysPerMap.entrySet()) { String mapName = mapKeys.getKey(); Set<String> keys = mapKeys.getValue(); Collection<MemcacheEntry> mapResult = getAll(mapName, keys, mapNameAndKey2memcacheKey); allResults.addAll(mapResult); } int missCount = memcacheKeys.size() - allResults.size(); for (int i = 0; i < missCount; i++) { textCommandService.incrementGetMissCount(); } request.setResult(allResults); textCommandService.sendResponse(request); }
@Override public void handle(BulkGetCommand request) { List<String> memcacheKeys = request.getKeys(); InternalSetMultimap<String, String> keysPerMap = new InternalSetMultimap<String, String>(); ComposedKeyMap<String, String, String> mapNameAndKey2memcacheKey = new ComposedKeyMap<String, String, String>(); for (String memcacheKey : memcacheKeys) { MapNameAndKeyPair mapNameAndKeyPair = parseMemcacheKey(memcacheKey); String mapName = mapNameAndKeyPair.getMapName(); String hzKey = mapNameAndKeyPair.getKey(); keysPerMap.put(mapName, hzKey); mapNameAndKey2memcacheKey.put(mapName, hzKey, memcacheKey); } Collection<MemcacheEntry> allResults = new ArrayList<MemcacheEntry>(); for (Map.Entry<String, Set<String>> mapKeys : keysPerMap.entrySet()) { String mapName = mapKeys.getKey(); Set<String> keys = mapKeys.getValue(); Collection<MemcacheEntry> mapResult = getAll(mapName, keys, mapNameAndKey2memcacheKey); allResults.addAll(mapResult); } int missCount = memcacheKeys.size() - allResults.size(); for (int i = 0; i < missCount; i++) { textCommandService.incrementGetMissCount(); } request.setResult(allResults); textCommandService.sendResponse(request); }