public class JoinTaskFactoryTask extends DataServiceCallable<Future>
DistributedJoinTask
s. The factory either creates a new
DistributedJoinTask
or returns the pre-existing
DistributedJoinTask
for the given JoinMasterTask
instance (as
identified by its UUID
), orderIndex, and partitionId.
When the desired join task pre-exists, factory will invoke
DistributedJoinTask.addSource(IAsynchronousIterator)
and specify the
sourceItrProxy
as another source for that join task.
The use of a factory pattern allows us to concentrate all
DistributedJoinTask
s which target the same tail predicate and index
partition for the same rule execution instance onto the same
DistributedJoinTask
. The concentrator effect achieved by the factory
only matters when the fan-out is GT ONE (1).
Modifier and Type | Field and Description |
---|---|
protected static org.apache.log4j.Logger |
log |
Constructor and Description |
---|
JoinTaskFactoryTask(String scaleOutIndexName,
IRule rule,
IJoinNexusFactory joinNexusFactory,
int[] order,
int orderIndex,
int partitionId,
IJoinMaster masterProxy,
UUID masterUUID,
IAsynchronousIterator<IBindingSet[]> sourceItrProxy,
IKeyOrder[] keyOrders,
IVariable[][] requiredVars) |
Modifier and Type | Method and Description |
---|---|
Future |
call()
Either starts a new
DistributedJoinTask and returns its
Future or returns the Future of an existing
DistributedJoinTask for the same
DistributedJoinMasterTask instance, orderIndex, and
partitionId. |
static String |
getJoinTaskNamespace(UUID masterUUID,
int orderIndex,
int partitionId) |
protected DistributedJoinTask |
newJoinTask() |
protected Future<Void> |
submit(DistributedJoinTask task) |
String |
toString() |
getDataService, isDataService, setDataService
getFederation, setFederation
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFederation, setFederation
public JoinTaskFactoryTask(String scaleOutIndexName, IRule rule, IJoinNexusFactory joinNexusFactory, int[] order, int orderIndex, int partitionId, IJoinMaster masterProxy, UUID masterUUID, IAsynchronousIterator<IBindingSet[]> sourceItrProxy, IKeyOrder[] keyOrders, IVariable[][] requiredVars)
scaleOutIndexName
- rule
- joinNexusFactory
- order
- orderIndex
- partitionId
- masterProxy
- masterUUID
- (Avoids RMI to obtain this later).sourceItrProxy
- nextScaleOutIndexName
- public Future call() throws Exception
DistributedJoinTask
and returns its
Future
or returns the Future
of an existing
DistributedJoinTask
for the same
DistributedJoinMasterTask
instance, orderIndex, and
partitionId.Future
of the
DistributedJoinTask
.Exception
protected DistributedJoinTask newJoinTask()
protected Future<Void> submit(DistributedJoinTask task)
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.