edu.ufl.hcs.ppw.pdm.highlevel.TraceMerger Class Reference

This class sits on top of the trace interval reader, providing a single stream of IntervalRecords (sorted on end time) instead of N streams, one per thread. More...

List of all members.

Classes

class  ThreadRecords
 Class to represent each thread's bucket of records. More...

Public Member Functions

 TraceMerger (HighLevelPDM pdm) throws IOException
 Create a new trace record merger for the given PDM.
IntervalRecord getNextInterval () throws IOException
 Returns the next record across all threads.

Static Public Member Functions

static void main (String[] args) throws IOException
 test harness

Package Attributes

int threads
HighLevelPDM pdm
ThreadRecords[] threadRecs

Static Package Attributes

static final int CHUNKS = 64
 Number of records to read in at once, per thread.


Detailed Description

This class sits on top of the trace interval reader, providing a single stream of IntervalRecords (sorted on end time) instead of N streams, one per thread.

It is basically an on-line merge.

As with the TraceIntervalReader, do not use the underlying raw trace record accesses of the HighLevelPDM unless you want this to break.

Author:
Adam Leko

Member Function Documentation

IntervalRecord edu.ufl.hcs.ppw.pdm.highlevel.TraceMerger.getNextInterval (  )  throws IOException


Member Data Documentation

final int edu.ufl.hcs.ppw.pdm.highlevel.TraceMerger.CHUNKS = 64 [static, package]

Number of records to read in at once, per thread.

This is an important parameter; larger values reduce costly disk seeks, but take up more memory (especially with a large number of threads).

Referenced by edu.ufl.hcs.ppw.pdm.highlevel.TraceMerger.TraceMerger.ThreadRecords.fillIfNecessary().


The documentation for this class was generated from the following file:

Generated on Sat Sep 29 08:46:42 2012 for PPW by  doxygen 1.5.8