v2.7.3
NEW FEATURES
- add
general.max_broken_part_ratio(envMAX_BROKEN_PART_RATIO, default0) — when >0,create/create_remoteskips broken data parts instead of aborting the whole backup as long as the broken/total part ratio stays at or below the configured fraction; skipped parts are logged as warnings and the backup is marked successful but partial;0preserves the legacy any-broken-part-fails behavior, fix #1418 - add
clickhouse.rebind_replica_path_if_exists(envCLICKHOUSE_REBIND_REPLICA_PATH_IF_EXISTS, CLI--rebind-replica-path-if-exists, also accepted by the REST APIPOST /backup/restoreendpoint) — opt-in rebind of the replicated table ZK path todefault_replica_pathduringrestorewhen the resolved path already has leftover children but no local table uses it (async-stale state after DROP); MUST stayfalseduring a concurrent multi-replica restore to avoid split-brain, fix #849 - add
gcs.disable_http2(envGCS_DISABLE_HTTP2) — force HTTP/1.1 for the GCS client to avoid single-TCP-connection HTTP/2 multiplexing becoming the bottleneck for high-throughput parallel downloads, fix #1437
IMPROVEMENTS
- switch the S3 client retry mode from
aws.RetryModeStandardtoaws.RetryModeAdaptive, so upload/download retries back off with a client-side rate limiter under throttling (SlowDown/503) instead of a fixed token bucket - support tables with
ENGINE=Aliasduringrestore— strip the explicit column list (Alias inherits columns from the target table) and addallow_experimental_alias_table_engine=1for ClickHouse 25.11+, fix #1426 - skip tables from databases with engine
DataLakeCatalog(read-only external catalogs) during backup, in addition toMySQL/PostgreSQL/MaterializedPostgreSQL, fix #1417 - speed up
createon servers with many tables: batch the in-progresssystem.mutationslookup instead of issuing one query per table (O(N^2) -> O(N)), fix #1431 - speed up
restore/downloadtable list resolution: eliminate the O(N^2) linear duplicate scan ingetTableListByPatternLocal/getTableListByPatternRemotevia a shared O(1) dedup keyed onmetadata.TableTitle, fix #1430 - extend TestFlows FIPS 140-3 test coverage: dedicated test steps, stronger
--fips-info/version-output and TLS-handshake assertions, updated requirements documentation, fix #1443
BUG FIXES
- restore the default
general.compression_use_multi_threadtotrue: #1378 defaulted it tofalse, which silently dropped gzip/zstd compression from multi-threaded (pre-1378 gzip always usedpgzip) to single-threaded and caused ~30% slower upload throughput for backups dominated by one large table (whereupload_concurrencyprovides no per-stream parallelism); the option is now silently ignored instead of failing config validation for formats other than gzip/zstd - fix v2.7.1 regression where
restore --schemaon a second replica rebound the ZK replica path even while the first replica was active and healthy — a foreign/renamed local table occupying the resolved ZK path is still detected automatically viasystem.replicasand rebound todefault_replica_path, but a non-empty ZK path without a local table now defaults to the HA-safe join and requires the new opt-inrebind_replica_path_if_exists, fix #1428 - fix inconsistent
--rbacbehavior:restore --rbacno longer returns an error when the backup contains no RBACaccessdirectory, matching thedownload --rbacbehavior, fix #1432 - inject
ON CLUSTERforLIVE VIEWandWINDOW VIEWrestored with explicit column lists whenrestore_schema_on_clusteris set —enrichQueryWithOnClustermissed these statements and the views were created only on the local replica, fix #1433 - mask sensitive values (passwords, storage credentials, encryption keys) when logging
--envconfig overrides, and in the API server action logs and/backup/statusoutput, fix #1441