Mailinglist Archive: opensuse (686 mails)

< Previous Next >
[opensuse] SSD and "write size"
On Mon, Jul 8, 2013 at 1:08 PM, Carlos E. R.
<robin.listas@xxxxxxxxxxxxxx> wrote:
Hash: SHA1

Content-ID: <alpine.LNX.2.00.1307081906530.6576@Telcontar.valinor>

On Monday, 2013-07-08 at 11:25 -0400, Greg Freemyer wrote:

On Sun, Jul 7, 2013 at 1:42 PM, Carlos E. R. <> wrote:

However... you can not write, say, 100 bytes on flash media, you have to
write the entire 32KiB block. That is, read it, modify the 100 bytes you
need (in memory) and then write again the 32 KiB block. That makes for a
much larger figure.


I don't know where your 32 KiB block came from. Seems too big to be a
page and too small to be a erase block.

- From here:

Flash memory card design

Very interesting. I haven't done much SSD research in the last couple
years. That writeup includes some things that are counter-intuitive to

The biggest surprise to me is the discussion of allocation groups and
that any write smaller than a allocation group causes a RMW
(read/modify/write) cycle for the entire allocation group. They say
that can cause a write amplification of up to 1024 times.

I really find that hard to believe, but it argues that the minimum
pure write with no RMW is on the order of MBs, not KBs. I am willing
to bet that is wrong, but have no way to prove it one way or the

If I was the one writing a garbage collection algorithm I would not
consolidate allocation groups with less the x% of the data invalid
where x was a variable that varied based on current conditions.

On a device with lots of free space, that might start out at 75%, and
when the device is close to full, it might have to drop to 5 or 10%.
To get down to 0.1% would be a pathological worse case pattern (ie.
100's of thousands of allocation blocks with 99.9% valid data and no
available free allocation groups.)

I guess it could happen, but not with any of the workloads I use. In
fact, one of the reasons SSDs are over-provisioned is to keep the
garbage collection from having to be that aggressive. That is, if a
SSD is 10% over provisioned, it should never have to garbage collect
allocation groups that are less than 10% invalid.

The statement the every write triggers a garbage collection seems
ridiculous to me on its face, so i will have to disagree with that
aspect of the link.


To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages