Working.
parent
b7a1f6b719
commit
7bce2a2fbc
2
Makefile
2
Makefile
|
@ -1,6 +1,6 @@
|
||||||
export PYTEX=$(shell pwd)/pytex/
|
export PYTEX=$(shell pwd)/pytex/
|
||||||
|
|
||||||
START = noxxxnote nodraft noblue
|
START = xxxnote nodraft noblue
|
||||||
END = missing
|
END = missing
|
||||||
CLASS = $(PWD)/llncs.cls
|
CLASS = $(PWD)/llncs.cls
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
11
paper.tex
11
paper.tex
|
@ -1,11 +1,7 @@
|
||||||
\documentclass{llncs}
|
\documentclass{llncs}
|
||||||
\usepackage{geometry}
|
\usepackage{geometry,makeidx,graphicx,amssymb,color,url,subcaption}
|
||||||
\usepackage{makeidx} % allows for indexgeneration
|
|
||||||
\usepackage{graphicx}
|
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
\usepackage{amssymb}
|
\captionsetup{compatibility=false}
|
||||||
\usepackage{color}
|
|
||||||
\usepackage{url}
|
|
||||||
|
|
||||||
\newcommand{\ask}[1]{\begin{center}
|
\newcommand{\ask}[1]{\begin{center}
|
||||||
\textcolor{blue}{\textbf{Question: } {#1}}
|
\textcolor{blue}{\textbf{Question: } {#1}}
|
||||||
|
@ -22,10 +18,11 @@ Lukasz Ziarek
|
||||||
}
|
}
|
||||||
\authorrunning{Kennedy et. al.}
|
\authorrunning{Kennedy et. al.}
|
||||||
|
|
||||||
\institute{SUNY Buffalo; Buffalo, NY 14260; USA\\
|
\institute{University at Buffalo; Buffalo, NY 14260; USA\\
|
||||||
\email{\{okennedy,jerryant,challen,ziarek\}@buffalo.edu}\\
|
\email{\{okennedy,jerryant,challen,ziarek\}@buffalo.edu}\\
|
||||||
Website: \texttt{http://odin.cse.buffalo.edu/research/}
|
Website: \texttt{http://odin.cse.buffalo.edu/research/}
|
||||||
}
|
}
|
||||||
|
\input{.xxxnote}
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,8 @@ for f in files:
|
||||||
inputs = inputs.findall(lines)
|
inputs = inputs.findall(lines)
|
||||||
real_inputs = []
|
real_inputs = []
|
||||||
for possible_input in inputs:
|
for possible_input in inputs:
|
||||||
if os.path.splitext(possible_input)[1] == '':
|
name, ext = os.path.splitext(possible_input)
|
||||||
|
if name[0] != "." and ext == '':
|
||||||
possible_input += '.tex'
|
possible_input += '.tex'
|
||||||
real_inputs.append(possible_input)
|
real_inputs.append(possible_input)
|
||||||
toprocess += real_inputs
|
toprocess += real_inputs
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
\begin{figure*}[t]
|
||||||
|
|
||||||
|
\begin{subfigure}[t]{0.33\textwidth}
|
||||||
|
\includegraphics[width=\textwidth]{./graphs/activity/All_Devices__All_Apps__All_Queries__AllPreviousQueryCDFGraph.pdf}
|
||||||
|
\caption{}
|
||||||
|
\label{fig-overview-interarrival}
|
||||||
|
\end{subfigure}%
|
||||||
|
\begin{subfigure}[t]{0.33\textwidth}
|
||||||
|
\includegraphics[width=\textwidth]{./graphs/activity/All_Devices__All_Apps__All_Queries__AllRuntimeCDFGraph.pdf}
|
||||||
|
\caption{}
|
||||||
|
\label{fig-overview-runtime}
|
||||||
|
\end{subfigure}%
|
||||||
|
\begin{subfigure}[t]{0.33\textwidth}
|
||||||
|
\includegraphics[width=\textwidth]{./graphs/activity/All_Devices__All_Apps__All_Queries__AllRowcountCDFGraph.pdf}
|
||||||
|
\caption{}
|
||||||
|
\end{subfigure}%
|
||||||
|
|
||||||
|
\caption{\textbf{Summary Statistics for Android SQLite Queries.}}
|
||||||
|
|
||||||
|
\label{fig-overview}
|
||||||
|
|
||||||
|
\end{figure*}
|
||||||
|
|
||||||
|
Next, we look at overall workload characteristics of the queries observed
|
||||||
|
during our study. We examine how often queries arrive, how long they run, and
|
||||||
|
how many rows they return---all important inputs into desiging the TPC-Mobile
|
||||||
|
embedded database benchmark.
|
||||||
|
|
||||||
|
Figure~\ref{fig-overview} shows query interarrival times, run times, and
|
||||||
|
returned row counts (for \texttt{SELECT} statements) for all users,
|
||||||
|
applications, and non-informational query types (\texttt{SELECT},
|
||||||
|
\texttt{UPDATE}, \texttt{INSERT}, \texttt{DELETE}) included in our dataset.
|
||||||
|
Given that each mobile application is really generating an isolated workload
|
||||||
|
to its own embedded database, we measure query interarrival time only between
|
||||||
|
queries issued by the same application.
|
||||||
|
|
||||||
|
Examining the interarrival times shown in
|
||||||
|
Figure~\ref{fig-overview-interarrival}, it is interesting to observe that
|
||||||
|
many queries seem to arrive much more quickly than the minimum query runtime
|
||||||
|
shown in Figure~\ref{fig-overview-runtime}. Part of this may be due to apps
|
||||||
|
that use multiple separate databases, which is not yet captured by our
|
||||||
|
analysis. \XXXnote{However, our logging is also done above any locking
|
||||||
|
performed by SQLite, and so this may demonstrate that there are many cases
|
||||||
|
where multiple application threads are issuing overlapping queries in
|
||||||
|
parallel.}
|
Loading…
Reference in New Issue