FTL and obsolete sectors
Posted May 18, 2007 20:32 UTC (Fri) by seanyoung
Parent article: LogFS
The logfs paper mentions obsoleting data in an ftl. I wrote a patch for that some time back but it didn't work all that well.
I introduced a new barrier request "forget" (obsolete would have been a better name). The ftl block device can used this information; however the barrier request caused more writes than without, as write requests before and after the barrier cannot be merged.
For example, the fat table itself is repeatedly written. If:
- write fat
- forget barrier request
- write fat again
Without the forget barrier the first write can be merged with second. So the only way to do this properly is by adding functionality to the block layer which can merge forget/obsolete requests. So the patch as describes actually increases I/O.
Another problem was that the in-kernel FTL layers are not used much nowadays, so the benefit would be limited. OTOH, the CompactFlash ATA command set does have an "erase" command which could possibly do exactly this -- I never verified this. However if it does compact flash memory would be faster and last longer.
to post comments)