|
1 |
| -# Glint: Vectorized and Code Generation Driven Query Engine in Java |
2 |
| - |
3 |
| -> Briefly flashing the powers of query compilation without the machinery of a spark. |
| 1 | +# Glint: Vectorized and Data Driven Code Generation Query Engine in Java |
4 | 2 |
|
5 | 3 | ## Description
|
6 | 4 |
|
7 |
| -Glint is a minimal SQL query engine with vectorized and query compilation support in Java. |
8 |
| - |
9 |
| -Following in the tradition of the new movement of modular database architectures |
10 |
| -Glint has no catalog or data management; its only capability is turning SQL queries |
11 |
| -into Java code that is then compiled and executed; think Calcite not Spark. |
| 5 | +Glint is a minimal SQL query engine written in Java, it currently supports |
| 6 | +vectorized execution and we plan to add further support for code generation. |
12 | 7 |
|
13 |
| -In order to make it fun, at least for tests and benchmark purposes, we did plug |
| 8 | +In order to make it fun, at least for tests and benchmarking purposes, we did plug |
14 | 9 | an Arrow compatible API with support for Memory, CSV and Parquet data sources.
|
15 | 10 |
|
16 | 11 | ## Architecture
|
@@ -54,7 +49,7 @@ Data Chunk (e.g., 1024 rows)
|
54 | 49 | └─────────────────────┘ vectors) vectors)
|
55 | 50 | ```
|
56 | 51 |
|
57 |
| -Compiled execution, which our engine uses, takes a different approach by generating specialized |
| 52 | +Compiled execution, which we want to implement, takes a different approach by generating specialized |
58 | 53 | code for each query. Instead of interpreting a query plan, it produces native code that directly
|
59 | 54 | implements the query logic.
|
60 | 55 |
|
@@ -135,7 +130,12 @@ queries.
|
135 | 130 | - Supports push-down optimizations
|
136 | 131 | - Implements memory-efficient operations
|
137 | 132 |
|
138 |
| - ### Running the examples |
| 133 | +- Query Compilation (not yet supported): |
| 134 | + - Build a contextual code generator. |
| 135 | + - Implement push-down optimizations at the code generation level. |
| 136 | + - Add support for compiling currently existing logical plans. |
| 137 | + |
| 138 | +### Running the examples |
139 | 139 |
|
140 | 140 | You will probably want to use an IDE like IntelliJ or what I personally recommend VSCode with the
|
141 | 141 | Java pack at least for working with the codebase but you are free to use ed or nano as well.
|
|
0 commit comments