jzombie
rust-llkv
BlogDocsChangelog

Refactor planning and execution

#223
Comparing
211-refactor-logical-planner
(
3b66a0a
) with
main
(
8977772
)
CodSpeed Performance Gauge
-54%
Improvements
9
Regressions
9
Untouched
57
Skipped
2

Benchmarks

Skipped (2)

Failed

hash_join_anti_join[1000]
criterion::hash_join_anti_join::1000
Regression
CodSpeed Performance Gauge
-54%
35 µs75.2 µs
hash_join_left_join[10000]
criterion::hash_join_left_join::10000
Regression
CodSpeed Performance Gauge
-18%
508.8 µs617.4 µs
hash_join_semi_join[1000]
criterion::hash_join_semi_join::1000
Regression
CodSpeed Performance Gauge
-25%
30.4 µs40.6 µs
hash_join_inner_join[10000]
criterion::hash_join_inner_join::10000
Regression
CodSpeed Performance Gauge
-24%
605.3 µs796.5 µs
hash_join_anti_join[10000]
criterion::hash_join_anti_join::10000
Regression
CodSpeed Performance Gauge
-39%
271.2 µs445.5 µs
hash_join_semi_join[10000]
criterion::hash_join_semi_join::10000
Regression
CodSpeed Performance Gauge
-29%
219.4 µs310.2 µs
hash_join_semi_join[100000]
criterion::hash_join_semi_join::100000
Regression
CodSpeed Performance Gauge
-11%
3.1 ms3.5 ms
hash_join_semi_join[1000000]
criterion::hash_join_semi_join::1000000
Regression
CodSpeed Performance Gauge
-15%
36.7 ms43.2 ms
ingest_mixed_1M[batches=64]
criterion::ingest_mixed_1M::batches=64
Regression
CodSpeed Performance Gauge
-11%
340.9 ms381.6 ms

Improved

hash_join_many_to_many[1000]
criterion::hash_join_many_to_many::1000
CodSpeed Performance Gauge
+68%
129.9 µs77.5 µs
hash_join_no_matches[1000]
criterion::hash_join_no_matches::1000
CodSpeed Performance Gauge
+60%
114.1 µs71.3 µs
hash_join_left_join[1000]
criterion::hash_join_left_join::1000
CodSpeed Performance Gauge
+47%
149.9 µs101.9 µs
select4_full
criterion::slturl_cases
CodSpeed Performance Gauge
+35%
7.6 s5.6 s
storage_fused_both_case_sensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
+17%
7.5 ms6.4 ms
scan_stream_expr_add_one
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
+16%
3.5 ms3 ms
storage_fused_starts_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
+13%
8.4 ms7.5 ms
table_layer_sum
criterion::table_layer_overhead_analysis
CodSpeed Performance Gauge
+13%
2.4 ms2.1 ms
storage_sequential_both_case_sensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
+11%
54.9 ms49.4 ms

Passed

