我想知道哪个是使用ArangoDB执行此操作的最佳方法,我开始使用事务处理,或使用修订检查更新记录,但对于许多并发更新而言,它并不是很好。
使用新版本2.1,我发现我可以在服务器中注册函数以执行每X个时间,因为我保留了很长一段时间的原始数据,我可以使用一个服务器任务将其视为异步但它给计数器带来了更多的延迟。
还有其他办法吗?
谢谢,
Diego Guraieb
答案 0 :(得分:2)
目前至少有三种方法可以增加一个计数器:
备选方案1将需要至少2次HTTP调用(提取+更新),并且对于并发更新的情况,您将需要进行错误处理。所以它不是很有用。
从我认为客户的角度来看,替代方案2将是最容易使用的。它允许暴露"增加计数器"通过REST API进行操作,并且可以在原子事务中实现fetch-and-update。备选方案3也可以,如果你能负担得起你的柜台稍微过时了。实施时,应逐步实施,例如,通过保留计数器的总数并在每个更新任务执行时仅添加新值。否则你的"柜台操作"集合将无限增长,更新将变得越来越慢。备选方案#3还具有以下优点:您可以保留最近操作的(小)记录,例如用于审计。