查看其它 1 个回答lxue的回答

lxuelxue数据库管理员某互联网公司

对于 WiredTiger

从版本 3.0 开始, MongoDB 附带了 WiredTiger 存储引擎。

对于大多数读写操作, WiredTiger 使用乐观并发控制。 WiredTiger 仅在全局,数据库和集合级别使用意图锁。 当存储引擎检测到两个操作之间的冲突时,会发生写入冲突,导致 MongoDB 透明地重试该操作。

一些全局操作(通常是涉及多个数据库的短期操作)仍然需要全局“实例范围”锁定。其他一些操作(例如删除集合)仍需要独占数据库锁。

对于 MMAPv1

MMAPv1 存储引擎在 3.0 版本系列中使用了集合级锁定,这是对早期版本的改进,其中数据库锁是最精细的锁。第三方存储引擎可以使用集合级锁定或实现自己的更细粒度的并发控制。

例如,如果使用 MMAPv1 存储引擎在数据库中有六个集合,并且一个操作采用集合级写锁定,则其他五个集合仍可用于读取和写入操作。独占数据库锁使得所有六个集合在持有锁的操作期间不可用。

互联网服务 · 2020-02-26
浏览1840

回答者

lxue
lxue006
数据库管理员某互联网公司
擅长领域: 数据库人工智能大数据

lxue 最近回答过的问题

回答状态

  • 发布时间:2020-02-26
  • 关注会员:3 人
  • 回答浏览:1840
  • X社区推广