首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><end ckpt> in Recovery in DBMS

<end ckpt> in Recovery in DBMS
EN

Stack Overflow用户
提问于 2018-08-03 11:50:39
回答 1查看 137关注 0票数 1

我有一个崩溃点的日志:

代码语言:javascript
复制
1 <start T1>
2 <T1, D, 20>
3 <commit T1>
4 <start T4>
5 <T4, B, 15>
6 <T4, A, 20>
7 <commit T4>
8 <start T2>
9 <T2, B, 12>
10 <start T3>
11 <T3, A, 30>
12 <T2, D, 25>
<- system crash

问题是: 1)在(内存中)写入以下日志记录之一后,我们立即开始一个非静态检查点:

a) 2 <T1, D, 20>

b) 5 <T4, B, 15>

c) 9 <T2, B, 12>

d) 11 <T3, A, 30>

2)我们必须在日志中查找多长时间才能找到所有可能的未完成事务。恢复后,T1、T2、T3和T4写入的值是什么?

在1a中,我能够将<end ckpt>放在<Commit T1>行之后。

在1b中,我能够将<end ckpt>放在<Commit T2>行之后。

但是,系统没有提交T2和T3就崩溃了,我怎么解决1c和1d呢?

此外,我不知道问题2中的“回到多远”是什么意思。你能给我一个解决这个问题的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-06 17:32:46

“后退多远”意味着当你向后扫描时,哪一行足以让你停止更多的扫描。每个问题都应该考虑撤消和重做两种情况。在撤消情况下,我们不能在问题1c和1d处插入,因为T2和T3未提交。在重做情况下,插入的时间取决于T1和T4写入的数据到达磁盘的时间。另外,这是一个叫HW04的家庭作业吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51665053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档