欢迎来到 榆林市某某通信设备专卖店
全国咨询热线:020-123456789
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
Write-Ahead Log (预写日志)
  来源:榆林市某某通信设备专卖店  更新时间:2024-05-03 17:15:48

Write-Ahead Log (预写日志)

WAL 概述

WAL 是写日 write-ahead log 系统 ,其核心思想是写日将用户的所有修改操作(插入 、删除)写入日志,写日然后再应用到系统状态  。写日一旦日志写入成功 ,写日就可以通知用户操作成功 。写日由于日志采用尾部追加方式写入 ,写日耗时较短,写日因此不会长时间阻塞用户线程。写日另外 ,写日为防止意外退出导致数据丢失,写日系统重启时会根据日志重做用户操作,写日保证数据可靠性。写日

Write-Ahead Log (预写日志)

WAL - 预写日志

WAL 一直是传统 RDBMS 系统中的一个共识 ,用于帮助保证原子性和持久性(ACID 的写日 A 和 D)。对表的所有更新首先写入 WA) ,然后异步的方式使用。

示例 WAL 和 WALEntry 结构 :

type WAL struct { n dir string // 存放 WAL 文件的目录 。nn file *os.File // 引用文件nn metadata []byte // 每个 WALn 解码器头部记录的元数据 *decoder // 解码器解码记录n 编码器 *encoder // 编码器编码记录n n mutex sync.Mutex // To确保每个写入器一次更新n lastIndex uint64 // 保存到 WAL 的最后一个条目的索引n} nntype WALEntry struct { n lsn uint64 // 每个日志条目的唯一标识符n data []byte // 实际 WAL 条目(以字节为单位) n crc uint32 // crc for数据完整性验证n type uint32 // wal 记录的类型 n}n

为什么需要 WAL

为什么不将更改直接刷新到实际数据文件?

它有2个方面——

  1. 对磁盘的写入永远不会真正直接刷新 ,数据经过各种缓冲区(RAM/缓冲区缓存/磁盘缓存) ,然后才真正刷新到磁盘扇区 。这些缓存有助于减少磁盘写入次数 ,有助于提高性能 ,但是,它们的缺点是,如果出现重启/崩溃,这些中间缓存中的数据会丢失,从而影响我们数据的持久性  。如果我们开始避免缓存,每次写后进行磁盘刷新 ,这样的动作会影响系统的性能和吞吐量 。
  2. 如上面提到的,磁盘写入很慢,在磁盘写入中  ,与随机磁盘写入相比,顺序磁盘写入要快得多(也适用于 SSD) 。
Write-Ahead Log (预写日志)

WAL设计

WAL 是一个仅附加日志 ,它将数据存储中的每个状态更改存储为日志 。

一个单独的异步进程可以从 WAL 读取操作,然后按照正常流程通过不同的缓存将数据更新应用于磁盘上的实际数据文件 ,有助于提高数据存储的写入吞吐量。

此外,如果发生故障  ,可能会有未应用的更新,由于我们在 WAL 文件中存在操作,我们可以从 WAL 重放操作并应用它们以使数据存储恢复到一致状态。因此,WAL 帮助我们确保数据的完整性和可靠性,同时仍然允许我们的数据存储具有高写入吞吐量 。

注意事项

1. 将 WAL 操作刷新到磁盘

如前所述 ,对磁盘的写入可能不会直接刷新,考虑到写入系统中导致性能的问题 ,需要进行权衡刷新频率或微批处理或两者来将更改刷新到磁盘,以帮助提高性能。请注意,此处存在数据丢失的风险  。

2. 损坏检测

需要确保任何刷新到磁盘的操作都不会损坏, WAL 记录还包含一个 CRC 值,该值可用于验证何时从 WAL 读取记录并确保没有损坏。

3. 重复操作

由于 WAL 是一个附加追尾的文件 ,因此如果客户端由于通信故障而重试 ,可能会遇到在 WAL 上写入重复操作的情况 。因此 ,每当读取 WAL 时,要确保忽略重复项 ,或者对应用数据的动作具有幂等性的 。

现状

1)所有数据库,包括像Cassandra这样的NoSQL数据库都使用WAL来保证持久性 。

2) Kafka 使用了与 WAL(Commit Log) 类似的结构。

3) 像 Rocks DB 、Level DB 这样的 KV 存储和像 Apache Ignite 这样的分布式缓存也使用 WAL。

概括

总而言之 ,WAL 提供一下价值

1) 更快的性能和吞吐量 ,避免了所有更改的数据刷新/磁盘写入 。

2) 重启时的可恢复性 ,操作可以从 WAL 应用到实际的数据存储  。

3)能够恢复到时间点快照 ,我们在 WAL 中存在所有操作。


友情链接小米12 Pro天玑版发布:首发天玑9000+,升级5160mAh电池飞天云动科技有限公司向港交所提交上市申请书YonBuilder移动开发平台6月SDK发版重点回顾全球第一浏览器多开终于不卡了 只因这项升级华润微:公司未遇到客户大量砍单2022手机挑选攻略—如何挑选高性价比手机?你知道别的星球向地球发出的光线,波长为什么被“红移”吗?半导体、光伏、新能源、白酒等基板块后市预推。安稳理财大众思皓花仙子系列之——蒲公英木头姐二季度增持小鹏汽车和英伟达,减持特斯拉但仍是重仓股智能驾驶感知大战全面打响,谁在引领视觉技术的革新?若预算充足,换机建议一步到位,这4款旗舰机是目前“最高配置”盘点搭载120W有线充电的手机小红书被迫裁员20%,上市估值悬了?京东和叮咚的格局金盘科技直挂35kV高压大容量储能装备投产上市苹果赢麻了导致年轻人不换手机?不是这样的Yii2批量插入数据SAS:获取数据表最末尾一条记录的方法数位大数据:深耕线下商业大数据 推进实体经济数字化稀释诱导的水中竞争超分子途径的凝胶-溶胶-凝胶-溶胶转变红魔骁龙8+新机官宣:7月11日发布 最大18G+1T飞睿智能人体存在感应器,提升酒店服务体验,智能存在感知技术直降3750元!苹果Mac Studio官翻版上市:价格真香微软反悔,不再默认禁用Office宏步入正轨的长视频,押注未来的爱优腾电商如何为店铺引流 让商品爆单?广汽 AION Y 夏季焕新购车节锁定新权益印度5G频谱拍卖迎来4个申请者iPhoneX升级iOS15.6b5续航超越以往版本,老机型又恢复活力了得生鲜者得天下│朴朴的抢滩登陆,引一众寡头竞争渡异动快报:北特科技(603009)7月8日10点2分封涨停板高通平台msm8916修改开机logo「原创」女版乔布斯、硅谷骗子,比贾跃亭还牛,不靠PPT也能骗到9亿美金我国加速推动平台经济反垄断常态化进程如何处理 localStorage 使用中的错误(如空间超出错误)上市价4499元,跌至2699元,OPPO高端旗舰,网友直呼利润太高了太阳能光催化分解水制氢研究报告华为 nova 10 正式发布微软反悔,不再默认禁用Office宏
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

2.1097

Copyright © 2024 Powered by 榆林市某某通信设备专卖店   sitemap