mirror of
https://github.com/versity/scoutfs.git
synced 2026-07-25 17:42:50 +00:00
f9ff25db231fe29b415822667847c28db30f14fa
Entries in a directory are indexed by the hash of their name. This introduces a perfectly random access pattern. And this results in a cow storm as directories get large enough such that the leaf blocks that store their entries are larger than our commits. Each commit ends up being full of cowed leaf blocks that contain a single new entry. The dirent name fingerprints change the dirent key to first start with a fingerprint of the name. This reduces the scope of hash randomization from the entire directory to entries with the same fingerprint. On real customer dir sizes and file names we saw roughly 3x create rate improvements from being able to create more entries in leaf blocks within a commit. Signed-off-by: Zach Brown <zab@versity.com>
Description
No description provided
6.9 MiB
Languages
C
86.3%
Shell
10%
Roff
2.5%
TeX
0.8%
Makefile
0.4%