|
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