/hash_fs

Flat, hash based, Filesystem

Primary LanguageCMIT LicenseMIT

HashFs is a flat filesystem written for learning purposes with a specific workload in mind:

  • Stores milions of files,
  • High creat, low unlink rates,
  • Fast file lookup.

It Uses...

  • The ridiculously fast XXHash, borrowed from dev kernel to the currently stable 4.15.10 (https://lwn.net/Articles/726337/).
  • A list of block Extents for file data, mapped in a array [(start, length), ...] stored at the end of the last data block.

Disk Layout

blk 0 / byte 1024
superblock -- hash keys bitmap -- hash keys -- inodes -- data

metadata size calulations

Refs