doltlite v0.11.43
Permanent link:
cppdashboard.dev/r/2026/08/doltlite-v0-11-43DoltLite - Version Controlled SQLite
Release notes
# DoltLite 0.11.43 Faster SQL, historical queries, and tighter Dolt-compatible semantics. ### SQL performance - Durable autocommit writes are 10–31% faster in sysbench workloads by reusing the graph-lock handle across transactions. - Integer searches compare encoded keys directly; index probes reuse cursor storage. - Range and table scans use a shorter same-leaf path with inline cursor checks and value-span decoding. - Writes reuse exact seek misses instead of repeating mutation-map hashing and lookup. - Large catalogs use indexed schema lookups for faster status and diff operations. ### Historical queries - Diff and history tables are now available for tables reachable only through another branch, tag, or remote-tracking ref. - `dolt_history_<table>(ref)` selects an explicit ref; the no-argument form and its joins remain scoped to the session branch. - Point-in-time and history queries use each historical root's key shape, fixing filtering and rendering across rowid and `WITHOUT ROWID` schemas. ### Version control and remotes - Clone creates `origin/*` tracking refs for every branch. - Working sets no longer push or pull: dirty rows stay local and cloned branches start clean. - Revert excludes unrelated uncommitted changes from its commit. - Rebase continue detects foreign-key, unique, and CHECK violations in every transaction mode. ### Reliability - One-pass updates and deletes no longer skip pending rows or return stale committed values after deferred writes. - Interleaved writes no longer resurrect deleted rows when merged scans resume. - Version-control performance ceilings account for measured fsync latency, reducing false failures on slow runners without relaxing healthy-runner limits. ## Benchmark / int-keys (100K rows, Linux x64) ### File-Backed #### Reads | Test | SQLite (us) | DoltLite (us) | Multiplier | |------|------------:|--------------:|-----------:| | oltp_point_select | 107,068 | 56,039 | 0.52 | | oltp_range_select | 19,237 | 14,076 | 0.73 | | oltp_sum_range | 18,179 | 13,915 | 0.77 | | oltp_order_range | 3,647 | 3,168 | 0.87 | | oltp_distinct_range | 4,731 | 4,200 | 0.89 | | oltp_index_scan | 12,576 | 7,860 | 0.62 | | select_random_points | 18,612 | 13,747 | 0.74 | | select_random_ranges | 11,330 | 6,879 | 0.61 | | covering_index_scan | 12,750 | 7,010 | 0.55 | | groupby_scan | 33,447 | 35,828 | 1.07 | | index_join | 10,216 | 9,388 | 0.92 | | index_join_scan | 4,438 | 4,951 | 1.12 | | types_table_scan | 1,106,425 | 1,249,095 | 1.13 | | table_scan | 1,255,823 | 1,351,358 | 1.08 | | oltp_read_only | 222,711 | 154,078 | 0.69 | | Average | | | 0.82 | #### Writes | Test | SQLite (us) | DoltLite (us) | Multiplier | |------|------------:|--------------:|-----------:| | oltp_bulk_insert | 194,589 | 266,825 | 1.37 | | oltp_insert | 22,230 | 35,623 | 1.60 | | oltp_update_index | 76,479 | 125,502 | 1.64 | | oltp_update_non_index | 55,682 | 79,878 | 1.43 | | oltp_delete_insert | 65,585 | 96,488 | 1.47 | | oltp_write_only | 43,346 | 63,221 | 1.46 | | types_delete_insert | 39,396 | 52,546 | 1.33 | | oltp_read_write | 85,549 | 121,613 | 1.42 | | Average | | | 1.47 | _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