75 lines
4.0 KiB
TeX
75 lines
4.0 KiB
TeX
% Mobile systems are important.
|
|
|
|
The world's 2~billion smartphones represent the most powerful and pervasive
|
|
distributed system ever built. Open application marketplaces, such as the
|
|
Google Play Store, have resulted in a vibrant software ecosystem comprising
|
|
millions of smartphone and tablet apps in hundreds of different categories
|
|
that both meet existing user needs and provide exciting novel capabilities.
|
|
As mobile apps and devices become even more central to the personal computing
|
|
experience, it is increasingly important to understand and improve their
|
|
performance.
|
|
|
|
A common requirement of mobile apps and systems is persisting structured
|
|
private data, a task that is frequently performed using an \textit{embedded
|
|
database} such as SQLite~\cite{sqlite}. Android, the open-source and
|
|
widely-used smartphone platform, provides interfaces that simplify the
|
|
process of accessing private SQLite databases, and many apps make use of
|
|
SQLite for this purpose. In addition, Android platform services themselves
|
|
make heavy use of SQLite, as do built-in apps (Mail,
|
|
Contacts), popular apps (Gmail, Maps), and libraries (Google Play Services)
|
|
distributed by Google. As a result, the large and growing number of mobile
|
|
apps using embedded databases represent a new and important class of database
|
|
clients.
|
|
|
|
Unsurprisingly, mobile app usage of embedded databases is quite different
|
|
from the workloads experienced by database servers supporting websites or big
|
|
data applications. For example, while database servers are frequently tested
|
|
and tuned for continuous high-throughput query processing, embedded databases
|
|
experience lower-volume but bursty workloads produced by interactive use.
|
|
As another example,
|
|
enterprise database servers are frequently provisioned to have
|
|
exclusive access to an entire machine, while apps using embedded databases compete
|
|
for shared system resources with other apps and may be affected by
|
|
system-wide policies that attempt to conserve limited energy on
|
|
battery-constrained mobile devices. So while the fundamental challenges
|
|
experienced by mobile apps using embedded databases---minimizing energy
|
|
consumption, latency, and disk utilization---are familiar ground for database
|
|
researchers, the specific tradeoffs produced by this domain's specific
|
|
workload characteristics are far less well understood.
|
|
|
|
In this paper, we present results drawn from a one-month trace of SQLite
|
|
activity on 11~\PhoneLab{}~\cite{phonelab} smartphones running the Android
|
|
smartphone platform. Our analysis shows that the workloads experienced by
|
|
SQLite on these phones differ substantially from the database workloads
|
|
expressed by popular database benchmarking suites. We argue that a new
|
|
benchmark for mobile embedded databases is required to effectively measure
|
|
their performance, and that such a benchmark could spur innovation in this
|
|
area.
|
|
|
|
% \begin{itemize}
|
|
% %
|
|
% \item The synthesis of an open source data set containing all database
|
|
% queries and query performance statistics generated by the personal
|
|
% smartphones of 11~\PhoneLab{} participants over one month.
|
|
% %
|
|
% \item A detailed examination of real-world Android SQLite~\cite{sqlite}
|
|
% usage including a comparison to traditional TPC benchmark workloads.
|
|
% %
|
|
% \item An outline of workload characteristics for a
|
|
% proposed TPC-MOBILE benchmark.
|
|
% %
|
|
% \end{itemize}
|
|
|
|
Our specific contributions are as follows: (a)~A month-long trace of
|
|
SQLite usage under real world conditions (details in
|
|
Section~\ref{sec:experimental}), (b)~An in-depth analysis of the complexity
|
|
(Section~\ref{sec:queryc}) and runtime (Section~\ref{sec:dba})
|
|
characteristics of SQL statements evaluated by SQLite during this
|
|
trace, (c)~A comparison of these characteristics to existing benchmarking
|
|
strategies (Section~\ref{sec:pocketdata}), and (d)~An overview of the
|
|
requirements for a new ``pocket data'' benchmark: TPC-MOBILE
|
|
(Section~\ref{sec:overview}).
|
|
|
|
%% LocalWords: smartphone Android Android's SQLite io smartphones
|
|
%% LocalWords: testbed PhoneLab TPC
|