ArangoDb:通过AQL-waitForSync从save()到可用的时间?

ArangoDb:通过AQL-waitForSync从save()到可用的时间?,arangodb,Arangodb,在我的NodeJS支持的restapi中,我使用ArangoJS库对集合中的文档调用wait save(…)。注意:我没有使用waitForSync选项 在保存wait之后,我将向客户机发送一个SSE事件,然后客户机立即调用另一个REST API方法,该方法使用AQL查询相同的集合。不幸的是,我得到了以前的(旧的/未更改的)数据。等了一会儿,AQL查询给了我新的数据 waitForSync是解决方案吗?大多数文档都说明此选项等待数据同步到磁盘,但据我所知,ArangoDB将大部分数据保留在内存中

在我的NodeJS支持的restapi中,我使用ArangoJS库对集合中的文档调用
wait save(…)
。注意:我没有使用
waitForSync
选项

在保存
wait
之后,我将向客户机发送一个SSE事件,然后客户机立即调用另一个REST API方法,该方法使用AQL查询相同的集合。不幸的是,我得到了以前的(旧的/未更改的)数据。等了一会儿,AQL查询给了我新的数据

waitForSync
是解决方案吗?大多数文档都说明此选项等待数据同步到磁盘,但据我所知,ArangoDB将大部分数据保留在内存中,因此它不应影响下面的查询,该查询应针对内存进行查询

有人想解释一下吗

更新


请参阅我自己的答案,将其标记为已回答:

正如所料,ArangoDb没有任何问题。由于评论/确认等待应该足够了,我进一步调查了我的设置。发现问题在于缓存,添加带有“无缓存”的缓存控制标头解决了问题


有趣的是,当开发者控制台在Chrome中打开时,我从来没有遇到过问题。发现开发模式中的复选框“禁用缓存”在开发过程中隐藏了问题。问题是有很多304个未更改的响应。

我的期望也是,仅
wait
就足够了。不必使用
waitForSync
。正如您所说,后者的目的是确保服务器上的数据修改已同步到持久存储。但是,一旦数据修改查询成功返回给调用者,后续调用者应能立即看到任何修改。您是在同一台服务器上读写,还是有多服务器设置(就ArangoDB而言)?它是同一台服务器。我将尝试以最小的设置重新创建它。这里可能还有其他故障源,例如Nodejs前面的Nginx服务器。您应该将编辑向下移动到某个答案,并将该问题标记为已回答。这会对其他人有所帮助。没问题-现在将更新作为答案发布。