后像后写、后像前写、后像前后写在恢复操作时的区别

三者定义

  • 后像后写要求日志在保存完毕(包括 COMMIT)后,事务才开始写入磁盘。日志记录的是新值
  • 后像前写要求完成数据写入磁盘后再保存日志(写 COMMIT,但之前的记录还是在写磁盘之前写入日志的)。日志记录的是旧值
  • 后像前后写对于保存日志和数据写入磁盘的顺序没有要求(同样, COMMIT 之前的记录还是在写磁盘之前写入日志的)。新旧值日志都要记录

三者的区别就是写 COMMIT 的时机和记录新值或旧值。

恢复操作

后像后写

后像后写在恢复时,需要从后向前扫描日志找 COMMIT 行,有 COMMIT 的事务需要加入 Redo-list。

然后从前向后扫描日志,如果此事务是 Redo-list 中的,就要重新向 DB 写入数据(不在乎 DB 上的数据是对是错,都要重写)。

后像前写

后像前写在恢复时,需要从后向前扫描日志找 COMMIT 行, COMMIT 的事务需要加入 Undo-list。

然后从后向前扫描日志,如果此事务是 Undo-list 中的,就不管它。若不在,就要将 DB 中对应的记录恢复到旧值。

注意,在这里 Undo 不是撤销的意思,是不处理的意思。

后像前后写

后像前后写在恢复时,需要从后向前扫描日志找 COMMIT 行, COMMIT 的事务需要加入 Redo-list则进入 Undo-list

然后再从前向后扫描日志,若事务在 Redo-list 中,则重新写其新值。

第三步,从后向前扫描日志,若事务在 Undo-list 中,则恢复到旧值。

注意这里的 Undo-list 中的事务不能不处理了,所以 Undo 又接近于撤销的意思。

区别

后像后写的恢复是找到有 COMMIT 行的事务,要求其重新写过。因为写 COMMIT 是在写磁盘之前,那么没有 COMMIT 的事务肯定是不会写入磁盘的,有 COMMIT 的事务不能确定。

后像前写的恢复是找到没有 COMMIT 行的事务,要求其恢复到旧值。因为写 COMMIT 是在写磁盘之,那么有 COMMIT 的事务肯定已写入磁盘,没有 COMMIT 的事务不能确定。

后像前后写因为不规定写 COMMIT 的时机,不能作任何保证,只能将两种恢复(写新值和写旧值)都进行一遍!

还需要注意的是几种扫描的方向。在建立 Redo-list 和 Undo-list 时,都是从后向前扫描日志。而写新值要从前向后,写旧值要从后向前

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DSMall商城系统是一套完善的B2B2C(多店铺商城)解决方案。系统使用国内优秀开源框架THinkPHP,H5端采用vue.js,后端分离,基于PHP+MySQL开发,采用B/S架构,依据6年电商经验打造出的一套开源的B2B2C电子商务系统。 DSMall商城系统技术评价 1、B/S架构 2、MVC编码架构,H5端采用vue.js 3、支持Compser 4、支持阿里云存储 5、支持负载均衡 5、支持Mysql读分离 6、支持Redis/Memcached 7、支持Linux/Unix/Windows服务器,支持Apache/IIS/Nginx等 8、支持电脑PC端、手机端(微信端)、小程序 DSMall商城系统功能: 1、设置:站点设置、账号同步、上传设置、SEO设置、邮箱短信、支付方式(支付宝/微信/银联)、权限设置、快递公司、地区管理、数据备份、操作日志 2、会员:会员管理、会员级别、经验值管理、会员通知、积分管理、预存款、聊天记录 3、商品:商品分类、品牌管理、商品管理、类型管理、规格管理、空间管理 4、店铺:店铺管理、店铺资金、店铺保证金、店铺等级、店铺分类、店铺动态、店铺帮助、自营店铺 5、交易:实物订单、虚拟订单、退款管理、退货管理、订单结算、咨询管理、举报管理、评价管理、结算管理 6、网站:文章分类、文章管理、会员协议、导航管理、广告管理、友情链接、平台客服 7、营销:分销管理、抢购管理、虚拟抢购管理、拼团管理、限折扣、满即送、优惠套装、推荐展位、会员等级折扣、代金券管理、活动管理、兑换礼品、平台充值卡 8、统计:行业分析、会员统计、店铺统计、销量统计、商品统计 9、公众号:公众号配置、微信菜单、关键字回复、绑定列表、消息推送 安装须知: 默认访问的目录应该是 public 这个目录install就在这个文件下面(即请将public目录设置为根目录后,直接访问即可进行安装) 环境要求: PHP5.4以上版本(注意:PHP5.4dev版本和PHP6均不支持) DSMall多商户开源商城源码 更新日志: V6.0.5 免费版更新 1. 新增批发功能 2. 修复后台关闭4个消息模板后,商家后台接受消息页面会报错的问题 3. 优化直播商品列表样式 4. 修复后台无法恢复备份的问题 5. 新增待付款订单可以预存款支付 6. 修复已退款成功的订单会出现在待评价页面 授权版更新 1. 修复已退款成功的订单会出现在待评价页面 2. 修复手机端文章列表页面无法翻页的问题 3. 优化商品详情页面没有视频就不显示视频按钮 4. 修复微信绑定已有用户出错的问题 5. 新增批发功能 6. 删除手机端店铺详情页面 无用的店铺背景图 7. 新增待付款订单可以预存款支付 v6.0.4 免费版更新 1. 添加猜你喜欢功能 2. 优化分销会员功能 3. 修复后台管理员可以添加重复名称的问题 4. 添加商品主图视频功能 5. 修复后台店铺帮助 帮助内容列表不显示内容帮助类型的问题 6. 修复取消规格选中,隐藏不了规格名称的问题 7. 修复搜索页面默认排序不生效的问题 8. 修复后台限折扣列表批量删除按钮无效的问题 9. 修复限折扣活动结束,商品不解除锁定的问题 10. 优化评论显示 11. 后台自营店铺添加可以选择店铺分类 12. 优化注册会员页面 13. 新增阿里云直播 14. 修复直播审核页面没有设置直播商品会报错的问题 授权版更新 1. 修复手机端添加商品ID错误和图片说明尺寸不对的问题 2. 手机端规格市场价和重量取消必填项 3. 手机端商家入驻添加店铺分类必填项提示语 4. 添加商品主图视频 5. 添加猜你喜欢功能 6. 优化微信分享功能 7. 修复苹果手机无法使用微信登录的问题 8. 手机端添加商品锁定按钮 9. 修复未登录购物车页面会卡住的问题 10. 新增阿里云直播 11. 优化手机端规格值设置 v6.0.3 免费版更新 1. PC端主播不在线也可以显示直播详情页 2. 优化推荐组合设置 3. 修复后台数据无法备份的问题 4. 新增如果商品正在直播则显示直播小图标 5. 修复首页楼层底部广告没有数据,会显示侧边栏广告的问题 6. 修改现在不上传商品图片也可以添加商品 7. 优化拼团功能 8. 新增如果店铺有直播 则在店铺首页显示 9. 优化手机号登录 10. 优化页面可编辑功能 11. 店铺入驻新增可选入驻类型,(仅个人,仅企业,全部可选,全部关闭) 12. 修复添加后台管理员密码可以为空 授权版更新 1. 优化手机端快捷登录 2. 手机端登录去掉图片验证码 3. 优化页面 4. 优化入驻的店铺定位 5. 新增手机端专题活动模块 6. 优化商品列表排序 7. 店铺入驻新增可选入驻类型,(仅个人,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值