码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 应该了解的数据库系统高性能利器-WAL


    WAL是什么

    在计算机科学中,预写式日志(Write-ahead logging,缩写 WAL)是关系数据库系统中用于提供原子性和持久性(ACID属性中的两个)的一系列技术。在使用WAL的系统中,所有的修改在生效之前都要先写入log文件中。

    WAL允许用in-place方式更新数据库。另一种用来实现原子更新的方法是shadow paging,它并不是in-place方式。用in-place方式做更新的主要优点是减少索引和块列表的修改。ARIES是WAL系列技术常用的算法。在文件系统中,WAL通常称为journaling。PostgreSQL也是用WAL来提供point-in-time恢复和数据库复制特性。

    log文件是存储在磁盘中,即持久化,所以WAL一个核心功能就是保证数据不丢,故障后可以启动恢复。

    参考这张图,很好说明了WAL的位置:(sync成本高,append说明是顺序写,同时做批量)

    运用案例

    1. 数据库系统中的redo log和undo log。

    可以看下本人以前总结过的redo log刷盘策略

    2. Zookeeper的更新操作先写事务日志WAL。

    3. Elasticsearch 的 translog ,或者叫事务日志,在每一次对 Elasticsearch 进行操作时写入。

    4. etcd的wal,数据修改写入wal日志。

    5. Hbase的HLog,每次的数据修改都会写入Hlog,同时写入MemStore。

    可以参考下如下Hlog和MemStore的关系。

    6. Cassandra等等各种其他数据库基本都用到WAL

    WAL解决的痛点

    1. 数据持久性:提高写入效率,会先写入内存,但内存数据不安全,借助WAL落盘

    2. 绕过IO瓶颈:避免随机磁盘读写,WAL是顺序日志,提升IO吞吐

      数据随机写入会导致脏页较多,导致更多的fsync,将更新转换成顺序的日志,批量刷盘,效率能提升几个量级

    3. 高并发:增强写入和读取的并发能力,同时请求时数据写入和最终数据落盘是可以并行执行

  • 相关阅读:
    CAD二次开发(2)-将直线对象添加到CAD图形文件
    面试必杀技:Jmeter性能测试攻略大全(第一弹)
    GO微服务实战第一节 为什么说云原生重构了互联网产品开发模式?
    软考软件设计师----软件工程(自用)
    HBuilder开发者必备!Windows上传IPA文件的软件分享
    C# 常量
    dpdk ring多/单生产者、多/单消费者
    使用Wesky.Net.Opentools库,一行代码实现自动解析实体类summary注释信息(可用于数据实体文档的快速实现)
    .net core框架
    人工智能基础-趋势-架构
  • 原文地址:https://blog.csdn.net/feng_zi0yhv/article/details/125450672
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号