doltlite v0.11.41
Permanent link:
cppdashboard.dev/r/2026/08/doltlite-v0-11-41DoltLite - Version Controlled SQLite
Release notes
# DoltLite 0.11.41 Stronger version-control concurrency, HTTP remotes, and storage validation. ### Version control - Improved schema merges for complex DDL, independent constraint changes, and typed unique keys. - Prevented stale working sets and rebases from overwriting concurrent or unrelated branch state. - Failed or raced merges now restore session state instead of leaving a phantom merge in progress. - Merge amendments preserve every parent. - Fixed staged commits with untracked schemas. - `dolt_blame` supports primary keys up to SQLite's column limit. ### Remotes - HTTP pushes use retryable, acknowledged 32 MiB batches. - Remotesrv safely caches stores and reports structured errors. - Fetched chunks are verified against their requested hashes. - Auth and TLS use SQLite's allocator. ### Reliability - Batch updates preserve canonical prolly-tree shape and deterministic hashes. - Refs decoding rejects missing fields, invalid defaults, trailing data, and unsafe sizes. - Fixed record encoding, deferred-seek errors, pending-edit visibility, mutation ordering, and a failed-commit use-after-free. ### Compatibility and quality - Legacy SQLite databases use the stock engine for `VACUUM` and backup. - Checkpoints target the requested attached database. - Benchmarks use repeated median sampling. - Fuzzing and concurrency harnesses distinguish engine failures from harness errors. ## Benchmark / int-keys (100K rows, Linux x64) ### File-Backed #### Reads | Test | SQLite (us) | DoltLite (us) | Multiplier | |------|------------:|--------------:|-----------:| | oltp_point_select | 50,749 | 36,031 | 0.71 | | oltp_range_select | 12,423 | 12,273 | 0.99 | | oltp_sum_range | 12,281 | 12,036 | 0.98 | | oltp_order_range | 2,766 | 2,789 | 1.01 | | oltp_distinct_range | 3,514 | 3,649 | 1.04 | | oltp_index_scan | 6,728 | 6,216 | 0.92 | | select_random_points | 13,554 | 11,985 | 0.88 | | select_random_ranges | 5,683 | 4,597 | 0.81 | | covering_index_scan | 6,943 | 5,201 | 0.75 | | groupby_scan | 28,495 | 29,900 | 1.05 | | index_join | 7,199 | 8,840 | 1.23 | | index_join_scan | 3,302 | 4,516 | 1.37 | | types_table_scan | 988,277 | 1,158,959 | 1.17 | | table_scan | 1,154,616 | 1,275,914 | 1.11 | | oltp_read_only | 139,367 | 126,877 | 0.91 | | Average | | | 0.99 | #### Writes | Test | SQLite (us) | DoltLite (us) | Multiplier | |------|------------:|--------------:|-----------:| | oltp_bulk_insert | 167,361 | 234,046 | 1.40 | | oltp_insert | 17,740 | 28,945 | 1.63 | | oltp_update_index | 63,420 | 114,861 | 1.81 | | oltp_update_non_index | 43,474 | 66,172 | 1.52 | | oltp_delete_insert | 51,997 | 84,675 | 1.63 | | oltp_write_only | 31,828 | 50,970 | 1.60 | | types_delete_insert | 32,483 | 44,055 | 1.36 | | oltp_read_write | 78,532 | 112,096 | 1.43 | | Average | | | 1.55 | _100000 rows, median of 5 paired invocations per test; autocommit writes use 9, workload-only timing via host monotonic clock when available._
Share this resource