RAM speed is great. However my impression from the rollout announcement was that the speed gains are coming from performing sequential writes to disk instead of random writes:
What you are saying sounds like that uploads get stored in memory and are eventually stored on disk at some later time. So is this like an in memory writeback cache that holds all the successful uploaded pieces until they get flushed to disk?
I cannot verify this, but what I have read was
https://review.dev.storj.tools/c/storj/storj/+/14910
Data is stored in log files (called extents in ShardStore). Each log
file is an append only file where piece data is written into it
sequentially. When a new piece comes in, an open and available log file
handle is selected and claimed and the piece is written into that log
file. Then the log file is flushed to disk and returned.
If all pieces are uploaded to RAM, what determines how much data will be kept in volatile memory that will be lost e.g. on a power loss? Because from what you are saying I assume once a piece has been written to the memory it is considered as uploaded to the satellite even if it is not yet flushed to disk.
Also this sounds like there is no benefit from either utilizing SSDs directly or indirectly as writing cache e.g. via LVM and you’d always have to throw more RAM at a node for upload performance optimization?