亚信安慧AntDB:AntDB-M元数据锁之对象锁(四)

对象锁 (per-object locks)

除了IX锁,其他类型都可以用于其他命名空间,这部分是最常用的锁类型。主要用于对数据库的某个具体元数据的并发控制。这类锁对象会比较多,对其有独特的管理,本文不再展开说明。

5.3 两种锁类型

根据锁的兼容性、以及通用性将锁分为两类。

5.3.1互不干扰型(unobtrusive)

unobtrusive锁相互间兼容,并且适用于所有DML操作。这类锁获取后不用记录下具体哪个线程申请的,只需要记录下有多少个请求已经获得,通过锁对象下64位原子变量来计数,因此对其他连接的锁申请影响很小,表现比较低调。在64位中每种类型锁都有由固定的位范围存放加锁个数。对于scoped与per-object是不同锁对象,因此位分别设置。

scoped locks: IX(0~59位)

per-object locks: S,SH(0~19位),SR(20~39位), SW(40~59位)

注意分配20位的不会产生溢出,因为当前设计不会同时有超过2^20 - 1个连接。

亚信安慧AntDB:AntDB-M元数据锁之对象锁(四)_第1张图片

你可能感兴趣的:(java,数据库,开发语言,antdb,antdb数据库)