gh-ost v1.1.11 includes MariaDB support, StatsD metrics, improved binlog processing, and several reliability and release/build improvements.
Thanks to all the contributors! 🙇♂️
What's Changed
New Features
- MariaDB and MariaDB GTID support (#1724, #1731) by @conf: Adds automatic server-flavor detection, MariaDB-specific replication behavior and privileges, and MariaDB GTID migrations. CI covers MariaDB 10.5, 10.6, 10.11, 11.4, and 11.8.
- StatsD/DogStatsD metrics (#1701) by @forge33: Adds opt-in telemetry for copy progress, applied DML, binlog backlog, replication and heartbeat lag, throttling, cut-over attempts and phases, query latency, sleep time, and Go runtime health. Global metric tags are supported.
- Pre-cutover table analysis (#1747) by @VandhanaSelvaprakash-at: Adds the
--analyze-ghost-table-before-cutoverflag, which runsANALYZE TABLEbefore swapping tables to help prevent stale optimizer statistics. The feature is opt-in and aborts cut-over if analysis fails.
Bug Fixes and Improvements
- Data-race fixes (#1750) by @ericyan: Synchronizes concurrent migration state more consistently and enables Go's race detector in CI to catch regressions.
- More efficient binlog processing (#1699) by @coding-chimp: Skips decoding row payloads for tables unrelated to the migration, reducing CPU and allocation overhead on servers with busy binlogs.
- More portable release binaries (#1697) by @meiji163: Disables CGO by default for release builds, reducing runtime dependencies and platform compatibility problems.
- Multi-flavor replica-test harness (#1722) by @conf: Expands automated integration testing across MySQL, Percona Server, and MariaDB versions.
- Improved release packaging and workflow (#1729 and #1753) by @conf and @ericyan: Standardizes archive and package names and a GitHub workflow to build and attest the release artifacts.
Maintenance and Documentation
- Core dependency updates (#1715) by @ericyan: Upgrades
go-mysqlto v1.15.0. - Test and security dependency updates (#1741) by @ericyan: Upgrades Testcontainers to v0.43 and
x/cryptoto v0.54. - OpenTelemetry dependency updates (#1740) by @dependabot[bot]: Upgrades
go.opentelemetry.io/otel/sdkfrom v1.21.0 to v1.43.0. - Go toolchain update (#1742) by @ericyan: Upgrades the project to Go 1.25.12.
- Test build cleanup (#1739) by @davidham: Restricts Testcontainers helpers to test builds.
- GitHub Actions updates (#1576, #1589, #1598) by @dependabot[bot]: Upgrades
actions/checkout,github/codeql-action, andactions/upload-artifact. - Command-line flag documentation (#1706) by @grodowski: Documents previously missing command-line flags.
- Throttle replica documentation (#1745) by @soepic1: Clarifies replica-selection requirements for
--throttle-control-replicas. - Documentation spelling corrections (#1749) by @vladdoster: Corrects spelling errors in the documentation.
New Contributors
- @conf made their first contribution in #1722
- @davidham made their first contribution in #1739
- @soepic1 made their first contribution in #1745
- @VandhanaSelvaprakash-at made their first contribution in #1747
- @vladdoster made their first contribution in #1749
Full Changelog: v1.1.10...v1.1.11