【产品名称】OceanBase
【产品版本】3.1.3
【问题描述】看相关文档和官方人员沟通发现,当联机交易,在开启事务后,第一条不带分片键的SQL,OBProxy会随机发往OBServer,然后后续其他SQL也是发往第一条SQL的observer,那么会引起大量remote sql,降低性能。是否会考虑,当出现第一条写的时候,重新发往正确的SQL,然后以此为事务开启时间点。
【产品名称】OceanBase
【产品版本】3.1.3
【问题描述】看相关文档和官方人员沟通发现,当联机交易,在开启事务后,第一条不带分片键的SQL,OBProxy会随机发往OBServer,然后后续其他SQL也是发往第一条SQL的observer,那么会引起大量remote sql,降低性能。是否会考虑,当出现第一条写的时候,重新发往正确的SQL,然后以此为事务开启时间点。
有人提起一个更为激进的事务优化,但是还在讨论当中。此优化会将OBProxy与ObServer更为紧密的配合起来,并且比“延迟开事务”效果还要好。
等此功能开源后,欢迎关注。
好哒,谢谢。
是将事务全部放在obproxy控制?
那不行的。observer的设计原则中有一个概念是不会依赖外部模块,可以正常工作。
这个改进是想要跟OBProxy配合,来做性能提升。
第一个sql 出去是随机的, 但他的response 中会带路由信息, 后续的路由就是正确的