tomlobato / hash_fs

Flat, hash based, Filesystem

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Flat, hash based, Filesystem

License:MIT License


Languages

Language:C 97.3%Language:Ruby 2.0%Language:Makefile 0.5%Language:Shell 0.3%