Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add null checks to zone map #4642

Merged
merged 8 commits into from
Dec 20, 2024
Merged

Add null checks to zone map #4642

merged 8 commits into from
Dec 20, 2024

Conversation

royi-luo
Copy link
Collaborator

@royi-luo royi-luo commented Dec 17, 2024

Description

Add support for skipping chunked group scans based on zone map for IS NULL and IS NOT NULL predicates

Contributor agreement

@royi-luo royi-luo force-pushed the royi/zone-map-add-exprs branch from cbebd92 to 4dd4a75 Compare December 17, 2024 16:06
Copy link

codecov bot commented Dec 17, 2024

Codecov Report

Attention: Patch coverage is 94.25287% with 5 lines in your changes missing coverage. Please review.

Project coverage is 86.51%. Comparing base (3ba9892) to head (11a990d).
Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
src/storage/predicate/column_predicate.cpp 88.88% 2 Missing ⚠️
src/storage/store/column_chunk_data.cpp 90.00% 2 Missing ⚠️
src/storage/predicate/constant_predicate.cpp 83.33% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #4642   +/-   ##
=======================================
  Coverage   86.51%   86.51%           
=======================================
  Files        1369     1372    +3     
  Lines       57955    57996   +41     
  Branches     7204     7209    +5     
=======================================
+ Hits        50138    50176   +38     
- Misses       7650     7652    +2     
- Partials      167      168    +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

Benchmark Result

Master commit hash: 45013c15a8468c484614370ba1cc9b7e476a59fc
Branch commit hash: fd9bf703efe4ab4a1d1160a53fdef6316cabfc9e

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 655.75 648.90 6.86 (1.06%)
aggregation q28 12166.34 11682.05 484.29 (4.15%)
filter q14 127.03 125.74 1.29 (1.02%)
filter q15 128.66 128.46 0.21 (0.16%)
filter q16 308.09 315.75 -7.65 (-2.42%)
filter q17 445.94 444.63 1.31 (0.30%)
filter q18 1985.48 1991.88 -6.40 (-0.32%)
filter zonemap-node 90.20 86.55 3.64 (4.21%)
filter zonemap-node-lhs-cast 90.61 86.17 4.44 (5.15%)
filter zonemap-rel 5864.47 5709.56 154.91 (2.71%)
fixed_size_expr_evaluator q07 572.06 572.49 -0.44 (-0.08%)
fixed_size_expr_evaluator q08 799.85 803.29 -3.44 (-0.43%)
fixed_size_expr_evaluator q09 802.99 804.64 -1.65 (-0.21%)
fixed_size_expr_evaluator q10 236.02 236.06 -0.03 (-0.01%)
fixed_size_expr_evaluator q11 229.33 228.26 1.08 (0.47%)
fixed_size_expr_evaluator q12 226.39 225.33 1.06 (0.47%)
fixed_size_expr_evaluator q13 1452.74 1452.82 -0.09 (-0.01%)
fixed_size_seq_scan q23 118.59 112.11 6.48 (5.78%)
join q29 656.40 636.11 20.29 (3.19%)
join q30 1585.93 1538.05 47.88 (3.11%)
join q31 4.55 7.22 -2.67 (-37.01%)
join SelectiveTwoHopJoin 56.97 56.38 0.59 (1.05%)
ldbc_snb_ic q35 2661.84 2652.94 8.90 (0.34%)
ldbc_snb_ic q36 537.10 540.74 -3.64 (-0.67%)
ldbc_snb_is q32 5.38 3.41 1.97 (57.71%)
ldbc_snb_is q33 12.22 12.12 0.10 (0.82%)
ldbc_snb_is q34 1.13 1.18 -0.05 (-4.26%)
multi-rel multi-rel-large-scan 1533.32 1201.36 331.96 (27.63%)
multi-rel multi-rel-lookup 30.46 28.11 2.35 (8.36%)
multi-rel multi-rel-small-scan 103.15 94.65 8.50 (8.98%)
order_by q25 132.66 128.98 3.68 (2.85%)
order_by q26 452.35 450.91 1.44 (0.32%)
order_by q27 1482.70 1498.71 -16.01 (-1.07%)
recursive_join recursive-join-bidirection 282.67 307.56 -24.89 (-8.09%)
recursive_join recursive-join-dense 7452.57 6215.03 1237.53 (19.91%)
recursive_join recursive-join-path 24066.44 23775.95 290.49 (1.22%)
recursive_join recursive-join-sparse 14173.65 14611.94 -438.30 (-3.00%)
recursive_join recursive-join-trail 7383.98 6561.09 822.88 (12.54%)
scan_after_filter q01 171.28 172.92 -1.63 (-0.95%)
scan_after_filter q02 156.56 157.24 -0.68 (-0.43%)
shortest_path_ldbc100 q37 83.29 87.13 -3.84 (-4.41%)
shortest_path_ldbc100 q38 369.36 369.42 -0.06 (-0.02%)
shortest_path_ldbc100 q39 62.78 58.80 3.98 (6.77%)
shortest_path_ldbc100 q40 452.87 398.32 54.56 (13.70%)
var_size_expr_evaluator q03 2103.01 2104.12 -1.11 (-0.05%)
var_size_expr_evaluator q04 2310.49 2278.12 32.37 (1.42%)
var_size_expr_evaluator q05 2725.27 2726.42 -1.15 (-0.04%)
var_size_expr_evaluator q06 1354.50 1348.45 6.05 (0.45%)
var_size_seq_scan q19 1489.65 1463.03 26.62 (1.82%)
var_size_seq_scan q20 2766.96 2651.30 115.66 (4.36%)
var_size_seq_scan q21 2349.50 2252.35 97.14 (4.31%)
var_size_seq_scan q22 128.41 125.65 2.76 (2.20%)

