Erik Trimble wrote:
Ragnar Sundblad wrote:
Yes, there is something to worry about, as you can only
erase flash in large pages - you can not erase them only where
the free data blocks in the Free List are.
I'm not sure that SSDs actually _have_ to erase - they just overwrite anything there with new data. But this is implementation dependent, so I can say how /all/ MLC SSDs behave.

I meant to say that I DON'T know how all MLC drives deal with erasure.

(I don't think they typically merge pages, I believe they rather
just pick pages with some freed blocks, copies the active blocks
to the "end" of the disk, and erases the page.)
That is correct, as your pointer to the Numonyx doc explains.

I'm pretty sure compacting doesn't occur in ANY SSDs without any OS intervention (that is, the SSD itself doesn't do it), and I'd be surprised to see an OS try to implement some sort of intra-page compaction - there benefit doesn't seem to be there; it's better just to optimize writes than try to compact existing pages. As far as reclaiming unused space, the TRIM command is there to allow the SSD to mark a page Free for reuse, and an SSD isn't going to be erasing a page unless it's right before something is to be written to that page.
My thinking of what compacting meant doesn't match up with what I'm seeing general usage in the SSD technical papers is, so in this respect, I'm wrong: compacting does occur, but only when there are no fully erased (or unused) pages available. Thus, compacting is done in the context of a write operation.

--
Erik Trimble
Java System Support
Mailstop:  usca22-123
Phone:  x17195
Santa Clara, CA
Timezone: US/Pacific (GMT-0800)

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to