首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有隔离性和原子性的MongoDB中的多次更新

具有隔离性和原子性的MongoDB中的多次更新
EN

Stack Overflow用户
提问于 2013-10-01 12:41:23
回答 1查看 486关注 0票数 0

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

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

回答 1

Stack Overflow用户

发布于 2013-10-01 12:46:35

是否有一种方法可以独立地、批量地进行这样的多个更新,因为$isloated不适用于shard,而且,findAndModify()对单个文档有效吗?

不,$isolated是最接近的

我们如何才能做到并发控制来实现上述情况?

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

我们能否在这里使用两阶段提交,通过在这里维护一个事务,它会不会是孤立的执行方式?

两阶段提交(不是服务器端的孤立事务)将无法工作。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19116456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档