Price, M. and Nettles, S. Transactions in a Flash. Technical Report MS-CIS-96-53, CIS Dept. University of Pennsylvania, 1996.
Also in POS8: Eighth International Workshop on Persistent Object Systems: Design, Implementation and Use
Flash memory is a semiconductor memory technology that promises to provide new price, performance, and energy consumption tradeoffs for providing computer systems with permanent storage. Flash has price and read performance similar to DRAM, but unlike DRAM, data in Flash memory is not lost on power failure. Flash has write latencies that, although worse than DRAM, are much better than disk. These characteristics make it attractive to consider using Flash in designs that require fast update of persistent storage. However, Flash is write-once until a large block of memory is erased. Thus in-place update semantics is hard to provide efficiently. Transaction systems generally use a disk-based log to provide fast commit of persistent data. These log are (mostly) append only and periodically are emptied. Thus transaction logs are an ideal candidate for storage in Flash; they can take advantage of Flash's better write performance but are easy to adapt to Flash's semantics. In this paper we test the premise that Flash has significant advantages for storing transaction logs. We do this by adapting an existing transaction system to use Flash, and then running a number of benchmarks that use this system on a software Flash emulator. It is straightforward to emulate Flash using DRAM and timer delays. This approach lets us study a variety of Flash design parameters. The results significantly favor using Flash for transaction logging. Even at low memory array parallelism, Flash has performance much greater than disk. At higher, but realistic parallelism, Flash approaches the performance of more expensive battery-backed DRAM closely enough that Amdahl's law suggests other parts of the system are more fruitful to optimize than persistent writes.