PingKai Logo下载

Follower Read

本文介绍如何使用 Follower Read 来优化查询性能。

介绍

TiDB 使用 Region 作为基础单元,将数据分布到集群中的所有节点。一个 Region 可以有多个副本,副本分为 leader 和多个 followers。当 leader 上的数据发生变化时,TiDB 会同步更新到 followers。

默认情况下,TiDB 只在同一 Region 的 leader 上进行读写操作。当某个 Region 出现读热点时,Region 的 leader 可能成为整个系统的读瓶颈。在这种情况下,启用 Follower Read 功能可以显著减轻 leader 的负载,并通过在多个 followers 之间平衡负载,提高整个系统的吞吐量。

何时使用

减少读热点

你可以在 平凯数据库云服务 Key Visualizer Page 上直观分析你的应用是否存在热点 Region。通过选择“指标选择框”到 Read (bytes) 或 Read (keys),可以检查是否发生了读热点。

关于热点问题的处理方法,详见 TiDB Hotspot Problem Handling。

如果读热点无法避免或变化成本很高,你可以尝试使用 Follower Read 功能,更好地将读取请求的负载分散到 follower Region。

降低地理分布部署的延迟

如果你的 TiDB 集群部署在不同的地区或数据中心,不同副本的 Region 分布在不同地区或数据中心。在这种情况下,可以将 Follower Read 配置为 closest-adaptive 或 closest-replicas,让 TiDB 优先从当前数据中心读取,从而显著降低读取操作的延迟和流量开销。具体实现细节,见 Follower Read。

启用 Follower Read

要启用 Follower Read,将变量 tidb_replica_read(默认值为 leader)设置为 follower、leader-and-follower、prefer-leader、closest-replicas 或 closest-adaptive:

SET [GLOBAL] tidb_replica_read = 'follower';

关于此变量的更多信息,见 Follower Read Usage。

阅读更多

需要帮助?

在 Discord 或 Slack 上向社区提问,或 提交支持工单。