Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading MongoDB中具有隔离性和原子性的多个更新_Multithreading_Mongodb_Updates_Atomicity_Transaction Isolation - Fatal编程技术网

Multithreading MongoDB中具有隔离性和原子性的多个更新

Multithreading MongoDB中具有隔离性和原子性的多个更新,multithreading,mongodb,updates,atomicity,transaction-isolation,Multithreading,Mongodb,Updates,Atomicity,Transaction Isolation,在这种情况下,我们希望执行多个更新操作,在MongoDB中是原子的和隔离的,以便其他进程或线程在这些进程中不获取数据。我知道,原子性和隔离性仅在文档级别得到支持,锁也在db级别得到维护 有没有一种方法可以孤立地、批量地进行多次更新,因为“$isolated”不适用于集群,而且findAndModify()适用于单个文档 我们如何进行并发控制来实现上述情况 我们可以在这里使用两阶段提交吗?通过维护一个事务,它会以独立的方式执行吗 在探索我发现的用于多版本并发控制的MongoMVCC时,如果有人使

在这种情况下,我们希望执行多个更新操作,在MongoDB中是原子的和隔离的,以便其他进程或线程在这些进程中不获取数据。我知道,原子性和隔离性仅在文档级别得到支持,锁也在db级别得到维护

  • 有没有一种方法可以孤立地、批量地进行多次更新,因为“$isolated”不适用于集群,而且findAndModify()适用于单个文档
  • 我们如何进行并发控制来实现上述情况
  • 我们可以在这里使用两阶段提交吗?通过维护一个事务,它会以独立的方式执行吗
  • 在探索我发现的用于多版本并发控制的MongoMVCC时,如果有人使用过它,请分享您在上述用例方面的经验
有没有一种方法可以单独、批量地进行多次更新,因为$isloated不适用于shard,而且findAndModify()适用于单个文档

不,
$isolated
是最接近的东西

我们如何进行并发控制来实现上述情况

你不能,MongoDB自己的并发性是通过分离ACID的I来实现的

我们可以在这里使用两阶段提交吗?通过在这里维护一个事务,它会以隔离的方式执行吗

两阶段提交(不是服务器端的独立事务)将不起作用

在探索我发现的用于多版本并发控制的MongoMVCC时,如果有人使用过它,请分享您在上述用例方面的经验


这是在MongoDB之上用Java编写的,它实际上不是MongoDB本身,不能代替ACID中的I。MVCC更多的是关于无锁数据库,而不是孤立操作。

我认为tl;下面我的答案是,如果你想要酸,你需要一个酸技术