当前位置:首页 > 科技  > 软件

一分钟了解,预写日志 WAL 的核心思路...

来源: 责编: 时间:2024-07-03 17:25:28 83观看
导读上一篇《刷盘,还是不刷盘,是一个问题》中我们遇到了哪些问题?(1) 已提交事务+未提交事务的ACID特性怎么保证?画外音:上一篇中遇到的问题,主要是原子性与持久性。(2) 数据库崩溃,怎么实施故障恢复?(3) 每次都刷盘随机写,性能低,

上一篇《刷盘,还是不刷盘,是一个问题》中我们遇到了哪些问题?vn728资讯网——每日最新资讯28at.com

(1) 已提交事务+未提交事务的ACID特性怎么保证?vn728资讯网——每日最新资讯28at.com

画外音:上一篇中遇到的问题,主要是原子性与持久性。vn728资讯网——每日最新资讯28at.com

(2) 数据库崩溃,怎么实施故障恢复?vn728资讯网——每日最新资讯28at.com

(3) 每次都刷盘随机写,性能低,怎么提高数据库性能?vn728资讯网——每日最新资讯28at.com

画外音:正常情况下,不需要每个事务提交,都进行刷盘。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

要提升随机写性能,最容易想到的,就是利用高性能的顺序写日志,记录事务中的一些信息,来实现已提交事务的数据“要刷盘”,未提交事务的数据“不刷盘”,以及实现故障恢复。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

这个顺序写的日志,记录什么内容呢?

事务中,对数据库的写操作。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

如何来标识写操作的时序呢?

每条日志记录会有一个递增的日志序列号(log sequence number,LSN),唯一标识一条日志记录。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

还有一种特殊的日志记录,叫检查点(checkpoint)。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

检查点记录了某一个时刻,缓冲池(buffer pool)中所有数据页(page)的状态信息。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

有了检查点和顺序写日志,我们就可以通过:vn728资讯网——每日最新资讯28at.com

  • 重放(redo)已提交事务的操作;
  • 取消(undo)未提交事务的操作;
  • 顺序写替代随机写;

来解决,上面提到的三大难题。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

这,就是我们今天要聊的核心技术,预写日志(write-ahead logging,WAL)。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

预写日志不仅仅是一种日志,更像是一种模式,一种协议,它要求在进行数据写入操作时,必须先写入操作日志。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

预写日志的分层结构是怎么样的?

如同数据的内存-磁盘两层结构一样,为了提升性能,预写日志也分为内存-磁盘两层结构:vn728资讯网——每日最新资讯28at.com

  • 内存层:WAL buffer
  • 磁盘层:WAL log file

vn728资讯网——每日最新资讯28at.com

预写日志会记录哪些信息呢?

还是之前那个事务T1:vn728资讯网——每日最新资讯28at.com

  • vn728资讯网——每日最新资讯28at.com

    vn728资讯网——每日最新资讯28at.com

    开始事务
  • 读取记录A的值(假设A=1)
  • 修改记录A的值(假设修改为2)
  • 提交事务

vn728资讯网——每日最新资讯28at.com

预写日志首先会记录,T1事务开始:vn728资讯网——每日最新资讯28at.com

LSN=0:<T1, BEGIN>vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

读取A的值是一个读操作,不需要进行记录。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

修改记录A的值是一个写操作,需要进行记录,而且要记录修改前的值,与修改后的值,类似于:vn728资讯网——每日最新资讯28at.com

LSN=1:<T1, A, 1, 2>vn728资讯网——每日最新资讯28at.com

以方便未来进行redo与undo(如上图中的屎黄色1)。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

接下来,事务会对缓冲池中的数据进行修改(如上图中的屎黄色2)。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

到目前为止,预写日志都还是写在buffer中,并没有刷到磁盘上。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

事务提交时,预写日志,以及缓冲池会发生什么?

首先,T1事务提交,也会记录到buffer中:vn728资讯网——每日最新资讯28at.com

LSN=2:<T1, COMMIT>vn728资讯网——每日最新资讯28at.com

但这样,还远远不够。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

