github dolthub/dolt v0.21.1
0.21.1

latest releases: v1.35.12, v1.35.11, v1.35.10...
3 years ago

We are excited to announce the release of Dolt 0.21.1, a patch release with functionality and performance improvements.

Benchmarks

A significant new aspect of the Dolt release process will be providing SQL benchmarks. You can read a blog about our approach to benchmarking using sysbench here, and you can find the benchmarking tools here. By way of example the benchmarks for this release were created with the following command:

./run_benchmarks.sh bulk_insert oscarbatori v0.21.0 v0.22.1

This produced the following result, which we host on DoltHub:
Screen Shot 2020-10-27 at 6 49 59 AM

Merged PRs

  • 957: go/store/{datas,util/tempfiles}: Fix some races in map writes. One effects clones, one effects only tests.
  • 953: create auto_increment tables with out-of-line PR defs
  • 952: go/libraries/doltcore/sqle: Add support for UPDATE and DELETE using table indexes.
  • 949: auto increment
  • 947: don't drop column values on column drop
  • 946: go/cmd/dolt: commands/sql: Small improvement to only call rowIter.Close() once on sql results iterators.
  • 945: Use docker-compose for orchestrating benchmarking
  • 944: go/store/types: value_store: Optimize GC to work in parallel and use less memory.
  • 942: feature gating
  • 941: Upgraded to latest go-mysql-server and re-enabled query plan tests
  • 939: Added new indexes overwriting auto-generated indexes
  • 938: go/store/{nbs,chunks}: Convert some core methods to provide results in callbacks. Convert some functions to use errgroup.
  • 937: Update README.md with the latest dolt commands
  • 934: Add go routine to clone
    I parallelized the table file writing process by using go routines. Specifically, I made use of the "golang.org/x/sync/errgroup" package which allows for convenient error management across a waitgroup.
    A couple of benchmarks I tested this on were
    1. Dolt-benchmarks-test: No difference in speed really
    2. Coronavirus: Original ~30sec. Current 15sec
    3. Tatoeba Sentence Translation: Original: ~17mins Current: 10mins
  • 933: /go/libraries/doltcore/diff: Ignore NULLs in cell-wise diff
    fix for #899
    The from root in this repo has NULL values written to the map which causes erroneous diffs.
    https://www.dolthub.com/repositories/dolthub/us-supreme-court-cases/compare/master/hb502v6tf3uj43ijfhot6dopmgdm1muk
  • 932: /go/cmd/dolt/commands: Help Text Fix
  • 216: Updated sql.MergeableIndexLookup interface
  • 215: memory: *_index.go: Construct sql equality evaluations with accurate types in the literals.
  • 214: auto increment
  • 213: triggers bugfix
    Fixed bug in insert triggers, which couldn't handle out-of-order column insertions.
    Fixes #950
  • 212: sql/analyzer: pushdown.go: Allow pushdown on Update, RowUpdateAccumulator and DeleteFrom plan nodes.
  • 211: join bugs
  • 210: sql/plan: {update,insert,update,process}.go: Fix some potential issues with context lifecycle and reuse.
    • insert, update, delete: Only call underlying table editors with our captured
      context once when we are Close(). Return a nil error after that.
    • process: Change to only call onDone when the rowTrackingIter is Closed.
    • process: Change to call childIter.Close() before onDone is called. Child
      iterators have a right to Close() before the context in which they are
      running is canceled.
  • 208: Create UNIQUE index if present in column definition
  • 207: Pushdown and plan decoration
    Two major changes:
    1. Changes to pushdown operation, to push table predicates below join nodes and to fix many bugs and deficiencies. Also large refactoring.
    2. Added DecoratedNodes to query plans to illustrate when indexes are being used to access tables outside the context of a join

Don't miss a new dolt release

NewReleases is sending notifications on new releases.