1. 15
  1.  

  2. 10

    For reference, this is one chapter out of the (free and excellent) book Operating Systems: Three Easy Pieces, by Remzi Arpaci-Dusseau and Andrea Arpaci-Dusseau . The full thing is available here: https://pages.cs.wisc.edu/~remzi/OSTEP/

    1. 2

      by Remzi Arpaci-Dusseau and Andrea Arpaci-Dusseau

      Idd, I’m becoming quite a fan of the work done by those two. From research on SSD internals, to file-systems and databases and now I found this gem.

      1. 3

        From research on SSD internals, to file-systems and databases and now I found this gem.

        Newbie here, I am trying to learn about file systems and databases. Can you please link to those resources?

        1. 1

          Apart from the references in a paper itself to find previous work, I’m a big fan of the citations feature of papers found via researchgate.net. If you have one good paper, i.e. The_Unwritten_Contract_of_Solid_State_Drives then just scroll to the “Citations” section on that website. This way you easily discover new research that builds upon that. Also I found the textbook Database System Concepts very complete, it also refers to research papers for further reading. I’ll keep posting links to stuff that I find interesting, currently in the area of file systems and databases.

    2. 2

      Log-structured filesystems are well worth reading about. On spinning rust, the need for compaction and random access was painful and they mostly died out. On SSDs, you want to write entire cells at a time, overwrites of things smaller than a cell are more expensive than writes of large chunks, and seeks have some overhead but nowhere near as much as on mechanical disks.

      The ideas in log-structured filesystems are also used to implement CoW filesystems, such as ZFS and APFS. For reliability, modern variants of classic inode-based filesystems use a journal, which is effectively a log-structured filesystem for metadata embedded in a conventional filesystem for data. CoW filesystems remove the separation and combine the log-structured approach for both, though often with different rings for different kinds of data.