mssql 线程数量500多_MSSQL:恒定时间数据库恢复算法

本文介绍了MSSQL中的恒定时间恢复算法(CTR),以解决传统ARIES算法在长事务处理上的问题。CTR通过持久化版本存储、逻辑回滚和后台清理等机制,确保数据库在长事务情况下仍能快速恢复并保持可用性。在CTR中,临时表被持久化,逻辑回滚用于回收已中止事务的元组,背景清理则定期回收不再需要的多版本信息。
摘要由CSDN通过智能技术生成
本文主要介绍SQL Server的恒定时间恢复算法(Constant TIme Recovery)以及传统的ARIES算法。

ARIES算法作为最传统,应用广泛的数据库恢复算法, 在MSSQL中也有应用。但随着数据库的发展,和云数据库的兴起,传统的ARIES算法逐渐没有办法满足云数据库高可用性的特点。面对云端用户,数据库的恢复慢慢呈现出一些弱点:

  • 数据库的容量逐渐提高,导致更多长事务的出现
  • 商用云服务器的数量增加,出现故障在所难免
  • 云数据库的维护和升级由服务供应商提供,用户很难根据停机时间调整自己的业务
  • 长事务在撤销时带来的不可用性(在撤销长事务时,长事务更改的表需要长时间持有写锁来撤销,导致该表不可用),部分长事务可能需要数十个小时才能撤销完成。

面对这些问题,微软在2019年的VLDB论文Constant Time Recovery in Azure SQL Database[1]提出了恒定时间恢复算法(Constant Time Recovery, 简称CTR)。在介绍这个算法之前,先简单介绍一下MSSQL应用的传统的ARIES算法。

ARIES

Algorithms for Recovery and Isolation Exploiting Semantics[2] (简称 ARIES)是经典的数据库恢复算法,采取no-force[3]在事务提交时,脏页可以不刷到磁盘)和steal(未完成提交的事务可以修改最近提交的值)的策略,以及Write Ahead Log(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值