事务并发控制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
更多>>
Vertica数据库为什么插入数据那么快?
一、Vertica数据库插入数据快的原因1、列式存储结构Vertica是一种列式数据库,它将数据按列存储在磁盘上,而不是按行存储。这种存储方式使得插...详情>>
2023-10-15 23:29:03
MyBatis的优势是什么?
一、MyBatis的优势1、灵活性MyBatis 的配置文件提供了很大的灵活性,可以根据具体需求进行细粒度的配置。你可以定义 SQL 查询语句、参数映射、...详情>>
2023-10-15 23:05:44
怎么打开一个.bak格式的30G的数据库文件?
一、打开一个.bak格式的30G的数据库文件的步骤1、打开SQL Server Management Studio首先打开SQL Server Management Studio,SQL Server详情>>
2023-10-15 21:49:54
PLSQL与win10不兼容怎么解决?
一、PLSQL与win10不兼容怎么解决如果你仅仅是要用(T)SQL语句的话,不一定要用PL/SQL,可以建议用idea的Datagrip或是任意ultimate版。IJ/PC/PS(...详情>>
2023-10-15 21:12:44热门推荐
从Oracle到GaussDB的数据迁移实操要怎么避坑?
沸Vertica数据库为什么插入数据那么快?
热MyBatis的优势是什么?
热互联网、金融这两个领域上用于数据挖掘、数据分析的数据库是什么?
新什么是四层(L4 proxy)和七层负载均衡(L7 proxy)?
怎么打开一个.bak格式的30G的数据库文件?
PLSQL与win10不兼容怎么解决?
事务并发控制s2pl和s2pl有何区别?
为什么做java的web开发会使用struts2,springMVC和spring框架?
数据库存储时间为什么用的是utcnow而不是now?
java中怎么把jdbc查询的resultset对象转为json?
为什么用navicat连接sqlserver后看不到master数据库?
Plugin解决了什么问题?
Android怎么连接远程数据库?
技术干货






