The idea for this paper came from a conversation our CEO, Roy Sherrill, had with several customers and industry folks regarding the decreasing endurance of flash memory. Some smaller lithography parts have program/erase cycles counted in the hundreds. What techniques can be used to make sure writes (and hence erases) are held to a minimum while still providing the level of performance and reliability that embedded devices require? He had some theories, but wanted proof.
When we talk about our transactional file system, Reliance Nitro, we emphasize its ability to be configured for a variety of use cases. Regardless of how transaction settings are defined, the data that is written by the file system is protected from corruption and loss due to power failure. Databases also use transactions, but without being able to know what the behavior of the file system beneath them is, often take a “belt and suspenders” approach which can result in excessive writes. Modern flash has so few P/E cycles available that it is critical to pay attention to write amplification of any kind. Would adjusting the behavior of a database to rely on Reliance Nitro’s transactions instead of writing redundant data reduce the write amplification and improve performance at the same time?
We chose Mentor Graphics Embedded Linux as the operating system for these tests. This gave us a stable and tested platform that could be brought up quickly.
We contacted several database companies to ask them to work with us on this project. Raima stepped up and willingly modified their RDM database. I’m happy to say that the results of this simple experiment were quite successful. In the course of this work it was discovered that additional changes to the database application may provide even further improvement. The changes Raima made this time around were simple: just use the atomic nature of Reliance Nitro transactions to ensure all of the individual files necessary for proper database operation were updated as one. After reading the paper, I think you’ll agree that the payback for that simple change is significant.
Please share any feedback you have on the paper, as well as your ideas for other applications we should investigate and optimize to help preserve the lifetime of flash media.