Skip to content

Releases: block/spirit

v0.10.0-prerelease

06 Nov 18:23
19b2190

Choose a tag to compare

v0.10.0-prerelease Pre-release
Pre-release

This release contains a large number of changes over the previous, and introduces the concept of experimental features to Spirit.

With experimental features:

  • We will try to introduce them in ways where the code is well isolated, and you will always have to opt-in to using them.
  • We will always document why they are still considered experimental.

Highlights

  • Support for --force-kill to kill connections preventing lock acquisition by @kolbe, @morgo in #428 #458 #438 #506 #503
  • Support for atomic multi-table changes by @morgo in #469 #431 #434 #437 #505 #482 #516
  • The --force-inplace option has been removed, as we instead rely on parsing and explicitly allowing known safe inplace operations by @Kiran01bm, @kolbe in #470 #429
  • The --checksum option has been removed and is now always enabled by @morgo in #489
  • When flushing replication changes, Spirit now waits for the copier to advance past that point. This helps reduce potential contention scenarios at the cost of checkpoints sometimes being delayed. We call this optimization keyBelowLowWatermark by @morgo in #490

Additional Changes

  • Improved TLS support by @Kiran01bm #443 #510
  • Improved handling for cases where a table is externally modified, or can't write checkpoint handling by @morgo in #483
  • The sentinel table option is now consistently named _spirit_sentinel #447 by @morgo
  • Refactor alter visibility to the checks sub-system by @Kiran01bm in #484
  • Fix RDS hostname detection to prevent potential subdomain spoofing by @Kiran01bm in #509
  • move checksum retries into checksum package by @morgo in #507
  • make tests parallel by @morgo in #514
  • panic: could not convert datum to uint64 by @tyd in #518
  • Have metadatalocks support multiple locks in one connection by @morgo in #525
  • feat: Add maxRecreateAttempts logic by @tyd in #527
  • Add additional info to ErrNotSupportedStatement error by @kolbe in #528
  • Experimental support for buffered changes based on the DBLog algorithm by @morgo in #460 #453 #452 #459 #473
  • Experimental support for native linting by @kolbe #486 #492 #501 #511 #529 #500
  • Experimental support for a move command by @morgo #467 #496 #515 #523

New Contributors

  • @tyd made their first contribution in #518

Full Changelog: v0.9.0...v0.10.0

v0.9.2

10 Oct 16:17

Choose a tag to compare

This addresses a critical issue where after several retries (handling errors such as deadlocks or lock waits), the replication applier will drop changes that could not be applied.

In many cases, this corruption would have been caught by the checksum, but regardless, all users are encouraged to upgrade immediately.

See issue #472

v0.9.1

18 Sep 17:55

Choose a tag to compare

This addresses a critical issue where updating rows such that the value of a PRIMARY KEY column changed were not tracked correctly, potentially leading to changes being lost in the new table.

In many cases, this corruption would have been caught by the checksum, but regardless, all users are encouraged to upgrade immediately.

See issue #417

v0.9.0

20 Aug 13:38
4c2f04f

Choose a tag to compare

This release includes bug fixes and some refactoring so that the replication client can support multiple subscriptions. This is preparation work for a planned feature (atomic changes across multiple tables).

Multiple replication subscriptions took a few bug fixes to get right, but now that it is looking stable I want to issue a release ahead of new features.

What's Changed

  • Refactor repl to support multiple subscriptions by @morgo in #389
  • remove unnecessary test by @morgo in #398
  • Change NewTableLock to take []tables as input by @morgo in #400
  • fix: Add ServerName to TLSConfig by @kolbe in #402
  • Support add partition. Fix syntax errors for partition statements. by @JashLal in #403
  • Add poison pill protection by @morgo in #407
  • remove query from log by @morgo in #408
  • Fix the type conversion issue when resuming from checkpoint for PK ty… by @prudhvi in #409
  • Bump tidb parser version by @morgo in #410
  • Add logging and increase timeout of BlockWait calls by @morgo in #415
  • use defer for MDL by @morgo in #413
  • Fix repl client getting stuck when encountering errors by @morgo in #416
  • [checks] Reintroduce hasTriggers check as a Preflight check by @brirams in #420
  • update interface types to any - no functional change by @Kiran01bm in #423
  • bump tidb parser version by @kolbe in #424

New Contributors

Full Changelog: v0.8.0...v0.9.0

v0.8.0

09 Apr 13:45
7caf0c7

Choose a tag to compare

New Features

  • The minimum golang version required is now 1.24 by @kolbe
  • We've added support for --statement instead of specifying --table and --alter. For now, both are supported, but we may prefer --statement moving forward by @morgo
  • The inplace alter operations for DROP/TRUNCATE partition are explicitly marked as safe by @JashLal

Enhancements and Fixes

  • minor - update/fix lint command in dev guide by @Kiran01bm in #368
  • dev/test improvement - log test output in json and summarise using tparse by @Kiran01bm in #369
  • certbundle reorg - change to load rds cert bundle from a file by @Kiran01bm in #370
  • enhance the mdl refresh runner to handle connection closures and temporary network issues resiliently by @Kiran01bm in #371
  • Fix converting latin1 to utf8 charset checksum failures by @morgo in #373
  • embed certificate instead of file load by @morgo in #376
  • compose lock name on spirit side - clients acquiring locks can get to know their exact lock name by @Kiran01bm in #374
  • Fix non printable characters in checkpoint by @morgo in #382
  • trim trailing semicolon from alter statement by @kolbe in #385
  • Add test leak detection by @morgo in #390
  • exclude generated columns from checksum by @morgo in #396

New Contributors

Full Changelog: v0.7.0-prerelease...v0.8.0

v0.7.0-prerelease

22 Jan 17:01
f0f02a9

Choose a tag to compare

v0.7.0-prerelease Pre-release
Pre-release

What's Changed

Full Changelog: v0.6.0-prerelease...v0.7.0-prerelease

v0.6.0-prerelease

21 Oct 18:58
c396803

Choose a tag to compare

v0.6.0-prerelease Pre-release
Pre-release

This release contains a number of improvements over previous releases.

What's Changed

New Contributors

Full Changelog: v0.1.0-prerelease...v0.6.0-prerelease

v0.1.0-prerelease

28 May 17:56
a384d90

Choose a tag to compare

v0.1.0-prerelease Pre-release
Pre-release

This is the looking good release.

We have all the expected minimum functionality, and have been running spirit in production for quite some time.

However, everyone's scenario is slightly different. We are not calling this v1.0.0 yet :-)