Importing content from the PocketData paper

master
Oliver Kennedy 2016-01-15 23:44:40 -05:00
parent 9123266123
commit ad2a8ef979
38 changed files with 636 additions and 87 deletions

View File

@ -2,6 +2,8 @@
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{color}
\usepackage{subcaption}
\usepackage{graphicx}
\newcommand{\todo}[1]{\textcolor{red}{[! {#1} !]}}
@ -64,7 +66,7 @@ Lukasz Ziarek (Univ. of Buffalo, Dept. of Comp. Sci. and Eng.)}
{
\bibliographystyle{nsf}
\bibliography{preliminary}
\bibliography{main}
}
\end{document}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

186
graphs/stats Normal file
View File

@ -0,0 +1,186 @@
----- Global Stats -----
Total Queries: 45090798
OUTER JOIN Queries: 391288
DISTINCT Queries: 1893624
LIMIT Queries: 1165518
ORDER BY Queries: 3169109
Aggregate Queries: 641352
GROUP BY Aggregate Queries: 438944
UNION Queries: 13866
WITH Queries: 0
Average Runtime: 1.3473690060371963 ms
Call Sites per Function:
| CAST -> 38208
| MAX -> 318153
| LENGTH -> 102747
| JULIANDAY -> 587
| SUM -> 321387
| UPPER -> 20487
| DATE -> 44
| COALESCE -> 3494
| AVG -> 15
| MIN -> 19566
| IFNULL -> 657
| PHONE_NUMBERS_EQUAL -> 2017
| LOWER -> 3110
| COUNT -> 173038
| GROUP_CONCAT -> 583474
| SUBSTR -> 88462
| STRFTIME -> 1147
Query Counts by Number of Tables Referenced:
| 0 -> 11574173
| 1 -> 31846350
| 2 -> 1347385
| 3 -> 200258
| 4 -> 32896
| 5 -> 83744
| 6 -> 1765
| 7 -> 4216
| 8 -> 11
Query Counts by Query Nesting Depth:
| 0 -> 11574173
| 1 -> 33021712
| 2 -> 389294
| 3 -> 88951
| 4 -> 16668
Query Runtimes by Query Nesting Depth:
Total Parse Errors: 308752
Percent Success Rate: 99.31992277456494
----- DELETE Stats -----
Total Queries: 1248594
OUTER JOIN Queries: 236
DISTINCT Queries: 5586
LIMIT Queries: 422
ORDER BY Queries: 194
Aggregate Queries: 3190
GROUP BY Aggregate Queries: 0
UNION Queries: 65
WITH Queries: 0
Average Runtime: 3.7761548616708076 ms
Call Sites per Function:
| MAX -> 3183
| COUNT -> 7
Query Counts by Number of Tables Referenced:
| 0 -> 1202472
| 1 -> 42528
| 2 -> 1736
| 3 -> 782
| 4 -> 460
| 7 -> 616
Query Counts by Query Nesting Depth:
| 0 -> 1202472
| 1 -> 46122
Query Runtimes by Query Nesting Depth:
----- SELECT Stats -----
Total Queries: 33470310
OUTER JOIN Queries: 391052
DISTINCT Queries: 1888013
LIMIT Queries: 1165096
ORDER BY Queries: 3168915
Aggregate Queries: 638137
GROUP BY Aggregate Queries: 438919
UNION Queries: 13801
WITH Queries: 0
Average Runtime: 1.1290731669464669 ms
Call Sites per Function:
| CAST -> 38208
| MAX -> 314970
| LENGTH -> 102747
| JULIANDAY -> 587
| SUM -> 321387
| UPPER -> 20487
| DATE -> 44
| COALESCE -> 3494
| AVG -> 15
| MIN -> 19566
| IFNULL -> 657
| PHONE_NUMBERS_EQUAL -> 2017
| LOWER -> 3110
| COUNT -> 173031
| GROUP_CONCAT -> 583474
| SUBSTR -> 88462
| STRFTIME -> 1147
Query Counts by Number of Tables Referenced:
| 1 -> 31803710
| 2 -> 1345568
| 3 -> 199476
| 4 -> 32436
| 5 -> 83744
| 6 -> 1765
| 7 -> 3600
| 8 -> 11
Query Counts by Query Nesting Depth:
| 1 -> 32975453
| 2 -> 389238
| 3 -> 88951
| 4 -> 16668
Query Runtimes by Query Nesting Depth:
SP Queries: 28723834
SP Runtime: 0.6330146528792779 ms
SPJ Queries: 29147210
SPJ Runtime: 0.6557674440088433 ms
SPA Queries: 28947579
SPA Runtime: 0.6698433789751812 ms
SPJA Queries: 29405360
SPJA Runtime: 0.6921697210216438 ms
SPJ Query Counts by Join Width:
| 1 -> 28723834
| 2 -> 375061
| 3 -> 47187
| 4 -> 1125
| 6 -> 3
----- INSERT Stats -----
Total Queries: 1953279
OUTER JOIN Queries: 0
DISTINCT Queries: 0
LIMIT Queries: 0
ORDER BY Queries: 0
Aggregate Queries: 0
GROUP BY Aggregate Queries: 0
UNION Queries: 0
WITH Queries: 0
Average Runtime: 2.3116640830337087 ms
Call Sites per Function:
Query Counts by Number of Tables Referenced:
| 0 -> 1953279
Query Counts by Query Nesting Depth:
| 0 -> 1953279
Query Runtimes by Query Nesting Depth:
----- UPDATE Stats -----
Total Queries: 1041967
OUTER JOIN Queries: 0
DISTINCT Queries: 25
LIMIT Queries: 0
ORDER BY Queries: 0
Aggregate Queries: 25
GROUP BY Aggregate Queries: 25
UNION Queries: 0
WITH Queries: 0
Average Runtime: 6.588152973392632 ms
Call Sites per Function:
Query Counts by Number of Tables Referenced:
| 0 -> 1041774
| 1 -> 112
| 2 -> 81
Query Counts by Query Nesting Depth:
| 0 -> 1041774
| 1 -> 137
| 2 -> 56
Query Runtimes by Query Nesting Depth:
----- UPSERT Stats -----
Total Queries: 7376648
OUTER JOIN Queries: 0
DISTINCT Queries: 0
LIMIT Queries: 0
ORDER BY Queries: 0
Aggregate Queries: 0
GROUP BY Aggregate Queries: 0
UNION Queries: 0
WITH Queries: 0
Average Runtime: 0.9311366858334572 ms
Call Sites per Function:
Query Counts by Number of Tables Referenced:
| 0 -> 7376648
Query Counts by Query Nesting Depth:
| 0 -> 7376648
Query Runtimes by Query Nesting Depth:

Binary file not shown.

Binary file not shown.

Binary file not shown.

353
main.bib
View File

@ -1,49 +1,88 @@
%% This BibTeX bibliography file was created using BibDesk.
%% http://bibdesk.sourceforge.net/
%% Created for Oliver Kennedy at 2015-11-08 16:08:56 -0500
%% Created for Oliver Kennedy at 2016-01-15 23:38:13 -0500
%% Saved with string encoding Unicode (UTF-8)
@inproceedings{Rompf:2015:FPS:2784731.2784760,
Acmid = {2784760},
Address = {New York, NY, USA},
Author = {Rompf, Tiark and Amin, Nada},
Booktitle = {SIGPLAN},
Date-Added = {2016-01-16 04:38:10 +0000},
Date-Modified = {2016-01-16 04:38:10 +0000},
Doi = {10.1145/2784731.2784760},
Isbn = {978-1-4503-3669-7},
Keywords = {Futamura Projections, Generative Programming, Query Compilation, SQL, Staging},
Location = {Vancouver, BC, Canada},
Numpages = {8},
Pages = {2--9},
Publisher = {ACM},
Title = {{Functional Pearl}: A SQL to C Compiler in 500 Lines of Code},
Year = {2015},
Bdsk-Url-1 = {http://dx.doi.org/10.1145/2784731.2784760}}
@inproceedings{kennedy2015just,
Author = {Kennedy, Oliver and Ziarek, Lukasz},
Booktitle = {The Conference on Innovative Data Systems Research (CIDR)},
Date-Added = {2015-11-08 21:08:54 +0000},
Date-Modified = {2015-11-08 21:08:54 +0000},
Booktitle = {CIDR},
Date-Added = {2016-01-16 04:38:10 +0000},
Date-Modified = {2016-01-16 04:38:10 +0000},
Title = {Just-In-Time Data Structures},
Year = {2015}}
@inproceedings{Meijer:2006:LRO:1142473.1142552,
Acmid = {1142552},
Address = {New York, NY, USA},
Author = {Meijer, Erik and Beckman, Brian and Bierman, Gavin},
Booktitle = {SIGMOD},
Date-Added = {2016-01-16 04:38:10 +0000},
Date-Modified = {2016-01-16 04:38:10 +0000},
Doi = {10.1145/1142473.1142552},
Isbn = {1-59593-434-0},
Location = {Chicago, IL, USA},
Numpages = {1},
Pages = {706--706},
Publisher = {ACM},
Title = {LINQ: Reconciling Object, Relations and {XML} in the {.NET} Framework: Reconciling Object, Relations and XML in the .NET Framework},
Year = {2006},
Bdsk-Url-1 = {http://dx.doi.org/10.1145/1142473.1142552}}
@inproceedings{Challen:2015:MWE:2699343.2699361,
Acmid = {2699361},
Address = {New York, NY, USA},
Author = {Challen, Geoffrey and Ajay, Jerry Antony and DiRienzo, Nick and Kennedy, Oliver and Maiti, Anudipa and Nandugudi, Anandatirtha and Shantharam, Sriram and Shi, Jinghao and Srinivasa, Guru Prasad and Ziarek, Lukasz},
Booktitle = {Proceedings of the 16th International Workshop on Mobile Computing Systems and Applications},
Date-Added = {2015-11-08 21:08:04 +0000},
Date-Modified = {2015-11-08 21:08:04 +0000},
Booktitle = {HotMobile},
Date-Added = {2016-01-16 04:38:10 +0000},
Date-Modified = {2016-01-16 04:38:10 +0000},
Doi = {10.1145/2699343.2699361},
Isbn = {978-1-4503-3391-7},
Keywords = {maybe, mobile programming, runtime adaptation, structured uncertainty},
Location = {Santa Fe, New Mexico, USA},
Numpages = {6},
Pages = {105--110},
Publisher = {ACM},
Series = {HotMobile '15},
Title = {Maybe We Should Enable More Uncertain Mobile App Programming},
Title = {{maybe} We Should Enable More Uncertain Mobile App Programming},
Url = {http://doi.acm.org/10.1145/2699343.2699361},
Year = {2015},
Bdsk-Url-1 = {http://doi.acm.org/10.1145/2699343.2699361},
Bdsk-Url-2 = {http://dx.doi.org/10.1145/2699343.2699361}}
@inproceedings{pocketdata,
Author = {Kennedy, Oliver and Ajay, Jerry and Challen, Geoffrey and Ziarek, Lukasz},
Booktitle = {TPC Technology Conference on Performance Evaluation \& Benchmarking},
Date-Added = {2016-01-16 04:38:10 +0000},
Date-Modified = {2016-01-16 04:38:10 +0000},
Title = {{Pocket Data}: The Need for {TPC-MOBILE}},
Year = {2015}}
@inproceedings{Jiang:2015:SPI:2809974.2809986,
Acmid = {2809986},
Author = {Jiang, Lilong and Nandi, Arnab},
Booktitle = {VLDB},
Date-Added = {2015-11-06 22:03:56 +0000},
Date-Modified = {2015-11-06 22:09:35 +0000},
Date-Added = {2016-01-16 04:38:10 +0000},
Date-Modified = {2016-01-16 04:38:10 +0000},
Doi = {10.14778/2809974.2809986},
Issn = {2150-8097},
Issue_Date = {July 2015},
@ -53,28 +92,50 @@
Pages = {1250--1261},
Publisher = {VLDB Endowment},
Title = {{SnapToQuery}: Providing Interactive Feedback During Exploratory Query Specification},
Url = {http://dx.doi.org/10.14778/2809974.2809986},
Volume = {8},
Year = {2015},
Bdsk-Url-1 = {http://dx.doi.org/10.14778/2809974.2809986}}
@inproceedings{pocketdata,
Author = {Kennedy, Oliver and Ajay, Jerry and Challen, Geoffrey and Ziarek, Lukasz},
Booktitle = {TPC Technology Conference on Performance Evaluation \& Benchmarking},
Date-Added = {2015-10-15 14:51:46 +0000},
Date-Modified = {2015-11-06 22:11:31 +0000},
Title = {{Pocket Data}: The Need for {TPC-MOBILE}},
Url = {http://odin.cse.buffalo.edu/wp-content/uploads/2015/08/tpctc2015.pdf},
Year = {2015},
Bdsk-Url-1 = {http://odin.cse.buffalo.edu/wp-content/uploads/2015/08/tpctc2015.pdf}}
@inproceedings{StatusQuo,
Author = {Alvin Cheung and Samuel Madden and Armando Solar-Lezama and Owen Arden and Andrew C. Myers},
Booktitle = {Conference on Innovative Data Systems Research (CIDR)},
Date-Added = {2016-01-16 04:38:10 +0000},
Date-Modified = {2016-01-16 04:38:10 +0000},
Month = {January},
Title = {{StatusQuo}: making familiar abstractions perform using program analysis},
Year = {2013}}
@article{box2007linq,
Author = {Box, Don and Hejlsberg, Anders},
Date-Added = {2015-06-20 19:01:17 +0000},
Date-Modified = {2015-06-20 22:04:10 +0000},
Journal = {MSDN Developer Centre},
Title = {{LinQ}: {.NET} language-integrated query},
Volume = {89},
Year = {2007}}
@misc{nexus5,
Author = {{Wikipedia}},
Howpublished = {\texttt{http://en.wikipedia.org/wiki/Nexus\_5}},
Title = {{Nexus 5}}}
@misc{phones,
Howpublished = {\url{http://www.businessinsider.com/smartphone-and-tablet-penetration-2013-10}},
Key = {One In Every 5 People In The World Own A Smartphone},
Title = {{O}ne {I}n {E}very 5 {P}eople {I}n {T}he {W}orld {O}wn {A} {S}martphone}}
@inproceedings{Dit2015CIDR,
Author = {Jens Dittrich},
Booktitle = {CIDR},
Title = {{The Case for Small Data Management}},
Year = {2015}}
@inproceedings{phonelab,
Acmid = {2536718},
Articleno = {4},
Author = {Nandugudi, Anandatirtha and Maiti, Anudipa and Ki, Taeyeon and Bulut, Fatih and Demirbas, Murat and Kosar, Tevfik and Qiao, Chunming and Ko, Steven Y. and Challen, Geoffrey},
Booktitle = {SenseMine},
Date-Added = {2015-10-15 14:50:39 +0000},
Date-Modified = {2015-10-15 14:50:39 +0000},
Date-Modified = {2015-06-20 22:08:33 +0000},
Doi = {10.1145/2536714.2536718},
Isbn = {978-1-4503-2430-4},
Keywords = {Smartphones, mobile devices, testbed},
@ -87,53 +148,199 @@
Bdsk-Url-1 = {http://doi.acm.org/10.1145/2536714.2536718},
Bdsk-Url-2 = {http://dx.doi.org/10.1145/2536714.2536718}}
@inproceedings{Meijer:2006:LRO:1142473.1142552,
Acmid = {1142552},
Address = {New York, NY, USA},
Author = {Meijer, Erik and Beckman, Brian and Bierman, Gavin},
@misc{tpch,
Author = {Transaction Processing Performance Council},
Howpublished = {http://www.tpc.org/tpch/},
Title = {{TPC-H} specification}}
@misc{tpcc,
Author = {Transaction Processing Performance Council},
Howpublished = {http://www.tpc.org/tpcc/},
Title = {{TPC-C} specification}}
@misc{tpcds,
Author = {Transaction Processing Performance Council},
Howpublished = {http://www.tpc.org/tpcds/},
Title = {{TPC-DS} specification}}
@misc{o2007star,
Author = {O'Neil, Patrick E and O'Neil, Elizabeth J and Chen, Xuedong},
Title = {The star schema benchmark (SSB)},
Year = {2007}}
@incollection{ssb,
Author = {O'Neil, Patrick and O'Neil, Elizabeth and Chen, Xuedong and Revilak, Stephen},
Booktitle = {Performance Evaluation and Benchmarking},
Doi = {10.1007/978-3-642-10424-4_17},
Editor = {Nambiar, Raghunath and Poess, Meikel},
Isbn = {978-3-642-10423-7},
Keywords = {Benchmark; Star Schema; Data Warehousing; Clustering; Multi-Dimensional Clustering; DB2; Oracle; Vertica},
Language = {English},
Pages = {237-252},
Publisher = {Springer Berlin Heidelberg},
Series = {Lecture Notes in Computer Science},
Title = {The Star Schema Benchmark and Augmented Fact Table Indexing},
Url = {http://dx.doi.org/10.1007/978-3-642-10424-4_17},
Volume = {5895},
Year = {2009},
Bdsk-Url-1 = {http://dx.doi.org/10.1007/978-3-642-10424-4_17}}
@book{sqlite,
Author = {Owens, Mike and Allen, Grant},
Publisher = {Springer},
Title = {SQLite},
Year = {2010}}
@inproceedings{kang2013xftl,
Acmid = {2465326},
Author = {Kang, Woon-Hak and Lee, Sang-Won and Moon, Bongki and Oh, Gi-Hwan and Min, Changwoo},
Booktitle = {SIGMOD},
Date-Modified = {2015-11-06 22:05:18 +0000},
Doi = {10.1145/1142473.1142552},
Isbn = {1-59593-434-0},
Location = {Chicago, IL, USA},
Numpages = {1},
Pages = {706--706},
Publisher = {ACM},
Title = {LINQ: Reconciling Object, Relations and {XML} in the {.NET} Framework: Reconciling Object, Relations and XML in the .NET Framework},
Url = {http://doi.acm.org/10.1145/1142473.1142552},
Year = {2006},
Bdsk-Url-1 = {http://doi.acm.org/10.1145/1142473.1142552},
Bdsk-Url-2 = {http://dx.doi.org/10.1145/1142473.1142552}}
@inproceedings{Rompf:2015:FPS:2784731.2784760,
Acmid = {2784760},
Address = {New York, NY, USA},
Author = {Rompf, Tiark and Amin, Nada},
Booktitle = {SIGPLAN},
Date-Modified = {2015-11-06 22:05:44 +0000},
Doi = {10.1145/2784731.2784760},
Isbn = {978-1-4503-3669-7},
Keywords = {Futamura Projections, Generative Programming, Query Compilation, SQL, Staging},
Location = {Vancouver, BC, Canada},
Numpages = {8},
Pages = {2--9},
Publisher = {ACM},
Title = {{Functional Pearl}: A SQL to C Compiler in 500 Lines of Code},
Url = {http://doi.acm.org/10.1145/2784731.2784760},
Year = {2015},
Bdsk-Url-1 = {http://doi.acm.org/10.1145/2784731.2784760},
Bdsk-Url-2 = {http://dx.doi.org/10.1145/2784731.2784760}}
@inproceedings{StatusQuo,
Author = {Alvin Cheung and Samuel Madden and Armando Solar-Lezama and Owen Arden and Andrew C. Myers},
Booktitle = {Conference on Innovative Data Systems Research (CIDR)},
Date-Modified = {2015-11-06 22:04:46 +0000},
Month = {January},
Title = {{StatusQuo}: making familiar abstractions perform using program analysis},
Url = {http://www.cidrdb.org/cidr2013/Papers/CIDR13_Paper117.pdf},
Date-Modified = {2015-06-20 22:06:12 +0000},
Doi = {10.1145/2463676.2465326},
Isbn = {978-1-4503-2037-5},
Keywords = {copy-on-write, flash storage devices, flash translation layer, sqlite, transactional atomicity},
Location = {New York, New York, USA},
Numpages = {12},
Title = {{X-FTL}: {Transactional} {FTL} for {SQLite} Databases},
Url = {http://doi.acm.org/10.1145/2463676.2465326},
Year = {2013},
Bdsk-Url-1 = {http://www.cidrdb.org/cidr2013/Papers/CIDR13_Paper117.pdf}}
Bdsk-Url-1 = {http://doi.acm.org/10.1145/2463676.2465326},
Bdsk-Url-2 = {http://dx.doi.org/10.1145/2463676.2465326}}
@misc{tpc-web,
Howpublished = {\url{http://www.tpc.org/}},
Title = {Transaction Processing Performance Council}}
@inproceedings{jeong2013iostack,
Acmid = {2535499},
Address = {Berkeley, CA, USA},
Author = {Jeong, Sooman and Lee, Kisung and Lee, Seongjin and Son, Seoungbum and Won, Youjip},
Booktitle = {USENIX ATC},
Date-Modified = {2015-06-20 22:03:04 +0000},
Location = {San Jose, CA},
Numpages = {12},
Pages = {309--320},
Publisher = {USENIX Association},
Title = {{I/O} Stack Optimization for Smartphones},
Url = {http://dl.acm.org/citation.cfm?id=2535461.2535499},
Year = {2013},
Bdsk-Url-1 = {http://dl.acm.org/citation.cfm?id=2535461.2535499}}
@incollection{kim2012androbench,
Author = {Kim, Je-Min and Kim, Jin-Soo},
Booktitle = {Frontiers in Computer Education},
Date-Modified = {2015-06-20 22:06:31 +0000},
Doi = {10.1007/978-3-642-27552-4_89},
Editor = {Sambath, Sabo and Zhu, Egui},
Isbn = {978-3-642-27551-7},
Keywords = {AndroBench; Android; Storage performance; Benchmark},
Language = {English},
Pages = {667-674},
Publisher = {Springer Berlin Heidelberg},
Series = {Advances in Intelligent and Soft Computing},
Title = {{AndroBench}: Benchmarking the Storage Performance of {Android}-Based Mobile Devices},
Url = {http://dx.doi.org/10.1007/978-3-642-27552-4_89},
Volume = {133},
Year = {2012},
Bdsk-Url-1 = {http://dx.doi.org/10.1007/978-3-642-27552-4_89}}
@misc{ahmed2009mobigen,
Author = {Ahmed, Sabbir},
Date-Modified = {2015-06-20 22:04:00 +0000},
Howpublished = {http://arrow.monash.edu.au/hdl/1959.1/109933},
Title = {{MobiGen}: a mobility generator for environment aware mobility model},
Year = {2009}}
@article{madden2005tinydb,
Acmid = {1061322},
Address = {New York, NY, USA},
Author = {Madden, Samuel R. and Franklin, Michael J. and Hellerstein, Joseph M. and Hong, Wei},
Date-Modified = {2015-06-20 22:03:22 +0000},
Doi = {10.1145/1061318.1061322},
Issn = {0362-5915},
Issue_Date = {March 2005},
Journal = {ACM TODS},
Keywords = {Query processing, data acquisition, sensor networks},
Month = mar,
Number = {1},
Numpages = {52},
Pages = {122--173},
Publisher = {ACM},
Title = {{TinyDB}: An Acquisitional Query Processing System for Sensor Networks},
Url = {http://doi.acm.org/10.1145/1061318.1061322},
Volume = {30},
Year = {2005},
Bdsk-Url-1 = {http://doi.acm.org/10.1145/1061318.1061322},
Bdsk-Url-2 = {http://dx.doi.org/10.1145/1061318.1061322}}
@inproceedings{ycsb,
Acmid = {1807152},
Address = {New York, NY, USA},
Author = {Cooper, Brian F. and Silberstein, Adam and Tam, Erwin and Ramakrishnan, Raghu and Sears, Russell},
Booktitle = {SOCC},
Date-Modified = {2015-06-20 22:05:09 +0000},
Doi = {10.1145/1807128.1807152},
Isbn = {978-1-4503-0036-0},
Keywords = {benchmarking, cloud serving database},
Location = {Indianapolis, Indiana, USA},
Numpages = {12},
Publisher = {ACM},
Title = {Benchmarking Cloud Serving Systems with {YCSB}},
Url = {http://doi.acm.org/10.1145/1807128.1807152},
Year = {2010},
Bdsk-Url-1 = {http://doi.acm.org/10.1145/1807128.1807152},
Bdsk-Url-2 = {http://dx.doi.org/10.1145/1807128.1807152}}
@inproceedings{lam2009healthmonitoring,
Author = {Lam, S.C.K. and Kai Lap Wong and Kwok On Wong and Wenxiu Wong and Wai Ho Mow},
Booktitle = {ICICS},
Date-Modified = {2015-06-20 22:07:40 +0000},
Doi = {10.1109/ICICS.2009.5397628},
Keywords = {biosensors;body area networks;health care;patient monitoring;personal area networks;plethysmography;wireless sensor networks;battery life;biosignal processing;body area sensor network;closed loop control capability;healthcare;personal health monitoring;photoplethysmographic biosensors;portability;smartphone centric platform;upgradability;wireless wearable biosensors;Aging;Application software;Biomedical monitoring;Biosensors;Costs;Medical services;Operating systems;Smart phones;Wearable sensors;Wireless sensor networks;COTS wearable biosensors;Health monitoring;body area sensor network;pervasive computing},
Month = {Dec},
Title = {A smartphone-centric platform for personal health monitoring using wireless wearable biosensors},
Year = {2009},
Bdsk-Url-1 = {http://dx.doi.org/10.1109/ICICS.2009.5397628}}
@inproceedings{klasnja2009using,
Author = {Klasnja, Predrag and Consolvo, Sunny and McDonald, David W and Landay, James A and Pratt, Wanda},
Booktitle = {AMIA},
Date-Modified = {2015-06-20 22:07:22 +0000},
Title = {Using mobile \& personal sensing technologies to support health behavior change in everyday life: lessons learned},
Year = {2009}}
@article{campbell2008peoplesensing,
Author = {Campbell, A.T. and Eisenman, S.B. and Lane, N.D. and Miluzzo, E. and Peterson, R.A. and Hong Lu and Xiao Zheng and Musolesi, M. and Fodor, K. and Gahng-Seop Ahn},
Doi = {10.1109/MIC.2008.90},
Issn = {1089-7801},
Journal = {Internet Computing, IEEE},
Keywords = {social aspects of automation;ubiquitous computing;global mobile sensing device;mesh sensor networks;mobile devices;near-ubiquitous mobile phone;people-centric sensing;social sensing;Educational institutions;Humans;Mobile communication;Mobile computing;Mobile handsets;Monitoring;Portable media players;Prototypes;Visualization;Wireless sensor networks;Wi-Fi;mesh networking;people-centric sensing},
Month = {July},
Number = {4},
Pages = {12-21},
Title = {The Rise of People-Centric Sensing},
Volume = {12},
Year = {2008},
Bdsk-Url-1 = {http://dx.doi.org/10.1109/MIC.2008.90}}
@inproceedings{cheung2013statusquo,
Author = {Cheung, Alvin and Arden, Owen and Madden, Samuel and Solar-Lezama, Armando and Myers, Andrew C},
Booktitle = {CIDR},
Date-Modified = {2015-06-20 22:38:24 +0000},
Title = {{StatusQuo}: Making Familiar Abstractions Perform Using Program Analysis.},
Year = {2013}}
@inproceedings{wimmer2012truffle,
Acmid = {2384723},
Address = {New York, NY, USA},
Author = {Wimmer, Christian and W\"{u}rthinger, Thomas},
Booktitle = {Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity},
Doi = {10.1145/2384716.2384723},
Isbn = {978-1-4503-1563-0},
Keywords = {dynamic languages, graal, j, java, javascript, language implementation, truffle, virtual machine},
Location = {Tucson, Arizona, USA},
Numpages = {2},
Pages = {13--14},
Publisher = {ACM},
Series = {SPLASH '12},
Title = {Truffle: A Self-optimizing Runtime System},
Url = {http://doi.acm.org/10.1145/2384716.2384723},
Year = {2012},
Bdsk-Url-1 = {http://doi.acm.org/10.1145/2384716.2384723},
Bdsk-Url-2 = {http://dx.doi.org/10.1145/2384716.2384723}}

28
sections/1-1-metrics.tex Normal file
View File

@ -0,0 +1,28 @@
In a preliminary study~\cite{pocketdata}, we instrumented Android smartphones being used as the primary device of 11 UB students, faculty and staff for a period of one month.
The SQLite embedded database included as part of the Android platform was modified to log a trace of all queries executed, along with metadata such as the number of rows returned, time taken, and the application process executing the query.
To protect participant privacy, our instrumentation removed as much personally-identifying information as possible and recorded prepared statement arguments only as hash values.
With participant permission, we have made these traces publicly available.
We conducted a preliminary analysis to summarize these traces, the key parts of which we recap here.
We captured approximately 45 million statements executed by SQLite over the 1 month period.
As might be expected, \texttt{SELECT} forms almost three quarters of the workload by volume.
\texttt{UPSERT} statements (\textit{i.e.}, \texttt{INSERT OR REPLACE}) form a similarly substantial 16\% of the workload --- more than simple \texttt{INSERT} and \texttt{UPDATE} statements combined.
Also of note is a surprising level of complexity in \texttt{DELETE} statements, many of which rely on nested sub-queries when determining which records to delete.
\begin{figure*} \centering \begin{subfigure}[t]{0.5\textwidth} \includegraphics[width=\textwidth]{graphs/select_breakdown_by_width} \caption{} \label{fig:coarseSelectComplexity:byWidth} \end{subfigure}% \begin{subfigure}[t]{0.5\textwidth} \includegraphics[width=\textwidth]{graphs/select_breakdown_by_nesting} \caption{} \label{fig:coarseSelectComplexity:byNesting} \end{subfigure}% \caption{\textbf{\texttt{SELECT} queries by (a) number of tables accessed and (b) maximum nesting depth.}} \label{fig:coarseSelectComplexity} \end{figure*}
Of the 45 million queries analyzed, 33.47 million were read-only \texttt{SELECT} queries. Figure~\ref{fig:coarseSelectComplexity} shows the distribution of \texttt{SELECT} queries by number of tables accessed by the query, as well as the maximum level of query nesting. Nesting includes from-nesting (\textit{e.g.}, \texttt{SELECT \ldots\ FROM (SELECT \ldots)}), as well as expression-nesting (\textit{e.g.}, \texttt{SELECT \ldots\ WHERE EXISTS (SELECT \ldots)}). Even at this coarse-grained view of query complexity, the read-only portion of the embedded workload distinguishes itself from existing TPC benchmarks.
Like TPC-C~\cite{tpcc}, the vast majority of the workload involves simple, small requests for data that touch a small number of tables. 29.15 million, or about 87\% of the \texttt{SELECT} queries were simple select-project-join queries. Of those, 28.72 million or about 86\% of all queries were simple single-table scans or look-ups. In these queries, which form the bulk of SQLite's read workload, the query engine exists simply to provide an iterator over the relationally structured data it is being used to store. Conversely, the workload also has a tail that consists of complex, TPC-H-like~\cite{tpch} queries. Several hundred thousand queries involve at least 2 levels of nesting, and over a hundred thousand queries access 5 or more tables. As an extreme example, our trace includes 10 similar \texttt{SELECT} queries issued by the Google Play Games Service, each of which accesses up to 8 distinct tables to combine developer-provided game state, user preferences, device profile meta-data, and historical game-play results from the user.
\begin{figure} \centering \input{tables/spjsort_by_width_and_where} \caption{\textbf{Number of simple look-up queries subdivided by join width (number of tables) and number of conjunctive terms in the \texttt{WHERE} clause.}} \label{fig:spjsByWidthAndWhere} \end{figure}
The majority of \texttt{SELECT} queries we encountered fall into a class of \textit{simple look-up} queries, defined as any \texttt{SELECT} query that consists exclusively of selections, projections, joins, limit, and order by clauses, and which does not contain any nested sub-queries or unions. Figure~\ref{fig:spjsByWidthAndWhere} shows queries of this class, broken down by the number of tables involved in the query (Join Width) and the complexity of the where clause, as measured in number of conjunctive terms (Where Clauses). For example, consider a query of the form: \texttt{SELECT R.A FROM R, S WHERE R.B = S.B AND S.C = 10} This query would have a join width of 2 (\texttt{R}, \texttt{S}) and 2 conjunctive terms (\texttt{R.B = S.B} and \texttt{S.C = 10}).
% For uniformity, \texttt{NATURAL JOIN} and \texttt{JOIN ON} (\textit{e.g.}, \texttt{SELECT R.A from R JOIN S ON B}) expressions appearing in the \texttt{FROM} clause are rewritten into equivalent expressions in the \texttt{WHERE} clause. The first column of this table indicates queries to a single relation. Just over 1 million queries were full table scans (0 where clauses), and just under 27 million queries involved only a single conjunctive term. This latter class constitutes the bulk of the simple query workload, at just over 87\% of the simple look-up queries. Single-clause queries appear to be the norm.
Over the course of the one-month trace we observed 179 distinct apps, varying from built-in Android applications such as \textit{Gmail} or \textit{YouTube}, to video players such as \textit{VLC}, to games such as \textit{3 Kingdoms}. Figure~\ref{fig:selectByApp:all} shows the cumulative distribution of apps sorted by the number of queries that the app performs. The results are extremely skewed, with the top 10\% of apps each posing more than 100 thousand queries over the one month trace. The most query-intensive system service, \textit{Media Storage} was responsible for 13.57 million queries or just shy of 40 queries per minute per phone. The most query-intensive user-facing app was \textit{Google+}, which performed 1.94 million queries over the course of the month or 5 queries per minute. At the other end of the spectrum, the bottom 10\% of apps posed as few as 30 queries over the entire month.
We noted above that a large proportion of \texttt{SELECT} queries were exact look-ups; Indeed many applications running on the device are using SQLite as a simple key-value store. For 24 apps (13.4\%), we observed \emph{only} key-value queries during the entire, month-long trace.
\begin{figure*}[t] \centering \includegraphics[width=0.6\textwidth]{./graphs/activity/All_Devices__Top_10__Key} \begin{subfigure}[t]{0.33\textwidth} \includegraphics[width=\textwidth]{./graphs/activity/All_Devices__Top_10__All_Queries__ByAppPreviousQueryCDFGraph_noKey.pdf} \caption{} \label{fig-app-interarrival} \end{subfigure}% \begin{subfigure}[t]{0.33\textwidth} \includegraphics[width=\textwidth]{./graphs/activity/All_Devices__Top_10__All_Queries__ByAppRuntimeCDFGraph_noKey.pdf} \caption{} \label{fig-app-runtime} \end{subfigure}% \begin{subfigure}[t]{0.33\textwidth} \includegraphics[width=\textwidth]{./graphs/activity/All_Devices__Top_10__All_Queries__ByAppRowcountCDFGraph_noKey.pdf} \caption{} \label{fig-app-rowcount} \end{subfigure}% \caption{\textbf{Per-App Summary Statistics for Android SQLite Queries. Distributions of (a) inter-query arrival times, (b) query runtimes, and (c) rows returned per query.}} \label{fig-app} \end{figure*} Figure~\ref{fig-app} shows query interarrival times, runtimes, and returned row counts for ten of the most active SQLite clients. As seen in Figure~\ref{fig-app-interarrival}, the 0.01Hz periodicity is not unique to any one application, further suggesting filesystem locking as a culprit. Two of the most prolific SQLite clients, \textit{Google Play services} and \textit{Media Storage} appear to be very bursty: 70\% of all statements for these applications are issued within 0.1ms of the previous statement. Also interesting is the curve for queries issued by the \textit{Android System} itself. The interarrival time CDF appears to be almost precisely logarithmic for rates above 10$\mu$s, but has a notable lack of interarrival times in the 1ms to 10ms range. This could suggest caching effects, with the cache expiring after 1ms. As seen in Figure~\ref{fig-app-runtime}, most apps hold to the average runtime of 100$\mu$s, with several notable exceptions. Over 50\% of the \textit{Android System}'s statements take on the order of 1ms. Just under 20\% of \textit{Hangouts} statements take 10ms, suggesting an update-heavy workload. Also, \textit{Contacts Storage} has a heavier-duty workload, with 30\% of statements taking between 100$\mu$s and 1ms. Figure~\ref{fig-app-rowcount} shows that the \textit{Android System} and \textit{Media Storage} issue almost exclusively single-row lookup queries. The remaining apps issue a large number of single-row queries --- Even \textit{Contacts Storage} has a workload consisting of 45\% single-row reads --- the number of rows returned in general varies much more widely. Many of these apps' user interfaces have both a list and a search view that show multiple records at a time, suggesting that these views are backed directly by SQLite. Although all apps have long tails, two apps in particular: \textit{Gmail} and \textit{Google+} are notable for regularly issuing queries that return on the order of 100 rows.

View File

@ -99,24 +99,24 @@ pocket-scale data.
Concretely, the following three resources will be developed as part of the full infrastructure
proposal:
\begin{enumerate}
\item \textbf{Metrics}:
We will provide researchers with the metrics and data necessary to understand and emulate
embedded database usage on smartphones and similar devices.
\item \textbf{Datasets}:
We will provide the pocket-data community with the data and statistics necessary to
understand and emulate embedded database usage on smartphones and similar devices.
Our preliminary study~\cite{pocketdata} tracked usage patterns for SQLite on 11
smartphones ``in-the-wild'' for a period of 1 month.
The study clearly illustrates the uniqueness of these usage patterns and we have already
made our results and the source data freely available.
made our source data and the results of our analysis freely available.
We presently have further data on approximately 170 phones for a period of several months.
If funded, we would be able to continue our measurement studies and make our findings
and source data available to researchers.
If funded, we would be able to provide researchers with larger, more extensive traces
of smartphone embedded database usage, as well as more comprehensive analyses
summarizing those datasets.
%
\item \textbf{Standards and Software}:
We will create a toolkit to establish a set of standards for evaluating research efforts on
pocket-data.
First, significant components Android platform have been locked down for security and
IP reasons.
Consequently, properties including process scheduling and power usage are difficult
to measure reliably.
First, significant parts of the Android platform have been locked down for reasons of
security and intellectual property, making properties like process scheduling and power usage
difficult to measure reliably.
The toolkit will include instrumentation for Android that will make it easier for researchers
to measure the performance of their pocket data tools.
Second, to standardize comparisons across different research efforts, the toolkit will
@ -132,9 +132,8 @@ Our budget includes funding for a pocket-data workshop, including travel stipend
students and two keynote speakers.
\end{enumerate}
\subsection{Metrics}
\todo{Bring some content from the PocketData paper in here}
\subsection{Datasets}
\input{sections/1-1-metrics.tex}
\subsection{Instrumentation}
@ -144,6 +143,10 @@ students and two keynote speakers.
\todo{Overview of the benchmark's design, including plans for a repository of modular `app-specific' workloads.}
\todo{Write up the benchmark runner that Jerry's been working on}
\todo{Grab some content from the PocketData group's project report}
\subsection{Workshop}
\todo{Subject matter, sketch details and proposed content}

View File

@ -0,0 +1,16 @@
\begin{tabular}{c|c|c}
\textbf{Expression Type} & \textbf{Expression Form} & \textbf{Count}\\\hline
Exact Lookups & \texttt{Const $=$ Expr} & \ \ 926,042\ \ \\
Other Inequality & \texttt{Expr $\theta$ Expr} & \ \ 527,517\ \ \\
Membership Test & \texttt{Expr [NOT] IN (List or Query)} & \ \ 190,695\ \ \\
Disjunction & \texttt{[NOT] Expr $\vee$ Expr} & \ \ 48,534\ \ \\
Inequality on 1 constant & \texttt{Const $\theta$ Expr} & \ \ 31,128\ \ \\
Other Equality & \texttt{Expr $=$ Expr} & \ \ 10,037\ \ \\
Subquery Membership & \texttt{[NOT] EXISTS (Query)} & \ \ 9,079\ \ \\
Boolean Column Cast & \texttt{[NOT] Column} & \ \ 6,490\ \ \\
Patterned String Lookup & \texttt{Expr [NOT] LIKE Pattern} & \ \ 6,109\ \ \\
Validity Test & \texttt{Expr IS [NOT] NULL} & \ \ 2,693\ \ \\
Functional If-Then-Else & \texttt{CASE WHEN \ldots} & \ \ 390\ \ \\
No-op Clause & \texttt{Const or (Const = Const)} & \ \ 249\ \ \\
Range Test & \texttt{Expr BETWEEN Const AND Const} & \ \ 18\ \ \\
\end{tabular}

View File

@ -0,0 +1,13 @@
\begin{tabular}{|r|c|c|c|c|c|c|}\hline
\ \ \textbf{Operation}\ \ & \texttt{SELECT} & \texttt{INSERT} & \texttt{UPSERT} & \texttt{UPDATE} & \texttt{DELETE} & \textbf{Total}\\\hline
\textbf{\ \ Count } & \ \ 33,470,310\ \ & \ \ 1,953,279\ \ & \ \ 7,376,648\ \ & \ \ 1,041,967\ \ & \ \ 1,248,594\ \ & \ \ 45,090,798\ \ \\\hline
\textbf{\ \ Runtime (ms) } & \ \ 1.13\ \ & \ \ 2.31\ \ & \ \ 0.93\ \ & \ \ 6.59\ \ & \ \ 3.78\ \ & \\\hline
\multicolumn{7}{|c|}{\textbf{Features Used}}\\\hline
\texttt{OUTER JOIN} & \ \ 391,052\ \ & & & & \ \ 236\ \ & \ \ 391,288\ \ \\\hline
\texttt{DISTINCT} & \ \ 1,888,013\ \ & & & \ \ 25\ \ & \ \ 5,586\ \ & \ \ 1,893,624\ \ \\\hline
\texttt{LIMIT} & \ \ 1,165,096\ \ & & & & \ \ 422\ \ & \ \ 1,165,518\ \ \\\hline
\texttt{ORDER BY} & \ \ 3,168,915\ \ & & & & \ \ 194\ \ & \ \ 3,169,109\ \ \\\hline
\texttt{Aggregate} & \ \ 638,137\ \ & & & \ \ 25\ \ & \ \ 3,190\ \ & \ \ 641,352\ \ \\\hline
\texttt{GROUP BY} & \ \ 438,919\ \ & & & \ \ 25\ \ & & \ \ 438,944\ \ \\\hline
\texttt{UNION} & \ \ 13,801\ \ & & & & \ \ 65\ \ & \ \ 13,866\ \ \\\hline
\end{tabular}

View File

@ -0,0 +1,18 @@
\begin{tabular}{c|c|c}
\textbf{Expression Type} & \textbf{Expression Form} & \textbf{Count}\\\hline
Exact Lookups & \texttt{Const $=$ Expr} & \ \ 30,974,814\ \ \\
Other Equality & \texttt{Expr $=$ Expr} & \ \ 1,621,556\ \ \\
Membership Test & \texttt{Expr [NOT] IN (List or Query)} & \ \ 1,041,611\ \ \\
Inequality on 1 constant & \texttt{Const $\theta$ Expr} & \ \ 677,259\ \ \\
Disjunction & \texttt{[NOT] Expr $\vee$ Expr} & \ \ 631,404\ \ \\
Bitwise AND & \texttt{Expr \& Expr} & \ \ 480,921\ \ \\
Other Inequality & \texttt{Expr $\theta$ Expr} & \ \ 442,164\ \ \\
Boolean Column Cast & \texttt{[NOT] Column} & \ \ 302,014\ \ \\
No-op Clause & \texttt{Const or (Const = Const)} & \ \ 229,247\ \ \\
Patterned String Lookup & \texttt{Expr [NOT] LIKE Pattern} & \ \ 156,309\ \ \\
Validity Test & \texttt{Expr IS [NOT] NULL} & \ \ 87,873\ \ \\
Functional If-Then-Else & \texttt{CASE WHEN \ldots} & \ \ 2,428\ \ \\
Range Test & \texttt{Expr BETWEEN Const AND Const} & \ \ 2,393\ \ \\
Function Call & \texttt{Function(Expr)} & \ \ 1,965\ \ \\
Subquery Membership & \texttt{[NOT] EXISTS (Query)} & \ \ 1,584\ \ \\
\end{tabular}

View File

@ -0,0 +1,32 @@
\begin{tabular}{ccccc}
\begin{tabular}{c|c}
\textbf{Function} & \textbf{Call Sites}\\\hline
\texttt{GROUP\_CONCAT} & \ \ 583,474\ \ \\
\texttt{SUM} & \ \ 321,387\ \ \\
\texttt{MAX} & \ \ 314,970\ \ \\
\texttt{COUNT} & \ \ 173,031\ \ \\
\texttt{LENGTH} & \ \ 102,747\ \ \\
\texttt{SUBSTR} & \ \ 88,462\ \ \\
\end{tabular}
&\ \ \ \ \ &
\begin{tabular}{c|c}
\textbf{Function} & \textbf{Call Sites}\\\hline
\texttt{CAST} & \ \ 38,208\ \ \\
\texttt{UPPER} & \ \ 20,487\ \ \\
\texttt{MIN} & \ \ 19,566\ \ \\
\texttt{COALESCE} & \ \ 3,494\ \ \\
\texttt{LOWER} & \ \ 3,110\ \ \\
\texttt{PHONE\_NUMBERS\_EQUAL} & \ \ 2,017\ \ \\
\end{tabular}
&\ \ \ \ \ &
\begin{tabular}{c|c}
\ \ \textbf{Function}\ \ & \textbf{Call Sites}\\\hline
\texttt{STRFTIME} & \ \ 1,147\ \ \\
\texttt{IFNULL} & \ \ 657\ \ \\
\texttt{JULIANDAY} & \ \ 587\ \ \\
\texttt{DATE} & \ \ 44\ \ \\
\texttt{AVG} & \ \ 15\ \ \\
\ & \
\end{tabular}
\end{tabular}

View File

@ -0,0 +1,15 @@
\begin{tabular}{c|c|c}
\textbf{Expression Type} & \textbf{Expression Form} & \textbf{Count}\\\hline
Exact Lookups & \texttt{Const $=$ Expr} & \ \ 26,303,579\ \ \\
Membership Test & \texttt{Expr [NOT] IN (List)} & \ \ 331,788\ \ \\
Inequality on 1 constant & \texttt{Const $\theta$ Expr} & \ \ 93,816\ \ \\
Patterned String Lookup & \texttt{Expr [NOT] LIKE Pattern} & \ \ 72,289\ \ \\
Disjunction & \texttt{[NOT] Expr $\vee$ Expr} & \ \ 61,541\ \ \\
Other Inequality & \texttt{Expr $\theta$ Expr} & \ \ 38,714\ \ \\
Validity Test & \texttt{Expr IS [NOT] NULL} & \ \ 17,305\ \ \\
No-op Clause & \texttt{Const or (Const = Const)} & \ \ 6,710\ \ \\
Boolean Column Cast & \texttt{[NOT] Column} & \ \ 5,358\ \ \\
Other Equality & \texttt{Expr $=$ Expr} & \ \ 1,471\ \ \\
Function Call & \texttt{Function(Expr)} & \ \ 43\ \ \\
Range Test & \texttt{Expr BETWEEN Const AND Const} & \ \ 18\ \ \\
\end{tabular}

View File

@ -0,0 +1,17 @@
\begin{tabular}{|c|c|c|c|c|c|c|}\hline
& \multicolumn{5}{|c|}{\textbf{Join Width}} & \\\hline
\textbf{Where Clauses} & 1 & 2 & 3 & 4 & 6 & \textbf{Total}\\\hline
0 & \ \ 1,085,154\ \ & & & & & \textbf{\ \ 1,085,154\ \ }\\\hline
1 & \ \ 26,932,632\ \ & \ \ 9,105\ \ & & & & \textbf{\ \ 26,941,737\ \ }\\\hline
2 & \ \ 1,806,843\ \ & \ \ 279,811\ \ & \ \ 5,970\ \ & & & \textbf{\ \ 2,092,624\ \ }\\\hline
3 & \ \ 384,406\ \ & \ \ 80,183\ \ & \ \ 29,101\ \ & \ \ 1\ \ & & \textbf{\ \ 493,691\ \ }\\\hline
4 & \ \ 115,107\ \ & \ \ 70,891\ \ & \ \ 10,696\ \ & \ \ 939\ \ & & \textbf{\ \ 197,633\ \ }\\\hline
5 & \ \ 28,347\ \ & \ \ 15,061\ \ & \ \ 1,162\ \ & \ \ 17\ \ & \ \ 11\ \ & \textbf{\ \ 44,598\ \ }\\\hline
6 & \ \ 212\ \ & \ \ 524\ \ & \ \ 591\ \ & \ \ 471\ \ & \ \ 3\ \ & \textbf{\ \ 1,801\ \ }\\\hline
7 & \ \ 349\ \ & \ \ 22,574\ \ & \ \ 333\ \ & \ \ 1,048\ \ & \ \ 8\ \ & \textbf{\ \ 24,312\ \ }\\\hline
8 & \ \ 35\ \ & \ \ 18\ \ & & & \ \ 6\ \ & \textbf{\ \ 59\ \ }\\\hline
9 & & \ \ 541\ \ & \ \ 2,564\ \ & \ \ 4\ \ & & \textbf{\ \ 3,109\ \ }\\\hline
10 & \ \ 159\ \ & & & & & \textbf{\ \ 159\ \ }\\\hline
11 & \ \ 545\ \ & & & & & \textbf{\ \ 545\ \ }\\\hline
\textbf{Total} & \textbf{\ \ 30,353,789\ \ } & \textbf{\ \ 478,708\ \ } & \textbf{\ \ 50,417\ \ } & \textbf{\ \ 2,480\ \ } & \textbf{\ \ 28\ \ } & \textbf{\ \ 30,885,422\ \ }\\\hline
\end{tabular}

View File

@ -0,0 +1,12 @@
\begin{tabular}{c|c|c}
\textbf{Expression Type} & \textbf{Expression Form} & \textbf{Count}\\\hline
Exact Lookups & \texttt{Const $=$ Expr} & \ \ 1,013,697\ \ \\
Disjunction & \texttt{[NOT] Expr $\vee$ Expr} & \ \ 84,937\ \ \\
Inequality on 1 constant & \texttt{Const $\theta$ Expr} & \ \ 18,146\ \ \\
Membership Test & \texttt{Expr [NOT] IN (List or Query)} & \ \ 14,146\ \ \\
Other Inequality & \texttt{Expr $\theta$ Expr} & \ \ 9,443\ \ \\
Boolean Column Cast & \texttt{[NOT] Column} & \ \ 1,640\ \ \\
Validity Test & \texttt{Expr IS [NOT] NULL} & \ \ 1,517\ \ \\
Other Equality & \texttt{Expr $=$ Expr} & \ \ 221\ \ \\
Patterned String Lookup & \texttt{Expr [NOT] LIKE Pattern} & \ \ 59\ \ \\
\end{tabular}