Changeset: fead0ce024d7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fead0ce024d7
Modified Files:
monetdb5/modules/mosaic/TODO_MOSAIC.txt
monetdb5/modules/mosaic/mosaic.c
Branch: mosaic
Log Message:
Keep bad performing singleton compressions.
diffs (36 lines):
diff --git a/monetdb5/modules/mosaic/TODO_MOSAIC.txt
b/monetdb5/modules/mosaic/TODO_MOSAIC.txt
--- a/monetdb5/modules/mosaic/TODO_MOSAIC.txt
+++ b/monetdb5/modules/mosaic/TODO_MOSAIC.txt
@@ -4,8 +4,8 @@ Fix/check/test MOSlayout.
Add negative values to tests
Add test for huge
create mix compression test cases.
+benchmark using TPC-H
Introduce mosaic into gdk: create hooks in scanselect functions/macro's, joins
and projections.
-benchmark using TPC-H
make mitosis work with mosaic and see how this relates to the previous
landmark stuff.
Transform control dependency into data dependency select loops.
Apply compressed operations more directly: on constant value in runlength
compression
diff --git a/monetdb5/modules/mosaic/mosaic.c b/monetdb5/modules/mosaic/mosaic.c
--- a/monetdb5/modules/mosaic/mosaic.c
+++ b/monetdb5/modules/mosaic/mosaic.c
@@ -1493,7 +1493,18 @@ MOSAnalysis(BAT *b, BAT *btech, BAT *bou
// analyse result block distribution to exclude complicated
compression combination that (probably) won't improve compression rate.
if ( i < MOSAIC_METHODS-1 && pat[i].xf >= 0 && pat[i].xf < 1.0)
{
- antipattern[antipatternSize++] = pattern[i];
+ bool keep = false;
+ for(j=0, bit=1; j < MOSAIC_METHODS-1; j++,
bit<<=1){
+ if (pattern[i] == bit ) {
+ /* We'll keep it if is a
singleton compression strategy.
+ * It might still compress well
in combination with another compressor.
+ */
+ keep = true;
+ }
+ }
+ if (!keep) {
+ antipattern[antipatternSize++] =
pattern[i];
+ }
}
else {
for(j=1; j < MOSAIC_METHODS-1; j++){
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list