当前位置: 首页 > news >正文

Windows和Linux都有的Copy-on-write技术

Windows和Linux都有的Copy-on-write技术

 

MySQL技术内幕Innodb存储引擎第2版 P375

SQL Server2008 实现与维护(MCTS教程)P199

 

LVM快照技术

LVM使用写时复制copy-on-write技术来创建快照,当创建一个快照时,仅复制原始卷中数据的元数据metadata,并不会有数据物理操作,因此快照创建过程非常快。当快照创建完成,原始卷上有写操作时,快照会跟踪原始卷块的改变,将要改变的数据在改变之前复制到快照预留空间里,因此这个原理的实现叫写时复制。对于快照读取操作,如果读取的数据块是创建快照后没有修改过的,那么会重定向读取操作到原始卷,如果读取的是已经修改过的块,读取保存在快照中该块在原始卷改变之前的数据,简单来将就是读取快照中的数据,因此采用写时复制机制保证了读取快照得到的数据和快照和快照创建时一致

简单来讲:

写:有变更写快照,无变更不写快照,写快照是变更之前的版本

 

SQL Server的快照技术

SQL Server使用写时复制copy-on-write,SQL Server对区extent进行读写,首次对一个区中的数据页进行修改时,SQL Server将区的前影像复制到数据快照。

读取select:无更改过的,读取源库,更改过的,读取快照

由于在首次发生改变时写入了区的前影像,所以SQL Server一方面允许对源库进行更改
另一方面保证对数据库快照的任何查询不会反映创建快照之后发生的任何改变

最初的更改写入区的一个页,而且SQL Server将这个区的前影像写入数据库快照之后,写时复制功能会忽略后续对这个区的任何更改

由于可以为一个源库创建多个数据库快照,所以凡是没有获得区的副本的数据库快照都会被写入区的一个前影像

 

原理跟Linux LVM的快照原理是一样的!

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

相关文章:

  • MyBatis工作流程
  • virtualenv简单使用
  • SQL Server 事务处理 回滚事务
  • android usb挂载分析---MountService启动
  • 关于ssh,一次深刻的打我脸式的学习。
  • ZH奶酪:PHP的cURL库
  • 【转】一张图轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别
  • 第一课 计算机及操作系统基础知识
  • 033-UITableViewHeaderFooterView-iOS笔记
  • 安装django
  • 10.11查询
  • 【 D3.js 入门系列 --- 3 】 做一个简单的图表!
  • zookeeper管理应用服务器配置文件
  • mybatis0208 缓存
  • svn回退到具体的版本
  • “大数据应用场景”之隔壁老王(连载四)
  • axios 和 cookie 的那些事
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • markdown编辑器简评
  • rc-form之最单纯情况
  • React-Native - 收藏集 - 掘金
  • Redis 懒删除(lazy free)简史
  • REST架构的思考
  • Vue实战(四)登录/注册页的实现
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 半理解系列--Promise的进化史
  • 第2章 网络文档
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 你不可错过的前端面试题(一)
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $(function(){})与(function($){....})(jQuery)的区别
  • (ZT)出版业改革:该死的死,该生的生
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (多级缓存)多级缓存
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (二)丶RabbitMQ的六大核心
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (四) 虚拟摄像头vivi体验
  • (一)插入排序
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (轉)JSON.stringify 语法实例讲解
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net framework profiles /.net framework 配置
  • .NET 设计模式初探