『Thinking in DistSQL』动态管理 `props` 配置

背景 :man_judge:

在启动 Proxy 时相信大家都会注意到 server.yaml 这配置文件中的 props 配置。props 作为 Proxy 的属性配置,用于对 Proxy 部分功能的控制以及调优。相信关注 props 配置的小伙伴都会有这个烦恼,每次修改后需要重启 Proxy。 :thinking:

本期 『Thinking in DistSQL』为大家带来的便是如何通过 DistSQL 对属性配置动态修改和查看。

:triangular_flag_on_post: 语法

RAL 语法 SHOW VAIRABLESET VARIABLE

完整语法如下:

语法作用

  • SHOW VAIRABLE 用于展示 Proxy 中的属性配置参数
  • SET VARIABLE 用于修改 Proxy 中的属性配置参数

:exclamation: 特别说明

  • DistSQL 语法中,参数名称使用下划线分隔,与文件中不同。如 server.yaml 中的 sql-show 参数,在 DistSQL 中为 sql_show
  • 部分属性配置的参数使用 DistSQL 修改后需要重启 Proxy 生效,可参考属性配置进行查看
  • 只允许集群模式下使用,非集群模式下修改任何参数都需要重启后才会生效

实战

准备工作

连接 Proxy :目前 DistSQL 仅支持在 Proxy 上执行因此在执行 DistSQL 之前需要先启动 Proxy 并进行连接

Proxy 启动和连接的过程可以参考 启动步骤

:small_blue_diamond: 查看所有属性配置参数

由于 Proxy 中的属性配置的参数较多,因此提供 SHOW ALL VARIABLES 的方式查询全部参数。执行语句 SHOW ALL VARIABLES 后展示的结果如下

+---------------------------------------+----------------+
| variable_name                         | variable_value |
+---------------------------------------+----------------+
| sql_show                              | false          |
| sql_simple                            | false          |
| kernel_executor_size                  | 0              |
| max_connections_size_per_query        | 1              |
| check_table_metadata_enabled          | false          |
| proxy_frontend_database_protocol_type |                |
| proxy_frontend_flush_threshold        | 128            |
| proxy_opentracing_enabled             | false          |
| proxy_hint_enabled                    | false          |
| show_process_list_enabled             | false          |
| lock_wait_timeout_milliseconds        | 50000          |
| proxy_backend_query_fetch_size        | -1             |
| check_duplicate_table_enabled         | false          |
| proxy_frontend_executor_size          | 0              |
| proxy_backend_executor_suitable       | OLAP           |
| proxy_frontend_max_connections        | 0              |
| sql_federation_enabled                | false          |
| proxy_backend_driver_type             | JDBC           |
| agent_plugins_enabled                 | false          |
| cached_connections                    | 0              |
| transaction_type                      | LOCAL          |
+---------------------------------------+----------------+

其中 agent_plugins_enabledcached_connectionstransaction_type 并非属性配置参数,它们属于 Proxy 内部参数。

:small_blue_diamond: 查看指定属性配置参数

除了通过 SHOW ALL VARIABLES 查看所有参数外,也可通过 SHOW VARIABLE variableName 查看指定参数的值。此处以 SHOW VARIABLE SQL_SHOW为例,执行后结果如下

+---------------+----------------+
| variable_name | variable_value |
+---------------+----------------+
| sql_show      | false          |
+---------------+----------------+
1 row in set (0.21 sec)
:small_blue_diamond: 修改属性配置参数

DistSQL 提供 SET VARIABLE variableName = variabeValue 的语法用于动态管理属性配置的参数。此处以修改 sql_show 为例,执行 SET VARIABLE sql_show = true ,在得到结果 Query OK 后,再次执行SHOW VARIABLE SQL_SHOW 可以发现 variable_value 已经由 false 修改为 true

mysql>SHOW VARIABLE SQL_SHOW;
+---------------+----------------+
| variable_name | variable_value |
+---------------+----------------+
| sql_show      | true           |
+---------------+----------------+
1 row in set (0.21 sec)

至于修改后是否 sql_show 会立即生效,使用的小伙伴可以通过执行业务 SQL 查看是否打印 Actual SQL 进行验证。

以上就是通过 DistSQL 对管理属性配置的过程。 :wave:

1 个赞
京ICP备2021015875号