- Data Management and Algorithms
- Advanced Database Systems and Queries
- Cloud Computing and Resource Management
- Scientific Computing and Data Management
- Parallel Computing and Optimization Techniques
- Graph Theory and Algorithms
- Distributed systems and fault tolerance
- Embedded Systems Design Techniques
- Distributed and Parallel Computing Systems
- Advanced Graph Neural Networks
- Software Testing and Debugging Techniques
Technical University of Munich
2017-2021
The query engines of most modern database systems are either based on vectorization or data-centric code generation. These two state-of-the-art processing paradigms fundamentally different in terms system structure and execution code. Both were used to build fast systems. However, until today it is not clear which paradigm yields faster execution, as many implementation-specific choices obstruct a direct comparison architectures. In this paper, we experimentally compare the models by...
The query engines of most modern database systems are either based on vectorization or data-centric code generation. These two state-of-the-art processing paradigms fundamentally different in terms system structure and execution code. Both were used to build fast systems. However, until today it is not clear which paradigm yields faster execution, as many implementation-specific choices obstruct a direct comparison architectures. In this paper, we experimentally compare the models by...
Abstract Although compiling queries to efficient machine code has become a common approach for query execution, number of newly created database system projects still refrain from using compilation. It is sometimes claimed that the intricacies generation make compilation-based engines too complex. Also, major barrier adoption, especially interactive ad hoc queries, long compilation time. In this paper, we examine all stages execution and show how reduce overhead. We incorporate lessons...
The query engines of most modern database systems are either based on vectorization or data-centric code generation. These two state-of-the-art processing paradigms fundamentally different in terms system structure and execution code. Both were used to build fast systems. However, until today it is not clear which paradigm yields faster execution, as many implementation-specific choices obstruct a direct comparison architectures. In this paper, we experimentally compare the models by...
Analytical graph algorithms commonly compute metrics for a at one point in time. In practice it is often also of interest how change over time, e.g., to find trends. For this purpose, must be executed multiple snapshots. We present Single Algorithm Multiple Snapshots (SAMS) , novel approach execute concurrently SAMS automatically transforms leverage similarities between the analyzed The automatic transformation interleaves algorithm executions on snapshots, synergistically shares their...
Dataflow graphs are a popular abstraction for describing computation, used in many systems high-level optimization. For execution, dataflow lowered and optimized through layers of program representations down to machine instructions. Unfortunately, performance profiling such is cumbersome, as today's profilers present results merely at instruction function granularity. This obfuscates the connection between profiles constructs, operators pipelines, making interpretation an exercise puzzling...
Compilation-based query engines generate and compile code at runtime, which is then run to get the result. In this process there are two levels of source involved: The generator itself that generated runtime. This can make debugging quite indirect, as a fault in was caused by an error generator. To find error, we have look both, it. Current technology not equipped handle situation. For example, GNU's gdb only offers facilities inspect one line, but multiple levels. Also, current debuggers...