databases Domain Model

Contents
bfilterContains the definition of the Bloom Filter operation and its implementations (algorithm parallelbfilter, and primitive pbfilter).
BFILTEROperation that filters a stream based on a Bloom bitmap.
parallelbfilterParallel implementation of the Bloom Filter operation.
pbfilterPrimitive implementation of the Bloom Filter operation.
bloomContains the definition of the Bloom operation and its implementations (algorithm parallelbloom, and primitive pbloom).
BLOOMOperation that creates a Bloom bitmap from a stream of tuples.
parallelbloomParallel implementation of the Bloom operation.
pbloomPrimitive implementation of the Bloom operation.
hjoinContains the definition of the Hash Join operation and its implementations (algorithms bloomfilterhjoin and parallelhjoin, and primitive phjoin).
HJOINOperation that joins (natural join) two relations.
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.
phjoinPrimitive implementation of the Hash Join operation.
m-merge-splitContains the definition of the Bitmap Split and Bitmap Merge operations, their implementations (primitives pmsplit and pmmerge), and their optimizations.
IMMERGESPLITOperation that receives two bitmaps and returns the two 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.
MMERGEOperation that merges two bitmaps into a single one.
pmmergePrimitive implementation of the Bitmap Merge operation.
MSPLITOperation 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 phsplit and pmerge), and their optimizations.
HSPLITOperation that splits a stream based on an hash function.
phsplitPrimitive implementation of the Hash Split operation.
IMERGEHSPLITOperation that receives two streams of tuples, and returns another two streams, where the input tuples were split according to an hash function.
mhs_mergehsplitImplementation of the Merge-Hash Split operation, that starts by merging the input streams, and then splits the resulting stream.
mhs_identityImplementation of the Merge-Hash Split operation as the identity (possible when the input streams are already "correctly" split).
mhs_hsplitmergeImplementation of the Merge-Hash Split operation, that starts by spliting the input streams, and then merges the resulting stream.
MERGEOperation that merges several streams into a single one.
pmergePrimitive implementation of the Merge operation.

Rules Set: bfilter

Description

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

Contents

[Interface] BFILTER

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

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

[Algorithm] parallelbfilter

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

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] pbfilter

(A : Relation) = pbfilter(A : Relation, M : BitMap, BFilterKey)

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 pbloom).

Contents

[Interface] BLOOM

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

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

[Algorithm] parallelbloom

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

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] pbloom

(A : Relation, M : BitMap) = pbloom(A : Relation, BloomKey)

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 phjoin).

Contents

[Interface] HJOIN

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

Operation that joins (natural join) two relations.

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, JoinKeyB

[Algorithm] bloomfilterhjoin

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

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, JoinKeyB)

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] phjoin

(AB : Relation) = phjoin(A : Relation, B : Relation, JoinKeyA, JoinKeyB)

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 pmsplit and pmmerge), and their optimizations.

Contents

[Interface] IMMERGESPLIT

(M1 : BitMap, M2 : BitMap) = IMMERGESPLIT(M1 : BitMap, M2 : BitMap)

Operation that receives two bitmaps and returns the two bitmaps.

Inputs
M1 - Bitmap.
M2 - Bitmap.
Outputs
M1 - Bitmap.
M2 - Bitmap.

[Pattern] mms_mmergemsplit

(M1 : BitMap, M2 : BitMap) = mms_mmergemsplit(M1 : BitMap, M2 : 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

(M1 : BitMap, M2 : BitMap) = mms_identity(M1 : BitMap, M2 : BitMap)

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

[Interface] MMERGE

(M : BitMap) = MMERGE(M1 : BitMap, M2 : BitMap)

Operation that merges two bitmaps into a single one.

Inputs
M1 - Bitmap.
M2 - Bitmap.
Outputs
M - Bitmap.

[Primitive] pmmerge

(M : BitMap) = pmmerge(M1 : BitMap, M2 : BitMap)

Primitive implementation of the Bitmap Merge operation.

[Interface] MSPLIT

(M1 : BitMap, M2 : BitMap) = MSPLIT(M : BitMap)

Operation that splits a Bloom bitmap.

Inputs
M - Bitmap.
Outputs
M1 - Bitmap.
M2 - Bitmap.

[Primitive] pmsplit

(M1 : BitMap, M2 : 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 phsplit and pmerge), and their optimizations.

Contents

[Interface] HSPLIT

(A1 : Relation, A2 : Relation) = HSPLIT(A : Relation, SplitKey)

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
A1 - Streams of tuples, resulting from splitting the input stream.
A2 - Streams of tuples, resulting from splitting the input stream.
Additional Parameters
SplitKey

[Primitive] phsplit

(A1 : Relation, A2 : Relation) = phsplit(A : Relation, SplitKey)

Primitive implementation of the Hash Split operation.

[Interface] IMERGEHSPLIT

(A1 : Relation, A2 : Relation) = IMERGEHSPLIT(A1 : Relation, A2 : Relation, SplitKey)

Operation that receives two streams of tuples, and returns another two 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
A1 - Stream of tuples.
A2 - Stream of tuples.
Outputs
A1 - Stream of tuples.
A2 - Stream of tuples.
Additional Parameters
SplitKey

[Pattern] mhs_mergehsplit

(A1 : Relation, A2 : Relation) = mhs_mergehsplit(A1 : Relation, A2 : Relation, SplitKey)

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] mhs_identity

(A1 : Relation, A2 : Relation) = mhs_identity(A1 : Relation, A2 : Relation, SplitKey)

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

[Pattern] mhs_hsplitmerge

(A1 : Relation, A2 : Relation) = mhs_hsplitmerge(A1 : Relation, A2 : Relation, SplitKey)

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

See Also
HSPLIT, MERGE

[Interface] MERGE

(A : Relation) = MERGE(A1 : Relation, A2 : Relation)

Operation that merges several streams into a single one.

Inputs
A1 - Stream of tuples.
A2 - Stream of tuples.
Outputs
A - Stream of tuples, resulting from merging the input streams.

[Primitive] pmerge

(A : Relation) = pmerge(A1 : Relation, A2 : Relation)

Primitive implementation of the Merge operation.