jzombie
rust-llkv
BlogDocsChangelog

Improve join optimizer performance

#154Merged
Comparing
131-more-slts--v
(
86d7d4b
) with
main
(
b430072
)
CodSpeed Performance Gauge
-31%
Improvements
4
Regressions
3
Untouched
66
New
2

Benchmarks

Failed

hash_join_inner_join[1000000]
criterion::hash_join_inner_join::1000000
Regression
CodSpeed Performance Gauge
-31%
193.3 ms281.7 ms
hash_join_left_join[1000000]
criterion::hash_join_left_join::1000000
Regression
CodSpeed Performance Gauge
-14%
133.8 ms154.9 ms
storage_sequential_both_case_sensitive
criterion::string_substring_storage_only
Regression
CodSpeed Performance Gauge
-10%
44.8 ms49.9 ms

Improved

hash_join_many_to_many[100000]
criterion::hash_join_many_to_many::100000
CodSpeed Performance Gauge
+24%
16.9 ms13.7 ms
scan_stream_expr_subtract_one
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
+15%
1.2 ms1 ms
lowfrag/range/without_index
criterion::index_matrix_1M::lowfrag_range_without_index
CodSpeed Performance Gauge
+15%
4.3 ms3.8 ms
highfrag/range/with_index
criterion::index_matrix_1M::highfrag_range_with_index
CodSpeed Performance Gauge
+12%
3.6 ms3.2 ms

New

full_test_file
criterion::select4_slturl
CodSpeed Performance Gauge
N/A
N/A8.9 s
select4_full
criterion::select4_slturl
CodSpeed Performance Gauge
N/A
N/A8.5 s

Passed