storage_sequential_starts_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
+10%
94.6 ms86.1 ms
hash_join_left_join[1000000]
criterion::hash_join_left_join::1000000
CodSpeed Performance Gauge
+9%
142.6 ms130.7 ms
hash_join_many_to_many[100000]
criterion::hash_join_many_to_many::100000
CodSpeed Performance Gauge
+9%
12.7 ms11.7 ms
hash_join_inner_join[1000]
criterion::hash_join_inner_join::1000
CodSpeed Performance Gauge
+8%
75.5 µs69.6 µs
hash_join_many_to_many[100]
criterion::hash_join_many_to_many::100
CodSpeed Performance Gauge
+8%
26.4 µs24.4 µs
storage_sequential_contains_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
+8%
116.4 ms107.6 ms
delete1000_full
criterion::slturl_cases
CodSpeed Performance Gauge
+7%
375.6 ms351 ms
hash_join_no_matches[10000]
criterion::hash_join_no_matches::10000
CodSpeed Performance Gauge
+7%
632.8 µs594.1 µs
direct_columnstore_sum
criterion::table_layer_overhead_analysis
CodSpeed Performance Gauge
+5%
102.2 µs97.5 µs
store_sequential_contains_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
+4%
110.4 ms105.8 ms
scan_stream_sum_u64
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
+4%
2.2 ms2.1 ms
scan_stream_expr_subtract_one
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
+4%
3.1 ms3 ms
storage_fused_contains_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
+3%
88.6 ms85.6 ms
hash_join_inner_join[1000000]
criterion::hash_join_inner_join::1000000
CodSpeed Performance Gauge
+3%
276.3 ms267.1 ms
hash_join_left_join[100000]
criterion::hash_join_left_join::100000
CodSpeed Performance Gauge
+3%
7.6 ms7.4 ms
scan_stream_expr_multiply_two
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
+3%
3.1 ms3 ms
storage_fused_both_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
+2%
86.4 ms84.5 ms
store_sequential_starts_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
+2%
90.4 ms88.5 ms
lowfrag/range/without_index
criterion::index_matrix_1M::lowfrag_range_without_index
CodSpeed Performance Gauge
+2%
3.9 ms3.8 ms
sum_u64_scan_only
criterion::column_store_sum_1M
CodSpeed Performance Gauge
+2%
103.1 µs101 µs
planner_fused_both_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
+2%
167.9 ms164.7 ms
planner_fused_starts_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
+1%
111.5 ms109.9 ms
planner_fused_contains_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
+1%
130 ms128.7 ms
store_sequential_both_case_insensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
+1%
146 ms145.1 ms
storage_sequential_both_case_insensitive
criterion::string_substring_storage_only
CodSpeed Performance Gauge
0%
146 ms145.4 ms
multi_column_batched
criterion::gather_rows
CodSpeed Performance Gauge
0%
2 ms2 ms
multi_column_sequential
criterion::gather_rows
CodSpeed Performance Gauge
0%
2 ms2 ms
planner_fused_both_case_sensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
0%
73.7 ms73.6 ms
store_sequential_both_case_sensitive
criterion::string_substring_fused_vs_sequential
CodSpeed Performance Gauge
0%
49.9 ms49.9 ms
sum_i32_scan_only
criterion::column_store_sum_1M
CodSpeed Performance Gauge
0%
49.1 µs49.1 µs
single_column
criterion::gather_rows
CodSpeed Performance Gauge
0%
667.6 µs667.9 µs
scan_sorted_stream_join
criterion::random_probe_u64
CodSpeed Performance Gauge
0%
20.5 ms20.5 ms
scan_stream_expr_divide_two
criterion::llkv_table_math_1M
CodSpeed Performance Gauge
0%
4.3 ms4.3 ms
multi_column_batched_with_nulls
criterion::gather_rows
CodSpeed Performance Gauge
0%
770.7 µs771.3 µs
highfrag/full/without_index
criterion::index_matrix_1M::highfrag_full_without_index
CodSpeed Performance Gauge
0%
14 ms14 ms
sorted_range_u64
criterion::scan_builder_1M
CodSpeed Performance Gauge
0%
22.7 ms22.8 ms
ingest_mixed_1M[batches=16]
criterion::ingest_mixed_1M::batches=16
CodSpeed Performance Gauge
0%
346.3 ms347.6 ms
ingest_mixed_1M[batches=4]
criterion::ingest_mixed_1M::batches=4
CodSpeed Performance Gauge
0%
316.5 ms317.9 ms
highfrag/full/with_index
criterion::index_matrix_1M::highfrag_full_with_index
CodSpeed Performance Gauge
0%
41.1 ms41.3 ms
hash_join_no_matches[100000]
criterion::hash_join_no_matches::100000
CodSpeed Performance Gauge
-1%
10.4 ms10.5 ms
lowfrag/range/with_index
criterion::index_matrix_1M::lowfrag_range_with_index
CodSpeed Performance Gauge
-1%
1.9 ms1.9 ms
scan_contains_needle_case_insensitive
criterion::string_substring_search
CodSpeed Performance Gauge
-1%
102.9 ms103.6 ms
lowfrag/full/without_index
criterion::index_matrix_1M::lowfrag_full_without_index
CodSpeed Performance Gauge
-1%
14.5 ms14.6 ms
highfrag/range/with_index
criterion::index_matrix_1M::highfrag_range_with_index
CodSpeed Performance Gauge
-1%
2.8 ms2.8 ms
sorted_with_row_ids_u64
criterion::scan_builder_1M
CodSpeed Performance Gauge
-1%
19.7 ms19.9 ms
lowfrag/full/with_index
criterion::index_matrix_1M::lowfrag_full_with_index
CodSpeed Performance Gauge
-1%
20 ms20.3 ms
highfrag/range/without_index
criterion::index_matrix_1M::highfrag_range_without_index
CodSpeed Performance Gauge
-2%
5.2 ms5.3 ms
ingest_mixed_1M[batches=1]
criterion::ingest_mixed_1M::batches=1
CodSpeed Performance Gauge
-2%
241 ms245.5 ms
scan_contains_needle_case_sensitive
criterion::string_substring_search
CodSpeed Performance Gauge
-2%
46.4 ms47.4 ms
unsorted_sum_u64
criterion::scan_builder_1M
CodSpeed Performance Gauge
-3%
961.6 µs987.1 µs
sum_u64_fragmented_scan_only
criterion::column_store_fragmented_1M
CodSpeed Performance Gauge
-7%
88 µs94.2 µs
hash_join_inner_join[100000]
criterion::hash_join_inner_join::100000
CodSpeed Performance Gauge
-7%
11.2 ms12.1 ms
hash_join_no_matches[1000000]
criterion::hash_join_no_matches::1000000
CodSpeed Performance Gauge
-9%
246.6 ms270.4 ms
hash_join_anti_join[1000000]
criterion::hash_join_anti_join::1000000
CodSpeed Performance Gauge
-9%
42.5 ms46.7 ms
hash_join_many_to_many[10000]
criterion::hash_join_many_to_many::10000
CodSpeed Performance Gauge
-9%
752.4 µs828.5 µs
scan_unsorted_multiset
criterion::random_probe_u64
CodSpeed Performance Gauge
-10%
1.4 ms1.6 ms
hash_join_anti_join[100000]
criterion::hash_join_anti_join::100000
CodSpeed Performance Gauge
-10%
3.7 ms4.1 ms

