On Mon, Apr 12 at 10:50, Bob Friesenhahn wrote:
On Mon, 12 Apr 2010, Tomas Ögren wrote:

For flash to overwrite a block, it needs to clear it first.. so yes,
clearing it out in the background (after erasing) instead of just before
the timing critical write(), you can make stuff go faster.

Yes of course. Properly built SSDs include considerable extra space to support wear leveling, and this same space may be used to store erased blocks. A block which is "overwritten" can simply be written to a block allocated from the extra free pool, and the existing block can be re-assigned to the free pool and scheduled for erasure. This is a fairly simple recirculating algorithm which just happens to also assist with wear management.

The point originally made is that if you eventually write to every LBA
on a drive without TRIM support, your "considerable extra space" will
only include the extra physical blocks that the manufacturer provided
when they sold you the device, and for which you are paying.

The advantage of TRIM, even in high end SSDs, is that it allows you to
effectively have additional "considerable extra space" available to
the device for garbage collection and wear management when not all
sectors are in use on the device.

For most users, with anywhere from 5-15% of their device unused, this
difference is significant and can improve performance greatly in some
workloads.  Without TRIM, the device has no way to use this space for
anything but tracking the data that is no longer active.

Based on the above, I think TRIM has the potential to help every SSD,
not just the "cheap" SSDs.

--
Eric D. Mudama
edmud...@mail.bounceswoosh.org

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

Reply via email to