paper-TPCTC-PocketData/sections/1-introduction.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