域移动数据库如何能够解决多个用户同时写入同一列表的冲突?
这似乎不是一个简单的最后写胜利的情况。例如,在列表a,b,c,d中,user1可以交换a和b,a,c,d和user2可以交换c和d,b,d,c。
发布于 2017-04-24 10:40:31
冲突通常总是得到解决,因此似乎相应的操作是在本地按实时顺序执行的,而这些操作实际上发生在不同的设备上。
插入按顺序排列,以便如果两个设备将元素追加到列表中,则元素将以附加元素的顺序结束。
元素交换操作更难可视化,但同样的原则也适用。如果交换拥有列表[a, b, c],并且每个设备分别独立地在t=0执行swap(0, 1),在t=1独立执行swap(1, 2),结果将是好像操作swap(0, 1)和swap(0, 2)已经在每个设备上运行一样,从而产生[c, a, b]。请注意如何将第二个交换空间转换为考虑到第一个交换,以维护列表元素标识。
解决冲突的最简单的解释方法是,它总是解决冲突,从而使操作看起来是在本地发生的。我们希望改进有关这种行为的文档,但挑战是操作有许多组合。如果您对文件中的哪种信息会回答您的问题有任何建议,请立即向我们发送进一步的反馈。
https://stackoverflow.com/questions/43547018
复制相似问题