tencent cloud

文档反馈

Nonblocking DDL

最后更新时间:2024-10-09 10:31:30

    功能介绍

    当一条 DML 语句执行时,如果持有 metadata lock,就会阻塞对应表的 DDL,导致 DDL 被阻塞后,后续的所有 DML 语句都会被阻塞,这可能会消耗大量的线程资源。为了避免这种情况,TDSQL-C MySQL 版引入了 Nonblocking DDL 机制,保护系统不会被等待 MDL 锁的 DDL 操作卡住。当 DDL 操作被 DML 操作阻塞时,后续的 DML 不会被等待的 MDL 锁进一步阻塞。

    支持版本

    内核版本 TXSQL 8.0 3.1.15及以上。

    适用场景

    适用于避免 DML 语句执行时,由于持有 metadata lock,导致阻塞对应表的 DDL 以及后续的所有 DML 语句的场景。

    使用说明

    参数名
    动态
    类型
    默认
    参数值范围
    说明
    txsql_nonblock_ddl
    yes
    bool
    false
    true/false
    是否开启 Nonblocking DDL 功能。
    txsql_nonblock_ddl_retry_times
    yes
    ulong
    1
    0-ulong_max
    DDL 操作被 MDL 锁阻塞后的重试次数,默认值为1。
    txsql_nonblock_ddl_retry_interval
    yes
    ulong
    2
    0-ulong_max
    DDL 操作被 MDL 锁阻塞后的重试间隔,默认值为2s。
    注意:
    部分非常见 DDL 操作可能覆盖不到,这些场景下,如果 DDL 遇到 DML 阻塞,会直接返回 Lock wait timeout。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持