E- The generic type of the objects in the relation.
public class FederationChunkHandler<E> extends StandaloneChunkHandler
BOp.getEvaluationContext(). In addition, we need to handle low latency and high data volume queries somewhat differently. Except for
BOpEvaluationContext.ANY, all of these cases wind up writing the intermediate results onto a direct
ByteBufferand notifying the receiving service that there are intermediate results which it can pull when it is ready to process them. This pattern allows the receiver to impose flow control on the producer.
|Modifier and Type||Field and Description|
FIXME Debug the NIO chunk message materialization logic (it is currently disabled by the setting of the nioThreshold parameter to the constructor).
Instance used by some test suites to avoid a dependency on the RDF data model.
|Constructor and Description|
|Modifier and Type||Method and Description|
Create and send an
public static final IChunkHandler INSTANCE
public FederationChunkHandler(int nioThreshold, boolean usePOJO)
nioThreshold- The threshold above which the intermediate solutions are shipped using NIO rather than RMI. This is ignored if
LocalChunkMessagewill be used for all messages. This allows the test cases to avoid RDF specific logic in the
public int handleChunk(IRunningQuery query, int bopId, int sinkId, IBindingSet chunk)
IBindingSet chunk generated by some pass over an operator and make it available to the target operator. How this is done depends on whether the query is running against a standalone database or the scale-out database.
Note: The return value is used as part of the termination criteria for
the query which depends on (a) the #of running operator tasks and (b) the
IChunkMessages generated (available) and consumed. The return
value of this method increases the #of
to the query.
query- The query.
bopId- The operator which wrote on the sink.
sinkId- The identifier of the target operator.
chunk- The intermediate results to be passed to that target operator.
IChunkMessagesent. This will always be ONE (1) for scale-up. For scale-out, there will be at least one
IChunkMessageper index partition over which the intermediate results were mapped.
protected void sendChunkMessage(FederatedRunningQuery q, UUID serviceUUID, int sinkId, int partitionId, DirectBufferPoolAllocator.IAllocationContext allocationContext, IBindingSet source)
IChunkMessagefrom some intermediate results. Various optimizations are employed depending on the amount of data to be moved and whether or not the target is this service.
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.