WAL参数疑问

sync-log、wal-bytes-per-sync、bytes-per-sync

这几个参数到底该怎么李姐,能否明确一下? 每次看到就打脑壳。 如果明确不了,我就按照理解1来进行理解了。这很合理。

image

理解1:

当设置 sync-log=true,每次写入都要 sync WAL,由 wal-bytes-per-sync 来控制速率,默认为512KB。

当设置 sync-log=false ,WAL 使用异步刷盘,由 bytes-per-sync 来控制速率,默认为1MB。

理解2:

sync-log 只是控制 WAL 日志是同步刷盘还是异步刷盘。

wal-bytes-per-sync 控制 WAL 刷盘速率。

bytes-per-sync 控制 memtable 刷盘速率。

参考:

https://github.com/tikv/tikv/issues/4828

**

**

这都有回答了阿…

你是在怀旧么~ :smiley:

bytes-per-sync 按上面的讲的我觉得不对, 要不然这个参数用来做什么。

这是文档上面2个参数的解释:

bytes-per-sync

  • 异步 Sync 限速速率。
  • 默认值:1MB
  • 最小值:0
  • 单位:B|KB|MB|GB

wal-bytes-per-sync

  • WAL Sync 限速速率,默认:512KB。
  • 默认值:512KB
  • 最小值:0
  • 单位:B|KB|MB|GB

同步刷盘,异步刷盘

分别给了不同的属性帮助来控制刷盘的速度,挺好的~

wal-bytes-per-sync git上面解释这个当设置sync-log为false时,按这个速率刷盘, 相当于异步sync了。

bytes-per-sync 这个参数的解释是异步 Sync 限速速率。

哪个是异步,哪个是同步啊

你的理解1 ,写的是对的阿…

异步刷盘,在极端情况下,还是会丢数据…当然范围很小,哪个issue 中也有这个描述

我也不知道对不对,感觉怪怪的。

bytes-per-sync 等看看有没有人知道这个到底是干啥的。

git 上面的回答和 这2个参数的解释相悖了,要么写文档的挨打,要么git的小伙伴挨打。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。