next up previous
Next: Overlap Method Up: No Title Previous: Algorithm : Pipe Sort

Algorithm : Pipe Hash

Input : Search lattice with group-by estimated sizes
Initialize worklist with MST (Minimum spanning Tree) of the search lattice
while (worklist ) do begin
pick any tree T from the worklist ;
select-subtree(T)to be executed next ;
Compute-subtree( );

select-subtree(T)
If memory required by T is less than available , return T;
Else, let S be the attributes of root(T)
/* we will pick for partitioning root(T)
For any s we get a subtree Ts of T also rooted at T including all groupbys that contain s */
Ps = maximum number of partitions of root(T) possible if partitioned on .
We choose such that
memory required by Ts / Ps < memory available,
Ts is the largest over all subsets of S.
remove Ts from T.
This leaves T - Ts, a forest of smaller trees ; add this to the worklist ;
return Ts ;

Compute-Subtree(T)
M = memory available ;
numParts = memory required by ;
Partition root of into numParts ;
For each partition of root( )
For each node n in
/* scan in a Breadth First Manner * //
compute all children n in One scan;
If n is cached, save it to disk and release memory occupied by its hashtable ;


next up previous
Next: Overlap Method Up: No Title Previous: Algorithm : Pipe Sort
DBMS
1999-04-01