Advice wanted on node storage filesystem

Anybody else using btrfs filesystem?
Im wondering if the tests I am running ATM are of much relevance as btrfs is hardly mainstream.

Your thoughts would be appreciated. Also any tuning tips for btrfs on a 1Tb oldskool magnetic drive. ^

^ I have a new 1TB SSD, however my laptop drive has just died so that drive is now going in the laptop instead of being dedicated for SAFE as originally intended.


I have tried BTRFS but I didn’t like it as much as ZFS so didn’t really pursue it. I don’t have any insights on how to tune it or even what the tunables are. Faster drives and controllers are what you need for more performance and only then look at tuning filesystems unless the default settings are truly terrible for the use case.

Anyway, I think that unless you need some features of BTRFS or ZFS like Snapshots or RAID you’re always going to be better off with EXT4 or maybe XFS if you are dealing with very large files or very large numbers of files. This is because these new fangled Filesystems have a performance overhead.

I can imagine that you might be disk IO bound when running a lot of nodes on a single server and putting large files. However, I can’t see it making a difference for when the network is live or for testnets. I can’t imagine even a low spec computer being disk IO bound considering the disk will be at the end of an internet connection.

But back to your point - I think BTFS or ZFS will only be slowing you down for running Baby Fleming and maybe you should just use EXT4. If you are IO bound the thing that will make the most difference is faster storage though.

How about getting a smaller capacity but fast SSD and putting it in the desktop if the 1TB SSD has to go in the laptop? A 128GB SSD would cost less than £20 and give you way better performance for the tests. That would give you enough space for a /home/user/.maid partition for running tests with 10GB per node. And you can flog it as much as you like without worrying about burning through all the write cycles of your main disk. Not a worry for the magnetic disk at the moment but when you can get a 1TB disk to replace it with for the main disk.

At some point we ought to do some benchmarking with different filesystems for the case of running lots of nodes on one computer.


Thanks for all that :slight_smile:
I just happen to have a 120Gb SSD sitting on a Pi that has not been fired up for months. I’ll attach that to the last spare SATA socket in this box and reformat to ext4.

Exploring btrfs can wait until later.
I’m not running baby-fleming as such any more. I have been running cargo run --example network_split from my local safe_network repo dir
This gives me 30+ nodes across two sections and does some putting and getting to test all is well. Then I can start throwing files at it. So far I can consistently crash it by putting a 2Gb directory of images even with the changes suggested by @joshuef Pre-Dev-Update Thread! Yay! :D - #4896 by joshuef

However if I give it several ~1Gb dirs sequentially it handles it no bother. It does seem to stall if I try to put files which have already been sent to the network thoough, I want to eliminate btrfs from my enquiries before I waste the devs time with more queries though.
So once I get this wee SSD in the box, I’ll run everything again on ext4 and hopefully produce a sensible bug report.

It would be interesting but would it be of much real world value? How many folk other than me and a couple of others are likely to run lots of nodes on one computer post-launch? Once this apparent bug I am seeing is squashed or otherwise explained away, perhaps we should concentrate on performance for one node per box?