Skip to content

v2.0.26

Choose a tag to compare

@caiq1nyu caiq1nyu released this 03 Aug 03:59
a334b00

Data replication involves inherently complex and diverse workloads. Over the past several releases, we have continued to strengthen the foundation of Ape-DTS across three key areas: observability, through clearer metrics, error reporting, and runtime logs; controllability, through explicit resource configuration and the elimination of black-box behaviors that can unexpectedly amplify resource consumption; and usability, through streamlined configuration and CLI-based tooling. Alongside these foundational improvements, we have focused on making replication for four widely adopted open-source database engines—MySQL, PostgreSQL, MongoDB, and Redis—more stable and reliable across real-world workloads:

What's Changed

Added

General and Platform

  • [471] - add configurable RPS and bandwidth limits for extractors and sinkers, and memory limits for pipeline buffers
  • [460] - add inline CDC consistency checking
  • [490] - add sampled consistency checking for snapshot and CDC workloads
  • [500] - add dts-cli for configuration validation and database connectivity diagnostics
  • [456] - support separate username and password fields when credentials contain URL-sensitive characters
  • [544] - add busy-sinker metrics for worker utilization and scheduling visibility
  • [525] - add profiling and Tokio Console image builds
  • [530] - add runtime tracing for task scheduling and resource usage diagnostics

MySQL

  • [450] - support parallel snapshot extraction using automatically selected or user-defined partition columns
  • [483] - support TLS/SSL connections through configuration or URL parameters; certificate verification is not yet supported

PostgreSQL

  • [450] - support parallel snapshot extraction using integer, floating-point, string, decimal, and other partition column types
  • [475] - support selected user-defined functions and types, including enums, ranges, domains, and composite types, in structure migration
  • [477] - support unchanged TOAST columns in CDC updates
  • [483] - support TLS/SSL connections through configuration or URL parameters; certificate verification is not yet supported

Redis

  • [508] - add Redis Cluster extraction support
  • [511] - add database routing from source databases to target databases
  • [520] - add Redis Cluster support to precheck and dts-cli

MongoDB

  • [515] - support MongoDB 6.0+ Change Stream DDL replication
  • [515] - support structure and CDC replication for sharded collections and shard keys
  • [505] - support all valid MongoDB _id field types
  • [520] - add MongoDB sharded-cluster support to precheck and dts-cli

Changed

General and Platform

  • [553] - separate checker target connections, snapshot and CDC checks, and output settings into dedicated configuration sections
  • [439] - improve checker difference logs, summary logs, and revision SQL output
  • [442] - add consistency rechecking and improve review workflows
  • [488] - replace snapshot multi-task fan-out with a single runtime task and internal scheduling
  • [497] - add configurable snapshot chunk rebalancing based on row count or data size
  • [538] - optimize sinker batch query construction and parameter binding
  • [486] - expand integration and regression testing for supported databases and checker workflows

Redis

  • [519] - automatically detect Redis Cluster mode instead of requiring explicit configuration

Breaking Changes

  • [527] - remove the HTTP client/consumer and unmaintained Foxlake integrations to clarify product scope

Fixed

General and Platform

  • [459] - fix failures when concurrent queues reach capacity
  • [496] - fix a potential deadlock in task monitoring
  • [521] - avoid duplicate pipeline capacity limiters
  • [464] - fix DDL parsing when database or table names contain reserved keywords
  • [509] - release metadata caches after table-level snapshot tasks and fix related routing issues
  • [503] - fix RDB merge behavior when an update changes a unique key
  • [530] - reduce high-frequency Tokio runtime polling and unnecessary wakeups
  • [492] - fix validation failures caused by the default dummy-sinker configuration

MySQL

  • [489] - fix large-packet transfers being restricted by the client's default packet limit
  • [502] - fix compatibility with binary collations such as utf8_bin
  • [469] - fix snapshot compatibility for certain time-related data types

PostgreSQL

  • [473] - fix writes for custom types outside the search path or with duplicate names across schemas
  • [472] - fix structure migration when comments contain single quotes or other special characters
  • [474] - fix unique-index detection in metadata
  • [476] - fix CDC pullback and concurrent merge behavior when primary or unique keys change
  • [478] - fix CDC updates and deletes for tables without primary or unique keys
  • [481] - fix parameter binding when an update condition contains NULL on a table without a primary key
  • [550] - fix missing TRUNCATE events in CDC
  • [467] - fix snapshot handling for "char" and other PostgreSQL data types

Redis

  • [468] - fix PSYNC recovery positions not being restored correctly from logs
  • [522] - fix handling of an empty is_cluster configuration value

MongoDB

  • [547] - defer BSON parsing with RawDocumentBuf to handle invalid UTF-8 data and reduce extraction CPU usage