串行等价化 事务 并发 加锁 死锁

串行等价性允许CPU在不同事务间切换执行,提高资源利用率,尤其在涉及磁盘访问时。事务串行等价性意味着交叉执行与串行执行效果相同。不满足串行等价的事务可通过加锁实现串行化,如两阶段加锁。然而,锁可能导致死锁,因此引入了读锁、写锁等技术来降低锁的粒度,提升并发。串行等价性有助于资源调度,确保事务正确性。
摘要由CSDN通过智能技术生成

        串行等价性,满足串行等价性的事务,可以让CPU在不同事务间切换,轮有执行。这样的当事务中含有需要长时间访问磁盘的操作时,就可以执行其他事务,提供资源利用率。同时对于短事务可以降低响应时间。

        事务的串行等价性,指事务所含指令交叉执行的结果与串行一个一个执行结果似乎一样的。

    事务具有串行等价的充分必要条件,如果不同事务访问的资源有重叠,含有冲突操作时,那么不同事务访问资源的顺序必须一样。

        比如: 事务A,先访问i,再访问j资源;而事务B,先访问j,再访问i资源。访问还是冲突的(如读写冲突、写写冲突),那事务A与事务B将不满足串行等价。这样就无法实现CPU在不同事务间来回切换执行。

        对于不满足串行等价的事物,服务器可以通过串行化对象访问来达到事物的串行等价

        这就好比两个线程访问资源是冲突的,那么我就加锁强制两个线程串行的访问资源。

        不同人编写的事务不同,访问的资源不同,CPU如何在这些事务的指令上切换也是随意的,那么怎么能保证这些事务执行的结果是对的呢。

        简单的做法是加互斥锁,一个对象一把锁,一个时刻只有一个人可以访问、修改该对象,同时直到事务中所有的操作执行完了才一并释放锁。这就是两阶段加锁。

        加锁必然降低并发,那么就通过修改锁,提出了读锁、写锁分离、层次锁等概念来减低锁的粒度、锁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值