Flash memory may become the dominant form of end-user storage in mobile computing. Since the storage device is not only used to store data but also to actually compute on it if the problem at hand does not completely fit into main memory, it is important to characterize the performance of flash memory based storage devices. I will talk about the effect of misalignments, past I/O patterns, aging and controllers etc. on the performance obtained on these devices and what lessons can be learned for the design of data structures and algorithms used for computation on these devices.