tencent cloud

TDSQL Boundless

Binlog Subscription

Download
Mode fokus
Ukuran font
Terakhir diperbarui: 2026-08-10 10:11:50
Diterjemahkan oleh AI
TDSQL Boundless supports real-time data synchronization to target databases or third-party platforms by subscribing to MySQL-compatible Binlog events. It is suitable for scenarios such as multi-active across cloud and on-premises environments, cross-region disaster recovery, cross-border synchronization, and real-time data warehousing. The Binlog subscription feature has been stably running in multiple Tencent core businesses for over a year, covering scenarios including e-commerce marketing, big data scheduling, content moderation, and ad delivery. TDSQL Boundless generates Binlog in a format consistent with MySQL to ensure compatibility with the MySQL community's Binlog subscription ecosystem, such as Canal, Flink, and Kafka (which can be delivered via DTS). The Binlog is produced by converting asynchronous log streams generated through the Raft consensus protocol. This design enables Binlog with minimal overhead on write operations.

Performance Stress Test

Sysbench benchmark test

Test Item
Test Value
Total Data Volume
10 million × 10 tables
Testing Model
sysbench update non index
Binlog subscription node throughput
10.5w QPS
Resource Specification
32C 64G
CPU usage
4C
Memory usage
8.4GB

72-hour stability test

Test Item
Test Configuration
Instance Specifications
3MC (4C8G) + 15HyperNode (16C32G) + 1Binlog subscription node (48C96G)
Client pressure
15 tables, 15 concurrency, totaling 50,000 QPS insert
Duration
72 hours
Synchronization delay
stably maintained within 10s

Wide-table scenario optimization

In a wide-table scenario (with an average row size of 1.5KB), the client-side pressure is 50k QPS, and the replay latency is maintained within 10 seconds.
Table structure as follows:
CREATE TABLE `sbtest1` (
`id` bigint NOT NULL,
`uid` bigint NOT NULL,
`phase` int NOT NULL,
`status` int NOT NULL,
`detail` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`createdTime` datetime NOT NULL,
`lastModTime` datetime NOT NULL,
`business` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`materialId` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`materialType` int NOT NULL,
`reviewDataId` bigint NOT NULL,
`deleteStatus` int NOT NULL,
`traceId` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`reviewDataLogDetail` mediumblob,
`physicalFinger` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`originalFinger` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`originalResourceId` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`parentTraceId` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`grandParentId` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`parentId` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_materialId` (`materialId`),
KEY `idx_uid` (`uid`),
KEY `idx_reviewDataId` (`reviewDataId`),
KEY `idx_createdTime` (`createdTime`),
KEY `idx_phase` (`phase`),
KEY `idx_status` (`status`),
KEY `idx_parentId` (`parentId`)
) ENGINE=ROCKSDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8

Large transaction scenario optimization

In scenarios involving batch processing or regularly handling large transactions, it is recommended to appropriately adjust the following parameters to enhance performance.
-- Enhance large transaction processing capability
wait_flush_binlog_cache_max_size = 100MB

-- Optimize memory usage
tdstore_block_cache_size = 300MB

Feature Limits

When you use Binlog to subscribe to TDSQL Boundless data changes, please note the following restrictions and currently unsupported scenarios.
Note:
Enabling or disabling Binlog is performed smoothly, requiring no instance restart and causing no impact on business read/write operations. The process is typically completed within 1 to 2 minutes.
Enabling or disabling Binlog is supported only for Provisioned resource instances, not for Serverless instances.
The Binlog feature is officially supported starting from kernel version V21.2.0. After Binlog is enabled, DDL operations on FUNCTIONs, PROCEDUREs, and TRIGGERs are not currently recorded to Binlog. If changes are made to these objects, you must manually synchronize them to downstream through other means. The feature limitations for historical kernel versions are as follows:
Kernel version earlier than V21.0.0: DDL operations on VIEWs are not recorded to Binlog.
Kernel version earlier than V20.0.0: After Binlog is enabled, the CREATE TABLE ... AS SELECT ... syntax is automatically disabled. To restore it, contact technical support to disable the synchronization feature and restart the instance.
HBase compatibility mode is not supported; only MySQL compatibility mode is supported.
Enabling Binlog is not currently supported for instances with cold data archiving enabled. Furthermore, the Binlog service and cold data archiving are mutually exclusive, and only one of them can be enabled.
Enabling Binlog is not currently supported for instances with database table recycle bin enabled. Furthermore, the Binlog service and the table recycle bin are mutually exclusive, and only one of them can be enabled.
Standalone download of Binlog files is not currently supported. You can subscribe to logs via the MySQL Binlog Dump protocol or CKafka. For details, refer to Real-time Data Capture from TDSQL Boundless via DTS.
Binlog logs are retained for 7 days by default. Binlog logs that exceed the retention period are automatically cleaned up and cannot be recovered.
Enabling or disabling Binlog is supported only for instances that are running.

Billing Mode

Detailed billing information please see Billing Overview.

Operation Instructions

To enable or disable the Binlog subscription feature for a TDSQL Boundless instance, refer to Managing Binlog.

Bantuan dan Dukungan

Apakah halaman ini membantu?

masukan