private void handleBatchRead(DataStoreRequest request) { try { ReadBatchRequest batchRequest = (ReadBatchRequest) request; int chunkSize = config.batchResultSize() * 2; List<String> keysToFetch = new ArrayList<>(); for (String key : batchRequest.keys()) { keysToFetch.add(key); if (keysToFetch.size() > chunkSize) { masterDataStore.batchRead( new ReadBatchRequest(batchRequest, new ArrayList<>(keysToFetch))); keysToFetch.clear(); } } if (keysToFetch.size() > 0) { masterDataStore.batchRead( new ReadBatchRequest(batchRequest, new ArrayList<>(keysToFetch))); } } catch (Exception ex) { logger.error(ex, "Unable to handle bulk send", request.clientId(), request.payload()); } }
private void sendMapInBatches(BatchResult batchResult) { int batchResultSize = config.batchResultSize(); final String clientId = batchResult.clientId(); final Map<String, String> results = batchResult.getResults(); if (debug) logger.info("ResponseHandler::sendMapInBatches()", clientId, results.size()); if (results.size() <= batchResultSize) { sendBatchResponse(batchResult); } else { LazyMap map = new LazyMap(results.size() > batchResultSize ? batchResultSize : results.size(), true); final Set<String> keys = results.keySet(); for (String key : keys) { map.put(key, results.get(key)); if (map.size() >= batchResultSize) { sendBatchResponse(new BatchResult(batchResult, map.clearAndCopy())); } } if (map.size() > 0) { sendBatchResponse(new BatchResult(batchResult, map.clearAndCopy())); } } }
@Override public String toString() { return "DataStoreServerConfig{" + "websocketWorkerCount=" + websocketWorkerCount() + ", dataStoreDrainerCount=" + dataStoreDrainerCount() + ", websocketURI='" + websocketURI() + '\'' + ", restURI='" + restURI() + '\'' + ", httpCompression=" + httpCompression() + ", maxFrameSize=" + maxFrameSize() + ", batchResultSize=" + batchResultSize() + ", port=" + port() + ", startupMode=" + startupMode() + ", debug=" + debug() + '}'; }
@Override public String toString() { return "DataStoreServerConfig{" + "websocketWorkerCount=" + websocketWorkerCount() + ", dataStoreDrainerCount=" + dataStoreDrainerCount() + ", websocketURI='" + websocketURI() + '\'' + ", restURI='" + restURI() + '\'' + ", httpCompression=" + httpCompression() + ", maxFrameSize=" + maxFrameSize() + ", batchResultSize=" + batchResultSize() + ", port=" + port() + ", startupMode=" + startupMode() + ", debug=" + debug() + ", adminPort=" + adminPort() + ", adminName=" + adminName() + ", replicationDataStoreConfig=" + replicationDataStoreConfig() + '}'; }
Action.NONE, "CONFIG batchResultSize", config.batchResultSize()); queue.put(statCount);