skip to main content
research-article

FAD.js: fast JSON data access using JIT-based speculative optimizations

Published:01 August 2017Publication History
Skip Abstract Section

Abstract

JSON is one of the most popular data encoding formats, with wide adoption in Databases and BigData frameworks as well as native support in popular programming languages such as JavaScript/Node.js, Python, and R.

Nevertheless, JSON data processing can easily become a performance bottleneck in data-intensive applications because of parse and serialization overhead. In this paper, we introduce Fad.js, a runtime system for efficient processing of JSON objects in data-intensive applications. Fad.js is based on (1) speculative just-in-time (JIT) compilation and (2) selective access to data. Experiments show that applications using Fad.js achieve speedups up to 2.7x for encoding and 9.9x for decoding JSON data when compared to state-of-the art JSON processing libraries.

References

  1. Amazon Lambda. https://aws.amazon.com/lambda/.Google ScholarGoogle Scholar
  2. Apache Storm. https://storm.apache.org/.Google ScholarGoogle Scholar
  3. Clarinet: SAX-based Event Streaming JSON Parser. https://github.com/dscape/clarinet.Google ScholarGoogle Scholar
  4. ECMA Language Specification. https://tc39.github.io/ecma262/.Google ScholarGoogle Scholar
  5. JSON Object Notation Specification. http://www.rfc-editor.org/info/rfc7159.Google ScholarGoogle Scholar
  6. Node.js JavaScript Runtime. https://nodejs.org/.Google ScholarGoogle Scholar
  7. Oracle Graal.js. http://labs.oracle.com.Google ScholarGoogle Scholar
  8. Protocol Buffers. https://developers.google.com/protocol-buffers/.Google ScholarGoogle Scholar
  9. The Mongodb Database. http://www.mongodb.org.Google ScholarGoogle Scholar
  10. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. I. Alagiannis, R. Borovica, M. Branco, S. Idreos, and A. Ailamaki. NoDB in Action: Adaptive Query Processing on Raw Data. Proc. VLDB Endow., 5(12):1942--1945, Aug. 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. K. Czarnecki, U. W. Eisenecker, R. Glück, D. Vandevoorde, and T. L. Veldhuizen. Generative Programming and Active Libraries. In ISGP, pages 25--39. Springer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. L. P. Deutsch and A. M. Schiffman. Efficient Implementation of the Smalltalk-80 System. In Proc. of POPL, pages 297--302, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. F. Farfán, V. Hristidis, and R. Rangaswami. Beyond Lazy XML Parsing. In Proc. of DEXA, pages 75--86, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Y. Futamura. Partial Evaluation of Computation Process; An Approach to a Compiler-Compiler. Higher Order Symbol. Comput., 12(4):381--391, Dec. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. U. Hölzle, C. Chambers, and D. Ungar. Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. In Proc. of ECOOP, pages 21--38, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Marian and J. Siméon. Projecting XML Documents. In Proc. of VLDB, pages 213--224, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. Newman. Building Microservices. O'Reilly Media, Inc., 1st edition, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. L. Noga, S. Schott, and W. Löwe. Lazy XML Processing. In Proc. of DocEng, pages 88--94, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. F. Pezoa, J. L. Reutter, F. Suarez, M. Ugarte, and D. VrgoČ. Foundations of JSON Schema. In Proc. of WWW, pages 263--273, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Simon, C. Wimmer, B. Urban, G. Duboscq, L. Stadler, and T. Würthinger. Snippets: Taking the High Road to a Low Level. ACM TECO, 12(2):20:20:1--20:20:25, June 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L. Stadler, A. Welc, C. Humer, and M. Jordan. Optimizing R Language Execution via Aggressive Speculation. In Proc. of DLS, pages 84--95, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Wöß, C. Wirth, D. Bonetta, C. Seaton, C. Humer, and H. Mössenböck. An Object Storage Model for the Truffle Language Implementation Framework. In Proc. of PPPJ, pages 133--144. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. Würthinger, C. Wimmer, A. Wöß, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, and M. Wolczko. One VM to Rule Them All. In Proc. of ONWARD, pages 187--204, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Zaharia. An Architecture for Fast and General Data Processing on Large Clusters. ACM, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library

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

Full Access

  • Published in

    cover image Proceedings of the VLDB Endowment
    Proceedings of the VLDB Endowment  Volume 10, Issue 12
    August 2017
    427 pages
    ISSN:2150-8097
    Issue’s Table of Contents

    Publisher

    VLDB Endowment

    Publication History

    • Published: 1 August 2017
    Published in pvldb Volume 10, Issue 12

    Qualifiers

    • research-article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!