unity.operators
Class DualHashTable

java.lang.Object
  extended by unity.operators.DualHashTable

public class DualHashTable
extends java.lang.Object


Nested Class Summary
 class DualHashTable.PartitionInfo
           
 
Field Summary
static int DEFAULT_LIST_SIZE
           
static int IS_EXPANDING
           
static int IS_FROZEN
           
static int IS_REBUILDING
           
 
Constructor Summary
DualHashTable(int maxsize, int numPart, int bfr, Relation left, Relation right, EquiJoinPredicate p, boolean earlyDelete)
           
DualHashTable(int maxsize, int numPart, int bfr, Relation left, Relation right, EquiJoinPredicate p, boolean earlyDelete, double scale)
           
 
Method Summary
 void addPartitionFileNames(int source, int partIndex, java.lang.String fname)
           
 void clear()
           
 void clear(int source, int partitionIndex)
           
 int clearLeftFinished()
           
 int clearRightFinished()
           
 int close(int state, int timestamp)
           
 void empty()
           
 void flush(int source, int partitionIndex, int newState, int timestamp)
           
 void flush(int source, int partitionIndex, int newState, int timestamp, boolean flushSorted, SortComparator sorter, boolean departTS)
           
 int getInsertsAvoided()
           
 java.util.ArrayList getNonJoinedLeft()
           
 java.util.ArrayList getNonJoinedRight()
           
 int getNumFiles(int source, int partIndex)
           
 java.util.ArrayList getPartitionFileNames(int source, int partIndex)
           
 java.util.ArrayList getPartitionFlushTimes(int source, int partIndex)
           
 DualHashTable.PartitionInfo[] getPartitionInfo()
           
 java.util.ArrayList getPartitionProbeTimes(int source, int partIndex)
           
 int getPartitionState(int source, int partIndex)
           
 int getPartitionTupleCount(int source, int partIndex)
           
 java.util.ArrayList getPartitionTuples(int source, int partIndex)
           
 int getTupleCount(int source)
           
 int getTuplesDiscarded()
           
 boolean hasOverflow()
           
 int insert(Tuple t, int source, boolean NProbeMatch)
           
 boolean leftSmaller()
           
static void main(java.lang.String[] args)
           
 java.lang.String printTupleCounts()
           
 java.util.ArrayList probe(Tuple probeTuple, int probeSource)
           
 void setLeftInputFinished(boolean b)
           
 void setPartitionState(int source, int partIndex, int state)
           
 void setRightInputFinished(boolean b)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_LIST_SIZE

public static int DEFAULT_LIST_SIZE

IS_EXPANDING

public static int IS_EXPANDING

IS_FROZEN

public static int IS_FROZEN

IS_REBUILDING

public static int IS_REBUILDING
Constructor Detail

DualHashTable

public DualHashTable(int maxsize,
                     int numPart,
                     int bfr,
                     Relation left,
                     Relation right,
                     EquiJoinPredicate p,
                     boolean earlyDelete)

DualHashTable

public DualHashTable(int maxsize,
                     int numPart,
                     int bfr,
                     Relation left,
                     Relation right,
                     EquiJoinPredicate p,
                     boolean earlyDelete,
                     double scale)
Method Detail

insert

public int insert(Tuple t,
                  int source,
                  boolean NProbeMatch)
           throws java.io.IOException
Throws:
java.io.IOException

hasOverflow

public boolean hasOverflow()

probe

public java.util.ArrayList probe(Tuple probeTuple,
                                 int probeSource)
                          throws java.io.IOException
Throws:
java.io.IOException

flush

public void flush(int source,
                  int partitionIndex,
                  int newState,
                  int timestamp)
           throws java.io.IOException
Throws:
java.io.IOException

flush

public void flush(int source,
                  int partitionIndex,
                  int newState,
                  int timestamp,
                  boolean flushSorted,
                  SortComparator sorter,
                  boolean departTS)
           throws java.io.IOException
Throws:
java.io.IOException

close

public int close(int state,
                 int timestamp)
          throws java.io.IOException
Throws:
java.io.IOException

empty

public void empty()

clear

public void clear()
           throws java.io.IOException
Throws:
java.io.IOException

clear

public void clear(int source,
                  int partitionIndex)
           throws java.io.IOException
Throws:
java.io.IOException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

printTupleCounts

public java.lang.String printTupleCounts()

leftSmaller

public boolean leftSmaller()

getPartitionInfo

public DualHashTable.PartitionInfo[] getPartitionInfo()

getTupleCount

public int getTupleCount(int source)

getPartitionTupleCount

public int getPartitionTupleCount(int source,
                                  int partIndex)

getPartitionState

public int getPartitionState(int source,
                             int partIndex)

setPartitionState

public void setPartitionState(int source,
                              int partIndex,
                              int state)

getPartitionFileNames

public java.util.ArrayList getPartitionFileNames(int source,
                                                 int partIndex)

addPartitionFileNames

public void addPartitionFileNames(int source,
                                  int partIndex,
                                  java.lang.String fname)

getPartitionFlushTimes

public java.util.ArrayList getPartitionFlushTimes(int source,
                                                  int partIndex)

getPartitionProbeTimes

public java.util.ArrayList getPartitionProbeTimes(int source,
                                                  int partIndex)

getPartitionTuples

public java.util.ArrayList getPartitionTuples(int source,
                                              int partIndex)

setLeftInputFinished

public void setLeftInputFinished(boolean b)

setRightInputFinished

public void setRightInputFinished(boolean b)

getNumFiles

public int getNumFiles(int source,
                       int partIndex)

clearLeftFinished

public int clearLeftFinished()
                      throws java.io.IOException
Throws:
java.io.IOException

clearRightFinished

public int clearRightFinished()
                       throws java.io.IOException
Throws:
java.io.IOException

getTuplesDiscarded

public int getTuplesDiscarded()

getInsertsAvoided

public int getInsertsAvoided()

main

public static void main(java.lang.String[] args)
                 throws java.io.IOException
Throws:
java.io.IOException

getNonJoinedLeft

public java.util.ArrayList getNonJoinedLeft()

getNonJoinedRight

public java.util.ArrayList getNonJoinedRight()