4.1 社区版ob不能为tablegroup指定primary_zone?

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.1 社区版
【问题描述】4.1 社区版ob不能为tablegroup指定primary_zone?
【复现路径】3.x及之前的版本是可以的,4.1为何不能指定primary_zone呢?那如何将表或表分区的主副本归拢到一台server上从而避免跨机事务?如下图:

【问题现象及影响】

【附件】

https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001576722

如果是这样,那功能不是退化了么? tablegroup 创建的意义是什么?本打算将一组表的主副本聚拢在同一台server上以避免跨机事务,那 4.x 上如何实现呢?

这里补充说明下:

  1. 按上面那段截图的说法,租户级设置primary zone为单个zone,这样只能用到单机的能力;设置primary zone为random,跨机事务的性能就比较差。

  2. 既想用到所有服务器的能力、又不希望存在跨机事务(或尽可能少存在),那么通过 tablegroup 设置primary zone、或者表级设置 primary zone使这样的需求得以满足。

如这个功能去除,上面第2点提到的场景就无法满足了。

可以粗略理解为 4.x中使用 log stream 替代了 3.x中的 tablegroup,来管理一组分区,如果想把不同表的主副本集中在一起,那么可以指定 primary zone 到一个 zone 上(当前在开发中),这样不同表的分区主副本就会隶属于同一个log stream 日志流,4.x中是按照日志流为原子开启事务的,同一个日志流的事务提交不涉及多机

是的,我理解是 4.x 中的自适应日志流改造导致的,一个租户的一个 Unit 中的所有分区的事务修改日志都记录在一个日志流中,而之前的版本是以分区为基本单元进行操作的。

但正如上面提到的:


如果1-1-1的配置,只能用到单台机器的能力;是想在1-1-1的配置下将每个zone下的1台机器的能力都用起来。这在以前是可能的,但按你的说法,如果指定单zone还要打散,那我理解至少要3-3-3的配置了。

即使是1-1-1的配置,如果选择random的方式,leader还是能打散的,那还是能利用上多机的能力;4.2版本以后会支持transfer,就是可以切partition的leader,相当于切日志流


:joy: 上面也写了,现在设置random,跨机事务就差,满足不了要求。
你这句说到点了,get到了:
4.2版本以后会支持transfer,就是可以切partition的leader,相当于切日志流。
谢谢。