Skip to content

Doltlite 0.11.0

Choose a tag to compare

@timsehn timsehn released this 22 May 21:00
· 5561 commits to master since this release
b6fc152

0.11.0 is a breaking release. Chunk boundary calculation now includes full chunk size. The on-disk refs format moves from v6 to v7 to carry the per-database shared AUTOINCREMENT counter. Repositories created or rewritten under 0.11.0 cannot be opened by earlier doltlite builds.

Features:

  • shared AUTOINCREMENT counter across branches — eliminates sqlite_sequence collisions after merge. Survives DROP TABLE, follows ALTER TABLE RENAME, syncs over push / fetch / clone (#946)
  • stable default branch — persisted default no longer mutated by dolt_checkout / dolt_rebase. New dolt_default_branch() setter; rename/delete of main allowed once it isn't the default (#579)
  • sqlite_stat1 / sqlite_stat4 no longer block merges — conflict rows take ours; post-merge ANALYZE refreshes stats (#990)

Fixes:

  • secondary indexes stay consistent through conflict-resolved merge — previously leaked the rejected side's entries (phantom rows in covering scans, missed UNIQUE violations on WITHOUT ROWID tables)
  • dolt_conflicts_resolve --theirs now updates secondary indexes

Performance:

  • write-path perf work across sysbench scenarios — bulk insert, insert, update-index, update-non-index, write-only, read-write, delete-insert, autocommit variants
  • sysbench benchmarks now use 100,000-row tables for a more realistic size

Benchmark (file-backed INT key, 100K rows, Linux x64)

File-Backed

Reads

Test SQLite (us) Doltlite (us) Multiplier
oltp_point_select 98,465 104,407 1.06
oltp_range_select 18,699 35,423 1.89
oltp_sum_range 18,493 35,905 1.94
oltp_order_range 3,573 6,326 1.77
oltp_distinct_range 4,608 7,301 1.58
oltp_index_scan 12,051 17,965 1.49
select_random_points 23,961 64,574 2.69
select_random_ranges 10,584 15,053 1.42
covering_index_scan 11,513 8,013 0.70
groupby_scan 33,182 51,029 1.54
index_join 10,312 17,930 1.74
index_join_scan 4,416 12,225 2.77
types_table_scan 1,235,340 2,759,556 2.23
table_scan 1,430,246 3,510,789 2.45
oltp_read_only 220,067 296,509 1.35
Average 1.78

Writes

Test SQLite (us) Doltlite (us) Multiplier
oltp_bulk_insert 185,680 264,658 1.43
oltp_insert 23,822 38,198 1.60
oltp_update_index 125,487 225,424 1.80
oltp_update_non_index 78,834 151,365 1.92
oltp_delete_insert 95,792 161,727 1.69
oltp_write_only 56,754 108,435 1.91
types_delete_insert 52,131 89,850 1.72
oltp_read_write 124,511 284,505 2.28
Average 1.79

100000 rows, median of 5 invocations per test, workload-only timing via host monotonic clock when available.