databases-rep Domain Model

Contents
bfilterContains the definition of the Bloom Filter operation and its implementations (algorithm parallelbfilter, and primitive bfilter).
BFILTEREncodes the Bloom Filter operation, that filters a stream based on a Bloom bitmap.
parallelbfilterParallel implementation of the Bloom Filter operation.
bfilterPrimitive implementation of the Bloom Filter operation.
bloomContains the definition of the Bloom operation and its implementations (algorithm parallelbloom, and primitive bloom).
BLOOMEncodes the Bloom operation, that creates a Bloom bitmap from a stream of tuples.
parallelbloomParallel implementation of the Bloom operation.
bloomPrimitive implementation of the Bloom operation.
hjoinContains the definition of the Hash Join operation and its implementations (algorithms bloomfilterhjoin and parallelhjoin, and primitive hjoin).
HJOINEncodes the Hash Join (natural join) operation.
bloomfilterhjoinImplementation of the Hash Join operation, that starts by building a bloom filter for input stream A, and then filters input stream B before applying the Hash Join operation to both streams.
parallelhjoinParallel implementation of the Hash Join operation.
hjoinPrimitive implementation of the Hash Join operation.
m-merge-splitContains the definition of the Bitmap Split and Bitmap Merge operations, their implementations (primitives msplit" and "mmerge"), and their optimizations.
MMERGEEncodes the Bitmap Merge operation, that merges several bitmaps into a single one.
pmmergePrimitive implementation of the Bitmap merge operation.
MMERGESPLITEncodes Bitmap Merge-Hash Split operation that receives an array of bitmaps, and returns the same array of bitmaps.
mms_mmergemsplitImplementation of the Bitmap Merge-Hash Split operation, that starts by merging the input bitmaps, and then splits the resulting bitmap.
mms_identityImplementation of the Bitmap Merge-Hash Split operation as the identity.
MSPLITEncodes the Bitmap Split operation, that splits a Bloom bitmap.
pmsplitPrimitive implementation of the Bitmap Split operation.
merge-hsplitContains the definition of the Hash Split and Merge operations, their implementations (primitives hsplit and merge), and their optimizations.
HSPLITEncodes the Hash Split operation, that splits a stream based on an hash function.
phsplitPrimitive implementation of the Hash Split operation.
MERGEEncodes the Merge operation, that merges several streams into a single one.
pmergePrimitive implementation of the Merge operation.
MERGEHSPLITEncodes the Merge-Hash Split operation, that receives an array of streams of tuples, and returns another array of streams, where the input tuples were split according to an hash function.
ms_mergehsplitImplementation of the Merge-Hash Split operation, that starts by merging the input streams, and then splits the resulting stream.
ms_identityImplementation of the Merge-Hash Split operation as the identity (possible when the array of input streams is already "correctly" split).
ms_hsplitmergeImplementation of the Merge-Hash Split operation, that starts by splitting each input stream (in parallel), and then merges all sub-streams for that have the same hash value.
MERGESPLITEncodes the Merge-Hash Split operation, that receives an array of streams of tuples, and returns another array of streams, where the input tuples were split according to an hash function.
ms_splitmergeImplementation of the Merge-Hash Split operation, that starts by splitting each input stream (in parallel), and then merges all sub-streams that have the same hash value.
ms_mergesplitImplementation of the Merge-Hash Split operation, that starts by merging the input streams, and then splits the resulting stream.

Rules Set: bfilter

Description

Contains the definition of the Bloom Filter operation and its implementations (algorithm parallelbfilter, and primitive bfilter).

Contents

[Interface] BFILTER

(A : Relation) = BFILTER(A : Relation, M : BitMap, BFilterKey : String)

Encodes the Bloom Filter operation, that filters a stream based on a Bloom bitmap.

Its additional parameter represents the attribute that is to be used as hash key when filtering the stream.

Inputs
A - Stream of tuples.
M - Bloom bitmap.
Outputs
A - Filtered stream of tuples.
Additional Parameters
BFilterKey : String

[Algorithm] parallelbfilter

(A : Relation) = parallelbfilter(A : Relation, M : BitMap, BFilterKey : String)

Parallel implementation of the Bloom Filter operation. The input stream is split (using an hash function), as well as the Bloom bitmap. Then they are processed in parallel, and finally the result of the different BFilter operations are merged.

See Also
BFILTER, HSPLIT, MERGE, MSPLIT

[Primitive] bfilter

(A : Relation) = bfilter(A : Relation, M : BitMap, BFilterKey : String)

Primitive implementation of the Bloom Filter operation.

Rules Set: bloom

Description

Contains the definition of the Bloom operation and its implementations (algorithm parallelbloom, and primitive bloom).

Contents

[Interface] BLOOM

(A : Relation, M : BitMap) = BLOOM(A : Relation, BloomKey : String)

Encodes the Bloom operation, that creates a Bloom bitmap from a stream of tuples.

Its additional parameter represents the attribute that is to be used as hash key when creating the bitmap.

Inputs
A - Stream of tuples.
Outputs
A - Stream of tuples (equal to the input stream).
M - Bitmap.
Additional Parameters
BloomKey : String

[Algorithm] parallelbloom

(A : Relation, M : BitMap) = parallelbloom(A : Relation, BloomKey : String)

Parallel implementation of the Bloom operation. The input stream is split (using an hash function), then they are processed in parallel, and finally the results of the different Bloom operations are merged.

See Also
BLOOM, HSPLIT, MERGE, MMERGE

[Primitive] bloom

(A : Relation, M : BitMap) = bloom(A : Relation, BloomKey : String)

Primitive implementation of the Bloom operation.

Rules Set: hjoin

Description

Contains the definition of the Hash Join operation and its implementations (algorithms bloomfilterhjoin and parallelhjoin, and primitive hjoin).

Contents

[Interface] HJOIN

(AB : Relation) = HJOIN(A : Relation, B : Relation, JoinKeyA : String, JoinKeyB : String)

Encodes the Hash Join (natural join) operation.

Its additional parameters represent the attributes that are to be used as join keys.

Inputs
A - Left stream of tuples to be joined.
B - Right stream of tuples to be joined.
Outputs
AB - The stream of tuples that results from the join operation.
Additional Parameters
JoinKeyA : String, JoinKeyB : String

[Algorithm] bloomfilterhjoin

(AB : Relation) = bloomfilterhjoin(A : Relation, B : Relation, JoinKeyA : String, JoinKeyB : String)

Implementation of the Hash Join operation, that starts by building a bloom filter for input stream A, and then filters input stream B before applying the Hash Join operation to both streams.

See Also
BFILTER, BLOOM, HJOIN

[Algorithm] parallelhjoin

(AB : Relation) = parallelhjoin(A : Relation, B : Relation, JoinKeyA : String, JoinKeyB : String)

Parallel implementation of the Hash Join operation. Each input stream is split (using an hash function), then they are joined in parallel, and finally the result of the different Hash Joins are merged.

See Also
HJOIN, HSPLIT, MERGE

[Primitive] hjoin

(AB : Relation) = hjoin(A : Relation, B : Relation, JoinKeyA : String, JoinKeyB : String)

Primitive implementation of the Hash Join operation.

Rules Set: m-merge-split

Description

Contains the definition of the Bitmap Split and Bitmap Merge operations, their implementations (primitives msplit" and "mmerge"), and their optimizations.

Contents

[Interface] MMERGE

(M : BitMap) = MMERGE(M[N] : BitMap[])

Encodes the Bitmap Merge operation, that merges several bitmaps into a single one.

Inputs
M[N]
Outputs
M

[Primitive] pmmerge

(M : BitMap) = pmmerge(M[N] : BitMap[])

Primitive implementation of the Bitmap merge operation.

[Interface] MMERGESPLIT

(M[N] : BitMap[]) = MMERGESPLIT(M[N] : BitMap[])

Encodes Bitmap Merge-Hash Split operation that receives an array of bitmaps, and returns the same array of bitmaps.

Inputs
M[N] - Array of bitmaps.
Outputs
M[N] - Array of bitmaps (equal to the input array of bitmaps).

[Pattern] mms_mmergemsplit

(M[N] : BitMap[]) = mms_mmergemsplit(M[N] : BitMap[])

Implementation of the Bitmap Merge-Hash Split operation, that starts by merging the input bitmaps, and then splits the resulting bitmap.

See Also
MMERGE, MSPLIT

[Algorithm] mms_identity

(M[N] : BitMap[]) = mms_identity(M[N] : BitMap[])

Implementation of the Bitmap Merge-Hash Split operation as the identity.

[Interface] MSPLIT

(M[N] : BitMap[]) = MSPLIT(M : BitMap)

Encodes the Bitmap Split operation, that splits a Bloom bitmap.

Inputs
M - Bitmap.
Outputs
M[N] - Array of Bitmaps.

[Primitive] pmsplit

(M[N] : BitMap[]) = pmsplit(M : BitMap)

Primitive implementation of the Bitmap Split operation.

Rules Set: merge-hsplit

Description

Contains the definition of the Hash Split and Merge operations, their implementations (primitives hsplit and merge), and their optimizations.

Contents

[Interface] HSPLIT

(A[N] : Relation[]) = HSPLIT(A : Relation, SplitKey : String)

Encodes the Hash Split operation, that splits a stream based on an hash function.

Its additional parameter represents the attribute to be used to choose the output stream.

Inputs
A - Stream of tuples.
Outputs
A[N] - Array of streams of tuples, resulting from splitting the input stream.
Additional Parameters
SplitKey : String

[Primitive] phsplit

(A[N] : Relation[]) = phsplit(A : Relation, SplitKey : String)

Primitive implementation of the Hash Split operation.

[Interface] MERGE

(A : Relation) = MERGE(A[N] : Relation[])

Encodes the Merge operation, that merges several streams into a single one.

Inputs
A[N] - Array of streams of tuples.
Outputs
A - Stream of tuples, resulting from merging the input streams.

[Primitive] pmerge

(A : Relation) = pmerge(A[N] : Relation[])

Primitive implementation of the Merge operation.

[Interface] MERGEHSPLIT

(A[N] : Relation[]) = MERGEHSPLIT(A[N] : Relation[], SplitKey : String)

Encodes the Merge-Hash Split operation, that receives an array of streams of tuples, and returns another array of streams, where the input tuples were split according to an hash function. The number of output streams is equal to the number of input streams.

Its additional parameter represents the attribute to be used when splitting the streams.

Inputs
A[N] - Array of streams of tuples.
Outputs
A[N] - Array of streams of tuples.
Additional Parameters
SplitKey : String

[Pattern] ms_mergehsplit

(A[N] : Relation[]) = ms_mergehsplit(A[N] : Relation[], SplitKey : String)

Implementation of the Merge-Hash Split operation, that starts by merging the input streams, and then splits the resulting stream.

See Also
HSPLIT, MERGE

[Algorithm] ms_identity

(A[N] : Relation[]) = ms_identity(A[N] : Relation[], SplitKey : String)

Implementation of the Merge-Hash Split operation as the identity (possible when the array of input streams is already "correctly" split).

[Pattern] ms_hsplitmerge

(A[N] : Relation[]) = ms_hsplitmerge(A[N] : Relation[], SplitKey : String)

Implementation of the Merge-Hash Split operation, that starts by splitting each input stream (in parallel), and then merges all sub-streams for that have the same hash value.

See Also
HSPLIT, MERGE

[Interface] MERGESPLIT

(A[M] : Relation[]) = MERGESPLIT(A[N] : Relation[], SplitKey : String)

Encodes the Merge-Hash Split operation, that receives an array of streams of tuples, and returns another array of streams, where the input tuples were split according to an hash function.

Its additional parameter represents the attribute to be used when splitting the streams.

Inputs
A[N] - Array of streams of tuples.
Outputs
A[M] - Array of streams of tuples.
Additional Parameters
SplitKey : String

[Pattern] ms_splitmerge

(A[M] : Relation[]) = ms_splitmerge(A[N] : Relation[], SplitKey : String)

Implementation of the Merge-Hash Split operation, that starts by splitting each input stream (in parallel), and then merges all sub-streams that have the same hash value.

See Also
HSPLIT, MERGE

[Pattern] ms_mergesplit

(A[M] : Relation[]) = ms_mergesplit(A[N] : Relation[], SplitKey : String)

Implementation of the Merge-Hash Split operation, that starts by merging the input streams, and then splits the resulting stream.

See Also
HSPLIT, MERGE