首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >YugabyteDB中未重定向到读副本集群的查询

YugabyteDB中未重定向到读副本集群的查询
EN

Stack Overflow用户
提问于 2021-12-27 11:38:37
回答 1查看 17关注 0票数 0

[用户在YugabyteDB社区板上发布的问题]

我想我还是误解了一些关于阅读复制品的东西。看起来,如果我在只读副本上运行一个看起来像序列扫描的查询,那么实际的读取就会在主集群上完成。尽管读取的副本似乎拥有整个数据集。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-27 11:38:37

请注意,仅在最近发布的2.11版本中提供了从关注者中读取的内容:https://blog.yugabyte.com/announcing-yugabytedb-2-11/

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

代码语言:javascript
运行
复制
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知道从一个追随者平板(即在read副本集群中)读取是可以的。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70494985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档