org.apache.lucene.benchmark.byTask.tasks
Class PerfTask

java.lang.Object
  extended by org.apache.lucene.benchmark.byTask.tasks.PerfTask
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
AddDocTask, ClearStatsTask, CloseIndexTask, CloseReaderTask, CloseTaxonomyIndexTask, CloseTaxonomyReaderTask, CommitIndexTask, CommitTaxonomyIndexTask, ConsumeContentSourceTask, CreateIndexTask, CreateTaxonomyIndexTask, DeleteByPercentTask, DeleteDocTask, FlushReaderTask, ForceMergeTask, NearRealtimeReaderTask, NewAnalyzerTask, NewCollationAnalyzerTask, NewLocaleTask, NewRoundTask, NewShingleAnalyzerTask, OpenIndexTask, OpenReaderTask, OpenTaxonomyIndexTask, OpenTaxonomyReaderTask, PrintReaderTask, ReadTask, ReadTokensTask, ReopenReaderTask, ReportTask, ResetInputsTask, RollbackIndexTask, SetPropTask, TaskSequence, UpdateDocTask, WaitForMergesTask, 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 own doLogic() method, which performs the actual task.
Tasks performing some work that should be measured for the task, can override setup() and/or tearDown() and place that work there.
Relevant properties: task.max.depth.log.
Also supports the following logging attributes:


Field Summary
protected  int logStep
           
protected static String NEW_LINE
           
protected  String params
           
protected  boolean stopNow
           
 
Constructor Summary
PerfTask(PerfRunData runData)
           
 
Method Summary
protected  Object clone()
           
 void close()
           
abstract  int doLogic()
          Perform the task once (ignoring repetitions specification) Return number of work items done by this task.
 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 setDepth(int depth)
           
 void setDisableCounting(boolean disableCounting)
          See isDisableCounting()
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()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logStep

protected int logStep

params

protected String params

NEW_LINE

protected static final String NEW_LINE

stopNow

protected volatile boolean stopNow
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 Object clone()
                throws CloneNotSupportedException
Overrides:
clone in class Object
Throws:
CloneNotSupportedException

close

public void close()
           throws Exception
Throws:
Exception

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.

toString

public String toString()
Overrides:
toString in class Object

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 from doLogic() to this method. Only the work done in doLogic() 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 from doLogic() to this method. Only the work done in doLogic() 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)
See isDisableCounting()