5.15#每日一问#Observer关于延迟开事务,提升性能的支持,是否有开发计划?

【产品名称】OceanBase

【产品版本】3.1.3

【问题描述】看相关文档和官方人员沟通发现,当联机交易,在开启事务后,第一条不带分片键的SQL,OBProxy会随机发往OBServer,然后后续其他SQL也是发往第一条SQL的observer,那么会引起大量remote sql,降低性能。是否会考虑,当出现第一条写的时候,重新发往正确的SQL,然后以此为事务开启时间点。

有人提起一个更为激进的事务优化,但是还在讨论当中。此优化会将OBProxy与ObServer更为紧密的配合起来,并且比“延迟开事务”效果还要好。

等此功能开源后,欢迎关注。

好哒,谢谢。

是将事务全部放在obproxy控制?

那不行的。observer的设计原则中有一个概念是不会依赖外部模块,可以正常工作。

这个改进是想要跟OBProxy配合,来做性能提升。

第一个sql 出去是随机的, 但他的response 中会带路由信息, 后续的路由就是正确的