- 论坛徽章:
- 0
|
本帖最后由 chnod 于 2011-03-17 23:19 编辑
回复 34# jarjar
当snapshot针对的存储在上层是数据库时,我来给你举个例子:
1、一条数据库的update语句修改了10条记录,数据库提交该事务,在这个时间点上,数据库认为数据修改成功。假设时间为t0。
这时候快照已经生成了,针对的时间就是T0,在T0的时间点上,对应了你这10条记录!
2、这条修改语句对应到存储上可能需要修改5个block,这个修改可能还在存储的cache上,尚未真正的写到磁盘。
为什么还在存储的CACHE上?是因为磁盘读写能力还是网络吞吐量的问题?如果再CACHE上,能产生快照吗?快照的基础就是在完整写入磁盘的时间点
3、在t1时间点做snapshot,这5个block也许未写到磁盘,也许写了,天知道。
既然你做了T1的快照点,那么数据一定会写入磁盘,若未写入,快照就不会产生,更不用说数据的存在!
4、那么请问,t1时间点的snapshot数据对上层数据库而言是怎样一种状态?
不知道你的快照是指什么概念,大多的快照点,都是对数据的写入而产生的一个时间点,没有写入的过程,怎么会有快照产生?数据库只是数据的一种方式,快照来讲,不管你是什么数据,都要有一个写入的过程就可以了。
你想拿这个来想宣扬一个什么概念! |
|