亚信安慧AntDB:AntDB-M元数据锁之锁的获取(三)

5 锁的获取

5.1 锁的强弱

当线程已经持有的锁比新申请的锁更强时,认为已经持有了锁,无需再对申请锁类型加锁。锁的强弱指持有的锁与其他锁的不兼容集合大小,集合相同锁相同,集合更大锁更强,否则无强弱关系。通过锁的兼容位图进行简单的位运算即可快速判断锁的强弱。

5.2 两种锁范围

按照锁的适用范围将锁划分为两类,当然划分不是非此即彼的,会有重叠,这两类锁有各自的兼容性和锁对象管理方式。

范围锁(scoped locks)

只有三种锁(IX,S,X),主要用于GLOBAL、COMMIT、TABLESPACE、BACKUP_LOCK命名空间的对象。这几种命名空间的锁主要从整体上去限制并发操作,比如在DML访问一张表时,会先申请一个该表所属SCHEMA的IX锁,避免访问过程中该SCHEMA被修改、删除。范围锁全局每种命名空间都仅有一个锁对象,从而实现全局性的并发控制。

相关推荐
故事不长丨1 天前
C#File文件操作全解析:从基础用法到异常处理
服务器·开发语言·visualstudio·c#·文件操作·io流·file
drebander1 天前
MyBatis-Plus saveBatch 在异步线程中事务未提交问题排查与修复
数据库·mybatis
lowhot1 天前
C语言UI框架
c语言·开发语言·笔记·ui
CodeAmaz1 天前
ConcurrentHashMap(JDK 7/8)详细介绍
java·hashmap·线程安全map
大猫和小黄1 天前
Tomcat vs Undertow 全面对比
java·tomcat
论迹1 天前
【Redis】-- key的过期策略
数据库·redis·缓存
gihigo19981 天前
使用MATLAB绘制3D心形图和玫瑰花图案
开发语言·matlab·3d
柠檬叶子C1 天前
【Python】解决 No module named ‘imp‘ 问题 | Python3 中废弃的 imp 模块
开发语言·python
源代码•宸1 天前
Golang基础语法(go语言结构体、go语言数组与切片、go语言条件句、go语言循环)
开发语言·经验分享·后端·算法·golang·go
我想吃烤肉肉1 天前
wait_until=“domcontentloaded“ 解释
开发语言·前端·javascript·爬虫·python