Class PerformanceStatistics
- java.lang.Object
-
- org.apache.manifoldcf.crawler.interfaces.PerformanceStatistics
-
public class PerformanceStatistics extends java.lang.ObjectAn instance of this class keeps a running average of how long it takes for every connection to process a document. This information is used to limit queuing per connection to something reasonable given the characteristics of the connection.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classPerformanceStatistics.AveragingQueueThis class keeps track of some depth of fetch history for an individual connection, and is used to calculate a weighted average fetches-per-minute rate.protected static classPerformanceStatistics.AveragingRecordThis class contains the data for a single document set against the given connection
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String_rcsidprotected java.util.HashMapconnectionHashThis hash is keyed by the connection name, and has elements of type AveragingQueueprotected static doubleDEFAULT_FETCH_RATEThis is the fetch rate that will be returned in the complete absence of any other information.protected static longDEFAULT_FETCH_TIMEprotected static double[]weightsThese are the weighting coefficients for the average.
-
Constructor Summary
Constructors Constructor Description PerformanceStatistics()Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublecalculateConnectionFetchRate(java.lang.String connectionName)Obtain current average document fetch rate (in documents per minute per connection)voidnoteDocumentsCompleted(java.lang.String connectionName, int documentSetSize, long elapsedTime)Note the successful completion of a set of documents using a single connection, and record the statistics for them.
-
-
-
Field Detail
-
_rcsid
public static final java.lang.String _rcsid
- See Also:
- Constant Field Values
-
DEFAULT_FETCH_RATE
protected static double DEFAULT_FETCH_RATE
This is the fetch rate that will be returned in the complete absence of any other information. This represents a 'wild guess' of a sort, used only at the very start of a job, and designed to not hopelessly overload the queue with stuff from one connection only.
-
DEFAULT_FETCH_TIME
protected static long DEFAULT_FETCH_TIME
-
weights
protected static double[] weights
These are the weighting coefficients for the average. They should all add up to 1.0
-
connectionHash
protected java.util.HashMap connectionHash
This hash is keyed by the connection name, and has elements of type AveragingQueue
-
-
Method Detail
-
noteDocumentsCompleted
public void noteDocumentsCompleted(java.lang.String connectionName, int documentSetSize, long elapsedTime)Note the successful completion of a set of documents using a single connection, and record the statistics for them.
-
calculateConnectionFetchRate
public double calculateConnectionFetchRate(java.lang.String connectionName)
Obtain current average document fetch rate (in documents per minute per connection)
-
-