An interesting article in Ars Technica last week reported and then confirmed a major bug in the desktop version of Spotify. This application has been writing tens to hundreds of gigabytes per hour to user’s hard drives, which can greatly reduce the life of SSDs. One solution is better caching, or flexibility of the file system, and we go over those details in the white paper linked below.
Early reports show the cause of writes to be repeated compactions of the SQLite database. Users with a small playlist reported almost no impact, while users with larger playlists were hit hardest. Each of these database compactions was causing multiple writes to the media, and flash based media has a limited maximum of writes and erases before bit errors grow to uncorrectable levels.
Partly this happened because the system designer and the provider of the OS (Microsoft and Apple in this case) have little to no control over what sorts of applications will run on their designs. This can be the case with embedded designs as well. This is obvious when using Android, though system designers can limit which application “store” they allow.
Less overt are situations where the design is customizable by the buyer. System programmers will have to envision a variety of use cases for their device, sometimes providing system-specific hooks to deal with situations. Datalight software also provides these hooks, allowing flexibility in flash media management and file system usage. Previous blog posts here have described some of these features, from the Error Management policy to Security to Protocols for USB devices.
Is Flexibility a requirement in your design?