【问题标题】:Query not being redirected into read replica cluster in YugabyteDB查询未重定向到 YugabyteDB 中的只读副本集群
【发布时间】:2022-01-26 09:20:31
【问题描述】:

[用户在YugabyteDB Community Slack上发布的问题]

我想我仍然对只读副本有一些误解。似乎如果我在只读副本上运行看起来像序列扫描的查询,则实际读取是在主集群上完成的。虽然只读副本似乎拥有整个数据集。

当我在只读副本中运行一个简单的select count(*) 查询时,我希望它从自己的数据中进行本地读取。

但是,从图中可以看出,主节点实际上开始进行读取,并且只读副本在几乎空闲状态下等待,直到它得到主节点的响应。我哪里做错了? (使用 YugabyteDB 2.6)

【问题讨论】:

    标签: yugabyte-db


    【解决方案1】:

    请注意,从关注者读取仅在最近发布的 2.11 中可用:https://blog.yugabyte.com/announcing-yugabytedb-2-11/

    要记住的另一件事是,即使在 2.11 上,默认行为,无论您连接到哪个节点,都会将读取重定向到相应的领导平板电脑。您必须在当前会话中启用关注者的阅读功能,如下所示:

    SET yb_read_from_followers = true;
    START TRANSACTION READ ONLY;
    SELECT * from t WHERE k='k1'; --> follower read
     k  | v
    ----+----
     k1 | v1
    (1 row)
    COMMIT;
    

    这会让 YugabyteDB 知道可以从跟随平板电脑(即在只读副本集群中)读取数据。

    此外,即使在只读副本集群中,接收请求的节点也可能没有数据。例如,您可以在该集群上有一个 RF=2 的 5 节点只读副本集群。所以最初接收请求的节点可能不一定有请求感兴趣的数据。请求被路由到哪里取决于会话/语句是否使用默认设置,即从领导平板电脑读取。但是如果启用了从跟随者读取,那么请求将被路由到同一区域的跟随者平板电脑。

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 2022-01-26
      • 2022-01-27
      • 2022-01-25
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多