Smart layers and dumb result: IO characterization of an android-based smartphone

Kisung Lee, Y. Won
{"title":"Smart layers and dumb result: IO characterization of an android-based smartphone","authors":"Kisung Lee, Y. Won","doi":"10.1145/2380356.2380367","DOIUrl":null,"url":null,"abstract":"In this paper, we offer an in-depth IO characterization of the Android-based smartphone. We analyze the IO behaviors of a total of 14 Android applications from six different categories. We examine the correlations among seven IO attributes: originating application, file type, IO size, IO type (read/write), random/sequential, block semantics (Data/Metadata/Journal), and session type (buffered vs. synchronous IO). For the purposes of our study, we develop Mobile Storage Analyzer (MOST), a framework for collecting IO attributes across layers. Let us summarize our findings briefly. SQLite, which is the most popular tool for maintaining persistent data in Android, puts too much burden on the storage. For example, a single SQLite operation (update or insert) results in at least 11 write operations being sent to the storage. These are for creating short-lived files, updating database tables, and accessing EXT4 Journal. From the storage point of view, more than 50% of writes are for EXT4 Journal updating. Excluding Metadata and Journal accesses, 60-80% of the writes are random. More than 50% of the writes are synchronous. 4KB IO accounts for 70% of all writes. In the Android platform, each SQLite and EXT4 filesystem requires a great amount of effort to ensure reliability in supporting transactions and journaling, respectively. When they are combined, the results are rather dumb. The operations of SQLite and EXT4, when combined, generate unnecessarily excessive write operations to the NAND-based storage. This not only degrades IO performance but also significantly reduces the lifetime of the underlying NAND flash storage. The results of this study clearly suggest that SQLite, EXT4, and the underlying NAND-based storage need to be completely overhauled and vertically integrated so as to properly and effectively incorporate their respective characteristics.","PeriodicalId":143573,"journal":{"name":"International Conference on Embedded Software","volume":"13 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-10-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"82","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Conference on Embedded Software","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2380356.2380367","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 82

Abstract

In this paper, we offer an in-depth IO characterization of the Android-based smartphone. We analyze the IO behaviors of a total of 14 Android applications from six different categories. We examine the correlations among seven IO attributes: originating application, file type, IO size, IO type (read/write), random/sequential, block semantics (Data/Metadata/Journal), and session type (buffered vs. synchronous IO). For the purposes of our study, we develop Mobile Storage Analyzer (MOST), a framework for collecting IO attributes across layers. Let us summarize our findings briefly. SQLite, which is the most popular tool for maintaining persistent data in Android, puts too much burden on the storage. For example, a single SQLite operation (update or insert) results in at least 11 write operations being sent to the storage. These are for creating short-lived files, updating database tables, and accessing EXT4 Journal. From the storage point of view, more than 50% of writes are for EXT4 Journal updating. Excluding Metadata and Journal accesses, 60-80% of the writes are random. More than 50% of the writes are synchronous. 4KB IO accounts for 70% of all writes. In the Android platform, each SQLite and EXT4 filesystem requires a great amount of effort to ensure reliability in supporting transactions and journaling, respectively. When they are combined, the results are rather dumb. The operations of SQLite and EXT4, when combined, generate unnecessarily excessive write operations to the NAND-based storage. This not only degrades IO performance but also significantly reduces the lifetime of the underlying NAND flash storage. The results of this study clearly suggest that SQLite, EXT4, and the underlying NAND-based storage need to be completely overhauled and vertically integrated so as to properly and effectively incorporate their respective characteristics.
智能层和哑结果:基于android的智能手机的IO表征
在本文中,我们对基于android的智能手机进行了深入的IO表征。我们分析了来自6个不同类别的14个Android应用程序的IO行为。我们检查了七个IO属性之间的相关性:原始应用程序,文件类型,IO大小,IO类型(读/写),随机/顺序,块语义(数据/元数据/日志)和会话类型(缓冲与同步IO)。为了我们的研究目的,我们开发了移动存储分析器(MOST),这是一个跨层收集IO属性的框架。让我们简要总结一下我们的调查结果。SQLite是Android中最流行的用于维护持久数据的工具,但它给存储带来了太多负担。例如,单个SQLite操作(更新或插入)导致至少11个写操作被发送到存储。它们用于创建短期文件、更新数据库表和访问EXT4 Journal。从存储的角度来看,超过50%的写操作用于EXT4日志更新。除去元数据和日志访问,60-80%的写操作是随机的。超过50%的写操作是同步的。4KB IO占所有写操作的70%。在Android平台中,每个SQLite和EXT4文件系统都需要付出大量的努力来确保分别支持事务和日志的可靠性。当它们结合在一起时,结果是相当愚蠢的。当SQLite和EXT4的操作结合在一起时,会对基于nand的存储产生不必要的过多写操作。这不仅降低了IO性能,而且还显著降低了底层NAND闪存的使用寿命。本研究的结果清楚地表明,SQLite、EXT4和底层基于nand的存储需要进行彻底的改革和垂直整合,以便正确有效地融合各自的特性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信