Multithreading MongoDB中具有隔离性和原子性的多个更新
在这种情况下,我们希望执行多个更新操作,在MongoDB中是原子的和隔离的,以便其他进程或线程在这些进程中不获取数据。我知道,原子性和隔离性仅在文档级别得到支持,锁也在db级别得到维护Multithreading MongoDB中具有隔离性和原子性的多个更新,multithreading,mongodb,updates,atomicity,transaction-isolation,Multithreading,Mongodb,Updates,Atomicity,Transaction Isolation,在这种情况下,我们希望执行多个更新操作,在MongoDB中是原子的和隔离的,以便其他进程或线程在这些进程中不获取数据。我知道,原子性和隔离性仅在文档级别得到支持,锁也在db级别得到维护 有没有一种方法可以孤立地、批量地进行多次更新,因为“$isolated”不适用于集群,而且findAndModify()适用于单个文档 我们如何进行并发控制来实现上述情况 我们可以在这里使用两阶段提交吗?通过维护一个事务,它会以独立的方式执行吗 在探索我发现的用于多版本并发控制的MongoMVCC时,如果有人使
- 有没有一种方法可以孤立地、批量地进行多次更新,因为“$isolated”不适用于集群,而且findAndModify()适用于单个文档
- 我们如何进行并发控制来实现上述情况
- 我们可以在这里使用两阶段提交吗?通过维护一个事务,它会以独立的方式执行吗
- 在探索我发现的用于多版本并发控制的MongoMVCC时,如果有人使用过它,请分享您在上述用例方面的经验
$isolated
是最接近的东西
我们如何进行并发控制来实现上述情况
你不能,MongoDB自己的并发性是通过分离ACID的I来实现的
我们可以在这里使用两阶段提交吗?通过在这里维护一个事务,它会以隔离的方式执行吗
两阶段提交(不是服务器端的独立事务)将不起作用
在探索我发现的用于多版本并发控制的MongoMVCC时,如果有人使用过它,请分享您在上述用例方面的经验
这是在MongoDB之上用Java编写的,它实际上不是MongoDB本身,不能代替ACID中的I。MVCC更多的是关于无锁数据库,而不是孤立操作。我认为tl;下面我的答案是,如果你想要酸,你需要一个酸技术