Automatic Array Transformation to Columnar Storage at Run Time

Lukas Makor, Sebastian Kloibhofer, David Leopoldseder, Daniele Bonetta, Lukas Stadler, Hanspeter Mössenböck

Research output: Chapter in Book / Report / Conference proceedingConference contributionAcademicpeer-review

Abstract

Today's huge memories make it possible to store and process large data structures in memory instead of in a database. Hence, accesses to this data should be optimized, which is normally relegated either to the runtimes and compilers or is left to the developers, who often lack the knowledge about optimization strategies. As arrays are often part of the language, developers frequently use them as an underlying storage mechanism. Thus, optimization of arrays may be vital to improve performance of data-intensive applications. While compilers can apply numerous optimizations to speed up accesses, it would also be beneficial to adapt the actual layout of the data in memory to improve cache utilization. However, runtimes and compilers typically do not perform such memory layout optimizations. In this work, we present an approach to dynamically perform memory layout optimizations on arrays of objects to transform them into a columnar memory layout, a storage layout frequently used in analytical applications that enables faster processing of read-intensive workloads. By integration into a state-of-the-art JavaScript runtime, our approach can speed up queries for large workloads by up to 9x, where the initial transformation overhead is amortized over time.
Original languageEnglish
Title of host publicationMPLR 2022 - Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes
EditorsE.G. Boix, T. Wrigstad
PublisherAssociation for Computing Machinery, Inc
Pages16-28
ISBN (Electronic)9781450396967
DOIs
Publication statusPublished - 14 Sept 2022
Externally publishedYes
Event19th International Conference on Managed Programming Languages and Runtimes, MPLR 2022 - Brussels, Belgium
Duration: 14 Sept 202215 Sept 2022

Conference

Conference19th International Conference on Managed Programming Languages and Runtimes, MPLR 2022
Country/TerritoryBelgium
CityBrussels
Period14/09/2215/09/22

Funding

This research project was partially funded by Oracle Labs. We thank all members of the Virtual Machine Research Group at Oracle Labs. Oracle, Java, GraalVM, and HotSpot are trademarks or registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. We also thank all researchers at the Johannes Kepler University Linz’s Institute for System Software for their support of and valuable feedback on our work.

FundersFunder number
Oracle Labs

    Fingerprint

    Dive into the research topics of 'Automatic Array Transformation to Columnar Storage at Run Time'. Together they form a unique fingerprint.

    Cite this