数据库中锁机制的实现

    DBMS 必定实现了锁机制,但是可能实现方案不同。

    比如,我们这里有一个行资源。实现锁机制有以下不同的方案:

    1. 实现一个锁管理器用来对系统中所有的锁进行管理。当一个用户试图对该行锁定时,首先查找所管理器,确认该行没有被其他应用占用。

    2. 不实现锁管理器。由该行确认其是否被锁定。 既然要锁定该行,那么直接问这一行她之前是否已经被锁定好了。如果没有,就锁定;已被锁定,则等待。

    可以看出,方案2 优点是比较明显的。只需要访问该行,就可确定是否锁定,而不需要去询问第三方(锁管理器)。但是很明显的,我们给该行打了标签,必然会占用一定的内存。而频繁的锁定释放也会占用一定的系统资源。不过相对于带来的优势来说,还是比较划算的。



    Oracle 中的 latch(闩): 一种锁,用户协调对内存,对象等的访问。例如一个加载到内存中的多行。可能对一行的修改就需要修改整个内存块的组织结构。因此需要一种轻量级的锁机制来控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值