2

Monero blockchain is an LMDB. LMDB uses copy-on-write. btrfs with copy-on-write may decrease write performance of LMDB. However, the bottleneck during monero blockchain synchronization seems to be random read instead of write. btrfs without copy-on-write is as unreliable as ext4 or xfs without journal.

I'm considering btrfs, ext4, and xfs. Which one is the best for monero blockchain synchronization on HDD?

Does autodefrag btrfs mount option degrade synchronization performance? Does btrfs compression improve random read performance?

Sync performance is important. Resilience against power loss is considered, too.

5
  • "Sync performance is important." <- Then use an SSD, that will give far better performance regardless of which filesystem you use.
    – jtgrassie
    Feb 12, 2021 at 3:57
  • Multi-terabyte SSD is still expensive. I can't afford them. I also haven't seen 5TB SSD on market. So, I chose to optimize monerod on HDD.
    – crocket
    Feb 12, 2021 at 5:47
  • 1
    "Multi-terabyte SSD is still expensive" <- A full, unpruned Monero blockchain is <100G.
    – jtgrassie
    Feb 12, 2021 at 15:59
  • That's a short-sighted perspective. In decades, it will be 6TB and even more. There is no upper limit to monero blockchain size.
    – crocket
    Feb 14, 2021 at 3:04
  • A pruned blockchain is ~30G and the growth curve is well below the advances in storage and decreasing costs. Consider how storage has changed over the last "decades". Most average mobile phones have enough SD storage for the Monero blockchain (pruned or unpruned). I digress. You mentioned importance of sync speed so I'd be remiss not to point out that SSD will give you the most measurable increase.
    – jtgrassie
    Feb 14, 2021 at 6:48

1 Answer 1

1

http://www.lmdb.tech/bench/microbench/july/ provides some great research regarding different filesystem format performance on LMDB sytems.

"Just to summarize, jfs with an external journal is the fastest for synchronous writes. If your workload demands fully synchronous transactions, this is clearly the best choice. Otherwise, the original ext2 filesystem is fastest for asynchronous writes. "

Question becomes does your instance of monerod require synchronous transactions or just asynchronous writes?. The Symas Corp. research highlights the considerable throughput cost of journaling file systems. Given that the blockchain is a public ledger I do not see the value in journaling the alterations to your copy of the public file. So mkfs.jfs if you must but ext2 seems like the better approach to me. And no, I would never select ext4. But please review the Symas literature on your own http://www.lmdb.tech/bench/microbench/july/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.