Library

doltlite v0.11.43

Versionv0.11.43
Stars★ 196
Released2026-08-09

DoltLite - 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


Discovered 2026-08-11 Source GitHub Archive 2026-08 →