2014
DOI: 10.14778/2732951.2732959
|View full text |Cite
|
Sign up to set email alerts
|

Building efficient query engines in a high-level language

Abstract: In this paper we advocate that it is time for a radical rethinking of database systems design. Developers should be able to leverage high-level programming languages without having to pay a price in efficiency. To realize our vision of abstraction without regret, we present LegoBase, a query engine written in the high-level programming language Scala. The key technique to regain efficiency is to apply generative programming: the Scala code that constitutes the query engine, despite its high-level appearance, i… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
78
0

Year Published

2015
2015
2021
2021

Publication Types

Select...
8
1

Relationship

3
6

Authors

Journals

citations
Cited by 88 publications
(78 citation statements)
references
References 25 publications
0
78
0
Order By: Relevance
“…When transforming a batch of scan requests into a single shared scan, TellStore uses just-in-time compilation with LLVM to get highly-tuned machine code. In essence, TellStore combines the batch-oriented shared scan technique of [22] with LLVM code generation described in [33,27].…”
Section: Predicate Pushdownmentioning
confidence: 99%
“…When transforming a batch of scan requests into a single shared scan, TellStore uses just-in-time compilation with LLVM to get highly-tuned machine code. In essence, TellStore combines the batch-oriented shared scan technique of [22] with LLVM code generation described in [33,27].…”
Section: Predicate Pushdownmentioning
confidence: 99%
“…Another example of research done on building eficient query engines is presented in [28]. What constitutes the research particularly interesting for our work is Scala language that has been selected to implement LegoBase -a query engine being analysed by authors.…”
Section: Related Workmentioning
confidence: 99%
“…Runtime code generation has become an established mechanism, used by several relational engines [6,34,36,43,45,49]. HIQUE [36] generates cache-conscious code via code templates.…”
Section: Related Workmentioning
confidence: 99%
“…HyPer [43] uses the LLVM compiler [37] to generate low-level machine code. LegoBase [34] goes through numerous rewriting ("staging") steps to generate C code. Proteus follows the HyPer paradigm and relies on LLVM too.…”
Section: Related Workmentioning
confidence: 99%