-
Apache ShardingSphere 高可用功能详解 & 实操演练 赵锦超 2022.08.06 01 赵锦超 Apache ShardingSphere Committer SphereEx 研发工程师 o 从事过电商、金融行业,热爱开源 o 目前专注于 Apache ShardingSphere 高可用 & 分布式治理的相关研发工作 02 Apache ShardingSphere
0 码力 |
19 页 |
2.12 MB
| 1 年前 3
-
split.byte- threshold 对 Re- gion 执行 load- base- split 的阈 值。 如果 连续 一段 时间 内, 某个 Re- gion 的读 请求 的流 量超 过 byte- threshold, 则切 分该 Re- gion 236 配置 项 简介 split.split- balance- score load- base- split 99% 时报警。 • 处理方法: 可能 TiKV 和 Proxy 的通信出现问题,联系 TiFlash 开发人员确认。 8 故障诊断 8.1 慢查询日志 TiDB 会 将 执 行 时 间 超 过slow-threshold(默 认 值 为 300 毫 秒) 的 语 句 输 出 到slow-query-file(默 认 值:“tidb- slow.log”)日志文件中,用于帮助用户定位慢查询语句,分析和解决 [types:1292]invalid time format: '{1970 1 1 0 45 0 0}' – 原因:一个 timestamp 类型的时间戳记录了不存在的时间值。时间值不存在是由于夏令时切换或超 出支持的范围(1970 年 1 月 1 日至 2038 年 1 月 19 日)。 – 解决办法:参考官网步骤处理。 8.7.7 7. 常见日志分析 8.7.7.1 7.1 TiDB • 7.1
0 码力 |
2259 页 |
48.16 MB
| 1 年前 3
-
split.byte- threshold 对 Re- gion 执行 load- base- split 的阈 值。 如果 连续 一段 时间 内, 某个 Re- gion 的读 请求 的流 量超 过 byte- threshold, 则切 分该 Re- gion 228 配置 项 简介 split.split- balance- score load- base- split 时报警。 • 处理方法: 可能 TiKV 和 Proxy 的通信出现问题,联系 TiFlash 开发人员确认。 269 8 故障诊断 8.1 慢查询日志 TiDB 会 将 执 行 时 间 超 过slow-threshold(默 认 值 为 300 毫 秒) 的 语 句 输 出 到slow-query-file(默 认 值:“tidb- slow.log”)日志文件中,用于帮助用户定位慢查询语句,分析和解决 [types:1292]invalid time format: '{1970 1 1 0 45 0 0}' – 原因:一个 timestamp 类型的时间戳记录了不存在的时间值。时间值不存在是由于夏令时切换或超 出支持的范围(1970 年 1 月 1 日至 2038 年 1 月 19 日)。 – 解决办法:参考官网步骤处理。 8.7.7 7. 常见日志分析 8.7.7.1 7.1 TiDB • 7.1
0 码力 |
2189 页 |
47.96 MB
| 1 年前 3
-
StoreWriter 线程 池的大小。 TiKV raftstore. �→ raft-write �→ -size- �→ limit 新增 触发 Raft 数据 写入的阈值。 当数据大小超 过该配置项值, 数据会被写入 磁盘。当 raftstore. �→ store-io- �→ pool-size 的值为 0 时, 该配置项不生 效。 TiKV raftstore. �→ raft-msg- 部分列统计信息的方案,提高宽表收集统计信息的速度 • TiKV – 增强磁盘空间防护能力,提升存储稳定性。 针对 TiKV 遇到磁盘写满错误时可能 Panic 的问题,为磁盘剩余空间引入两级阈值防御机制,避免超 额流量耗尽磁盘空间。同时,提供阈值触发时的空间回收能力。当剩余空间触发阈值时,部分写 操作会失败,并返回 disk full 错误和盘满节点列表。此时,可以通过 Drop/Truncate Table split.byte- threshold 对 Re- gion 执行 load- base- split 的阈 值。 如果 连续 一段 时间 内, 某个 Re- gion 的读 请求 的流 量超 过 byte- threshold, 则切 分该 Re- gion 247 配置 项 简介 split.split- balance- score load- base- split
0 码力 |
2374 页 |
49.52 MB
| 1 年前 3
-
优化点查的索引选择,在所有的索引都支持点查时选择其中性能最优的一个用于查询 #50184 @elsa0520 – 将统计信息同步加载任务的优先级暂时调整为 High,避免在 TiKV 高负载时同步加载任务大面积超 时,从而导致统计信息无法加载 #50332 @winoros – 在 PREPARE 语 句 无法 命 中 执行 计 划 缓 存时, 支 持 通过 执 行 SHOW WARNINGS 查看 原 因 (下面参数配置章节有详细介绍)。 4.4.4.2.4 使用 StreamingResult 流式获取执行结果 一般情况下,为提升执行效率,JDBC 会默认提前获取查询结果并将其保存在客户端内存中。但在查询返回超 大结果集的场景中,客户端会希望数据库服务器减少向客户端一次返回的记录数,等客户端在有限内存处理 完一部分后再去向服务器要下一批。 在 JDBC 中通常有以下两种处理方式: • 设置 FetchSize 数据库中的表实现一个购书的例子来演示乐观事务和悲观事务的区别以及优缺点。购书流程 主要包括: 1. 更新库存数量 2. 创建订单 3. 付款 355 这三个操作需要保证全部成功或者全部失败,并且在并发情况下要保证不超卖。 4.8.2.1 悲观事务 下面代码以悲观事务的方式,用两个线程模拟了两个用户并发买同一本书的过程,书店剩余 10 本,Bob 购买 了 6 本,Alice 购买了 4 本。两个人几乎同一时间完成订单,最终,这本书的剩余库存为零。
0 码力 |
4805 页 |
101.28 MB
| 1 年前 3
-
当前 正处于 开发阶 段,不 推荐修 改该变 量值。 tidb_idle �→ _ �→ transaction �→ _ �→ timeout �→ 新增 用来控 制用户 会话中 事务的 空闲超 时。当 用户会 话处于 事务状 态且空 闲时间 超过该 变量设 定的值 时,会 话会被 Kill 掉。 默认值 0 表示没 有时间 限制。 42 变量名 修改类型 描述 tidb_opt_ �→ (下面参数配置章节有详细介绍)。 4.4.4.2.4 使用 StreamingResult 流式获取执行结果 一般情况下,为提升执行效率,JDBC 会默认提前获取查询结果并将其保存在客户端内存中。但在查询返回超 大结果集的场景中,客户端会希望数据库服务器减少向客户端一次返回的记录数,等客户端在有限内存处理 完一部分后再去向服务器要下一批。 在 JDBC 中通常有以下两种处理方式: • 设置 FetchSize 数据库中的表实现一个购书的例子来演示乐观事务和悲观事务的区别以及优缺点。购书流程 主要包括: 1. 更新库存数量 2. 创建订单 3. 付款 351 这三个操作需要保证全部成功或者全部失败,并且在并发情况下要保证不超卖。 4.8.2.1 悲观事务 下面代码以悲观事务的方式,用两个线程模拟了两个用户并发买同一本书的过程,书店剩余 10 本,Bob 购买 了 6 本,Alice 购买了 4 本。两个人几乎同一时间完成订单,最终,这本书的剩余库存为零。
0 码力 |
4666 页 |
101.24 MB
| 1 年前 3
-
(下面参数配置章节有详细介绍)。 4.4.4.2.4 使用 StreamingResult 流式获取执行结果 一般情况下,为提升执行效率,JDBC 会默认提前获取查询结果并将其保存在客户端内存中。但在查询返回超 大结果集的场景中,客户端会希望数据库服务器减少向客户端一次返回的记录数,等客户端在有限内存处理 完一部分后再去向服务器要下一批。 在 JDBC 中通常有以下两种处理方式: • 设置 FetchSize 数据库中的表实现一个购书的例子来演示乐观事务和悲观事务的区别以及优缺点。购书流程 主要包括: 1. 更新库存数量 2. 创建订单 3. 付款 340 这三个操作需要保证全部成功或者全部失败,并且在并发情况下要保证不超卖。 4.8.2.1 悲观事务 下面代码以悲观事务的方式,用两个线程模拟了两个用户并发买同一本书的过程,书店剩余 10 本,Bob 购买 了 6 本,Alice 购买了 4 本。两个人几乎同一时间完成订单,最终,这本书的剩余库存为零。 bob_thread.join(timeout=10) alice_thread.join(timeout=10) Python 的例子中,已经包含乐观事务。 4.8.2.1.2 2. 运行不涉及超卖的例子 运行示例程序: 在 Java 中运行示例程序: mvn clean package java -jar target/plain-java-txn-0.0.1-jar-with-dependencies
0 码力 |
4807 页 |
101.31 MB
| 1 年前 3
-
(下面参数配置章节有详细介绍)。 4.4.4.2.4 使用 StreamingResult 流式获取执行结果 一般情况下,为提升执行效率,JDBC 会默认提前获取查询结果并将其保存在客户端内存中。但在查询返回超 大结果集的场景中,客户端会希望数据库服务器减少向客户端一次返回的记录数,等客户端在有限内存处理 完一部分后再去向服务器要下一批。 在 JDBC 中通常有以下两种处理方式: • 设置 FetchSize 数据库中的表实现一个购书的例子来演示乐观事务和悲观事务的区别以及优缺点。购书流程 主要包括: 1. 更新库存数量 2. 创建订单 3. 付款 341 这三个操作需要保证全部成功或者全部失败,并且在并发情况下要保证不超卖。 4.8.2.1 悲观事务 下面代码以悲观事务的方式,用两个线程模拟了两个用户并发买同一本书的过程,书店剩余 10 本,Bob 购买 了 6 本,Alice 购买了 4 本。两个人几乎同一时间完成订单,最终,这本书的剩余库存为零。 bob_thread.join(timeout=10) alice_thread.join(timeout=10) Python 的例子中,已经包含乐观事务。 4.8.2.1.2 2. 运行不涉及超卖的例子 运行示例程序: 在 Java 中运行示例程序: mvn clean package java -jar target/plain-java-txn-0.0.1-jar-with-dependencies
0 码力 |
4590 页 |
100.91 MB
| 1 年前 3
-
持兼容;如果 同时设置了原 参数和新参数, 则会使用新参 数。详情参 见TiKV 配置文 件 - log。 TiKV log-rotation- �→ timespan 删除 轮换日志的时 间跨度。当超 过该时间跨度, 日志文件会被 轮换,即在当 前日志文件的 文件名后附加 一个时间戳, 并创建一个新 文件。 TiKV allow-remove- �→ leader 删除 决定是否允许 删除主开关。 split.byte- threshold 对 Re- gion 执行 load- base- split 的阈 值。 如果 连续 一段 时间 内, 某个 Re- gion 的读 请求 的流 量超 过 byte- threshold, 则切 分该 Re- gion 312 配置 项 简介 split.split- balance- score load- base- split listen_host 字段的内容会添加到 Alertmanager 启动参数的 ‘–web.listen-address’ 中。 360 8 故障诊断 8.1 慢查询日志 TiDB 会 将 执 行 时 间 超 过slow-threshold(默 认 值 为 300 毫 秒) 的 语 句 输 出 到slow-query-file(默 认 值:“tidb- slow.log”)日志文件中,用于帮助用户定位慢查询语句,分析和解决
0 码力 |
2852 页 |
52.59 MB
| 1 年前 3
-