master
Geoffrey Challen 2015-06-22 11:27:37 -04:00
parent f650d6b755
commit dad5f0f7a7
3 changed files with 83 additions and 49 deletions

View File

@ -2,39 +2,30 @@
0xc4
10ms
1ms
al
AndroBench
AOSP
AndroBench
App
app
Apps
apps
Barcode
bursty
CDF
CONCAT
Const
DS
equi
ETL
Eventbrite
Facebook
filesystem
FTL
Facebook
Gmail
interarrival
JDBC
Jeong
JuiceSSH
KBS
KakaoStory
Kang
KBS
KitKat
kong
LINQ
MobiGen
MX
offline
MobiGen
OLAP
OLTP
ORMs
@ -42,20 +33,14 @@ OTA
PhoneLab
PlayerPro
Pre
pre
Quickoffice
runtimes
smartphone
smartphones
Speedtest
SQL
SQLite
sqlite
StatusQuo
subqueries
SUBSTR
TinyDB
Speedtest
StatusQuo
TPC
TinyDB
TuneIn
UB
UPSERT
@ -64,3 +49,19 @@ VLC
Wifi
YCSB
YouTube
al
app
apps
bursty
equi
filesystem
interarrival
kong
offline
pre
runtimes
smartphone
smartphones
sqlite
subqueries
tradeoffs

View File

@ -1,16 +1,15 @@
Because embedded database engines such as SQLite provide a convenient data
Because embedded database engines, such as SQLite, provide a convenient data
persistence layer, they have spread along with the applications using them to
many types of systems, including interactive devices such as smartphones.
%
Android, the most widely-distributed smartphone platform, both uses SQLite
internally and provides interfaces encouraging apps to use SQLite to store
their private structured data as well.
their own private structured data.
%
As a result, embedded database performance affects the response times and
resource consumption of both the platforms that operation billions of
smartphones and the millions of applications that run on them---making it
more important than ever to characterize smartphone embedded database
workloads.
smartphones and the millions of apps that run on them---making it more
important than ever to characterize smartphone embedded database workloads.
%
To do so, we present results from an experiment which recorded SQLite
activity on 11~Android smartphones during one month of typical usage.
@ -19,5 +18,5 @@ Our analysis shows that Android SQLite usage produce queries and access
patterns quite different from canonical server workloads.
%
We argue that evaluating smartphone embedded database will require a new
benchmarking suite, and we use our results to begin to outline some of its
benchmarking suite, and we use our results to outline some of its
characteristics.

View File

@ -1,30 +1,64 @@
% Mobile systems are important.
Since the introduction of the smartphone, mobile computing has become pervasive in our society, with one in every five people in the world owning a smartphone~\cite{phones}. Mobile devices, however,
have evolved far beyond the stereotypical smartphone and tablet, and are now employed in a wide variety of domains. Of the currently available mobile systems, Android has seen the most widespread deployment outside of the consumer electronics market. Android's open source nature has prompted its ubiquitous adoption in sensing, medical, command and control, robotics, and automotive applications.
The world's 2~billion smartphones represent the most powerful and pervasive
distributed system ever built. And 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.
For each of these domains, Android supports specific client-side applications that often utilize an application-resident, or \textit{embedded database} called SQLite~\cite{sqlite} for tasks such as persisting state. Even Android
itself, specifically the framework layer, makes use of embedded databases.
The way in which mobile applications use databases, is however, rather different from traditional server farms and desktop applications that focus on ``big data.''
Based on the experiments we present in this paper, SQLite on \textit{one} average Android smart-phone satisfies over 178 thousand database requests \textit{per day}, or about 2 requests every second.
As such, client-side mobile applications represent a new and rapidly growing class of \textit{pocket-scale} database consumers. The execution context for these client-side application workloads varies wildly. This means that the performance of the database is not only dependent on the query workload being executed by the client-side application, but is also impacted by other applications that may have access to the database, other applications currently using system resources ({\em e.g.} processor, memory,
file system), and the overall energy available and power profile of the system itself ({\em e.g.} voltage scaling, power governors, OS policies).
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, the Android platform services that
provide the app interface make heavy use of SQLite, as do built-in (Mail,
Contacts) and 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.
The challenges that arise in handling pocket-scale data --- that is, minimizing power consumption, latency, and I/O --- are familiar ground for database practitioners, but the trade-offs and workload characteristics are far less well understood. In this paper, we present the results of a one-month trace of SQLite activity on 11 Android smartphones, part of a real-world experimental testbed called \PhoneLab{}~\cite{phonelab}. We show that the workload characteristics encountered by SQLite on these phones differ substantially from the characteristics of database workloads expressed in popular database benchmarking suites. We argue that a new benchmark for mobile and embedded databases could spur innovation in this area, and outline the workload characteristics of such a benchmark.
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. And
while enterprise database servers are frequently provisioned to have
exclusive access to an entire machine, apps using embedded databases compete
for shared system resources with other apps and may be effected 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.
\noindent The contributions of this paper are the following:
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 could spur innovation in this area, and outline the
workload characteristics of such a benchmark. The main contributions of the
paper are the following:
%
\begin{itemize}
\item A detailed examination of SQLite~\cite{sqlite} usage in a real-world mobile context. We compare our gathered results on mobile application and Android framework usage of SQLite to tradition TPC benchmark
workloads.
\item The synthesis of an open source data set gathered over one month of "in the wild" execution of database queries using eleven test subjects and their personal smartphones. Data was gathered using \PhoneLab{}~\cite{phonelab}.
\item An outline of workload characteristics and other desiderata for a proposed TPC-MOBILE benchmark.
%
\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}
% The remainder of the paper is organized as follows.
% We present our motivation observations in Section~\ref{sec:overview}. We outline our experimental setup and the process of obtaining data from 11 primary-use smart phones in
% Section~\ref{sec:experimental}. We discuss relevant
% workloads based on query complexity, and database activity in Section~\ref{sec:queryc} and Section~\ref{sec:dba} respectively. Based on this
% detailed analysis and a review of related work, we sketch the requirements for a TPC-MOBILE benchmark in Section~\ref{sec:pocketdata}. We wrap up with conclusions in Section~\ref{sec:conc}.
%% LocalWords: smartphone Android Android's SQLite io smartphones
%% LocalWords: testbed PhoneLab TPC