IBindingSetin each chunk, an
JoinTask.AccessPathTaskis created which will consume that
JoinTask.AccessPathTaskfor a given source chunk are sorted based on their
fromKeyso as to order the execution of those tasks in a manner that will maximize the efficiency of index reads. The ordered
JoinTask.AccessPathTasks are then submitted to the caller's
|Constructor and Description|
|Modifier and Type||Method and Description|
Populates a map of asBound predicates paired to a set of bindingSets.
Either execute the tasks in the caller's thread or schedule them for execution on the supplied service.
JoinTask.AccessPathTasks to the caller's
ExecutorService-or- executes those tasks in the caller's thread if no
ExecutorServicewas provided to the ctor.
Note: When running with an
ExecutorService, the caller
is responsible for waiting on that
JoinTask.AccessPathTasks to complete and must verify all
tasks completed successfully.
BufferClosedException- if there is an attempt to output a chunk of
ISolutions and the output buffer is an
IBlockingBuffer(true for all join dimensions exception the lastJoin and also true for query on the lastJoin) and that
IBlockingBufferhas been closed.
protected Map<IPredicate<?>,Collection<IBindingSet>> combineBindingSets(IBindingSet chunk)
JoinTask.AccessPathTask will apply each bindingSet to
each element visited by the
IAccessPath obtained for the
IPredicate. This has the natural consequence of
eliminating subqueries within the chunk.
chunk- A chunk of bindingSets from the source join dimension.
protected JoinTask.AccessPathTask getAccessPathTasks(Map<IPredicate<?>,Collection<IBindingSet>> map)
protected void reorderTasks(JoinTask.AccessPathTask tasks)
IAccessPathas licensed by each
IBindingSet. This order tends to focus the reads on the same parts of the index partitions with a steady progression in the fromKey as we process a chunk of
tasks- The tasks.
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.