org.apache.hadoop.util
Class QueueProcessingStatistics
java.lang.Object
   org.apache.hadoop.util.QueueProcessingStatistics
org.apache.hadoop.util.QueueProcessingStatistics
- public abstract class QueueProcessingStatistics 
- extends Object
Hadoop has several work queues, such as 
 FSNamesystem.neededReplications
 With a properly throttled queue, a worker thread cycles repeatedly,
 doing a chunk of work each cycle then resting a bit, until the queue is
 empty.  This class is intended to collect statistics about the behavior of
 such queues and consumers.  It reports the amount of work done and 
 how long it took, for the first cycle after collection starts, and for 
 the total number of cycles needed to flush the queue.  We use a state 
 machine to detect when the queue has been flushed and then we log the 
 stats; see QueueProcessingStatistics.State for enumeration of the states and their meanings.
 
 
 
| Methods inherited from class java.lang.Object | 
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
QueueProcessingStatistics
public QueueProcessingStatistics(String queueName,
                                 String workItemsName,
                                 org.apache.commons.logging.Log logObject)
- Parameters:
- queueName- - Human-readable name of the queue being monitored, 
                    used as first word in the log messages.
- workItemsName- - what kind of work items are being managed
                    on the queue?  A plural word is best here, for logging.
- logObject- - What log do you want the log messages to be sent to?
startCycle
public void startCycle(int maxWorkToProcess)
- 
 
endCycle
public void endCycle(int workFound)
- 
 
checkRestart
public void checkRestart()
- 
 
preCheckIsLastCycle
public abstract boolean preCheckIsLastCycle(int maxWorkToProcess)
- The termination condition is to identify the last cycle that will 
 empty the queue.  Two abstract APIs are called: preCheckIsLastCycleis called at the beginning of each cycle, andpostCheckIsLastCycle(int)is called at the end of each cycle. 
 At least one of them must correctly provide the termination 
 condition. The other may always return 'false'.  If either of them 
 returns 'true' in a given cycle, then at the end of that cycle the 
 stats will be output to log, and stats collection will end.
 
- 
- Parameters:
- maxWorkToProcess- - if this number is greater than the amount
            of work remaining at the start of a cycle, then it will
            be the last cycle.
- Returns:
- - true if last cycle detected, else false
 
postCheckIsLastCycle
public abstract boolean postCheckIsLastCycle(int workFound)
- See preCheckIsLastCycle(int).
 
- 
- Parameters:
- workFound- - may not be useful
- Returns:
- - true if remaining work is zero at end of cycle,
           else false
 
Copyright © 2009 The Apache Software Foundation