public class StaticFrontier2 extends Object implements IStaticFrontier
Note: This implementation has package private methods that permit certain kinds of mutation.
Constructor and Description |
---|
StaticFrontier2() |
Modifier and Type | Method and Description |
---|---|
void |
copyIntoResetFrontier(int off,
IArraySlice<org.openrdf.model.Value> slice)
Copy a slice into the backing array.
|
boolean |
isCompact()
Return
true iff the frontier is known to be compact (no
duplicate vertices). |
boolean |
isEmpty()
Return
true if the frontier is known to be empty. |
Iterator<org.openrdf.model.Value> |
iterator() |
void |
resetAndEnsureCapacity(int minCapacity)
Grow the backing array iff necessary.
|
void |
resetFrontier(int minCapacity,
boolean sort,
Iterator<org.openrdf.model.Value> itr)
Reset the frontier from the supplied vertices.
|
void |
setCompact(boolean newValue) |
int |
size()
The number of vertices in the frontier.
|
String |
toString() |
public boolean isCompact()
IStaticFrontier
true
iff the frontier is known to be compact (no
duplicate vertices).
Note: If the frontier is not compact, then the IGASEngine
may
optionally elect to eliminate duplicate work when it schedules the
vertices in the frontier.
Note: A non-compact frontier can arise when the IGASScheduler
chooses a per-thread approach and then copies the per-thread segments
onto the shared backing array in parallel. This can reduce the time
between rounds, which can speed up the overall execution of the algorithm
significantly.
isCompact
in interface IStaticFrontier
public void setCompact(boolean newValue)
public int size()
IStaticFrontier
size
in interface IStaticFrontier
public boolean isEmpty()
IStaticFrontier
true
if the frontier is known to be empty.isEmpty
in interface IStaticFrontier
public Iterator<org.openrdf.model.Value> iterator()
public void resetAndEnsureCapacity(int minCapacity)
null
are cleared. This is
done to faciltiate GC by clearing references that would otherwise remain
if/when the frontier contracted.minCapacity
- The required minimum capacity.public void copyIntoResetFrontier(int off, IArraySlice<org.openrdf.model.Value> slice)
off
- The offset at which to copy the slice.slice
- The slice.public void resetFrontier(int minCapacity, boolean sort, Iterator<org.openrdf.model.Value> itr)
IStaticFrontier
resetFrontier
in interface IStaticFrontier
minCapacity
- The minimum capacity of the new frontier. (A minimum capacity
is specified since many techniques to compact the frontier can
only estimate the required capacity.)itr
- The vertices in the new frontier.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.