ArangoDb:从 save() 到通过 AQL 可用的时间 - waitForSync?
ArangoDb: Time from save() to availability through AQL - waitForSync?
在我的 NodeJS 支持的 REST API 中,使用 ArangoJS 库,我在集合中的文档上调用 await save(...)
。 注意我没有使用 waitForSync
选项。
在 await
保存之后,我将向客户端发送一个 SSE 事件,然后客户端立即调用另一个 REST API 方法,该方法使用 AQL 查询同一个集合.不幸的是,我得到了以前的 (old/unchanged) 数据。稍等片刻,然后 AQL 查询为我提供了新数据。
waitForSync
是解决方案吗?大多数文档指出此选项等待数据同步到磁盘,但据我了解 ArangoDB 将大部分数据保存在内存中,因此它不应该影响以下查询,哪个应该针对内存进行查询?
有人愿意解释一下吗?
更新
看我自己的回答
只是为了将此标记为已回答:
不出所料,ArangoDb 没有任何问题。多亏了 comment/confirmation 的 await 应该足够了,我进一步调查了我的设置。发现问题出在缓存上,添加 Cache-Control header 和 'no-cache' 解决了问题。
有趣的是,当开发者控制台在 Chrome 中打开时,我从未遇到过问题。发现开发模式下的复选框'disable cache'在开发过程中隐藏了问题。问题是很多 304 未更改响应。
在我的 NodeJS 支持的 REST API 中,使用 ArangoJS 库,我在集合中的文档上调用 await save(...)
。 注意我没有使用 waitForSync
选项。
在 await
保存之后,我将向客户端发送一个 SSE 事件,然后客户端立即调用另一个 REST API 方法,该方法使用 AQL 查询同一个集合.不幸的是,我得到了以前的 (old/unchanged) 数据。稍等片刻,然后 AQL 查询为我提供了新数据。
waitForSync
是解决方案吗?大多数文档指出此选项等待数据同步到磁盘,但据我了解 ArangoDB 将大部分数据保存在内存中,因此它不应该影响以下查询,哪个应该针对内存进行查询?
有人愿意解释一下吗?
更新
看我自己的回答
只是为了将此标记为已回答:
不出所料,ArangoDb 没有任何问题。多亏了 comment/confirmation 的 await 应该足够了,我进一步调查了我的设置。发现问题出在缓存上,添加 Cache-Control header 和 'no-cache' 解决了问题。
有趣的是,当开发者控制台在 Chrome 中打开时,我从未遇到过问题。发现开发模式下的复选框'disable cache'在开发过程中隐藏了问题。问题是很多 304 未更改响应。