事务并发控制s2pl和s2pl有何区别?
一、事务并发控制s2pl和s2pl有何区别
2PL(2 Phase Locking), 锁分两阶段,一阶段申请,一阶段释放;S2PL(Strict 2PL),在2PL的基础上,写锁保持到事务结束;SS2PL( Strong 2PL),在2PL的基础上,读写锁都保持到事务结束;Gen(SS2PL) ⊂ Gen(S2PL) ⊂ Gen(2PL),
Gen(XXX)表式生成的history/schedule。
简单来说2PL无法保证事务是可恢复的。 这就是常见的脏读异常,即读到未提交事务的数据,如果该未提交事务中止,则会导致已提交事务的状态不可靠。但注意,实际上这里的错误错在事务T2不该提交,而不是读了未提交事务(也可以读了不提交)。
为了避免这一点,引入了调度的可恢复性,即如果事务Ti从事务Tj中读到了元素x,在事务Ti提交前,事务Tj必须已提交。
保证了可恢复性的调度才是正确的调度。进一步为了简化恢复难度,有更高的级别,比如避免级联中止(avoid cascading abort),严格(strict)。
其中严格能保证事务中止的隔离性,即事务中止只需要独立地撤销自己的修改,不需要管其他事务。
而严格性在2PL中的实现,实际上就是持有写锁直至事务提交。
延伸阅读:
二、什么是数据库
数据库就是英文的“database”翻译来的,data + base,故名思义就是数据的根源,数据的基础。那么为什么要有数据库呢,数据库首先是个计算机软件,在所谓数据库诞生之前,常用方法可能是程序员自己写一个小程序来完成数据处理分析这样的工作。
伴随着计算机的普及,越来越多的场景开始使用计算机,产生了越来越多的数据,也催生了越来越多的数据分析需求。为了降低数据分析的门槛,让更多人能够更方便高效地管理分析数据,工程师们就打造了一种专门的软件来帮助人们对数据进行合理的存储以提高存取效率,提供易用的接口和丰富的分析算法以方便使用,集成有效的管理工具以提高数据安全性等等,这就是数据库,也被称为数据库管理系统(DBMS,Database management system)。
数据库是一整套数据管理体系,包括数据存储的模型、数据组织的架构、数据分析的算法、数据管理的工具以及数据访问的接口等等。
猜你喜欢LIKE
相关推荐HOT
更多>>MySQL普通索引不等于为什么会失效?
一、MySQL普通索引不等于会失效的原因1、列数据类型不匹配如果查询条件中的列类型与索引列类型不匹配,MySQL无法使用索引进行优化。例如,索引...详情>>
2023-10-18 11:14:01为什么关系型数据库系统不易于scaling out(横向扩展)?
一、为什么关系型数据库系统不易于scaling out(横向扩展)因为传统的SQL数据库没想到要分片存储,而现在的NewSQL开始考虑到这些问题了。当然分...详情>>
2023-10-18 10:49:50MySQL InnoDB引擎中的各种锁具体是怎么实现的?
一、MySQL InnoDB引擎中的各种锁的实现方式MySQL InnoDB引擎中的各种锁是通过多种机制实现的1、共享锁(Shared Lock)和排他锁(Exclusive Lock...详情>>
2023-10-18 10:26:59Android怎么连接远程数据库?
一、Android连接远程数据库的方法1、确保远程数据库可以远程访问首先,确保您的远程数据库允许远程连接。这通常需要在数据库服务器的配置中启用...详情>>
2023-10-18 10:09:10热门推荐
常用JS前端开发框架有哪些?
沸事务并发控制s2pl和s2pl有何区别?
热为什么一台电脑可以安装多个SQL Server实例?
热MySQL普通索引不等于为什么会失效?
新为什么关系型数据库系统不易于scaling out(横向扩展)?
MySQL InnoDB引擎中的各种锁具体是怎么实现的?
Android怎么连接远程数据库?
为什么MySQL在innodb引擎中即使使用了MVCC机制仍然会出现丢失更新?
IO多路复用中select、poll、epoll之间的区别?
读写分离为什么能够提升性能?
为什么mysql innodDB中组合索引中范围查询后的条件索引会失效?
为什么noteexpress不能建立数据库也不能打开别的数据库?
计算机前端是什么?
APP中集成移动端车牌识别系统都能达到什么效果?