mutable-org / mutable

A Database System for Research and Fast Prototyping
https://mutable.uni-saarland.de
GNU Affero General Public License v3.0
96 stars 11 forks source link

For tpc-h test suite #3

Closed mamiao closed 1 year ago

mamiao commented 1 year ago

hi I have compiled the binary shell to test the tpc-h suite. Since the git source code do not have the tpc-h related table data file. So I use the https://gitlab.cs.uni-saarland.de/bigdata/mutable/tpch-dbgen to generate the data file.But when I specify the Benchmark.py to test the tpc-h suite, it gave me the error message as follows:

Perform experiment TPC/TPC-H/Q12 with configuration WebAssembly.
|████████████████████████▋                                                 | 2/6mamiaio2222 IMPORT INTO Lineitem DSV "benchmark/tpc-h/data/lineitem.tbl" ROWS 6001215 DELIMITER "|"l"
mamiaio2222 IMPORT INTO Orders DSV "benchmark/tpc-h/data/orders.tbl" ROWS 1500000 DELIMITER "|"
Unexpected failure during execution of benchmark "benchmark/tpc-h/q12.yml" with return code 1:
$ echo "IMPORT INTO Lineitem DSV \"benchmark/tpc-h/data/lineitem.tbl\" ROWS 6001215 DELIMITER \"|\"; IMPORT INTO Orders DSV \"benchmark/tpc-h/data/orders.tbl\" ROWS 1500000 DELIMITER \"|\"; SELECT     l_shipmode, COUNT(*) FROM     Lineitem,     Orders WHERE     o_orderkey = l_orderkey     AND (l_shipmode = \"MAIL\" OR l_shipmode = \"SHIP\")     AND l_commitdate < l_receiptdate     AND l_shipdate < l_commitdate     AND l_receiptdate >= d'1994-01-01'     AND l_receiptdate < d'1995-01-01'     AND (o_orderpriority = \"1-URGENT\" OR o_orderpriority = \"2-HIGH\") GROUP BY     l_shipmode ORDER BY     l_shipmode;" | build/release/bin/shell --benchmark --times benchmark/tpc-h/data/schema.sql --backend WasmV8 --store ColumnStore --cardinality-estimator Injected --use-cardinality-file benchmark/tpc-h/q12.json --quiet -
===== stdout =====
Read DSV file: 106806
Read DSV file: 19065.6

===== stderr =====
AddressSanitizer:DEADLYSIGNAL
=================================================================
==2784917==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x7f395c6d8a00 bp 0x7ffd8189dce0 sp 0x7ffd8189dce0 T0)
==2784917==The signal is caused by a READ memory access.

Since I have read the paper said that it already support Q1 Q3 Q6 Q12 Q14 queries, could you please help me to check the errors? Thanks

mamiao commented 1 year ago

I fix it, Thanks

ImmanuelHaffner commented 1 year ago

Sorry for coming so late to the party. I'm glad you fixed it. Could you please share with us what went wrong and how you solved the issue? It may help others running into the same problem 😉

Also, very importantly, when evaluating the performance of mutable, please make sure you are using a properly configured RELEASE build. Otherwise, timings are meaningless. The details how to configure the build can be found at https://github.com/mutable-org/mutable/blob/main/doc/setup.md

A TL;DR of the doc would be:

$ cmake -S . -B build/release \
-G Ninja \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DENABLE_SANITIZERS=OFF \
-DENABLE_SANITY_FIELDS=OFF \
-DWITH_V8=ON
$ cmake --build build/release
mamiao commented 1 year ago

Since I use a wrong json file.... : )