Skip to content

Commit

Permalink
Add the JCC-H benchmark (hyrise#2249)
Browse files Browse the repository at this point in the history
Adds support for the JCC-H benchmark. This... erm... gives us more options to improve our statistics components ;)

Query 9 does not finish for SF 1 right now. As it works with smaller SFs, I do not consider it an issue of this PR, but of the query plan. Something to fix later.
  • Loading branch information
mrks authored Nov 1, 2020
1 parent 0d85dc2 commit 1999b64
Show file tree
Hide file tree
Showing 29 changed files with 1,131 additions and 55 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,6 @@
[submodule "third_party/robin-map"]
path = third_party/robin-map
url = https://github.com/Tessil/robin-map.git
[submodule "third_party/jcch-dbgen"]
path = third_party/jcch-dbgen
url = https://github.com/mrks/dbgen.JCC-H.git
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ find_package(Tbb REQUIRED)
find_package(Readline REQUIRED)
find_package(Curses REQUIRED)
find_package(Sqlite3 REQUIRED)
find_package(Boost REQUIRED COMPONENTS container system)
find_package(Boost REQUIRED COMPONENTS container system date_time)

add_definitions(-DBOOST_THREAD_VERSION=5)

Expand Down
2 changes: 2 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -143,10 +143,12 @@ try {
sh "./scripts/test/hyriseBenchmarkJoinOrder_test.py clang-debug"
sh "./scripts/test/hyriseBenchmarkFileBased_test.py clang-debug"
sh "cd clang-debug && ../scripts/test/hyriseBenchmarkTPCH_test.py ." // Own folder to isolate visualization
sh "cd clang-debug && ../scripts/test/hyriseBenchmarkJCCH_test.py ." // Own folder to isolate visualization
sh "./scripts/test/hyriseConsole_test.py gcc-debug"
sh "./scripts/test/hyriseBenchmarkJoinOrder_test.py gcc-debug"
sh "./scripts/test/hyriseBenchmarkFileBased_test.py gcc-debug"
sh "cd gcc-debug && ../scripts/test/hyriseBenchmarkTPCH_test.py ." // Own folder to isolate visualization
sh "cd gcc-debug && ../scripts/test/hyriseBenchmarkJCCH_test.py ." // Own folder to isolate visualization

} else {
Utils.markStageSkippedForConditional("debugSystemTests")
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ We support a number of benchmarks out of the box. This makes it easy to generate

| Benchmark | Notes |
| ---------- | ------------------------------------------------------------------------------------------------------------------------ |
| TPC-C | In development, no proper optimization done yet |
| TPC-DS | [Query Plans](https://hyrise-ci.epic-hpi.de/job/hyrise/job/hyrise/job/master/lastStableBuild/artifact/query_plans/tpcds) |
| TPC-H | [Query Plans](https://hyrise-ci.epic-hpi.de/job/hyrise/job/hyrise/job/master/lastStableBuild/artifact/query_plans/tpch) |
| JCC-H | Call the hyriseBenchmarkTPCH binary with the -j flag. |
| TPC-C | In development, no proper optimization done yet |
| Join Order | |

# Getting started
Expand Down
54 changes: 54 additions & 0 deletions resources/benchmark/jcch/customer.csv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"columns": [
{
"name": "c_custkey",
"nullable": false,
"type": "int"
},
{
"name": "c_name",
"nullable": false,
"type": "string"
},
{
"name": "c_address",
"nullable": false,
"type": "string"
},
{
"name": "c_nationkey",
"nullable": false,
"type": "int"
},
{
"name": "c_phone",
"nullable": false,
"type": "string"
},
{
"name": "c_acctbal",
"nullable": false,
"type": "float"
},
{
"name": "c_mktsegment",
"nullable": false,
"type": "string"
},
{
"name": "c_comment",
"nullable": false,
"type": "string"
}
],
"config": {
"delimiter": "\n",
"delimiter_escape": "\\",
"escape": "\"",
"null_handling": "reject_null_strings",
"quote": "\"",
"reject_quoted_nonstrings": true,
"rfc_mode": true,
"separator": "|"
}
}
94 changes: 94 additions & 0 deletions resources/benchmark/jcch/lineitem.csv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
{
"columns": [
{
"name": "l_orderkey",
"nullable": false,
"type": "int"
},
{
"name": "l_partkey",
"nullable": false,
"type": "int"
},
{
"name": "l_suppkey",
"nullable": false,
"type": "int"
},
{
"name": "l_linenumber",
"nullable": false,
"type": "int"
},
{
"name": "l_quantity",
"nullable": false,
"type": "float"
},
{
"name": "l_extendedprice",
"nullable": false,
"type": "float"
},
{
"name": "l_discount",
"nullable": false,
"type": "float"
},
{
"name": "l_tax",
"nullable": false,
"type": "float"
},
{
"name": "l_returnflag",
"nullable": false,
"type": "string"
},
{
"name": "l_linestatus",
"nullable": false,
"type": "string"
},
{
"name": "l_shipdate",
"nullable": false,
"type": "string"
},
{
"name": "l_commitdate",
"nullable": false,
"type": "string"
},
{
"name": "l_receiptdate",
"nullable": false,
"type": "string"
},
{
"name": "l_shipinstruct",
"nullable": false,
"type": "string"
},
{
"name": "l_shipmode",
"nullable": false,
"type": "string"
},
{
"name": "l_comment",
"nullable": false,
"type": "string"
}
],
"config": {
"delimiter": "\n",
"delimiter_escape": "\\",
"escape": "\"",
"null_handling": "reject_null_strings",
"quote": "\"",
"reject_quoted_nonstrings": true,
"rfc_mode": true,
"separator": "|"
}
}
34 changes: 34 additions & 0 deletions resources/benchmark/jcch/nation.csv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"columns": [
{
"name": "n_nationkey",
"nullable": false,
"type": "int"
},
{
"name": "n_name",
"nullable": false,
"type": "string"
},
{
"name": "n_regionkey",
"nullable": false,
"type": "int"
},
{
"name": "n_comment",
"nullable": false,
"type": "string"
}
],
"config": {
"delimiter": "\n",
"delimiter_escape": "\\",
"escape": "\"",
"null_handling": "reject_null_strings",
"quote": "\"",
"reject_quoted_nonstrings": true,
"rfc_mode": true,
"separator": "|"
}
}
59 changes: 59 additions & 0 deletions resources/benchmark/jcch/orders.csv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"columns": [
{
"name": "o_orderkey",
"nullable": false,
"type": "int"
},
{
"name": "o_custkey",
"nullable": false,
"type": "int"
},
{
"name": "o_orderstatus",
"nullable": false,
"type": "string"
},
{
"name": "o_totalprice",
"nullable": false,
"type": "float"
},
{
"name": "o_orderdate",
"nullable": false,
"type": "string"
},
{
"name": "o_orderpriority",
"nullable": false,
"type": "string"
},
{
"name": "o_clerk",
"nullable": false,
"type": "string"
},
{
"name": "o_shippriority",
"nullable": false,
"type": "int"
},
{
"name": "o_comment",
"nullable": false,
"type": "string"
}
],
"config": {
"delimiter": "\n",
"delimiter_escape": "\\",
"escape": "\"",
"null_handling": "reject_null_strings",
"quote": "\"",
"reject_quoted_nonstrings": true,
"rfc_mode": true,
"separator": "|"
}
}
59 changes: 59 additions & 0 deletions resources/benchmark/jcch/part.csv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"columns": [
{
"name": "p_partkey",
"nullable": false,
"type": "int"
},
{
"name": "p_name",
"nullable": false,
"type": "string"
},
{
"name": "p_mfgr",
"nullable": false,
"type": "string"
},
{
"name": "p_brand",
"nullable": false,
"type": "string"
},
{
"name": "p_type",
"nullable": false,
"type": "string"
},
{
"name": "p_size",
"nullable": false,
"type": "int"
},
{
"name": "p_container",
"nullable": false,
"type": "string"
},
{
"name": "p_retailsize",
"nullable": false,
"type": "float"
},
{
"name": "p_comment",
"nullable": false,
"type": "string"
}
],
"config": {
"delimiter": "\n",
"delimiter_escape": "\\",
"escape": "\"",
"null_handling": "reject_null_strings",
"quote": "\"",
"reject_quoted_nonstrings": true,
"rfc_mode": true,
"separator": "|"
}
}
39 changes: 39 additions & 0 deletions resources/benchmark/jcch/partsupp.csv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"columns": [
{
"name": "ps_partkey",
"nullable": false,
"type": "int"
},
{
"name": "ps_suppkey",
"nullable": false,
"type": "int"
},
{
"name": "ps_availqty",
"nullable": false,
"type": "int"
},
{
"name": "ps_supplycost",
"nullable": false,
"type": "float"
},
{
"name": "ps_comment",
"nullable": false,
"type": "string"
}
],
"config": {
"delimiter": "\n",
"delimiter_escape": "\\",
"escape": "\"",
"null_handling": "reject_null_strings",
"quote": "\"",
"reject_quoted_nonstrings": true,
"rfc_mode": true,
"separator": "|"
}
}
Loading

0 comments on commit 1999b64

Please sign in to comment.