Copy link

Benchmark Result

Master commit hash: 45013c15a8468c484614370ba1cc9b7e476a59fc
Branch commit hash: 12a9e67f1da2bd2dc5782341b380e5b3d24204a9

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 644.36 648.90 -4.54 (-0.70%)
aggregation q28 11369.09 11682.05 -312.96 (-2.68%)
filter q14 129.35 125.74 3.61 (2.87%)
filter q15 126.08 128.46 -2.37 (-1.85%)
filter q16 306.98 315.75 -8.77 (-2.78%)
filter q17 444.14 444.63 -0.49 (-0.11%)
filter q18 1924.51 1991.88 -67.36 (-3.38%)
filter zonemap-node 89.79 86.55 3.24 (3.74%)
filter zonemap-node-lhs-cast 88.33 86.17 2.16 (2.50%)
filter zonemap-rel 5688.99 5709.56 -20.57 (-0.36%)
fixed_size_expr_evaluator q07 573.45 572.49 0.95 (0.17%)
fixed_size_expr_evaluator q08 800.27 803.29 -3.02 (-0.38%)
fixed_size_expr_evaluator q09 802.24 804.64 -2.41 (-0.30%)
fixed_size_expr_evaluator q10 237.80 236.06 1.74 (0.74%)
fixed_size_expr_evaluator q11 231.19 228.26 2.93 (1.29%)
fixed_size_expr_evaluator q12 225.68 225.33 0.35 (0.15%)
fixed_size_expr_evaluator q13 1461.69 1452.82 8.87 (0.61%)
fixed_size_seq_scan q23 112.31 112.11 0.20 (0.17%)
join q29 631.90 636.11 -4.21 (-0.66%)
join q30 1577.79 1538.05 39.75 (2.58%)
join q31 5.14 7.22 -2.08 (-28.83%)
join SelectiveTwoHopJoin 51.36 56.38 -5.01 (-8.89%)
ldbc_snb_ic q35 2635.10 2652.94 -17.83 (-0.67%)
ldbc_snb_ic q36 539.84 540.74 -0.89 (-0.17%)
ldbc_snb_is q32 5.89 3.41 2.48 (72.88%)
ldbc_snb_is q33 11.57 12.12 -0.55 (-4.55%)
ldbc_snb_is q34 1.13 1.18 -0.05 (-4.57%)
multi-rel multi-rel-large-scan 1233.69 1201.36 32.34 (2.69%)
multi-rel multi-rel-lookup 17.79 28.11 -10.32 (-36.71%)
multi-rel multi-rel-small-scan 75.36 94.65 -19.29 (-20.38%)
order_by q25 135.06 128.98 6.08 (4.71%)
order_by q26 456.96 450.91 6.04 (1.34%)
order_by q27 1470.66 1498.71 -28.06 (-1.87%)
recursive_join recursive-join-bidirection 263.14 307.56 -44.42 (-14.44%)
recursive_join recursive-join-dense 5287.91 6215.03 -927.12 (-14.92%)
recursive_join recursive-join-path 23160.33 23775.95 -615.62 (-2.59%)
recursive_join recursive-join-sparse 14128.04 14611.94 -483.90 (-3.31%)
recursive_join recursive-join-trail 5422.50 6561.09 -1138.60 (-17.35%)
scan_after_filter q01 171.18 172.92 -1.74 (-1.01%)
scan_after_filter q02 155.50 157.24 -1.74 (-1.11%)
shortest_path_ldbc100 q37 83.30 87.13 -3.83 (-4.39%)
shortest_path_ldbc100 q38 371.04 369.42 1.61 (0.44%)
shortest_path_ldbc100 q39 59.95 58.80 1.16 (1.97%)
shortest_path_ldbc100 q40 439.29 398.32 40.97 (10.29%)
var_size_expr_evaluator q03 2062.58 2104.12 -41.54 (-1.97%)
var_size_expr_evaluator q04 2214.49 2278.12 -63.63 (-2.79%)
var_size_expr_evaluator q05 2637.88 2726.42 -88.54 (-3.25%)
var_size_expr_evaluator q06 1353.74 1348.45 5.29 (0.39%)
var_size_seq_scan q19 1465.23 1463.03 2.19 (0.15%)
var_size_seq_scan q20 2676.96 2651.30 25.66 (0.97%)
var_size_seq_scan q21 2285.69 2252.35 33.34 (1.48%)
var_size_seq_scan q22 125.88 125.65 0.23 (0.19%)

