当query中,部分partition查询失败时,是否可给client返回失败信息


如图,我这边用的java client,同一个查询跑了多次,全集是261511个dst,但是偶尔会有少于全集的情况、如截图的245619;


经查阅GoExecutor的代码,发现completeness不为100的情况下、代码中确实没做failed相关逻辑、只是打印了log;

不清楚我理解的是否全面,所以还是想问下,当遇到这种completeness != 100的情况,目前是否支持给client返回失败?这样至少client可以发起retry一直到拿到全集的数据,而不是拿到非全集的resp、这样看起来像是丢数据了-,=I

您好,非常感谢您的反馈,我们这里应该增加 waring message,让用户知道,拿到的数据是不全的。我们尽快修复。

1 个赞

恩,也就是当前没办法让client感知到拿到的数据是不全的;
并且server端不支持:当数据不全的时候,不按照正常流程返回resp、而是返回非0 errcode或抛出exception;
是这样么

返回客户端的结构ExecutionResponse 里面有个字段 warning_msg,将把信息放在这里面给客户端知道。

这个问题麻烦开个issue吧

已开:https://github.com/vesoft-inc/nebula/issues/2304

1 个赞

已开issue,但是没什么回复;
了解一下针对这个问题大概是什么规划?比如是想在下个版本fix么 是的话下个版本大概什么时候发布:grinning:

返回客户端的结构 ExecutionResponse 里面有个字段 warning_msg ,将把信息放在这里面给客户端知道。

这个最新代码已经合入,各个客户端需要更新接口才能用。

是说这种场景graphd给client回的包里面、没有Exception、也没有errCode,client如果不主动看warning_msg字段的话、仍然可以顺利的如截图这样取数据开始使用是么 :joy:

是的,本来拿数据的时候就要判断是否成功,现在相当于多判断一个字段。