预写日志,必须全部从buffer里刷到磁盘上,也就是日志文件中,事务才能标记上“已提交”,并返回给应用程序。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

没错,只要预写日志从buffer刷到磁盘,而不需要数据从buffer刷到磁盘,就能返回应用程序,事务提交成功。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

至于数据什么时候从buffer刷回磁盘,这取决于缓冲池刷盘策略,例如:隔一段时间异步刷盘(如上图中的屎黄色便签)。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

这,就是预写日志的核心思路。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

总结与思考:

(1) 日志序列号(log sequence number,LSN),唯一标识一条日志记录,递增;vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

(2) 检查点(checkpoint),记录了某一个时刻,缓冲池(buffer pool)中所有数据页(page)的状态信息。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

(3) 预写日志记录什么核心信息?vn728资讯网——每日最新资讯28at.com

  • 事务开始
  • 事务结束(提交/回滚)
  • 事务的写操作,修改前/修改后的值

vn728资讯网——每日最新资讯28at.com

(4) 数据库何时能向应用程序返回“事务成功”?vn728资讯网——每日最新资讯28at.com

预写日志刷盘成功之后。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

(5) 上一篇《刷盘,还是不刷盘,是一个问题》结尾的问题:在数据库返回应用程序事务成功之前,要不要将数据刷回磁盘?vn728资讯网——每日最新资讯28at.com

只要有预写日志机制,只需要预写日志刷盘,不需要数据刷盘。vn728资讯网——每日最新资讯28at.com

vn728资讯网——每日最新资讯28at.com

新的场景出现了:如果数据库崩了,怎么利用检查点(checkpoint)以及预写日志,来进行刷盘和数据恢复呢?让你来设计,你会怎么做?vn728资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-98559-0.html一分钟了解,预写日志 WAL 的核心思路...

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 掌握 Python:15 个关于字符串操作的神级单行代码

下一篇: len() 函数妙用:十个增强 Python 程序可读性的实践

标签:
  • 热门焦点
  • Redmi Buds 4开箱简评:才199还有降噪 可以无脑入

    Redmi Buds 4开箱简评:才199还有降噪 可以无脑入

    在上个月举办的Redmi Note11T Pro系列新机发布会上,除了两款手机新品之外,Redmi还带来了两款TWS真无线蓝牙耳机产品,Redmi Buds 4和Redmi Buds 4 Pro,此前我们在Redmi Note11T
  • 7月安卓手机好评榜:三星S23Ultra好评率第一

    7月安卓手机好评榜:三星S23Ultra好评率第一

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年7月1日至7月31日,仅限国内市场。第一名:三星Galaxy S23 Ultra好评率:95.71%在即将迎来新
  • 谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌在KDD 2023发表了一篇工作,探索了推荐系统ranking模型的训练稳定性问题,分析了造成训练稳定性存在问题的潜在原因,以及现有的一些提升模型稳定性方法的不足,并提出了一种新
  • 共享单车的故事讲到哪了?

    共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • ESG的面子与里子

    ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大&ldquo;烤&rdquo;之下的除了众生,还有各大企业发布的ESG报告。ESG是&ldquo;环境保
  • 年轻人的“职场羞耻感”,无处不在

    年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元&ldquo;人在职场,应该选择什么样的着装?&rdquo;近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • OPPO K11评测:旗舰级IMX890加持 2000元档最强影像手机

    OPPO K11评测:旗舰级IMX890加持 2000元档最强影像手机

    【Techweb评测】中端机型用户群体巨大,占了中国目前手机市场的大头,一直以来都是各手机品牌的“必争之地”,其中OPPO K系列机型一直以来都以高品质、
  • 英特尔Xe-HP项目终止,将专注Xe-HPC/HPG系列显卡

    英特尔Xe-HP项目终止,将专注Xe-HPC/HPG系列显卡

    据10 月 31 日消息报道,英特尔高级副总裁兼加速计算系统和图形事业部总经理 表示,Xe-HP“ Arctic Sound” 系列服务器 GPU 已经应用于 oneAPI devcloud 云服
  • 上海举办人工智能大会活动,建设人工智能新高地

    上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top