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代理。
在OceanBase中,遇到内部表写操作导致的timeout问题,解决方案是在写内部表逻辑时,根据当前server的角色判断是否直接写入本地,避免通过ms代理。
855

被折叠的 条评论
为什么被折叠?



