OBproxy怎么知道sql语句的数据对应那个数据切片的啊?
OceanBase
乐观
2022 年3 月 25 日 20:38
#1
【产品名称】
【产品版本】
【问题描述】
OBproxy怎么知道sql语句的数据对应那个数据切片的啊?如果我sql语句有多个数据,对应不同的切片,OBproxy怎么处理啊?
假设一条语句,obproxy,怎么知道某个行所在切片的OB节点啊?进而和那个OB节点进行RPC啊?
乐观
2022 年3 月 25 日 20:40
#2
一般使用规范不会涉及到多个分片, 如果真涉及到多个,在OB中这个是分布式计划,proxy就转发给一台机器处理了.
这个是proxy路由第一行,服务端处理发现是在其他节点的,也会路由过去的。现在也在优化这个场景,希望在proxy就能把对应的路由正确,减少服务端的路由。
从sql中把表名和分区相关表达式拿出来,然后从ob拉取对应位置信息。事务有多条语句,根据第一条语句来路由。