Forgot your password?
← Previous Change
side by side
lines around each change
Show the changes in full context
White space changes
Oct 26, 2009, 2:43:15 PM (
= Issues with BFS =
BFS has several issues that can only be solved by breaking binary compatibility. To solve all of them, It's a better idea
to start a new file system (based on the BFS sources) than to try to remain compatible.
To mention the ones I currently remember without further investigation:
* The space of files that were deleted, but still in use is lost after a system crash (checkfs fixes that, so it's a good idea to run it from time to time after crashes).
* There is a global block bitmap that could solved better using some tree.
* The index is not written for user queries (looking up wildcards can be pretty expensive).
* There is a single fixed size log which theoretically prevents some operations from happening (those that doesn't fit into the log anymore).
* Writing meta data is essentially single threaded (as there is only one log).
* The double indirect block range is implemented in a stupid way which makes it almost useless (it could cover a lot more space easily).
* No support for hard links.
* One inode covers a whole block, and it only embeds attribute data into that block (could do the same with file data).
* Potentially scatters inodes over the whole disk (somewhat balanced by its allocation policies) that aren't optimal for directory reading speed.
* The B+trees fragment over time.
* No data correctness facilities (ie. data cannot be placed in the log, and there are no checksums either).
* The indexes hurt performance as they are updated synchronously.
Visit the Haiku project at