Remix.run Logo
tjoff 4 hours ago

It will try to do that yes, but there are consequences, drawbacks and imperfections.

You can only cheaply do so with free blocks, and if 70% is occupied you can only spread it out over the remaining 30%. After you've done that for a while you'll have to rearrange existing data which incurs more writes and less performance. And fragmentation is still an issue.

There are tons of tradeoffs - which will be better or worse for different workloads. But to assume that it wear perfectly, which most people seem to do because it is easy, isn't particularly realistic.

cm2187 3 hours ago | parent [-]

That’s why SSDs have overprovisioning, more so for enterprise drives. And why TRIM is important. That being said most workloads are sequential, particularly retail usage. Much easier to deal with for the controller than enterprise workload ratings that assume 4k random writes

tjoff 2 hours ago | parent [-]

Yes? Not sure what your point is.

Sequential workloads and just filling the drive over and over are very different still.

cm2187 2 hours ago | parent [-]

The drive internally usually stores data in blocks larger than the 4k blocks it pretends to use to the OS (say it uses 16k blocks internally). So if your writes are sequential, it will most likely write the same 16k block in one go. If you write random 4k blocks, it will have to rewrite a full 16k block for every 4k block you write, hence write amplification.

So if you fill the drive over and over using sequential writes you can expect way more endurance than if you write random blocks.

tjoff 2 hours ago | parent [-]

Yes, that was one of my points in my first post...