@@ -18,9 +18,10 @@ class KUZU_API ColumnPredicateSet {
void addPredicate(std::unique_ptr<ColumnPredicate> predicate) {
predicates.push_back(std::move(predicate));
}
void tryAddPredicate(const binder::Expression& column, const binder::Expression& predicate);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove

@@ -180,21 +181,30 @@ static void updateInMemoryStats(ColumnChunkStats& stats, const ValueVector& valu
uint64_t offset = 0, uint64_t numValues = std::numeric_limits<uint64_t>::max()) {
const auto physicalType = values.dataType.getPhysicalType();
const auto numValuesToCheck = std::min(numValues, values.state->getSelSize());
stats.update(values.getData(), offset, numValuesToCheck, physicalType);
// we pessimistically set mayHaveNulls to check the entire vector instead of the selected range
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove comment

@royi-luo royi-luo marked this pull request as ready for review December 17, 2024 18:04
@royi-luo royi-luo requested review from ray6080 and removed request for benjaminwinger December 17, 2024 18:04
Copy link

Benchmark Result

Master commit hash: c46eec1f7a168ec7d541219adb38136c0c5019b0
Branch commit hash: 12a9e67f1da2bd2dc5782341b380e5b3d24204a9

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 644.60 643.11 1.49 (0.23%)
aggregation q28 12528.19 11654.01 874.18 (7.50%)
copy node-Comment 73738.39 N/A N/A
copy node-Forum 5533.02 N/A N/A
copy node-Organisation 1209.85 N/A N/A
copy node-Person 2185.39 N/A N/A
copy node-Place 1176.42 N/A N/A
copy node-Post 31672.76 N/A N/A
copy node-Tag 1251.92 N/A N/A
copy node-Tagclass 1118.17 N/A N/A
copy rel-comment-hasCreator 56677.51 N/A N/A
copy rel-comment-hasTag 86956.70 N/A N/A
copy rel-comment-isLocatedIn 72578.69 N/A N/A
copy rel-containerOf 14545.05 N/A N/A
copy rel-forum-hasTag 3982.05 N/A N/A
copy rel-hasInterest 3174.12 N/A N/A
copy rel-hasMember 53075.84 N/A N/A
copy rel-hasModerator 1703.31 N/A N/A
copy rel-hasType 224.62 N/A N/A
copy rel-isPartOf 242.61 N/A N/A
copy rel-isSubclassOf 213.60 N/A N/A
copy rel-knows 6491.19 N/A N/A
copy rel-likes-comment 88380.71 N/A N/A
copy rel-likes-post 33080.28 N/A N/A
copy rel-organisation-isLocatedIn 264.70 N/A N/A
copy rel-person-isLocatedIn 439.94 N/A N/A
copy rel-post-hasCreator 15066.05 N/A N/A
copy rel-post-hasTag 23770.94 N/A N/A
copy rel-post-isLocatedIn 18311.69 N/A N/A
copy rel-replyOf-comment 49686.89 N/A N/A
copy rel-replyOf-post 38417.71 N/A N/A
copy rel-studyAt 482.03 N/A N/A
copy rel-workAt 771.15 N/A N/A
filter q14 125.92 124.81 1.11 (0.89%)
filter q15 125.34 126.02 -0.68 (-0.54%)
filter q16 305.12 303.17 1.95 (0.64%)
filter q17 446.57 444.24 2.33 (0.52%)
filter q18 1932.56 1969.39 -36.83 (-1.87%)
filter zonemap-node 88.91 85.87 3.03 (3.53%)
filter zonemap-node-lhs-cast 90.19 86.22 3.97 (4.61%)
filter zonemap-rel 5893.87 5755.70 138.17 (2.40%)
fixed_size_expr_evaluator q07 572.79 572.79 0.01 (0.00%)
fixed_size_expr_evaluator q08 805.42 803.01 2.40 (0.30%)
fixed_size_expr_evaluator q09 805.71 802.80 2.92 (0.36%)
fixed_size_expr_evaluator q10 237.99 238.65 -0.66 (-0.28%)
fixed_size_expr_evaluator q11 229.36 231.30 -1.94 (-0.84%)
fixed_size_expr_evaluator q12 225.81 225.51 0.30 (0.13%)
fixed_size_expr_evaluator q13 1445.87 1453.76 -7.89 (-0.54%)
fixed_size_seq_scan q23 108.78 112.87 -4.10 (-3.63%)
join q29 627.68 614.09 13.59 (2.21%)
join q30 1508.04 1460.61 47.43 (3.25%)
join q31 4.55 4.41 0.14 (3.21%)
join SelectiveTwoHopJoin 52.98 52.19 0.79 (1.50%)
ldbc_snb_ic q35 2778.38 2631.05 147.33 (5.60%)
ldbc_snb_ic q36 536.02 528.84 7.18 (1.36%)
ldbc_snb_is q32 2.77 4.78 -2.01 (-42.01%)
ldbc_snb_is q33 9.23 12.03 -2.81 (-23.33%)
ldbc_snb_is q34 1.02 1.03 -0.01 (-1.42%)
multi-rel multi-rel-large-scan 1231.20 1212.49 18.71 (1.54%)
multi-rel multi-rel-lookup 19.01 19.58 -0.57 (-2.90%)
multi-rel multi-rel-small-scan 101.41 56.02 45.39 (81.02%)
order_by q25 131.65 130.28 1.37 (1.05%)
order_by q26 456.50 448.74 7.76 (1.73%)
order_by q27 1465.90 1465.40 0.49 (0.03%)
recursive_join recursive-join-bidirection 291.44 278.17 13.28 (4.77%)
recursive_join recursive-join-dense 7357.75 7479.45 -121.70 (-1.63%)
recursive_join recursive-join-path 23464.33 23789.32 -324.99 (-1.37%)
recursive_join recursive-join-sparse 16317.19 14370.78 1946.41 (13.54%)
recursive_join recursive-join-trail 7335.47 7407.18 -71.71 (-0.97%)
scan_after_filter q01 171.64 167.95 3.69 (2.20%)
scan_after_filter q02 156.30 153.71 2.58 (1.68%)
shortest_path_ldbc100 q37 84.80 86.94 -2.14 (-2.46%)
shortest_path_ldbc100 q38 351.76 302.98 48.78 (16.10%)
shortest_path_ldbc100 q39 64.09 56.64 7.45 (13.15%)
shortest_path_ldbc100 q40 448.46 354.84 93.62 (26.38%)
var_size_expr_evaluator q03 2080.71 2076.41 4.30 (0.21%)
var_size_expr_evaluator q04 2230.52 2245.55 -15.04 (-0.67%)
var_size_expr_evaluator q05 2645.68 2701.70 -56.02 (-2.07%)
var_size_expr_evaluator q06 1352.11 1346.45 5.66 (0.42%)
var_size_seq_scan q19 1461.08 1464.94 -3.86 (-0.26%)
var_size_seq_scan q20 2635.45 2714.59 -79.13 (-2.92%)
var_size_seq_scan q21 2276.99 2288.51 -11.52 (-0.50%)
var_size_seq_scan q22 126.30 125.03 1.27 (1.01%)

@royi-luo royi-luo force-pushed the royi/zone-map-add-exprs branch from c906861 to a142992 Compare December 19, 2024 14:09
Copy link

Benchmark Result

Master commit hash: 3ba98920334d1faf82145c351550dbe66d459c6d
Branch commit hash: 3c790ddaf9713c5b7825a5f9752093ccf5c208de

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 645.43 648.13 -2.70 (-0.42%)
aggregation q28 11490.28 11512.85 -22.57 (-0.20%)
filter q14 126.94 127.46 -0.52 (-0.41%)
filter q15 124.13 128.41 -4.29 (-3.34%)
filter q16 306.65 304.71 1.93 (0.63%)
filter q17 445.15 444.71 0.45 (0.10%)
filter q18 1975.42 1966.98 8.43 (0.43%)
filter zonemap-node 88.55 87.95 0.60 (0.68%)
filter zonemap-node-lhs-cast 88.45 86.36 2.09 (2.42%)
filter zonemap-rel 5702.47 5879.47 -177.00 (-3.01%)
fixed_size_expr_evaluator q07 571.16 572.03 -0.88 (-0.15%)
fixed_size_expr_evaluator q08 798.63 804.34 -5.71 (-0.71%)
fixed_size_expr_evaluator q09 809.69 805.68 4.01 (0.50%)
fixed_size_expr_evaluator q10 237.13 235.93 1.20 (0.51%)
fixed_size_expr_evaluator q11 232.58 228.58 4.00 (1.75%)
fixed_size_expr_evaluator q12 226.43 225.40 1.02 (0.45%)
fixed_size_expr_evaluator q13 1458.54 1453.63 4.91 (0.34%)
fixed_size_seq_scan q23 108.92 111.94 -3.02 (-2.69%)
join q29 617.15 632.86 -15.71 (-2.48%)
join q30 1462.78 1596.03 -133.25 (-8.35%)
join q31 6.17 3.64 2.53 (69.56%)
join SelectiveTwoHopJoin 57.64 49.04 8.60 (17.54%)
ldbc_snb_ic q35 2653.67 2656.41 -2.74 (-0.10%)
ldbc_snb_ic q36 560.82 525.89 34.93 (6.64%)
ldbc_snb_is q32 5.98 5.00 0.97 (19.48%)
ldbc_snb_is q33 14.69 12.70 1.99 (15.66%)
ldbc_snb_is q34 1.21 1.22 -0.02 (-1.50%)
multi-rel multi-rel-large-scan 1198.69 1235.85 -37.16 (-3.01%)
multi-rel multi-rel-lookup 40.83 23.65 17.18 (72.64%)
multi-rel multi-rel-small-scan 59.58 87.63 -28.06 (-32.02%)
order_by q25 130.50 130.53 -0.03 (-0.02%)
order_by q26 466.60 451.74 14.86 (3.29%)
order_by q27 1472.03 1484.38 -12.35 (-0.83%)
recursive_join recursive-join-bidirection 310.75 272.24 38.50 (14.14%)
recursive_join recursive-join-dense 7353.54 7352.78 0.76 (0.01%)
recursive_join recursive-join-path 23655.54 23664.08 -8.55 (-0.04%)
recursive_join recursive-join-sparse 15023.84 14248.08 775.76 (5.44%)
recursive_join recursive-join-trail 7281.98 7290.84 -8.86 (-0.12%)
scan_after_filter q01 174.09 174.61 -0.52 (-0.30%)
scan_after_filter q02 159.65 158.06 1.59 (1.01%)
shortest_path_ldbc100 q37 88.85 80.24 8.61 (10.74%)
shortest_path_ldbc100 q38 306.27 335.64 -29.38 (-8.75%)
shortest_path_ldbc100 q39 61.98 65.53 -3.56 (-5.43%)
shortest_path_ldbc100 q40 428.45 437.07 -8.62 (-1.97%)
var_size_expr_evaluator q03 2145.28 2106.16 39.12 (1.86%)
var_size_expr_evaluator q04 2269.45 2272.75 -3.30 (-0.15%)
var_size_expr_evaluator q05 2607.26 2581.26 26.00 (1.01%)
var_size_expr_evaluator q06 1350.35 1355.62 -5.27 (-0.39%)
var_size_seq_scan q19 1477.53 1482.49 -4.96 (-0.33%)
var_size_seq_scan q20 2669.31 2684.43 -15.12 (-0.56%)
var_size_seq_scan q21 2285.75 2289.73 -3.98 (-0.17%)
var_size_seq_scan q22 126.64 127.10 -0.46 (-0.36%)

Copy link
Contributor

@ray6080 ray6080 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some minor comments. Will take another look after they're addressed. Thanks!

src/include/storage/predicate/null_predicate.h Outdated Show resolved Hide resolved
src/include/storage/predicate/column_predicate.h Outdated Show resolved Hide resolved
src/storage/predicate/column_predicate.cpp Outdated Show resolved Hide resolved
src/storage/store/column_chunk_data.cpp Show resolved Hide resolved
src/storage/store/column_chunk_data.cpp Outdated Show resolved Hide resolved
TypeUtils::visit(chunks[columnID]->getDataType().getPhysicalType(),
[]<typename T>(T) { return StorageValueType<T>; }));
KU_ASSERT(columnHasStorageValueType ||
columnZoneMapResult == common::ZoneMapCheckResult::ALWAYS_SCAN);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why remove the runtime check?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The runtime check no longer applies because the NULL-based skips can apply to non-storagevalue types

Copy link

Benchmark Result

Master commit hash: 970f5c43e58661c004038fd0a07e18f5fc3e1dcb
Branch commit hash: 3dd1e11a45973f4749e2940e457413f0d29f98d4

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 648.81 656.85 -8.04 (-1.22%)
aggregation q28 12256.27 11744.63 511.65 (4.36%)
filter q14 125.77 125.64 0.13 (0.10%)
filter q15 127.34 129.02 -1.68 (-1.30%)
filter q16 299.70 302.46 -2.76 (-0.91%)
filter q17 445.06 447.10 -2.04 (-0.46%)
filter q18 1951.93 1963.15 -11.23 (-0.57%)
filter zonemap-node 87.08 87.08 -0.01 (-0.01%)
filter zonemap-node-lhs-cast 88.66 87.37 1.29 (1.47%)
filter zonemap-rel 5536.42 5464.53 71.89 (1.32%)
fixed_size_expr_evaluator q07 577.94 584.23 -6.29 (-1.08%)
fixed_size_expr_evaluator q08 811.31 813.72 -2.40 (-0.30%)
fixed_size_expr_evaluator q09 808.29 817.39 -9.11 (-1.11%)
fixed_size_expr_evaluator q10 242.88 240.40 2.48 (1.03%)
fixed_size_expr_evaluator q11 235.72 233.31 2.40 (1.03%)
fixed_size_expr_evaluator q12 232.56 231.42 1.14 (0.49%)
fixed_size_expr_evaluator q13 1448.57 1484.51 -35.94 (-2.42%)
fixed_size_seq_scan q23 115.60 112.83 2.77 (2.46%)
join q29 634.69 613.93 20.76 (3.38%)
join q30 1561.06 1545.78 15.28 (0.99%)
join q31 5.65 6.39 -0.74 (-11.57%)
join SelectiveTwoHopJoin 51.46 47.77 3.69 (7.72%)
ldbc_snb_ic q35 2627.61 2603.36 24.25 (0.93%)
ldbc_snb_ic q36 563.49 558.12 5.38 (0.96%)
ldbc_snb_is q32 4.46 5.18 -0.72 (-13.94%)
ldbc_snb_is q33 12.79 12.15 0.64 (5.29%)
ldbc_snb_is q34 1.09 1.08 0.01 (1.21%)
multi-rel multi-rel-large-scan 1197.15 1216.57 -19.42 (-1.60%)
multi-rel multi-rel-lookup 32.71 30.38 2.33 (7.67%)
multi-rel multi-rel-small-scan 73.56 74.65 -1.09 (-1.46%)
order_by q25 129.05 134.91 -5.86 (-4.34%)
order_by q26 450.09 456.55 -6.45 (-1.41%)
order_by q27 1467.43 1478.33 -10.90 (-0.74%)
recursive_join recursive-join-bidirection 293.34 260.87 32.47 (12.45%)
recursive_join recursive-join-dense 7277.49 5001.85 2275.64 (45.50%)
recursive_join recursive-join-path 23958.89 23387.10 571.79 (2.44%)
recursive_join recursive-join-sparse 14086.96 13850.58 236.38 (1.71%)
recursive_join recursive-join-trail 7196.32 5044.11 2152.22 (42.67%)
scan_after_filter q01 171.92 176.81 -4.89 (-2.77%)
scan_after_filter q02 157.22 161.55 -4.32 (-2.68%)
shortest_path_ldbc100 q37 94.13 95.79 -1.66 (-1.73%)
shortest_path_ldbc100 q38 338.81 355.75 -16.94 (-4.76%)
shortest_path_ldbc100 q39 67.08 57.57 9.50 (16.51%)
shortest_path_ldbc100 q40 446.01 433.75 12.25 (2.82%)
var_size_expr_evaluator q03 2081.69 2142.09 -60.40 (-2.82%)
var_size_expr_evaluator q04 2251.04 2304.84 -53.81 (-2.33%)
var_size_expr_evaluator q05 2643.54 2634.66 8.89 (0.34%)
var_size_expr_evaluator q06 1335.95 1353.87 -17.91 (-1.32%)
var_size_seq_scan q19 1459.78 1488.09 -28.31 (-1.90%)
var_size_seq_scan q20 2514.90 2420.47 94.43 (3.90%)
var_size_seq_scan q21 2301.06 2300.22 0.84 (0.04%)
var_size_seq_scan q22 126.87 128.75 -1.88 (-1.46%)

@royi-luo royi-luo force-pushed the royi/zone-map-add-exprs branch from 1bf3381 to 0e97a96 Compare December 19, 2024 22:21
Copy link

Benchmark Result

Master commit hash: bfe46c071c48fcf8fcdaa911238929bf617c53d1
Branch commit hash: 095e41b08987c4081999380a70d53e7ad1b4b789

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 654.39 642.92 11.47 (1.78%)
aggregation q28 12402.99 11143.70 1259.28 (11.30%)
filter q14 128.35 125.51 2.84 (2.27%)
filter q15 125.36 131.77 -6.41 (-4.87%)
filter q16 301.27 300.58 0.69 (0.23%)
filter q17 450.92 444.57 6.36 (1.43%)
filter q18 1959.91 1936.40 23.51 (1.21%)
filter zonemap-node 89.06 N/A N/A
filter zonemap-node-lhs-cast 90.07 N/A N/A
filter zonemap-node-null 86.43 N/A N/A
filter zonemap-rel 5793.79 N/A N/A
fixed_size_expr_evaluator q07 579.06 547.12 31.94 (5.84%)
fixed_size_expr_evaluator q08 807.29 761.17 46.13 (6.06%)
fixed_size_expr_evaluator q09 806.84 761.27 45.57 (5.99%)
fixed_size_expr_evaluator q10 244.02 241.04 2.98 (1.24%)
fixed_size_expr_evaluator q11 236.52 235.99 0.54 (0.23%)
fixed_size_expr_evaluator q12 234.13 234.97 -0.83 (-0.36%)
fixed_size_expr_evaluator q13 1452.56 1468.12 -15.55 (-1.06%)
fixed_size_seq_scan q23 113.84 121.73 -7.89 (-6.48%)
join q29 645.00 652.48 -7.49 (-1.15%)
join q30 1561.69 1504.33 57.36 (3.81%)
join q31 6.70 8.07 -1.37 (-17.03%)
join SelectiveTwoHopJoin 50.06 N/A N/A
ldbc_snb_ic q35 2632.20 388.13 2244.08 (578.18%)
ldbc_snb_ic q36 547.78 35.88 511.89 (1426.50%)
ldbc_snb_is q32 5.18 7.02 -1.83 (-26.11%)
ldbc_snb_is q33 13.18 16.35 -3.17 (-19.39%)
ldbc_snb_is q34 1.02 4.13 -3.11 (-75.34%)
multi-rel multi-rel-large-scan 1209.13 1737.67 -528.54 (-30.42%)
multi-rel multi-rel-lookup 5.48 61.18 -55.70 (-91.05%)
multi-rel multi-rel-small-scan 77.96 67.45 10.51 (15.58%)
order_by q25 138.79 135.63 3.16 (2.33%)
order_by q26 459.13 459.01 0.13 (0.03%)
order_by q27 1513.23 1467.03 46.20 (3.15%)
recursive_join recursive-join-bidirection 287.54 N/A N/A
recursive_join recursive-join-dense 6402.32 N/A N/A
recursive_join recursive-join-path 23991.82 N/A N/A
recursive_join recursive-join-sparse 14117.60 N/A N/A
recursive_join recursive-join-trail 6717.66 N/A N/A
scan_after_filter q01 169.32 170.69 -1.37 (-0.80%)
scan_after_filter q02 155.22 159.40 -4.18 (-2.62%)
shortest_path_ldbc100 q37 92.41 3336.32 -3243.91 (-97.23%)
shortest_path_ldbc100 q38 332.69 68.44 264.25 (386.12%)
shortest_path_ldbc100 q39 65.87 85.71 -19.84 (-23.15%)
shortest_path_ldbc100 q40 417.17 74.58 342.59 (459.34%)
var_size_expr_evaluator q03 2106.32 2057.00 49.32 (2.40%)
var_size_expr_evaluator q04 2278.83 2241.83 37.00 (1.65%)
var_size_expr_evaluator q05 2646.74 2625.31 21.43 (0.82%)
var_size_expr_evaluator q06 1334.51 1346.92 -12.42 (-0.92%)
var_size_seq_scan q19 1496.20 1468.72 27.47 (1.87%)
var_size_seq_scan q20 2783.14 2766.27 16.87 (0.61%)
var_size_seq_scan q21 2343.31 2263.77 79.54 (3.51%)
var_size_seq_scan q22 129.58 128.98 0.61 (0.47%)

src/storage/predicate/column_predicate.cpp Outdated Show resolved Hide resolved
Copy link

Benchmark Result

Master commit hash: 3f523464cbcfaa3664eba65a3803eb371614f337
Branch commit hash: f0d36957a46ba7e6cc4b3049df237d7a10574ae2

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 647.49 644.79 2.70 (0.42%)
aggregation q28 11888.52 11159.36 729.16 (6.53%)
filter q14 127.65 124.89 2.77 (2.22%)
filter q15 127.36 129.83 -2.48 (-1.91%)
filter q16 305.93 300.66 5.27 (1.75%)
filter q17 448.36 448.87 -0.51 (-0.11%)
filter q18 1945.22 1939.71 5.50 (0.28%)
filter zonemap-node 88.23 86.60 1.63 (1.88%)
filter zonemap-node-lhs-cast 89.98 88.01 1.97 (2.23%)
filter zonemap-node-null 85.97 N/A N/A
filter zonemap-rel 5870.25 5713.89 156.36 (2.74%)
fixed_size_expr_evaluator q07 765.43 578.47 186.96 (32.32%)
fixed_size_expr_evaluator q08 809.74 809.97 -0.23 (-0.03%)
fixed_size_expr_evaluator q09 822.29 808.74 13.54 (1.67%)
fixed_size_expr_evaluator q10 249.60 243.63 5.97 (2.45%)
fixed_size_expr_evaluator q11 242.11 237.16 4.95 (2.09%)
fixed_size_expr_evaluator q12 240.19 233.37 6.82 (2.92%)
fixed_size_expr_evaluator q13 1464.23 1462.26 1.97 (0.13%)
fixed_size_seq_scan q23 119.49 122.48 -2.99 (-2.44%)
join q29 640.89 563.74 77.16 (13.69%)
join q30 1624.93 1518.03 106.91 (7.04%)
join q31 5.23 4.30 0.93 (21.66%)
join SelectiveTwoHopJoin 46.40 51.47 -5.07 (-9.85%)
ldbc_snb_ic q35 2604.24 2597.02 7.22 (0.28%)
ldbc_snb_ic q36 564.55 523.05 41.49 (7.93%)
ldbc_snb_is q32 5.25 6.58 -1.33 (-20.20%)
ldbc_snb_is q33 9.02 12.03 -3.01 (-25.02%)
ldbc_snb_is q34 1.02 1.22 -0.20 (-16.76%)
multi-rel multi-rel-large-scan 1209.45 1273.37 -63.93 (-5.02%)
multi-rel multi-rel-lookup 9.90 9.88 0.02 (0.24%)
multi-rel multi-rel-small-scan 77.19 80.49 -3.29 (-4.09%)
order_by q25 135.16 132.78 2.38 (1.79%)
order_by q26 460.14 448.16 11.98 (2.67%)
order_by q27 1498.43 1467.24 31.19 (2.13%)
recursive_join recursive-join-bidirection 284.29 263.66 20.62 (7.82%)
recursive_join recursive-join-dense 7475.41 7403.75 71.66 (0.97%)
recursive_join recursive-join-path 23968.89 23912.87 56.02 (0.23%)
recursive_join recursive-join-sparse 14402.99 14388.39 14.60 (0.10%)
recursive_join recursive-join-trail 7386.94 7318.84 68.10 (0.93%)
scan_after_filter q01 175.28 171.16 4.12 (2.41%)
scan_after_filter q02 160.45 167.98 -7.53 (-4.48%)
shortest_path_ldbc100 q37 87.72 73.97 13.75 (18.59%)
shortest_path_ldbc100 q38 365.13 282.30 82.83 (29.34%)
shortest_path_ldbc100 q39 65.33 60.73 4.61 (7.58%)
shortest_path_ldbc100 q40 430.61 388.87 41.74 (10.73%)
var_size_expr_evaluator q03 2121.59 2064.74 56.85 (2.75%)
var_size_expr_evaluator q04 2286.17 2213.36 72.81 (3.29%)
var_size_expr_evaluator q05 2699.11 2678.65 20.46 (0.76%)
var_size_expr_evaluator q06 1332.09 1327.14 4.96 (0.37%)
var_size_seq_scan q19 1457.56 1456.17 1.39 (0.10%)
var_size_seq_scan q20 2791.83 2680.11 111.72 (4.17%)
var_size_seq_scan q21 2331.17 2288.51 42.66 (1.86%)
var_size_seq_scan q22 129.01 129.05 -0.04 (-0.03%)

@royi-luo royi-luo merged commit ea98fb1 into master Dec 20, 2024
23 checks passed
@royi-luo royi-luo deleted the royi/zone-map-add-exprs branch December 20, 2024 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants