MongoDB的锁用什么,有什么用处

Admin 2022-05-28 群英技术资讯 370 次浏览

这篇文章给大家分享的是MongoDB的锁用什么,有什么用处。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。

MongoDB使用多粒度锁,允许操作锁定全局,数据库或集合级别,并允许各个存储引擎在集合级别下实现自己的并发控制(例如,在WiredTiger中的文档级别)。MongoDB使用读写器锁定,允许并发读取器共享访问资源(如数据库或集合),但在MMAPv1中,可以对单个写入操作进行独占访问。

除了用于读取的共享(S)锁定模式和用于写入操作的独占(X)锁定模式之外,意图共享(IS)和意图排它(IX)模式指示使用更精细的粒度锁定来读取或写入资源的意图。 以某个粒度锁定时,使用意图锁可以锁定所有更高级别。

例如,在锁定集合以进行写入时(使用模式X),必须在intent exclusive(IX)模式下锁定相应的数据库锁和全局锁。单个数据库可以同时锁定在IS和IX模式,但是排它(X)锁不能与任何其他模式共存,并且共享(S)锁只能与意图共享(IS)锁共存。

锁是公平的,读取和写入按顺序排队。但是,为了优化吞吐量,当一个请求被授予时,所有其他兼容请求将同时被授予,可能在冲突请求之前释放它们。例如,考虑刚刚释放X锁的情况,其中冲突队列包含以下项:

IS→IS→X→X→S→IS

在严格的先进先出(FIFO)排序中,只授予前两种IS模式。 相反,MongoDB实际上将授予所有IS和S模式,一旦它们全部耗尽,它将授予X,即使新的IS或S请求在此期间已排队。

在db.serverStatus() 和 db.currentOp() 输出中,锁定模式表示如下:

锁模式

说明

R

共享(S)锁

W

排他(X)锁定

r

意图共享(IS)锁

w

Intent   Exclusive(IX)锁


这篇关于“MongoDB的锁用什么,有什么用处”的文章就介绍到这了,更多相关的内容,欢迎关注群英网络,小编将为大家输出更多高质量的实用文章! 群英智防CDN,智能加速解决方案
标签: MongoDB锁

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服