Demo Data from EDBT 2026 / reviewers in the wild / expert
Yannis Klonatos
dblp:33/8291
· DBLP profile ↗
9ranked-venue papers
5as first author
0since 2021 · last 2018
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Databases, data management, data science and information retrieval · 6 · 3 first-authorSystems, architecture and hardware · 3 · 2 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Databases, data mining, and information retrieval
4 papers |
Query processing and optimization · 82% Data stream processing · 18% | |
| Computer architecture, parallel and distributed computing, and storage systems
3 papers |
Storage systems · 81% Memory systems · 19% | |
| Software engineering, system software, and programming languages
4 papers |
Compilers and program optimization · 41% Programming languages and type systems · 36% Program synthesis and code generation · 23% |
Topics — the 15 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Query processing and optimization
analytical query processing |
0.3 | 1 | 2018 | Building Efficient Query Engines in a High-Level Language · ACM Trans. Database Syst. 2018 |
Compilers and program optimization › domain-specific compilation
query compilation |
0.3 | 2 | 2018 | Building Efficient Query Engines in a High-Level Language · Proc. VLDB Endow. 2014 Building Efficient Query Engines in a High-Level Language · ACM Trans. Database Syst. 2018 |
Query processing and optimization › query compilation
query compiler |
0.2 | 1 | 2016 | How to Architect a Query Compiler · SIGMOD Conference 2016 |
Programming languages and type systems
domain-specific languages |
0.2 | 1 | 2016 | How to Architect a Query Compiler · SIGMOD Conference 2016 |
Query processing and optimization › query execution
compiled query execution |
0.2 | 1 | 2014 | Building Efficient Query Engines in a High-Level Language · Proc. VLDB Endow. 2014 |
Program synthesis and code generation
algorithm synthesis |
0.2 | 1 | 2013 | Automatic synthesis of out-of-core algorithms · SIGMOD Conference 2013 |
Storage systems
out-of-core computation |
0.2 | 1 | 2013 | Automatic synthesis of out-of-core algorithms · SIGMOD Conference 2013 |
Storage systems › data compression
block-level compression |
0.1 | 1 | 2012 | Transparent Online Storage Compression at the Block-Level · ACM Trans. Storage 2012 |
Storage systems
file systems |
0.1 | 1 | 2012 | Transparent Online Storage Compression at the Block-Level · ACM Trans. Storage 2012 |
Storage systems › flash and SSD
SSD cache |
0.1 | 1 | 2012 | Transparent Online Storage Compression at the Block-Level · ACM Trans. Storage 2012 |
Memory systems › cache management
storage caching |
0.1 | 1 | 2012 | Transparent Online Storage Compression at the Block-Level · ACM Trans. Storage 2012 |
Storage systems
flash and SSD |
0.1 | 1 | 2010 | Using transparent compression to improve SSD-based I/O caches · EuroSys 2010 |
Storage systems › data compression
transparent compression |
0.1 | 1 | 2010 | Using transparent compression to improve SSD-based I/O caches · EuroSys 2010 |
Query processing and optimization
join processing |
0.1 | 1 | 2016 | Squall: Scalable Real-time Analytics · Proc. VLDB Endow. 2016 |
Memory systems
memory hierarchy |
0.0 | 1 | 2013 | Automatic synthesis of out-of-core algorithms · SIGMOD Conference 2013 |
Methods — techniques the papers use, named apart from their topics
generative programming · 1.0source-to-source compilation · 0.7scala · 0.7c code generation · 0.7template expansion · 0.5lowering · 0.5high-level language · 0.4variable-size block compression · 0.1multicore work scheduling · 0.1metadata caching · 0.1variable-size block mapping · 0.1online compression · 0.1multi-core parallelism · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Building Efficient Query Engines in a High-Level LanguageabstractAbstraction without regret refers to the vision of using high-level programming languages for systems development without experiencing a negative impact on performance. A database system designed according to this vision offers both increased productivity and high performance instead of sacrificing the former for the latter as is the case with existing, monolithic implementations that are hard to maintain and extend. In this article, we realize this vision in the domain of analytical query processing. 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: LegoBase performs source-to-source compilation and optimizes database systems code by converting the high-level Scala code to specialized, low-level C code. We show how generative programming allows to easily implement a wide spectrum of optimizations, such as introducing data partitioning or switching from a row to a column data layout, which are difficult to achieve with existing low-level query compilers that handle only queries. We demonstrate that sufficiently powerful abstractions are essential for dealing with the complexity of the optimization effort, shielding developers from compiler internals and decoupling individual optimizations from each other. We evaluate our approach with the TPC-H benchmark and show that (a) with all optimizations enabled, our architecture significantly outperforms a commercial in-memory database as well as an existing query compiler. (b) Programmers need to provide just a few hundred lines of high-level code for implementing the optimizations, instead of complicated low-level code that is required by existing query compilation approaches. (c) These optimizations may potentially come at the cost of using more system memory for improved performance. (d) The compilation overhead is low compared to the overall execution time, thus making our approach usable in practice for compiling query engines. Amir Shaikhha, Yannis Klonatos, Christoph Koch 0001 |
ACM Trans. Database Syst. | 2 |
| 2016 | How to Architect a Query CompilerabstractThis paper studies architecting query compilers. The state of the art in query compiler construction is lagging behind that in the compilers field. We attempt to remedy this by exploring the key causes of technical challenges in need of well founded solutions, and by gathering the most relevant ideas and approaches from the PL and compilers communities for easy digestion by database researchers. All query compilers known to us are more or less monolithic template expanders that do the bulk of the compilation task in one large leap. Such systems are hard to build and maintain. We propose to use a stack of multiple DSLs on different levels of abstraction with lowering in multiple steps to make query compilers easier to build and extend, ultimately allowing us to create more convincing and sustainable compiler-based data management systems. We attempt to derive our advice for creating such DSL stacks from widely acceptable principles. We have also re-created a well-known query compiler following these ideas and report on this effort. Amir Shaikhha, Yannis Klonatos, Lionel Parreaux, Lewis Brown, Mohammad Dashti 0001, Christoph Koch 0001 |
SIGMOD Conference | 2 |
| 2016 | Squall: Scalable Real-time AnalyticsabstractSquall is a scalable online query engine that runs complex analytics in a cluster using skew-resilient, adaptive operators. Squall builds on state-of-the-art partitioning schemes and local algorithms, including some of our own. This paper presents the overview of Squall, including some novel join operators. The paper also presents lessons learned over the five years of working on this system, and outlines the plan for the proposed system demonstration. Aleksandar Vitorovic, Mohammed Elseidy, Khayyam Guliyev, Khue Vu Minh, Daniel Espino, Mohammad Dashti 0001, Yannis Klonatos, Christoph Koch 0001 |
Proc. VLDB Endow. | 7 |
| 2014 | Building Efficient Query Engines in a High-Level LanguageabstractIn 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, is actually a program generator that emits specialized, low-level C code. We show how the combination of high-level and generative programming allows to easily implement a wide spectrum of optimizations that are difficult to achieve with existing low-level query compilers, and how it can continuously optimize the query engine. We evaluate our approach with the TPC-H benchmark and show that: (a) with all optimizations enabled, our architecture significantly outperforms a commercial in-memory database system as well as an existing query compiler, (b) these performance improvements require programming just a few hundred lines of high-level code instead of complicated low-level code that is required by existing query compilers and, finally, that (c) the compilation overhead is low compared to the overall execution time, thus making our approach usable in practice for efficiently compiling query engines. Yannis Klonatos, Christoph Koch 0001, Tiark Rompf, Hassan Chafi |
Proc. VLDB Endow. | 1 |
| 2014 | Errata for "Building Efficient Query Engines in a High-Level Language" (PVLDB 7(10): 853-864)abstractThis is in response to recent feedback from our peers that calls for a number of clarifications regarding the experimental section of our paper. Yannis Klonatos, Christoph Koch 0001, Tiark Rompf, Hassan Chafi |
Proc. VLDB Endow. | 1 |
| 2013 | Automatic synthesis of out-of-core algorithmsabstractWe present a system for the automatic synthesis of efficient algorithms specialized for a particular memory hierarchy and a set of storage devices. The developer provides two independent inputs: 1) an algorithm that ignores memory hierarchy and external storage aspects; and 2) a description of the target memory hierarchy, including its topology and parameters. Our system is able to automatically synthesize memory-hierarchy and storage-device-aware algorithms out of those specifications, for tasks such as joins and sorting. The framework is extensible and allows developers to quickly synthesize custom out-of-core algorithms as new storage technologies become available. Yannis Klonatos, Andres Nötzli, Andrej Spielmann, Christoph Koch 0001, Viktor Kuncak |
SIGMOD Conference | 1 |
| 2012 | Transparent Online Storage Compression at the Block-LevelabstractIn this work, we examine how transparent block-level compression in the I/O path can improve both the space efficiency and performance of online storage. We present ZBD , a block-layer driver that transparently compresses and decompresses data as they flow between the file-system and storage devices. Our system provides support for variable-size blocks, metadata caching, and persistence, as well as block allocation and cleanup. ZBD targets maintaining high performance, by mitigating compression and decompression overheads that can have a significant impact on performance by leveraging modern multicore CPUs through explicit work scheduling. We present two case-studies for compression. First, we examine how our approach can be used to increase the capacity of SSD-based caches, thus increasing their cost-effectiveness. Then, we examine how ZBD can improve the efficiency of online disk-based storage systems. We evaluate our approach in the Linux kernel on a commodity server with multicore CPUs, using PostMark, SPECsfs2008, TPC-C, and TPC-H. Preliminary results show that transparent online block-level compression is a viable option for improving effective storage capacity, it can improve I/O performance up to 80% by reducing I/O traffic and seek distance, and has a negative impact on performance, up to 34%, only when single-thread I/O latency is critical. In particular, for SSD-based caching, our results indicate that, in line with current technology trends, compressed caching trades off CPU utilization for performance and enhances SSD efficiency as a storage cache up to 99%. Yannis Klonatos, Thanos Makatos, Manolis Marazakis, Michail Flouris, Angelos Bilas |
ACM Trans. Storage | 1 |
| 2011 | Azor: Using Two-Level Block Selection to Improve SSD-Based I/O CachesabstractFlash-based solid state drives (SSDs) exhibit potential for solving I/O bottlenecks by offering superior performance over hard disks for several workloads. In this work we design Azor, an SSD-based I/O cache that operates at the block-level and is transparent to existing applications, such as databases. Our design provides various choices for associativity, write policies and cache line size, while maintaining a high degree of I/O concurrency. Our main contribution is that we explore differentiation of HDD blocks according to their expected importance on system performance. We design and analyze a two-level block selection scheme that dynamically differentiates HDD blocks, and selectively places them in the limited space of the SSD cache. We implement Azor in the Linux kernel and evaluate its effectiveness experimentally using a server-type platform and large problem sizes with three I/O intensive workloads: TPC-H, SPECsfs 2008, and Hammerora. Our results show that as the cache size increases, Azor enhances I/O performance by up to 14.02×, 1.63×, and 1.55× for each workload respectively. Additionally, our two-level block selection scheme further enhances I/O performance compared to a typical SSD cache by up to 95%, 16%, and 34% for each workload, respectively. Yannis Klonatos, Thanos Makatos, Manolis Marazakis, Michail Flouris, Angelos Bilas |
NAS | 1 |
| 2010 | Using transparent compression to improve SSD-based I/O cachesabstractFlash-based solid state drives (SSDs) offer superior performance over hard disks for many workloads. A prominent use of SSDs in modern storage systems is to use these devices as a cache in the I/O path. In this work, we examine how transparent, online I/O compression can be used to increase the capacity of SSD-based caches, thus increasing the costeffectiveness of the system. We present FlaZ, an I/O system that operates at the block-level and is transparent to existing file-systems. To achieve transparent, online compression in the I/O path and maintain high performance, FlaZ, provides support for variable-size blocks, mapping of logical to physical blocks, block allocation, and cleanup. FlaZ, mitigates compression and decompression overheads that can have a significant impact on performance by leveraging modern multicore CPUs. We implement FlaZ, in the Linux kernel and evaluate it on a commodity server with multicore CPUs, using TPC-H, PostMark, and SPECsfs. Our results show that compressed caching trades off CPU cycles for I/O performance and enhances SSD efficiency as a cache by up to 99%, 25%, and 11% for each workload, respectively. Thanos Makatos, Yannis Klonatos, Manolis Marazakis, Michail Flouris, Angelos Bilas |
EuroSys | 2 |