【发布时间】:2017-02-10 22:58:47
【问题描述】:
我们正在尝试创建一种算法/启发式方法,将在某个时间段安排交付,但这里肯定存在竞争条件,即两个冲突的计划项目可能会写入数据库,因为写入不是真的原子的。
真正防止竞争条件的唯一方法是创建一些原子插入操作,TMK。
服务器接收到在某个时间段内安排某事的请求,并且服务器必须在将数据写入数据库之前检查该时间段是否仍然可用。但是在那个时候,服务器可能会收到类似的请求并最终写入冲突的数据。
如何规避这个问题?有没有办法在数据库本身中创建一些脚本来挂钩写入操作以使整个事情原子化?通过在该脚本上设置锁定机制?使整个事情变得非原子的是服务器和数据库之间的读取和连接时间。
【问题讨论】:
-
听起来您在使特定代码工作时遇到问题。在这种情况下,如果您发布 minimum code that reproduces the problem,我们会更有帮助。
-
这个问题可能属于programmers.stackexchange?
标签: node.js firebase firebase-realtime-database race-condition nosql