两端锁,很多直播平台开发运营商陌生的东西,它是指所有的事务必须分成两个阶段对数据进行加锁和解锁操作,一般它存在于系统的后台,不容易被发现,也不会有人注意到,但是却在事务调度上发挥了不小的作用,我们来看看直播平台开发使用两段锁能有什么表现。
一、两端锁协议
既然要给事务分成两段,那第一阶段就是获得封锁,事务可以获得任何数据项上的任何类型的锁,但是不能释放;进入二阶段后,开始进行释放封锁,事务可以释放任何数据项上的任何类型的锁,但是不能申请。可以看出,两个阶段把直播平台开发的任务分配和执行划分的相当明确。
第一阶段的封锁,也被称为扩展阶段,这个阶段需要进行加锁操作,对任何视距进行读取操作之前都要先申请获取S锁,在进行写操作之前要申请并获得X锁,如果加锁失败,则事务进入等待阶段,一直到加锁成功,这无疑会降低直播平台开发请求执行的时间。
第二阶段释放,也称为收缩阶段,事务被释放一个封锁后,事务进入封锁阶段,该阶段只能解锁不能加锁。
二、两端锁给事务处理带来的加成
在直播平台开发事务处理上,两端锁协议有自己的优势:
1、可串行,在直播平台开发面对高并发情况时,任务一个个加锁可太慢了,串行阶段下,多个事务串行调度,保证执行结果的一致,能大大提高平台的响应速度,但串行调度限制了系统并行的发挥,而且有些并行调度不具有串行调度的结果
2、两端锁独有的协议,对任何数据进行读、写操作,首先要申请并获得该数据的封锁;直播平台开发在释放封锁后,事务不能在申请获得其他任何的锁
这也就是回到了开始我们说的封锁和释放上,只是执行的会更简单,没有那么复杂而已。
两端锁的应用范围很窄,对于直播平台开发来说,可能会用不到,但是不能忽视它可以带来的效果,所以平台需要根据自己的需求判断是否真的会用到该协议。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.