skip to main content
10.1145/3124680.3124719acmconferencesArticle/Chapter ViewAbstractPublication PagesapsysConference Proceedingsconference-collections
research-article

The Dangers and Complexities of SQLite Benchmarking

Authors Info & Claims
Published:02 September 2017Publication History

ABSTRACT

Benchmarking systems in a repeatable fashion is complex and error-prone. The systems community has repeatedly discussed the complexities of benchmarking and how to properly report benchmarking results. Using the example of SQLite, we examine the current state of benchmarking in industry and academia. We show that changing just one parameter in SQLite can change the performance by 11.8X, and that changing multiple parameters can lead up to a 28X difference in performance. We find that these configuration parameters are often not set or reported in academic research, leading to incomplete and misleading evaluations. Running different off-the-shelf SQLite benchmarking tools such as Mobibench and Androbench in their default configuration shows upto 50% difference in performance. We hope this paper incites discussion in the systems community and among SQLite developers. We hope that our detailed analysis will help application developers to choose optimal SQLite parameters to achieve better performance.

References

  1. Brian F Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. Benchmarking cloud serving systems with ycsb. In Proceedings of the 1st ACM symposium on Cloud computing, pages 143--154. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Google. Leveldb. https://github.com/google/leveldb.Google ScholarGoogle Scholar
  3. RocksDB | A persistent key-value store. http://rocksdb.org.Google ScholarGoogle Scholar
  4. Transaction Processing Performance Council. Tpc benchmark c, standard specification version 5, 2001.Google ScholarGoogle Scholar
  5. Transaction Processing Performance Council. 'tpc benchmark b. Standard Specification, Waterside Associates, Fremont, CA, 1990.Google ScholarGoogle Scholar
  6. Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney. Producing wrong data without doing anything obviously wrong! In Proceedings of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XIV, pages 265--276, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Vasily Tarasov, Saumitra Bhanage, Erez Zadok, and Margo Seltzer. Benchmarking file system benchmarking: It* is* rocket science. In HotOS, 2011.Google ScholarGoogle Scholar
  8. SQLite. SQLite transactional SQL database engine. http://www.sqlite.org/.Google ScholarGoogle Scholar
  9. Why to use SQLite in Android. https://www.quora.com/Why-should-we-use-SQLite-in-Android-development, January 2017.Google ScholarGoogle Scholar
  10. SQLite in Android. http://www.grokkingandroid.com/sqlite-in-android, January 2017.Google ScholarGoogle Scholar
  11. SQLite. Most Widely Deployed SQL Database Engine. https://www.sqlite.org/mostdeployed.html.Google ScholarGoogle Scholar
  12. Suli Yang, Tyler Harter, Nishant Agrawal, Salini Selvaraj Kowsalya, Anand Krishnamurthy, Samer Al-Kiswany, Rini T Kaushik, Andrea C Arpaci-Dusseau, and Remzi H Arpaci-Dusseau. Split-level i/o scheduling. In Proceedings of the 25th Symposium on Operating Systems Principles, pages 474--489. ACM, 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Pierre Olivier, Jalil Boukhobza, and Eric Senn. Revisiting read-ahead efficiency for raw nand flash storage in embedded linux. ACM SIGBED Review, 11(4):43--48, 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Wook-Hee Kim, Jinwoong Kim, Woongki Baek, Beomseok Nam, and Youjip Won. Nvwal: Exploiting nvram in write-ahead logging. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, pages 385--398. ACM, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Dmitrii Kuvaiskii, Rasha Faqeh, Pramod Bhatotia, Pascal Felber, and Christof Fetzer. Haft: hardware-assisted fault tolerance. In Proceedings of the Eleventh European Conference on Computer Systems, page 25. ACM, 2016.Google ScholarGoogle Scholar
  16. Publications involving SQLite. http://dl.acm.org/results.cfm?query=(sqlite)&within=owners.owner=HOSTED&filtered=&dte=2008&bfr=, January 2017.Google ScholarGoogle Scholar
  17. Nikolaos Ch. Kasmeridis and Michael Gr. Vassilakopoulos. A diet-guide mobile application for diabetes mellitus management. In Proceedings of the 19th Pan-hellenic Conference on Informatics, PCI '15, pages 377--381, New York, NY, USA, 2015. ACM.Google ScholarGoogle Scholar
  18. Simone Mutti, Enrico Bacis, and Stefano Paraboschi. Sesqlite: Security enhanced sqlite: Mandatory access control for android databases. In Proceedings of the 31st Annual Computer Security Applications Conference, ACSAC 2015, pages 411--420, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Eunryoung Lim, Seongjin Lee, and Youjip Won. Androtrace: Framework for tracing and analyzing ios on android. In Proceedings of the 3rd Workshop on Interactions of NVM/FLASH with Operating Systems and Workloads, INFLOW '15, pages 3:1--3:8, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Suli Yang, Tyler Harter, Nishant Agrawal, Salini Selvaraj Kowsalya, Anand Krishnamurthy, Samer Al-Kiswany, Rini T. Kaushik, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. Split-level i/o scheduling. In Proceedings of the 25th Symposium on Operating Systems Principles, SOSP '15, pages 474--489, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Dmitrii Kuvaiskii, Rasha Faqeh, Pramod Bhatotia, Pascal Felber, and Christof Fetzer. Haft: Hardware-assisted fault tolerance. In Proceedings of the Eleventh European Conference on Computer Systems, EuroSys '16, pages 25:1--25:17, New York, NY, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Charlie Curtsinger and Emery D. Berger. Coz: Finding code that counts with causal profiling. In Proceedings of the 25th Symposium on Operating Systems Principles, SOSP '15, pages 184--197, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Yan Wang and Atanas Rountev. Profiling the responsiveness of android applications via automated resource amplification. In Proceedings of the International Conference on Mobile Software Engineering and Systems, MOBILESoft '16, pages 48--58, New York, NY, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Georgios Chatzopoulos, Aleksandar Dragojević, and Rachid Guerraoui. Estima: Extrapolating scalability of in-memory applications. In Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '16, pages 27:1--27:11, New York, NY, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Pierre Olivier, Jalil Boukhobza, and Eric Senn. Revisiting read-ahead efficiency for raw nand flash storage in embedded linux. SIGBED Rev., 11(4):43--48, January 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Phil Mcminn, Chris J. Wright, and Gregory M. Kapfhammer. The effectiveness of test coverage criteria for relational database schema integrity constraints. ACM Trans. Softw. Eng. Methodol., 25(1):8:1--8:49, December 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Lei Li, Kai Qian, Qian Chen, Ragib Hasan, and Guifeng Shao. Developing hands-on labware for emerging database security. In Proceedings of the 17th Annual Conference on Information Technology Education, SIGITE '16, pages 60--64, New York, NY, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Gihwan Oh, Sangchul Kim, Sang-Won Lee, and Bongki Moon. Sqlite optimization with phase change memory for mobile applications. Proc. VLDB Endow., 8(12):1454--1465, August 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Wook-Hee Kim, Jinwoong Kim, Woongki Baek, Beomseok Nam, and Youjip Won. Nvwal: Exploiting nvram in write-ahead logging. SIGOPS Oper. Syst. Rev., 50(2):385--398, March 2016. Google ScholarGoogle ScholarCross RefCross Ref
  30. Changman Lee, Dongho Sim, Joo-Young Hwang, and Sangyeun Cho. F2fs: A new file system for flash storage. In Proceedings of the 13th USENIX Conference on File and Storage Technologies, FAST'15, pages 273--286, Berkeley, CA, USA, 2015. USENIX Association.Google ScholarGoogle Scholar
  31. Eric Koskinen and Junfeng Yang. Reducing crash recoverability to reachability. SIGPLAN Not., 51(1):97--108, January 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Dam Quang Tuan, Seungyong Cheon, and Youjip Won. On the io characteristics of the sqlite transactions. In Proceedings of the International Conference on Mobile Software Engineering and Systems, MOBILESoft '16, pages 214--224, New York, NY, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Sooman Jeong, Kisung Lee, Jungwoo Hwang, Seongjin Lee, and Youjip Won. Androstep: Android storage performance analysis tool. In Software Engineering (Workshops), volume 13, pages 327--340, 2013.Google ScholarGoogle Scholar
  34. RL Benchmark. https://play.google.com/store/apps/details?id=com.redlicense.benchmark.sqlite&hl=en, December 2016.Google ScholarGoogle Scholar
  35. Je-Min Kim and Jin-Soo Kim. Androbench: Benchmarking the storage performance of android-based mobile devices. In Frontiers in Computer Education, pages 667--674. Springer, 2012.Google ScholarGoogle ScholarCross RefCross Ref
  36. Hyojun Kim, Nitin Agrawal, and Cristian Ungureanu. Revisiting storage for smartphones. Trans. Storage, 8(4):14:1--14:25, December 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. WAL mode in SQLite. https://www.sqlite.org/wal.html, January 2017.Google ScholarGoogle Scholar
  38. No journal in SQLite. https://www.sqlite.org/pragma.html#pragma_journal_mode, January 2017.Google ScholarGoogle Scholar
  39. Vijayan Prabhakaran, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. Analysis and Evolution of Journaling File Systems. In The Proceedings of the USENIX Annual Technical Conference (USENIX '05), pages 105--120, Anaheim, CA, April 2005.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    APSys '17: Proceedings of the 8th Asia-Pacific Workshop on Systems
    September 2017
    207 pages
    ISBN:9781450351973
    DOI:10.1145/3124680

    Copyright © 2017 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 2 September 2017

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    APSys '17 Paper Acceptance Rate27of51submissions,53%Overall Acceptance Rate149of386submissions,39%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader