Skip to content

Gate WAL checkpoint threshold behind SQLITE_TEST - #2534

Merged
timsehn merged 1 commit into
masterfrom
fix/gate-wal-checkpoint-threshold
Sep 1, 2026
Merged

Gate WAL checkpoint threshold behind SQLITE_TEST#2534
timsehn merged 1 commit into
masterfrom
fix/gate-wal-checkpoint-threshold

Conversation

@timsehn

@timsehn timsehn commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Beta review item 5: DOLTLITE_WAL_CHECKPOINT_THRESHOLD was a live getenv in production. A process environment could drop the checkpoint interval to 1 byte (or skip checkpoints) and force full WAL replay on every open.

Match DOLTLITE_CHUNK_PENDING_DRAIN_LIMIT: honor the env only under SQLITE_TEST or DOLTLITE_MECH_REPRO. Release CLI/libdoltlite stay on the 64MiB default.

testfixture still sees the knob (doltlite_recover_corruption.test). doltlite_checkpoint_perf.sh uses the CLI with the same 64MiB default, so it is unchanged.

test/doltlite_checkpoint_threshold_env.sh fails on an ungated CLI (env=1 stamps a checkpoint on an 8KiB commit) and passes after the gate.

Co-Authored-By: Grok 4.6 noreply@x.ai

DOLTLITE_WAL_CHECKPOINT_THRESHOLD was a live getenv in production, so a
process environment could disable checkpoints and force full WAL replay
on open. Read it only in SQLITE_TEST / DOLTLITE_MECH_REPRO builds, same
as the pending-drain injector. CLI still uses the 64MiB default.

test/doltlite_checkpoint_threshold_env.sh sets the env to 1 byte on the
CLI and checks that a small commit does not stamp a checkpoint.

Co-Authored-By: Grok 4.6 <noreply@x.ai>
@itoqa

itoqa Bot commented Sep 1, 2026

Copy link
Copy Markdown

Ito QA test results
Commit: e64e8f8: 15 test cases ran, 15 passed ✅.

Summary

Coverage spans normal database writes and reopen flows, boundary and malformed configuration values, safe handling of failed or interrupted checkpoints, concurrent close-and-commit behavior, data recovery, and release-versus-diagnostic build behavior. Overall, the change preserves committed data and safe defaults across happy paths, edge cases, failure recovery, and concurrency scenarios.

Safe to merge — the exercised behaviors are healthy across persistence, recovery, concurrency, configuration handling, and build-mode boundaries, with no PR-attributable regressions or unresolved failures. No merge blocker is indicated by this run.

Tests run by Ito

View full run

Result Severity Type Description
General The database checkpointed at both the selected limit and one byte above it, and the saved row was still present after the check.
General The committed row was still present after both reopen reads, and the final root record showed no checkpoint stamp from the inherited low threshold.
General A file-permission failure during checkpointing returned a clear disk error, and reopening the database kept the committed row. The database did not report a false successful checkpoint.
General Closing after a checkpoint problem leaves the database recoverable, and committed rows remain available after reopening. The recovery workload completed all 42 cases successfully.
General The native suite ran the release executable and the new regression appeared exactly once. The release check passed, while a separately built control executable showed that the setting still works in the intended test mode.
General A committed row was still available after the database closed immediately and reopened, even with the checkpoint threshold environment set to 1.
General A commit and a close happened at the same time without losing the committed row. Reopening the database showed one row and a clean checkpoint state.
Checkpoint The test build used a low checkpoint limit, reopened the database, and kept all committed data. The complete recovery workload passed all 42 cases after the earlier unrelated failures were rerun.
Checkpoint Using 0 or -7 as the checkpoint threshold did not force an early checkpoint. The committed row stayed readable, so both values correctly fell back to the 64 MiB default.
Checkpoint Malformed and empty threshold settings did not trigger an early checkpoint, and the committed row stayed available.
Rev A release build ignored the unsafe one-byte checkpoint override, saved the 8 KiB row, and read it back after reopening the database.
Rev The diagnostic build used the configured 1024-byte threshold, created a valid checkpoint, and reopened the database with the full 8192-byte payload intact.
Rev A one-byte environment setting did not change the release command's normal checkpoint behavior. Five committed rows reopened with the same data, file size, checkpoint state, and roughly 2 ms timing as the run without the setting.
Suite The native suite included the checkpoint-threshold regression and it passed. A release build ignored the one-byte environment setting for a small database change, as expected.
Threshold The release command completed a small database commit even when the environment set the checkpoint threshold to 1 byte. The native check found checkpoint magic 0 and reported 1 passed, 0 failed.

Tip

Reply with @itoqa to send us feedback on this test run.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

DoltLite performance vs PR base

  • Baseline: c5ce1c80850d6995fdc2b4d854452f5a17982b89
  • Candidate: 99e80203e27003a9509ea743e1b2941ddd8dd730
  • Overall ratio: 1.000x
  • Gate result: PASS
  • Gates: individual > 1.50x with more than 10.00ms regression; section, suite, or overall > 1.25x with the same minimum delta
  • vc individual gate: > 2.00x with more than 50.00ms regression
  • Confirmed failed gates: none
  • Automatic retries: none
Suite Workloads Baseline total Candidate total Ratio Result
blobpk 69 11.21s 11.18s 0.997x PASS
compositepk 69 11.87s 11.84s 0.997x PASS
int 69 10.57s 10.60s 1.003x PASS
textpk 69 10.98s 11.00s 1.002x PASS
vc 13 766.95ms 763.01ms 0.995x PASS
blobpk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 37.74ms 37.59ms -153us 0.996x PASS
mem_reads oltp_range_select 13.68ms 13.66ms -23us 0.998x PASS
mem_reads oltp_sum_range 13.65ms 13.67ms +23us 1.002x PASS
mem_reads oltp_order_range 3.23ms 3.25ms +12us 1.004x PASS
mem_reads oltp_distinct_range 4.32ms 4.36ms +43us 1.010x PASS
mem_reads oltp_index_scan 6.17ms 6.30ms +131us 1.021x PASS
mem_reads select_random_points 20.81ms 20.92ms +109us 1.005x PASS
mem_reads select_random_ranges 5.34ms 5.31ms -34us 0.994x PASS
mem_reads covering_index_scan 4.73ms 4.79ms +59us 1.012x PASS
mem_reads groupby_scan 34.51ms 34.84ms +331us 1.010x PASS
mem_reads index_join 9.30ms 9.27ms -22us 0.998x PASS
mem_reads index_join_scan 5.21ms 5.25ms +36us 1.007x PASS
mem_reads types_table_scan 1.20s 1.19s -5.95ms 0.995x PASS
mem_reads table_scan 1.31s 1.31s +4.31ms 1.003x PASS
mem_reads oltp_read_only 142.40ms 143.36ms +959us 1.007x PASS
mem_writes oltp_bulk_insert 363.91ms 362.32ms -1.59ms 0.996x PASS
mem_writes oltp_insert 38.24ms 38.48ms +233us 1.006x PASS
mem_writes oltp_update_index 135.17ms 134.94ms -227us 0.998x PASS
mem_writes oltp_update_non_index 78.46ms 78.54ms +80us 1.001x PASS
mem_writes oltp_delete_insert 102.42ms 104.39ms +1.97ms 1.019x PASS
mem_writes oltp_write_only 60.04ms 60.38ms +337us 1.006x PASS
mem_writes types_delete_insert 52.83ms 52.96ms +134us 1.003x PASS
mem_writes oltp_read_write 147.94ms 144.59ms -3.35ms 0.977x PASS
file_reads oltp_point_select 57.04ms 58.09ms +1.05ms 1.018x PASS
file_reads oltp_range_select 15.56ms 15.58ms +16us 1.001x PASS
file_reads oltp_sum_range 15.59ms 15.80ms +206us 1.013x PASS
file_reads oltp_order_range 3.63ms 3.58ms -51us 0.986x PASS
file_reads oltp_distinct_range 4.75ms 4.76ms +10us 1.002x PASS
file_reads oltp_index_scan 8.21ms 8.21ms -7us 0.999x PASS
file_reads select_random_points 23.94ms 23.59ms -343us 0.986x PASS
file_reads select_random_ranges 7.19ms 7.22ms +25us 1.003x PASS
file_reads covering_index_scan 6.70ms 6.82ms +126us 1.019x PASS
file_reads groupby_scan 34.83ms 34.65ms -186us 0.995x PASS
file_reads index_join 10.89ms 10.78ms -107us 0.990x PASS
file_reads index_join_scan 5.72ms 5.59ms -134us 0.977x PASS
file_reads types_table_scan 1.17s 1.16s -13.27ms 0.989x PASS
file_reads table_scan 1.28s 1.28s +1.61ms 1.001x PASS
file_reads oltp_read_only 164.84ms 166.69ms +1.84ms 1.011x PASS
file_writes oltp_bulk_insert 369.96ms 377.24ms +7.28ms 1.020x PASS
file_writes oltp_insert 45.41ms 45.30ms -109us 0.998x PASS
file_writes oltp_update_index 149.70ms 146.53ms -3.17ms 0.979x PASS
file_writes oltp_update_non_index 89.54ms 91.85ms +2.31ms 1.026x PASS
file_writes oltp_delete_insert 113.97ms 114.48ms +516us 1.005x PASS
file_writes oltp_write_only 69.91ms 70.46ms +549us 1.008x PASS
file_writes types_delete_insert 61.84ms 61.73ms -106us 0.998x PASS
file_writes oltp_read_write 157.65ms 153.96ms -3.69ms 0.977x PASS
ac_reads oltp_point_select 56.59ms 55.47ms -1.13ms 0.980x PASS
ac_reads oltp_range_select 15.61ms 15.51ms -102us 0.993x PASS
ac_reads oltp_sum_range 15.48ms 15.68ms +196us 1.013x PASS
ac_reads oltp_order_range 3.59ms 3.67ms +78us 1.022x PASS
ac_reads oltp_distinct_range 4.79ms 4.68ms -112us 0.977x PASS
ac_reads oltp_index_scan 8.28ms 8.28ms +2us 1.000x PASS
ac_reads select_random_points 23.39ms 23.39ms -5us 1.000x PASS
ac_reads select_random_ranges 7.19ms 7.25ms +62us 1.009x PASS
ac_reads covering_index_scan 6.76ms 6.84ms +82us 1.012x PASS
ac_reads groupby_scan 36.73ms 36.98ms +253us 1.007x PASS
ac_reads index_join 10.75ms 10.64ms -109us 0.990x PASS
ac_reads index_join_scan 5.69ms 5.64ms -49us 0.991x PASS
ac_reads types_table_scan 1.19s 1.17s -15.30ms 0.987x PASS
ac_reads table_scan 1.29s 1.28s -13.51ms 0.990x PASS
ac_reads oltp_read_only 169.34ms 167.27ms -2.08ms 0.988x PASS
ac_writes oltp_bulk_insert_ac 77.03ms 76.66ms -366us 0.995x PASS
ac_writes oltp_insert_ac 90.74ms 93.43ms +2.69ms 1.030x PASS
ac_writes oltp_update_index_ac 100.54ms 100.83ms +291us 1.003x PASS
ac_writes oltp_update_non_index_ac 85.25ms 87.23ms +1.98ms 1.023x PASS
ac_writes oltp_delete_insert_ac 95.57ms 94.22ms -1.35ms 0.986x PASS
ac_writes oltp_write_only_ac 92.18ms 90.74ms -1.44ms 0.984x PASS
ac_writes types_delete_insert_ac 84.04ms 85.20ms +1.16ms 1.014x PASS
ac_writes oltp_read_write_ac 98.70ms 101.37ms +2.67ms 1.027x PASS
compositepk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 37.44ms 37.63ms +189us 1.005x PASS
mem_reads oltp_range_select 20.43ms 20.64ms +203us 1.010x PASS
mem_reads oltp_sum_range 19.35ms 19.45ms +101us 1.005x PASS
mem_reads oltp_order_range 3.85ms 3.84ms -14us 0.996x PASS
mem_reads oltp_distinct_range 5.02ms 4.96ms -68us 0.986x PASS
mem_reads oltp_index_scan 5.67ms 5.70ms +35us 1.006x PASS
mem_reads select_random_points 30.34ms 30.15ms -183us 0.994x PASS
mem_reads select_random_ranges 8.23ms 8.16ms -73us 0.991x PASS
mem_reads covering_index_scan 4.14ms 4.11ms -32us 0.992x PASS
mem_reads groupby_scan 41.20ms 41.09ms -111us 0.997x PASS
mem_reads index_join 10.31ms 10.29ms -30us 0.997x PASS
mem_reads index_join_scan 5.63ms 5.67ms +40us 1.007x PASS
mem_reads types_table_scan 1.28s 1.27s -5.85ms 0.995x PASS
mem_reads table_scan 1.42s 1.40s -22.83ms 0.984x PASS
mem_reads oltp_read_only 165.67ms 163.28ms -2.39ms 0.986x PASS
mem_writes oltp_bulk_insert 336.88ms 335.96ms -920us 0.997x PASS
mem_writes oltp_insert 35.98ms 36.32ms +349us 1.010x PASS
mem_writes oltp_update_index 130.09ms 131.18ms +1.09ms 1.008x PASS
mem_writes oltp_update_non_index 80.32ms 80.20ms -114us 0.999x PASS
mem_writes oltp_delete_insert 99.05ms 99.72ms +665us 1.007x PASS
mem_writes oltp_write_only 59.97ms 59.27ms -699us 0.988x PASS
mem_writes types_delete_insert 53.88ms 52.54ms -1.34ms 0.975x PASS
mem_writes oltp_read_write 157.85ms 155.91ms -1.93ms 0.988x PASS
file_reads oltp_point_select 61.07ms 61.11ms +39us 1.001x PASS
file_reads oltp_range_select 22.83ms 22.98ms +154us 1.007x PASS
file_reads oltp_sum_range 21.96ms 21.91ms -53us 0.998x PASS
file_reads oltp_order_range 4.12ms 4.12ms +3us 1.001x PASS
file_reads oltp_distinct_range 5.22ms 5.30ms +72us 1.014x PASS
file_reads oltp_index_scan 8.55ms 8.49ms -55us 0.994x PASS
file_reads select_random_points 35.12ms 35.18ms +65us 1.002x PASS
file_reads select_random_ranges 10.66ms 10.67ms +16us 1.002x PASS
file_reads covering_index_scan 6.90ms 6.94ms +42us 1.006x PASS
file_reads groupby_scan 41.40ms 41.44ms +42us 1.001x PASS
file_reads index_join 12.16ms 12.15ms -13us 0.999x PASS
file_reads index_join_scan 6.16ms 6.06ms -103us 0.983x PASS
file_reads types_table_scan 1.27s 1.27s -2.29ms 0.998x PASS
file_reads table_scan 1.39s 1.38s -10.70ms 0.992x PASS
file_reads oltp_read_only 194.36ms 195.82ms +1.46ms 1.008x PASS
file_writes oltp_bulk_insert 347.92ms 351.64ms +3.73ms 1.011x PASS
file_writes oltp_insert 40.78ms 40.82ms +35us 1.001x PASS
file_writes oltp_update_index 134.55ms 135.87ms +1.32ms 1.010x PASS
file_writes oltp_update_non_index 91.65ms 91.94ms +291us 1.003x PASS
file_writes oltp_delete_insert 112.25ms 110.02ms -2.23ms 0.980x PASS
file_writes oltp_write_only 68.35ms 69.59ms +1.24ms 1.018x PASS
file_writes types_delete_insert 59.52ms 57.54ms -1.98ms 0.967x PASS
file_writes oltp_read_write 173.39ms 169.96ms -3.43ms 0.980x PASS
ac_reads oltp_point_select 58.88ms 60.00ms +1.12ms 1.019x PASS
ac_reads oltp_range_select 22.59ms 22.76ms +174us 1.008x PASS
ac_reads oltp_sum_range 21.76ms 21.81ms +44us 1.002x PASS
ac_reads oltp_order_range 4.11ms 4.11ms +0us 1.000x PASS
ac_reads oltp_distinct_range 5.23ms 5.25ms +24us 1.005x PASS
ac_reads oltp_index_scan 8.49ms 8.42ms -66us 0.992x PASS
ac_reads select_random_points 34.23ms 34.05ms -174us 0.995x PASS
ac_reads select_random_ranges 10.55ms 10.53ms -26us 0.998x PASS
ac_reads covering_index_scan 6.95ms 6.93ms -14us 0.998x PASS
ac_reads groupby_scan 41.68ms 41.56ms -113us 0.997x PASS
ac_reads index_join 12.44ms 12.64ms +198us 1.016x PASS
ac_reads index_join_scan 6.08ms 5.97ms -114us 0.981x PASS
ac_reads types_table_scan 1.27s 1.28s +11.53ms 1.009x PASS
ac_reads table_scan 1.42s 1.42s -410us 1.000x PASS
ac_reads oltp_read_only 198.94ms 198.43ms -501us 0.997x PASS
ac_writes oltp_bulk_insert_ac 57.13ms 61.77ms +4.64ms 1.081x PASS
ac_writes oltp_insert_ac 72.20ms 73.16ms +958us 1.013x PASS
ac_writes oltp_update_index_ac 82.72ms 85.33ms +2.61ms 1.032x PASS
ac_writes oltp_update_non_index_ac 69.12ms 65.82ms -3.31ms 0.952x PASS
ac_writes oltp_delete_insert_ac 85.90ms 89.71ms +3.81ms 1.044x PASS
ac_writes oltp_write_only_ac 78.78ms 77.02ms -1.76ms 0.978x PASS
ac_writes types_delete_insert_ac 71.55ms 69.94ms -1.61ms 0.978x PASS
ac_writes oltp_read_write_ac 86.10ms 83.45ms -2.65ms 0.969x PASS
int details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 27.76ms 28.07ms +314us 1.011x PASS
mem_reads oltp_range_select 11.30ms 11.26ms -49us 0.996x PASS
mem_reads oltp_sum_range 11.00ms 11.08ms +83us 1.008x PASS
mem_reads oltp_order_range 2.86ms 2.88ms +27us 1.009x PASS
mem_reads oltp_distinct_range 3.92ms 3.95ms +29us 1.007x PASS
mem_reads oltp_index_scan 4.98ms 5.19ms +212us 1.043x PASS
mem_reads select_random_points 11.32ms 11.23ms -88us 0.992x PASS
mem_reads select_random_ranges 3.95ms 3.99ms +35us 1.009x PASS
mem_reads covering_index_scan 4.34ms 4.32ms -23us 0.995x PASS
mem_reads groupby_scan 34.43ms 34.51ms +73us 1.002x PASS
mem_reads index_join 7.97ms 7.81ms -157us 0.980x PASS
mem_reads index_join_scan 4.65ms 4.64ms -9us 0.998x PASS
mem_reads types_table_scan 1.21s 1.21s +1.89ms 1.002x PASS
mem_reads table_scan 1.34s 1.36s +17.21ms 1.013x PASS
mem_reads oltp_read_only 115.39ms 114.29ms -1.11ms 0.990x PASS
mem_writes oltp_bulk_insert 246.87ms 246.84ms -25us 1.000x PASS
mem_writes oltp_insert 28.24ms 27.68ms -567us 0.980x PASS
mem_writes oltp_update_index 101.50ms 96.89ms -4.61ms 0.955x PASS
mem_writes oltp_update_non_index 55.67ms 55.45ms -219us 0.996x PASS
mem_writes oltp_delete_insert 74.40ms 74.92ms +522us 1.007x PASS
mem_writes oltp_write_only 48.41ms 48.30ms -109us 0.998x PASS
mem_writes types_delete_insert 36.87ms 37.22ms +350us 1.009x PASS
mem_writes oltp_read_write 109.22ms 108.66ms -560us 0.995x PASS
file_reads oltp_point_select 49.50ms 49.45ms -49us 0.999x PASS
file_reads oltp_range_select 13.27ms 13.43ms +160us 1.012x PASS
file_reads oltp_sum_range 12.95ms 13.12ms +163us 1.013x PASS
file_reads oltp_order_range 3.10ms 3.11ms +5us 1.002x PASS
file_reads oltp_distinct_range 4.17ms 4.22ms +48us 1.012x PASS
file_reads oltp_index_scan 7.25ms 7.28ms +35us 1.005x PASS
file_reads select_random_points 13.35ms 13.28ms -74us 0.994x PASS
file_reads select_random_ranges 6.11ms 6.11ms -6us 0.999x PASS
file_reads covering_index_scan 6.67ms 6.77ms +98us 1.015x PASS
file_reads groupby_scan 34.63ms 34.74ms +116us 1.003x PASS
file_reads index_join 9.35ms 9.41ms +60us 1.006x PASS
file_reads index_join_scan 4.92ms 4.91ms -12us 0.998x PASS
file_reads types_table_scan 1.19s 1.20s +2.36ms 1.002x PASS
file_reads table_scan 1.35s 1.34s -5.07ms 0.996x PASS
file_reads oltp_read_only 147.19ms 145.45ms -1.75ms 0.988x PASS
file_writes oltp_bulk_insert 254.98ms 252.78ms -2.21ms 0.991x PASS
file_writes oltp_insert 31.89ms 31.99ms +103us 1.003x PASS
file_writes oltp_update_index 103.85ms 102.53ms -1.32ms 0.987x PASS
file_writes oltp_update_non_index 67.59ms 67.51ms -75us 0.999x PASS
file_writes oltp_delete_insert 82.28ms 83.48ms +1.20ms 1.015x PASS
file_writes oltp_write_only 54.52ms 55.00ms +479us 1.009x PASS
file_writes types_delete_insert 43.25ms 43.25ms +4us 1.000x PASS
file_writes oltp_read_write 116.24ms 116.47ms +237us 1.002x PASS
ac_reads oltp_point_select 49.34ms 49.51ms +170us 1.003x PASS
ac_reads oltp_range_select 13.42ms 13.48ms +63us 1.005x PASS
ac_reads oltp_sum_range 13.04ms 13.25ms +215us 1.016x PASS
ac_reads oltp_order_range 3.10ms 3.13ms +30us 1.010x PASS
ac_reads oltp_distinct_range 4.16ms 4.21ms +44us 1.011x PASS
ac_reads oltp_index_scan 7.33ms 7.27ms -59us 0.992x PASS
ac_reads select_random_points 13.60ms 13.47ms -132us 0.990x PASS
ac_reads select_random_ranges 6.20ms 6.23ms +32us 1.005x PASS
ac_reads covering_index_scan 6.70ms 6.66ms -42us 0.994x PASS
ac_reads groupby_scan 34.83ms 35.05ms +218us 1.006x PASS
ac_reads index_join 9.43ms 9.59ms +164us 1.017x PASS
ac_reads index_join_scan 4.88ms 4.87ms -10us 0.998x PASS
ac_reads types_table_scan 1.20s 1.21s +13.42ms 1.011x PASS
ac_reads table_scan 1.35s 1.35s +2.48ms 1.002x PASS
ac_reads oltp_read_only 146.48ms 148.14ms +1.67ms 1.011x PASS
ac_writes oltp_bulk_insert_ac 62.03ms 59.78ms -2.25ms 0.964x PASS
ac_writes oltp_insert_ac 75.27ms 76.88ms +1.61ms 1.021x PASS
ac_writes oltp_update_index_ac 88.63ms 89.29ms +656us 1.007x PASS
ac_writes oltp_update_non_index_ac 68.45ms 68.03ms -422us 0.994x PASS
ac_writes oltp_delete_insert_ac 81.26ms 81.91ms +649us 1.008x PASS
ac_writes oltp_write_only_ac 79.65ms 79.38ms -270us 0.997x PASS
ac_writes types_delete_insert_ac 68.69ms 70.53ms +1.84ms 1.027x PASS
ac_writes oltp_read_write_ac 85.45ms 84.78ms -670us 0.992x PASS
textpk details
Section Test Baseline Candidate Delta Ratio Result
mem_reads oltp_point_select 32.30ms 32.48ms +186us 1.006x PASS
mem_reads oltp_range_select 12.65ms 12.32ms -331us 0.974x PASS
mem_reads oltp_sum_range 12.50ms 12.52ms +15us 1.001x PASS
mem_reads oltp_order_range 2.86ms 2.87ms +6us 1.002x PASS
mem_reads oltp_distinct_range 4.00ms 3.98ms -23us 0.994x PASS
mem_reads oltp_index_scan 5.24ms 5.18ms -59us 0.989x PASS
mem_reads select_random_points 20.16ms 20.29ms +124us 1.006x PASS
mem_reads select_random_ranges 4.62ms 4.56ms -64us 0.986x PASS
mem_reads covering_index_scan 4.09ms 4.03ms -57us 0.986x PASS
mem_reads groupby_scan 33.15ms 33.19ms +39us 1.001x PASS
mem_reads index_join 8.58ms 8.52ms -58us 0.993x PASS
mem_reads index_join_scan 4.96ms 4.98ms +12us 1.002x PASS
mem_reads types_table_scan 1.17s 1.16s -6.23ms 0.995x PASS
mem_reads table_scan 1.28s 1.27s -4.93ms 0.996x PASS
mem_reads oltp_read_only 126.05ms 125.99ms -62us 1.000x PASS
mem_writes oltp_bulk_insert 307.22ms 303.69ms -3.53ms 0.989x PASS
mem_writes oltp_insert 32.84ms 33.37ms +529us 1.016x PASS
mem_writes oltp_update_index 124.43ms 122.03ms -2.40ms 0.981x PASS
mem_writes oltp_update_non_index 68.31ms 66.75ms -1.56ms 0.977x PASS
mem_writes oltp_delete_insert 91.36ms 90.11ms -1.26ms 0.986x PASS
mem_writes oltp_write_only 50.56ms 50.23ms -331us 0.993x PASS
mem_writes types_delete_insert 45.60ms 45.22ms -382us 0.992x PASS
mem_writes oltp_read_write 125.09ms 122.88ms -2.21ms 0.982x PASS
file_reads oltp_point_select 41.50ms 41.35ms -148us 0.996x PASS
file_reads oltp_range_select 13.70ms 13.32ms -383us 0.972x PASS
file_reads oltp_sum_range 13.73ms 13.66ms -62us 0.995x PASS
file_reads oltp_order_range 3.05ms 3.04ms -12us 0.996x PASS
file_reads oltp_distinct_range 4.14ms 4.27ms +133us 1.032x PASS
file_reads oltp_index_scan 6.38ms 6.39ms +6us 1.001x PASS
file_reads select_random_points 21.83ms 21.85ms +18us 1.001x PASS
file_reads select_random_ranges 5.63ms 5.58ms -44us 0.992x PASS
file_reads covering_index_scan 5.16ms 5.08ms -73us 0.986x PASS
file_reads groupby_scan 33.35ms 33.34ms -11us 1.000x PASS
file_reads index_join 9.39ms 9.32ms -66us 0.993x PASS
file_reads index_join_scan 5.24ms 5.22ms -15us 0.997x PASS
file_reads types_table_scan 1.15s 1.16s +9.07ms 1.008x PASS
file_reads table_scan 1.27s 1.28s +12.05ms 1.010x PASS
file_reads oltp_read_only 139.54ms 140.80ms +1.26ms 1.009x PASS
file_writes oltp_bulk_insert 320.64ms 316.35ms -4.29ms 0.987x PASS
file_writes oltp_insert 39.71ms 39.44ms -279us 0.993x PASS
file_writes oltp_update_index 137.31ms 137.72ms +417us 1.003x PASS
file_writes oltp_update_non_index 79.03ms 79.88ms +853us 1.011x PASS
file_writes oltp_delete_insert 101.42ms 100.39ms -1.03ms 0.990x PASS
file_writes oltp_write_only 60.68ms 60.31ms -365us 0.994x PASS
file_writes types_delete_insert 52.90ms 52.52ms -383us 0.993x PASS
file_writes oltp_read_write 132.06ms 131.78ms -283us 0.998x PASS
ac_reads oltp_point_select 41.44ms 41.38ms -60us 0.999x PASS
ac_reads oltp_range_select 13.61ms 13.58ms -21us 0.998x PASS
ac_reads oltp_sum_range 13.60ms 13.61ms +12us 1.001x PASS
ac_reads oltp_order_range 3.06ms 3.10ms +39us 1.013x PASS
ac_reads oltp_distinct_range 4.24ms 4.21ms -28us 0.993x PASS
ac_reads oltp_index_scan 6.35ms 6.30ms -49us 0.992x PASS
ac_reads select_random_points 21.18ms 21.24ms +57us 1.003x PASS
ac_reads select_random_ranges 5.57ms 5.51ms -59us 0.989x PASS
ac_reads covering_index_scan 5.18ms 4.98ms -202us 0.961x PASS
ac_reads groupby_scan 33.12ms 33.25ms +132us 1.004x PASS
ac_reads index_join 9.46ms 9.32ms -139us 0.985x PASS
ac_reads index_join_scan 5.28ms 5.27ms -15us 0.997x PASS
ac_reads types_table_scan 1.16s 1.17s +5.18ms 1.004x PASS
ac_reads table_scan 1.28s 1.29s +12.51ms 1.010x PASS
ac_reads oltp_read_only 140.07ms 141.40ms +1.33ms 1.009x PASS
ac_writes oltp_bulk_insert_ac 109.94ms 113.52ms +3.58ms 1.033x PASS
ac_writes oltp_insert_ac 125.60ms 125.24ms -366us 0.997x PASS
ac_writes oltp_update_index_ac 129.87ms 149.37ms +19.49ms 1.150x PASS
ac_writes oltp_update_non_index_ac 127.22ms 124.94ms -2.27ms 0.982x PASS
ac_writes oltp_delete_insert_ac 129.09ms 129.84ms +746us 1.006x PASS
ac_writes oltp_write_only_ac 130.73ms 108.48ms -22.25ms 0.830x PASS
ac_writes types_delete_insert_ac 126.32ms 126.34ms +27us 1.000x PASS
ac_writes oltp_read_write_ac 148.74ms 162.94ms +14.20ms 1.095x PASS
vc details
Section Test Baseline Candidate Delta Ratio Result
vc status_clean_many_tables 84.65ms 84.94ms +292us 1.003x PASS
vc status_dirty_many_tables 87.41ms 88.55ms +1.14ms 1.013x PASS
vc diff_regular_working_one_table 81.01ms 79.42ms -1.59ms 0.980x PASS
vc diff_regular_working_many_tables 93.44ms 93.22ms -221us 0.998x PASS
vc diff_stat_working_many_tables 93.91ms 93.19ms -714us 0.992x PASS
vc diff_schema_working_many_tables 94.02ms 93.13ms -894us 0.990x PASS
vc branch_list_many_branches 24.45ms 24.38ms -75us 0.997x PASS
vc branch_create_delete 26.40ms 26.34ms -60us 0.998x PASS
vc checkout_branch_clean 59.04ms 58.27ms -770us 0.987x PASS
vc merge_data_no_conflicts 31.73ms 30.48ms -1.25ms 0.961x PASS
vc merge_schema_no_conflicts 23.02ms 22.78ms -246us 0.989x PASS
vc merge_data_conflicts 34.26ms 33.77ms -487us 0.986x PASS
vc merge_data_conflicts_with_resolve 33.60ms 34.54ms +938us 1.028x PASS

