思考(八十九):WAL 实现

本文探讨了WAL(预写日志)在数据库和游戏开发中的作用,特别是在确保数据可靠性的关键模块如邮件、充值、商城等方面。参照Etcd的WAL实现,提到了WAL实现的关键点,并指出WAL文件应保持只读或追加模式,避免更新操作,同时讨论了fallocate + page writer与mmap的潜在优势。
摘要由CSDN通过智能技术生成

WAL

WAL(Write Ahead Log) 预写日志,是数据库系统中常见的一种手段,用于保证数据操作的原子性和持久性

在游戏开发中,某些重要模块,如邮件、充值、商城等,都可以引入 WAL 保证其可靠性

甚至可以在游戏框架层: DB 框架级别、事务框架级别,引入 WAL 重底层保证其可靠性

WAL 实现要点

参考 Etcd WAL 实现,总结下至少应该有以下一些特性或优化手段:

要点 说明 目的
flock 独占 WAL 文件 不会被意外删除或修改
fallocate 预分配磁盘空间 是顺序写的前提保障
renameat 临时预准备完毕 WAL 文件后,正式重名 WAL 文件 保证 WAL 文件创建的原子性,避免创建一个数据顺坏的 WAL 文件
file pipeline 预先多准备好 1 份临时的 WAL 文件 避免 create WAL file 卡顿
pad bytes
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fananchong2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值