public void pump() { List<ReferenceRequest> batch = new ArrayList<>(); while (batch.size() < maxBatchSize) { ReferenceRequest referenceRequest = referenceRequests.poll(); if (referenceRequest == null) { break; } batch.add(referenceRequest); } // TODO multiGet(); List<TenantKeyedColumnValueCallbackStream> get = new ArrayList<>(); get.add(new TenantKeyedColumnValueCallbackStream(get, get, null)); }
public void multiGet(List<? extends ViewCollector> viewCollectors) throws IOException { List<TenantKeyedColumnValueCallbackStream<TenantIdAndCentricId, ImmutableByteArray, ImmutableByteArray, ViewValue, Long>> keyCallbackPairs = Lists. newArrayList(); for (ViewCollector viewCollector : viewCollectors) { ViewDescriptor viewDescriptor = viewCollector.getViewDescriptor(); keyCallbackPairs.add(new TenantKeyedColumnValueCallbackStream<>(viewDescriptor.getTenantIdAndCentricId(), rowKey(viewDescriptor.getViewId()), viewCollector)); } viewValueStore.multiRowGetAll(keyCallbackPairs); }
public void multiStreamRefs(List<RefStreamRequestContext> refStreamRequests) throws Exception { List<TenantKeyedColumnValueCallbackStream<TenantIdAndCentricId, ClassAndField_IdKey, ObjectId, byte[], Long>> fowardRefStreams = new ArrayList<>(); List<TenantKeyedColumnValueCallbackStream<TenantIdAndCentricId, ClassAndField_IdKey, ObjectId, byte[], Long>> backRefStreams = new ArrayList<>(); for (RefStreamRequestContext refStreamRequest : refStreamRequests) { for (String className : refStreamRequest.getReferringClassNames()) { ClassAndField_IdKey cafik = new ClassAndField_IdKey(className, refStreamRequest.getReferringFieldName(), refStreamRequest.getReferringObjectId()); if (refStreamRequest.isBackRefStream()) { backRefStreams.add(new TenantKeyedColumnValueCallbackStream<>(refStreamRequest.getTenantIdAndCentricId(), cafik, new NullSwallowingCallbackStream(refStreamRequest))); } else { fowardRefStreams.add(new TenantKeyedColumnValueCallbackStream<>(refStreamRequest.getTenantIdAndCentricId(), cafik, new NullSwallowingCallbackStream(refStreamRequest))); } } } if (!fowardRefStreams.isEmpty()) { multiLinks.multiRowGetAll(fowardRefStreams); } if (!backRefStreams.isEmpty()) { multiBackLinks.multiRowGetAll(backRefStreams); } for (RefStreamRequestContext refStreamRequest : refStreamRequests) { refStreamRequest.callback(null); // EOS } }