Initially used in digital audio players, digital cameras, mobile phones, and USB memory sticks, flash memory may become the
dominant form of end-user storage in mobile computing, either completely replacing the magnetic hard disks or being an additional
secondary storage. We study the design of algorithms and data structures that can exploit the flash memory devices better.
For this, we characterize the performance of NAND flash based storage devices, including many solid state disks. We show that
these devices have better random read performance than hard disks, but much worse random write performance. We also analyze
the effect of misalignments, aging and past I/O patterns etc. on the performance obtained on these devices. We show that despite
the similarities between flash memory and RAM (fast random reads) and between flash disk and hard disk (both are block based
devices), the algorithms designed in the RAM model or the external memory model do not realize the full potential of the flash
memory devices. We later give some broad guidelines for designing algorithms which can exploit the comparative advantages
of both a flash memory device and a hard disk, when used together.
Supported in part by the DFG grant ME 3250/1-1, and by MADALGO - Center for Massive Data Algorithmics, a Center of the Danish
National Research Foundation.