PolarDB全异步执行功能使用介绍

本文介绍异步执行架构的功能介绍。

前提条件

  • 使用异步鉴权功能需满足以下版本要求:

    • PolarDB MySQL8.0.2版本且修订版本为8.0.2.2.23及以上。

    • PolarDB MySQL8.0.1版本且修订版本为8.0.1.1.42及以上。

  • 使用异步日志功能需满足PolarDB MySQL8.0.2版本且修订版本为8.0.2.2.29及以上。

说明

PolarDB MySQL开启异步执行功能需要阿里云后台支持,如需调整开通可以进入阿里钉群咨询63840000309。

参数说明

参数名

级别

说明

loose_thread_pool_async_auth

Global

是否开启异步鉴权功能。

  • OFF(默认):关闭。

  • ON:开启。

loose_thread_pool_async_switch

Global

控制开启异步任务执行调度。

  • async_basic:开启异步执行,但并不进行异步调度。

  • async_redo_log_flush:写入事务提交刷写Redo log时,执行异步处理,开启后依然保证事务的ACID逻辑。

  • async_row_lock_wait:异步行锁等待。

  • async_binlog_group_commit:异步写入Binlog。

loose_thread_pool_ct_cache_size

Global

异步任务缓存数量,可以提升异步执行性能,但是会占用更多的内存。

取值范围:1-100000。默认值:100。单位为Byte。

异步执行统计信息

新增information_schema.thread_pool_wait_status表,用于统计 SQL 执行过程中的等待情况。该表包含以下字段,各字段含义如下:

列名

说明

ID

异步执行分组ID。

WAIT_AUTH_HS_RESP

正在异步处理鉴权的连接数量。

WAIT_REDO_LOG_FLUSH_ASYNC

正在异步处理日志写盘的连接数量。

WAIT_ROW_LOCK_ASYNC

正在异步处理的行锁等待连接数量。

示例

开启async_redo_log_flush功能后,可能看到如下信息,表示当前正在异步等待日志写盘的连接数。

image