merge server: ms
update server: ups
这是在OceanBase中遇到的一个真实case,情况是这样的:
在ups的 ups_apply()函数中写了一个统计值到内部表,而目前的接口中写内部表是通过ms来代理的,所以ups的这个请求会发给ms。
ms的任何写操作都会最终提交到ups,并且由ups的ups_apply()函数执行,于是再次触发在ups_apply中的写统计值操作,于是。。。。timeout!
解决方案:写内部表逻辑需判断当前server的role,如果是ups,直接写本地,而不去让ms代理。