路由策略的问题

路由策略理,搞不懂。

OceanBase 社区已接收您的帖子,正在跟进中。

官方文档OceanBase分布式数据库-海量数据 笔笔算数

根据官方文档设置备优先读

–使用hint方式

–部署的架构1-1-1

proxy_route_policy的理解:

1、配置弱读如何路由

路由规则解释:

强读 Primary Zone:Zone 内可能有多个机器,需要通过路由策略所指定的优先级进行选择
强读分区表计算失败:失败后 OBProxy 不知道该路由到哪个机器,需要通过路由策略所指定的优先级进行选择

问题:

即便设置了proxy_route_policy,但它的值是FOLLOWER_FIRST或FOLLOWER_ONLY,它指定的是“弱读”的优先级,和“强读”没关系啊。

答:可以强读,有默认的策略。强读不会用 proxy_route_policy 这个值

LDC路由:

LDC 路由是指选择副本路由时考虑副本的 LDC 的属性,强读弱读都会用,强读会发给 leader,一般一个表或分区只有一个 leader,路由时没有其他的选择,所以看起来是没有考虑副本的 LDC 属性

问题:

select * from t1,
在observer1上执行,但是observer1没有数据,数据在observer2上,此时是remote执行计划,此时就需要创建一个新的到observer2的后端连接,这个新的后端连接是obproxy去创建的吗?还是observer1去创建呢?

数据从observer2返回给observer1?还是返回给obproxy?

答:observer1 通过 rpc observer2 获取到数据,最后通过 observer1 返回给 OBProxy

问题:

答:这里没有专门配置白名单的地方,这里应该说的是与黑名单相对的那些主机地址

问题:

答:这个应该是说的有个分区键 C1,可以在 SQL 中提供一个由函数表示的 C1 列值,比如 where C1=func(xx) 把函数作为分区键的值路由

问题:

只针对弱读而言,下面两种是不是一样的:

多地部署,配置了LDC,但没有配置proxy_route_policy,优先访问指定机房的备副本?
多地部署,配置了LDC,配置了proxy_route_policy,优先访问指定机房的备副本?

答:1、如果配置sql的弱读会访问

2、会访问的

1 个赞