lowfrag/range/with_index
criterion::index_matrix_1M::lowfrag_range_with_index
CodSpeed Performance Gauge
+9%
2.2 ms2 ms
hash_join_many_to_many[100]
criterion::hash_join_many_to_many::100
CodSpeed Performance Gauge
+9%
85.5 µs78.7 µs
scan_stream_expr_add_one
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
+8%
1.1 ms1 ms
sum_u64_fragmented_scan_only
criterion::column_store_fragmented_1M
CodSpeed Performance Gauge
+8%
95.1 µs87.8 µs
hash_join_left_join[100000]
criterion::hash_join_left_join::100000
CodSpeed Performance Gauge
+7%
9 ms8.4 ms
hash_join_no_matches[100000]
criterion::hash_join_no_matches::100000
CodSpeed Performance Gauge
+7%
12.4 ms11.6 ms
storage_fused_starts_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
+7%
5.3 ms5 ms
ingest_mixed_1M[batches=1]
criterion::ingest_mixed_1M::batches=1
CodSpeed Performance Gauge
+5%
208.9 ms198.3 ms
hash_join_semi_join[10000]
criterion::hash_join_semi_join::10000
CodSpeed Performance Gauge
+5%
255.3 µs242.5 µs
planner_fused_starts_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
+5%
20.5 ms19.5 ms
hash_join_inner_join[100000]
criterion::hash_join_inner_join::100000
CodSpeed Performance Gauge
+4%
12.9 ms12.4 ms
scan_stream_expr_divide_two
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
+4%
1 ms1 ms
hash_join_no_matches[1000000]
criterion::hash_join_no_matches::1000000
CodSpeed Performance Gauge
+4%
267.7 ms258.7 ms
highfrag/full/without_index
criterion::index_matrix_1M::highfrag_full_without_index
CodSpeed Performance Gauge
+3%
14.9 ms14.4 ms
hash_join_anti_join[100000]
criterion::hash_join_anti_join::100000
CodSpeed Performance Gauge
+3%
4.4 ms4.2 ms
hash_join_left_join[10000]
criterion::hash_join_left_join::10000
CodSpeed Performance Gauge
+3%
636.9 µs616.9 µs
hash_join_semi_join[100000]
criterion::hash_join_semi_join::100000
CodSpeed Performance Gauge
+3%
3.7 ms3.6 ms
sum_u64_scan_only
criterion::column_store_sum_1M
CodSpeed Performance Gauge
+3%
107.5 µs104.3 µs
lowfrag/full/with_index
criterion::index_matrix_1M::lowfrag_full_with_index
CodSpeed Performance Gauge
+3%
23.1 ms22.4 ms
hash_join_semi_join[1000]
criterion::hash_join_semi_join::1000
CodSpeed Performance Gauge
+2%
83.3 µs81.5 µs
highfrag/full/with_index
criterion::index_matrix_1M::highfrag_full_with_index
CodSpeed Performance Gauge
+2%
46.9 ms45.9 ms
hash_join_no_matches[10000]
criterion::hash_join_no_matches::10000
CodSpeed Performance Gauge
+2%
688 µs673.2 µs
hash_join_many_to_many[1000]
criterion::hash_join_many_to_many::1000
CodSpeed Performance Gauge
+2%
182 µs178.8 µs
hash_join_many_to_many[10000]
criterion::hash_join_many_to_many::10000
CodSpeed Performance Gauge
+2%
853.5 µs839.4 µs
unsorted_sum_u64
criterion::scan_builder_1M
CodSpeed Performance Gauge
+1%
919.1 µs907.6 µs
hash_join_inner_join[1000]
criterion::hash_join_inner_join::1000
CodSpeed Performance Gauge
+1%
89.8 µs88.7 µs
hash_join_anti_join[1000]
criterion::hash_join_anti_join::1000
CodSpeed Performance Gauge
+1%
87.9 µs86.9 µs
ingest_mixed_1M[batches=4]
criterion::ingest_mixed_1M::batches=4
CodSpeed Performance Gauge
+1%
300.4 ms297.2 ms
ingest_mixed_1M[batches=16]
criterion::ingest_mixed_1M::batches=16
CodSpeed Performance Gauge
+1%
450.9 ms447.3 ms
planner_fused_both_case_sensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
+1%
19.9 ms19.8 ms
hash_join_left_join[1000]
criterion::hash_join_left_join::1000
CodSpeed Performance Gauge
0%
154.8 µs154.1 µs
sorted_range_u64
criterion::scan_builder_1M
CodSpeed Performance Gauge
0%
23.4 ms23.2 ms
scan_stream_expr_multiply_two
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
0%
1 ms1 ms
storage_fused_both_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
0%
85.3 ms85.2 ms
sum_i32_scan_only
criterion::column_store_sum_1M
CodSpeed Performance Gauge
0%
48.7 µs48.7 µs
single_column
criterion::gather_rows
CodSpeed Performance Gauge
0%
620.7 µs620.8 µs
multi_column_sequential
criterion::gather_rows
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms
multi_column_batched
criterion::gather_rows
CodSpeed Performance Gauge
0%
1.8 ms1.8 ms
multi_column_batched_with_nulls
criterion::gather_rows
CodSpeed Performance Gauge
0%
649.5 µs650.2 µs
scan_unsorted_multiset
criterion::random_probe_u64
CodSpeed Performance Gauge
0%
1.5 ms1.5 ms
scan_stream_sum_u64
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
0%
108.9 µs109.2 µs
lowfrag/full/without_index
criterion::index_matrix_1M::lowfrag_full_without_index
CodSpeed Performance Gauge
0%
14.6 ms14.6 ms
sorted_with_row_ids_u64
criterion::scan_builder_1M
CodSpeed Performance Gauge
-1%
21.1 ms21.2 ms
storage_fused_both_case_sensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
-1%
4.9 ms5 ms
storage_fused_contains_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
-1%
83.9 ms84.8 ms
hash_join_anti_join[10000]
criterion::hash_join_anti_join::10000
CodSpeed Performance Gauge
-1%
287.1 µs290 µs
store_sequential_both_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
-1%
141.8 ms143.4 ms
store_sequential_both_case_sensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
-1%
47.8 ms48.4 ms
scan_contains_needle_case_sensitive
criterion::string_substring_search
CodSpeed Performance Gauge
-2%
44.6 ms45.3 ms
storage_sequential_both_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
-2%
142.5 ms144.8 ms
ingest_mixed_1M[batches=64]
criterion::ingest_mixed_1M::batches=64
CodSpeed Performance Gauge
-2%
787.1 ms800.6 ms
scan_sorted_stream_join
criterion::random_probe_u64
CodSpeed Performance Gauge
-2%
22.2 ms22.7 ms
table_layer_sum
criterion::table_layer_overhead_analysis
CodSpeed Performance Gauge
-2%
105.7 µs108 µs
planner_fused_both_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
-2%
100.5 ms102.9 ms
storage_sequential_contains_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
-2%
105.8 ms108.4 ms
scan_contains_needle_case_insensitive
criterion::string_substring_search
CodSpeed Performance Gauge
-3%
101.4 ms104.5 ms
direct_columnstore_sum
criterion::table_layer_overhead_analysis
CodSpeed Performance Gauge
-3%
102.1 µs105.5 µs
hash_join_semi_join[1000000]
criterion::hash_join_semi_join::1000000
CodSpeed Performance Gauge
-4%
44.6 ms46.3 ms
hash_join_no_matches[1000]
criterion::hash_join_no_matches::1000
CodSpeed Performance Gauge
-4%
152.1 µs157.9 µs
storage_sequential_starts_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
-4%
82.6 ms86.4 ms
store_sequential_contains_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
-4%
103.7 ms108.5 ms
planner_fused_contains_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
-5%
99 ms103.9 ms
highfrag/range/without_index
criterion::index_matrix_1M::highfrag_range_without_index
CodSpeed Performance Gauge
-5%
5.3 ms5.6 ms
hash_join_anti_join[1000000]
criterion::hash_join_anti_join::1000000
CodSpeed Performance Gauge
-6%
50 ms53.1 ms
store_sequential_starts_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
-6%
82.9 ms88.2 ms
hash_join_inner_join[10000]
criterion::hash_join_inner_join::10000
CodSpeed Performance Gauge
-8%
636 µs690.8 µs

Commits

Click on a commit to change the comparison range
Base
main
b430072
-13.38%
`cargo fmt`
fac8ddf
3 days ago
by jzombie
-10.72%
Rename bench for clarity
b677aae
3 days ago
by jzombie
-7.55%
Delete old test file
0b73633
3 days ago
by jzombie
+0.27%
Revert change to run tests in release mode Removed the release mode flag from cargo test command.
86d7d4b
3 days ago
by jzombie
© 2025 CodSpeed Technology
Home Terms Privacy Docs