Commits

Click on a commit to change the comparison range
Base
main
8977772
-53.53%
211-refactor-logical-planner -- perf monitor (#224) * Prototype granular perf calcs * Add TODOs * Prototype batched row counts * Unify total row count handling * Prototype perf monitoring * Apply cargo formatting * Prototype query-based perf monitoring * Add hit count * Add TODOs for multi-table physical planning * Simplify query context * Update comment * Verify zero-cost of timing code * Verify assembly is different if perf enabled * Add comment * Remove erroneous side effect * Manually feature-gate macros Also add `measure_with_duration` which always times the internal code * Remove assertion which conflicts with SLT tests * Add TODOs * Update SQL tests to match current SLT expectations * Set `LLKV_PERF_SLOW_MS` to 1 second in CI * Rename macros for clarity * Fix bench compilation * Temporarily bypass failing test * Reimplement support for correlated subqueries * Add TODO * Initial conversion to Arc-based plan vectors * Add TODOs * Remove older, duplicated physical planner structs * Transition many Vec to Arc-wrapped slices * Fix failing pager tests This is unrelated to the previous commit's Arc update, and likely a slight regression after reimplementing support for correlated subqueries (c70c1), though I haven't confirmed. * Resolve Clippy warnings * Debug Windows failure with TOML-safe path handling * Rename tests for consistency * Add TODO * Prototype hash perf optimizations * Replace std HashMap with FxHashMap * Lint deps * Add'l dep lint * `cargo fmt --all` * Comment-out log spam * Debug failing lint * Fix incorrect empty projection assumption * Resolve lint warnings * Resolve Clippy warnings * Ensure `run_script_at_path` respects `SLT_HARNESS_STACK_SIZE` * `cargo fmt --all`
3b66a0a
28 days ago
by jzombie
© 2026 CodSpeed Technology
Home Terms Privacy Docs