在三数据中心下就近读取数据

在三数据中心模式下,Region 的三个副本都会隔离在各个数据中心里。然而在强一致读的要求下,TiDB 的每一个查询都需要访问对应数据的 Leader 副本,而查询的来源可能和 Leader 所在的数据中心不一致,这就会引起跨数据中心的数据访问,从而造成访问的延迟上升。本文主要介绍使用 Stale Read 功能,以牺牲数据实时性的方式,避免跨数据中心的访问,从而降低访问的延迟。

部署三数据中心的 TiDB 集群

部署三数据中心的方法,参考同城多数据中心部署 TiDB

请注意,如果 TiKV 和 TiDB 都有 labels 配置项,在给 TiKV 和 TiDB 配置标签时,同一个数据中心下的 TiKV 和 TiDB 应该配置相同的 zone 标签。假设 TiKV 和 TiDB 都在 dc-1 数据中心下,那么两者都需要配置如下标签:

[labels]
zone=dc-1

使用 Stale Read 就近读取数据

Stale Read 为用户提供了一种读取历史数据的一种机制。使用 Stale Read 功能,你能从指定时间点或时间范围内读取对应的历史数据,从而避免数据同步带来延迟。在部分跨数据中心部署的场景中使用 Stale Read 功能,通过牺牲一定的实时性,TiDB 可就近访问对应数据所在当前中心的副本,避免跨数据中心的网络延迟,降低整体查询的访问延迟。

当 TiDB 收到 Stale Read 查询时,假如对应的 TiDB 配置了 zone 标签,就会将请求发送到对应数据副本所在 TiKV 拥有相同的 zone 标签的节点上。

如何使用 Stale Read 查询,参考使用 AS OF TIMESTAMP 语法读取历史数据

下载 PDF文档反馈社区交流修改本文
文档内容是否有帮助?
产品
TiDB
学习
客户案例
PingCAP Education
TiDB in Action
© 2022 PingCAP. All Rights Reserved.