public class IndexRemoveJob extends IndexUpdateJob implements ScanJob
Modifier and Type | Field and Description |
---|---|
static String |
DELETED_RECORDS_COUNT |
FAILED_TX, index, INDEX_JOB_NS, INDEX_NAME, INDEX_RELATION_TYPE, indexName, indexRelationType, indexRelationTypeName, jobStartTime, log, managementSystem, SUCCESS_TX, writeTx
Modifier | Constructor and Description |
---|---|
|
IndexRemoveJob() |
protected |
IndexRemoveJob(IndexRemoveJob copy) |
|
IndexRemoveJob(JanusGraph graph,
String indexName,
String indexType) |
Modifier and Type | Method and Description |
---|---|
IndexRemoveJob |
clone()
Returns a clone of this ScanJob.
|
Predicate<StaticBuffer> |
getKeyFilter()
A predicate that determines whether
ScanJob.process(org.janusgraph.diskstorage.StaticBuffer, java.util.Map, ScanMetrics)
should be invoked for the given key. |
List<SliceQuery> |
getQueries()
Returns one or more
SliceQuery instances belonging to this ScanJob . |
void |
process(StaticBuffer key,
Map<SliceQuery,EntryList> entries,
ScanMetrics metrics)
Run this
ScanJob 's computation on the supplied row-key and entries. |
protected void |
validateIndexStatus() |
void |
workerIterationEnd(ScanMetrics metrics)
Invoked after a block of computation (i.e.
|
void |
workerIterationStart(Configuration config,
Configuration graphConf,
ScanMetrics metrics)
Invoked before a block of computation (i.e.
|
isGlobalGraphIndex, isRelationTypeIndex, workerIterationStart
public static final String DELETED_RECORDS_COUNT
public IndexRemoveJob()
protected IndexRemoveJob(IndexRemoveJob copy)
public IndexRemoveJob(JanusGraph graph, String indexName, String indexType)
public void workerIterationEnd(ScanMetrics metrics)
ScanJob
VertexProgram.workerIterationEnd(Memory)
This method may not be called if there is no data to be processed. Correspondingly, the start method won't be called either.
No-op default implementation.workerIterationEnd
in interface ScanJob
workerIterationEnd
in class IndexUpdateJob
metrics
- ScanMetrics
for this jobpublic void workerIterationStart(Configuration config, Configuration graphConf, ScanMetrics metrics)
ScanJob
VertexProgram.workerIterationStart(Memory)
This method may not be called if there is no data to be processed. Correspondingly, the end method won't be called either.
No-op default implementation.workerIterationStart
in interface ScanJob
config
- configuration for this particular jobgraphConf
- configuration options for the entire graph against which this job is executedmetrics
- ScanMetrics
for this jobprotected void validateIndexStatus()
validateIndexStatus
in class IndexUpdateJob
public void process(StaticBuffer key, Map<SliceQuery,EntryList> entries, ScanMetrics metrics)
ScanJob
ScanJob
's computation on the supplied row-key and entries.
This method will be called by a client of this interface if and only if both of the following criteria are satisfied:
ScanJob.getKeyFilter()
must evaluate to true
on the key
.
entries
parameter must contain an entry whose key is the first
SliceQuery
returned by ScanJob.getQueries()
and whose value
is an EntryList
with at least size one. In other words, the
initial query in this job's query list must have matched at least once.
Implementations may assume these two conditions are satisfied. Calling this method when either of these two conditions is false yields undefined behavior.
It is the caller's responsibility to construct an entries
map that
maps each SliceQuery
to that query's matches.
The caller is also responsible for truncating the entries
values
to honor BaseQuery.getLimit()
when BaseQuery.hasLimit()
is true. Passing in an entries
value longer than the limit set in
its respective key yields undefined behavior.
This method may be called by concurrent threads in a single process.
public List<SliceQuery> getQueries()
ScanJob
SliceQuery
instances belonging to this ScanJob
.
Before calling
ScanJob.process(org.janusgraph.diskstorage.StaticBuffer, java.util.Map, ScanMetrics)
,
users of this interface must check that the key in question contains at least one
entry matching the initial SliceQuery
returned by this method. See the javadoc
for the process
method for more information.
If this method returns more than one query, then the initial query's lower bound must
be all zero bits and the initial query's upper bound must be all one bits (per the
preconditions in StandardScannerExecutor
, the reference ScanJob
executor).
getQueries
in interface ScanJob
public Predicate<StaticBuffer> getKeyFilter()
ScanJob
ScanJob.process(org.janusgraph.diskstorage.StaticBuffer, java.util.Map, ScanMetrics)
should be invoked for the given key. If the predicate returns true,
then users of this interface should invoke process
for the key and
its associated entries. If the predicate returns false, then users of this
interface need not invoke process
for the key and its associated entries.
This is essentially an optimization that lets implementations of this interface
signal to client code that a row can be safely skipped without affecting the
execution of this ScanJob
.
The returned predicate may be called by concurrent threads in a single process.
getKeyFilter
in interface ScanJob
public IndexRemoveJob clone()
ScanJob
Copyright © 2012–2023. All rights reserved.