是否存在分布式高可用性,最终是一致的db,它支持标量值的幂等操作?
如果我们使用正常更新,那么我们可能会在不同节点上有2个不同的值,并且没有一个值是正确的,因为我们需要通过两个事务值来增加金额.
是否有分布式数据库,我可以发送命令增加(键,属性[列],差异),以便当我收到响应时,我可以确定该操作将在其他副本上执行,无论帐户的当前值如何?通过这种方式,即使两个不同的节点增加了不同的值,我也将具有增加操作的最终一致性,因为该增加将传播到其他副本.
我不是在讨论条件更新,因为它不适用于cassandra这样的高可用性db(这就是为什么它们没有这个功能),我对原子增加操作感兴趣.
谢谢.
PS在幂等增加的情况下,我会有一个命令增加(key,attribute,diff,lock_key),这样如果db已经收到相同的lock_key相同的命令,db就不会增加
TL;博士:
有没有办法在分布式AP类数据库中制作精确的计数器?2个问题:1)如果我发送操作来增加一个计数器并且我没有得到响应,我会再次发送该请求,但不想两次增加计数器.2)如果该计数器在另一个副本上同时更新,我希望最终合并这个增加,而不是覆盖这些值.那么是否有像增加("John的余额",+ 5.67,"sdfsdfas")这样的命令,其中sdfsdfas是用于丢弃重复更新的字符串.是否有一个db复制这种命令?
database high-availability eventual-consistency cassandra nosql
更改Collections.unmodifiableList为return List<? extends T>而不是List<T>将阻止在编译时添加和删除元素,而不是抛出运行时异常.
是否存在由此替代方案引起的严重问题,从而排除它?