3 ms·
I've worked on ssd based systems and while we over-engineered our system due to such fears we never saw any device getting anywhere close to its limits and only
by baruch 9y ago
I've worked on ssd based systems and while we over-engineered our system due to such fears we never saw any device getting anywhere close to its limits and only once did I see an SSD have a media problem (i.e. failure to read data previously written, after a rewrite of the data from raid no more issues came from that ssd).
This was on enterprise SSDs but I generally believe that the fear from SSD media is somewhat overblown. You do need to care about the wear you will put on the SSD and engineer things so that you are within bounds but the SSD makers and the firmware essentially assume and spec for these random writes.
In fact, I truly doubt that unless you can as an app know in advance what data is going to have the same lifetime and is better written together and what data needs to be placed in different places there is very little that you can do to make things far better.
When you know the lifetimes you can use new features like stream support that is going into newer SSDs in order to help both sides work better. You will get longer endurance and also better performance (less random erase cycles slowing your reads and writes down).
- baruch 9y agoAn issue with their work for current SSDs is that the write groups they use are about 16MB to 32MB, current SSDs, need far larger write sizes in order to get the optimization they used to get (essentially they tried to fill an entire erase group at once to get control of the locality). This will no longer work at the same level it worked before. Their estimate of improving endurance is based on using a disk simulator with FTL and not by checking the actual wear level change before and after their test which to me would be fairly suspect. They are not testing against a real FTL and full world behavior of the SSD and are rather "inventing" a test which is very limited and doesn't say much. Admittedly, testing the way I suggest would require a far longer test and take a lot longer but this is the only thing that really tells you if you are making things work in real life. SSDs are also affected by the workload and especially by any down times that you give it. If you let the SSD sit with no queued commands it will clear buffers and do maintenance work that will improve its behavior which will also affect the result so to get a real "real-world" behavior you need to factor that as well which will increase your test time.