Class PerfTask
- java.lang.Object
-
- org.apache.lucene.benchmark.byTask.tasks.PerfTask
-
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
AddDocTask
,AddIndexesTask
,AnalyzerFactoryTask
,ClearStatsTask
,CloseIndexTask
,CloseReaderTask
,CloseTaxonomyIndexTask
,CloseTaxonomyReaderTask
,CommitIndexTask
,CommitTaxonomyIndexTask
,ConsumeContentSourceTask
,CreateIndexTask
,CreateTaxonomyIndexTask
,FlushIndexTask
,ForceMergeTask
,NearRealtimeReaderTask
,NewAnalyzerTask
,NewCollationAnalyzerTask
,NewLocaleTask
,NewRoundTask
,OpenIndexTask
,OpenReaderTask
,OpenTaxonomyIndexTask
,OpenTaxonomyReaderTask
,PrintReaderTask
,ReadTask
,ReadTokensTask
,ReopenReaderTask
,ReportTask
,ResetInputsTask
,RollbackIndexTask
,SetPropTask
,TaskSequence
,UpdateDocTask
,WaitTask
,WriteLineDocTask
public abstract class PerfTask extends Object implements Cloneable
An abstract task to be tested for performance.
Every performance task extends this class, and provides its owndoLogic()
method, which performs the actual task.
Tasks performing some work that should be measured for the task, can overridesetup()
and/ortearDown()
and place that work there.
Relevant properties:task.max.depth.log
.
Also supports the following logging attributes:- log.step - specifies how often to log messages about the current running task. Default is
1000
doLogic()
invocations. Set to -1 to disable logging. - log.step.[class Task Name] - specifies the same as 'log.step', only for a particular task
name. For example, log.step.AddDoc will be applied only for
AddDocTask
. It's a way to control per task logging settings. If you want to omit logging for any other task, include log.step=-1. The syntax is "log.step." together with the Task's 'short' name (i.e., without the 'Task' part).
-
-
Constructor Summary
Constructors Constructor Description PerfTask(PerfRunData runData)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected PerfTask
clone()
void
close()
abstract int
doLogic()
Perform the task once (ignoring repetitions specification) Return number of work items done by this task.int
getAlgLineNum()
int
getBackgroundDeltaPriority()
int
getDepth()
protected String
getLogMessage(int recsCount)
String
getName()
String
getParams()
PerfRunData
getRunData()
boolean
getRunInBackground()
boolean
isDisableCounting()
Return true if counting is disabled for this task.int
runAndMaybeStats(boolean reportStats)
Run the task, record statistics.void
setAlgLineNum(int algLineNum)
void
setDepth(int depth)
void
setDisableCounting(boolean disableCounting)
protected void
setName(String name)
void
setParams(String params)
Set the params of this task.void
setRunInBackground(int deltaPri)
void
setup()
Task setup work that should not be measured for that specific task.protected boolean
shouldNeverLogAtStart()
Tasks that should never log at start can override this.protected boolean
shouldNotRecordStats()
Tasks that should not record statistics can override this.void
stopNow()
boolean
supportsParams()
Sub classes that support parameters must override this method to return true.void
tearDown()
Task tearDown work that should not be measured for that specific task.String
toString()
-
-
-
Constructor Detail
-
PerfTask
public PerfTask(PerfRunData runData)
-
-
Method Detail
-
setRunInBackground
public void setRunInBackground(int deltaPri)
-
getRunInBackground
public boolean getRunInBackground()
-
getBackgroundDeltaPriority
public int getBackgroundDeltaPriority()
-
stopNow
public void stopNow()
-
clone
protected PerfTask clone() throws CloneNotSupportedException
- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
runAndMaybeStats
public final int runAndMaybeStats(boolean reportStats) throws Exception
Run the task, record statistics.- Returns:
- number of work items done by this task.
- Throws:
Exception
-
doLogic
public abstract int doLogic() throws Exception
Perform the task once (ignoring repetitions specification) Return number of work items done by this task. For indexing that can be number of docs added. For warming that can be number of scanned items, etc.- Returns:
- number of work items done by this task.
- Throws:
Exception
-
getName
public String getName()
- Returns:
- Returns the name.
-
setName
protected void setName(String name)
- Parameters:
name
- The name to set.
-
getRunData
public PerfRunData getRunData()
- Returns:
- Returns the run data.
-
getDepth
public int getDepth()
- Returns:
- Returns the depth.
-
setDepth
public void setDepth(int depth)
- Parameters:
depth
- The depth to set.
-
getLogMessage
protected String getLogMessage(int recsCount)
-
shouldNeverLogAtStart
protected boolean shouldNeverLogAtStart()
Tasks that should never log at start can override this.- Returns:
- true if this task should never log when it start.
-
shouldNotRecordStats
protected boolean shouldNotRecordStats()
Tasks that should not record statistics can override this.- Returns:
- true if this task should never record its statistics.
-
setup
public void setup() throws Exception
Task setup work that should not be measured for that specific task. By default it does nothing, but tasks can implement this, moving work fromdoLogic()
to this method. Only the work done indoLogic()
is measured for this task. Notice that higher level (sequence) tasks containing this task would then measure larger time than the sum of their contained tasks.- Throws:
Exception
-
tearDown
public void tearDown() throws Exception
Task tearDown work that should not be measured for that specific task. By default it does nothing, but tasks can implement this, moving work fromdoLogic()
to this method. Only the work done indoLogic()
is measured for this task. Notice that higher level (sequence) tasks containing this task would then measure larger time than the sum of their contained tasks.- Throws:
Exception
-
supportsParams
public boolean supportsParams()
Sub classes that support parameters must override this method to return true.- Returns:
- true iff this task supports command line params.
-
setParams
public void setParams(String params)
Set the params of this task.- Throws:
UnsupportedOperationException
- for tasks supporting command line parameters.
-
getParams
public String getParams()
- Returns:
- Returns the Params.
-
isDisableCounting
public boolean isDisableCounting()
Return true if counting is disabled for this task.
-
setDisableCounting
public void setDisableCounting(boolean disableCounting)
-
setAlgLineNum
public void setAlgLineNum(int algLineNum)
-
getAlgLineNum
public int getAlgLineNum()
-
-