Read an interesting article from MIT’s Technical Review about a study presented at last weeks Usenix FAST (File and Storage Technology) conference on How Data Storage Cripples Mobile Apps. It seems storage performance can seriously slow down smartphone functioning, not unlike IT applications (see IO throughput vs. response time and why it matters post for more).
The smartphone research was done by NEC. They took an Android phone and modified the O/S to use an external memory card for all of the App data needs.
Then they ran a number of Apps through their paces with various external memory cards. It turned out that depending on the memory card in use, the mobile phones email and Twitter Apps launched 2-3X faster. Also, the native web App was tested with over 50 pages loads and had at best, a 3X faster page load time.
All the tests were done using a cable to simulate advanced network connections, above and beyond today’s capabilities and to eliminate that as the performance bottleneck. In the end, faster networking didn’t have as much of a bearing on App performance as memory card speed.
(NAND) memory card performance
The problem, it turns out is due to data writes. It seems that the non-volatile memory used in most external memory cards is NAND flash, which as is we all know, has much slower write time than read time, almost 1000X (see my post on Why SSD performance is such a mystery). Most likely the memory cards are pretty “dumb” so many performance boosting techniques used in enterprise class SSDs are not available (e.g., DRAM write buffering).
Data caching helps
The researchers did another experiment with the phone, using a more sophisticated version of data caching and a modified Facebook App. Presumably, this new “data caching” minimized the data write penalty by caching writes to DRAM first and only destaging data to NAND flash when absolutely necessary. By using the more sophisticated “data caching” they were able to speed up the modified Facebook App by 4X.