josehu07 / josehu07.github.io

Guanzhou's personal website
3 stars 1 forks source link

technical/2020/06/13/write-buffering-lsm-tree #6

Open utterances-bot opened 2 years ago

utterances-bot commented 2 years ago

Write Buffering, LSM Tree, & Journaling Summarized | Guanzhou (Jose) Hu

In file system & database design, write buffering (write grouping or coalescing) is a commonly-used technology to avoid in-place updates and only expose sequential writes to disks. Log-Structured Merge Tree (LSM tree) is a modern practical solution which sacrifices a little bit of read performance to enable efficient write buffering. Journaling (write-ahead logging) is another file system terminology which is sometimes confused with write buffering. In short, write buffering is for write performance and journaling is for crash recovery - they are different, but can be combined.

https://www.josehu.com/technical/2020/06/13/write-buffering-lsm-tree.html

ShawnZhong commented 2 years ago

A file system which combines write buffering and journaling in this way is called a log-structured file system (LFS) or copy-on-write file system

To me, it seems that LFS and CoW are two different techniques that can be used separately.

josehu07 commented 2 years ago

To me, it seems that LFS and CoW are two different techniques that can be used separately.

I agree with you. I think the name “CoW file system” does not refer to the general technique of CoW (e.g., shadowing for atomicity or CoW on fork, etc.). But surely it is a bit misleading - I will update the wording.