All relative performance gates passed.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

DoltLite source coverage

Metric Covered Total Coverage
Lines 53584 62984 85.08%
Branches 24784 36564 67.78%
Functions 2508 2720 92.21%

Merged 202 pooled raw profiles from the distributed Linux correctness jobs.

Per-file coverage (98 files)
File Lines Branches Functions
src/btree_orig_api.c 87.91% 77.27% 89.53%
src/chunk_file.c 100.00% 100.00% 100.00%
src/chunk_index.c 84.27% 66.78% 100.00%
src/chunk_refs.c 84.99% 69.17% 79.37%
src/chunk_staging.c 93.75% 80.33% 100.00%
src/chunk_store.c 90.81% 74.91% 100.00%
src/chunk_store_commit.c 86.75% 67.23% 100.00%
src/chunk_store_lock.c 88.69% 71.00% 100.00%
src/chunk_store_refs_api.c 91.17% 76.75% 100.00%
src/chunk_wal.c 82.48% 58.70% 87.50%
src/doltlite.c 100.00% 100.00% 100.00%
src/doltlite_add.c 85.95% 69.53% 100.00%
src/doltlite_ancestor.c 89.19% 68.92% 100.00%
src/doltlite_at.c 83.39% 64.20% 100.00%
src/doltlite_blame.c 80.86% 61.14% 96.43%
src/doltlite_branch.c 88.30% 80.66% 100.00%
src/doltlite_branches.c 93.75% 75.93% 93.75%
src/doltlite_checkout.c 77.57% 63.06% 96.43%
src/doltlite_cherry_pick.c 79.00% 59.57% 71.43%
src/doltlite_chunk_walk.c 92.23% 66.22% 100.00%
src/doltlite_clean.c 94.23% 68.10% 100.00%
src/doltlite_cmd.c 81.09% 75.19% 100.00%
src/doltlite_commit.c 94.41% 76.87% 100.00%
src/doltlite_commit_ancestors.c 92.09% 72.83% 92.31%
src/doltlite_commit_cmd.c 78.08% 67.50% 100.00%
src/doltlite_config.c 80.47% 71.74% 100.00%
src/doltlite_conflicts.c 84.27% 62.50% 93.75%
src/doltlite_constraint_violations.c 82.46% 57.54% 91.11%
src/doltlite_core.c 91.34% 70.81% 100.00%
src/doltlite_creds.c 84.09% 53.78% 92.00%
src/doltlite_dbpage.c 93.45% 78.33% 91.67%
src/doltlite_diff.c 88.56% 68.99% 96.55%
src/doltlite_diff_stat.c 94.17% 76.01% 95.65%
src/doltlite_diff_table.c 94.18% 70.74% 97.06%
src/doltlite_docs.c 83.94% 71.43% 94.74%
src/doltlite_gc.c 78.48% 58.10% 96.55%
src/doltlite_hashof.c 79.79% 70.05% 100.00%
src/doltlite_history.c 86.93% 76.40% 100.00%
src/doltlite_http_remote.c 82.22% 57.34% 92.31%
src/doltlite_ignore.c 77.57% 62.25% 82.14%
src/doltlite_log.c 96.81% 73.24% 92.86%
src/doltlite_merge.c 95.93% 70.46% 100.00%
src/doltlite_merge_cmd.c 87.19% 72.12% 100.00%
src/doltlite_merge_constraints.c 86.15% 63.64% 95.00%
src/doltlite_merge_constraints_check.c 86.81% 67.79% 100.00%
src/doltlite_merge_constraints_fk.c 78.00% 56.64% 100.00%
src/doltlite_merge_constraints_notnull.c 80.45% 67.92% 100.00%
src/doltlite_merge_constraints_strict.c 77.35% 63.04% 100.00%
src/doltlite_merge_constraints_unique.c 85.99% 62.82% 100.00%
src/doltlite_merge_pass1.c 92.94% 74.16% 100.00%
src/doltlite_merge_pass2.c 83.59% 67.46% 100.00%
src/doltlite_merge_predetect.c 86.38% 71.15% 95.45%
src/doltlite_merge_rebuild.c 99.15% 78.91% 100.00%
src/doltlite_merge_rows.c 82.93% 64.74% 100.00%
src/doltlite_merge_schema.c 90.95% 71.94% 97.06%
src/doltlite_merge_status.c 91.98% 73.53% 92.31%
src/doltlite_patch.c 94.36% 70.71% 98.15%
src/doltlite_rebase.c 85.42% 59.55% 100.00%
src/doltlite_record.c 78.67% 59.36% 95.24%
src/doltlite_ref.c 95.52% 75.36% 100.00%
src/doltlite_remote.c 85.61% 66.89% 96.00%
src/doltlite_remote_sql.c 66.60% 60.73% 93.55%
src/doltlite_remotesrv.c 75.76% 64.10% 90.77%
src/doltlite_reset.c 87.48% 72.76% 100.00%
src/doltlite_revert.c 80.51% 69.44% 100.00%
src/doltlite_schema_diff.c 94.42% 71.13% 96.97%
src/doltlite_schemas.c 70.86% 48.75% 90.91%
src/doltlite_status.c 91.49% 72.78% 97.56%
src/doltlite_tag.c 86.84% 70.31% 94.12%
src/doltlite_tests.c 84.22% 69.61% 91.11%
src/doltlite_tls.c 85.04% 61.82% 92.31%
src/doltlite_verify_constraints.c 79.15% 66.44% 100.00%
src/doltlite_workspace.c 91.84% 70.27% 100.00%
src/pager_shim.c 58.87% 67.46% 34.29%
src/prolly_btree.c 86.00% 66.45% 90.70%
src/prolly_btree_catalog.c 83.10% 69.11% 97.22%
src/prolly_btree_cursor.c 84.15% 62.09% 96.00%
src/prolly_btree_cursor_count.c 80.05% 56.74% 100.00%
src/prolly_btree_cursor_payload.c 75.69% 54.48% 95.65%
src/prolly_btree_cursor_seek.c 76.68% 66.20% 82.35%
src/prolly_btree_mutation.c 87.89% 68.20% 97.83%
src/prolly_btree_orig.c 93.75% 71.43% 93.15%
src/prolly_btree_state.c 93.51% 66.38% 100.00%
src/prolly_btree_txn.c 81.84% 69.30% 98.08%
src/prolly_cache.c 93.27% 69.12% 100.00%
src/prolly_check.c 60.36% 62.96% 100.00%
src/prolly_chunker.c 94.04% 78.38% 100.00%
src/prolly_cursor.c 89.67% 80.47% 100.00%
src/prolly_diff.c 59.59% 46.05% 71.43%
src/prolly_hash.c 93.33% 80.00% 100.00%
src/prolly_hashset.c 90.48% 80.56% 100.00%
src/prolly_mutate.c 80.78% 69.11% 100.00%
src/prolly_mutmap.c 93.87% 80.34% 100.00%
src/prolly_node.c 88.91% 73.81% 100.00%
src/prolly_three_way_diff.c 95.79% 85.37% 100.00%
src/prolly_three_way_merge.c 81.92% 67.41% 91.67%
src/prolly_xxhash.c 100.00% 100.00% 100.00%
src/sortkey.c 93.16% 81.51% 100.00%

Download HTML and LCOV artifacts from this workflow run.

@timsehn
timsehn merged commit 18c8964 into master Sep 1, 2026
68 checks passed
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.

1 participant