34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
# paulDB – Architektur
|
||
|
||
> Internes Design-Dokument. Das „Warum" hinter der Ordnerstruktur.
|
||
|
||
## Big Picture
|
||
|
||
paulDB ist eine **In-Memory HTAP-Engine**: Row- und Column-Storage in einem
|
||
System, verbunden durch einen Delta-Merge nach SAP-HANA-Vorbild.
|
||
|
||
```
|
||
SQL-Frontend ──> Query-Router ──┬─> Row-Pfad (Delta) ─┐
|
||
(sql) (query) │ ├─> Ergebnis
|
||
└─> Column-Pfad (Main) ─┘
|
||
Delta ──(Delta-Merge)──> Main
|
||
```
|
||
|
||
## Module ↔ Roadmap
|
||
|
||
| Modul (`src/`) | Etappe | Aufgabe |
|
||
|--------------------|--------|---------|
|
||
| `storage/delta` | E1 | schreib-optimierter Row-Store (OLTP) |
|
||
| `sql/` | E2/E6 | Tokenizer → AST → Plan |
|
||
| `storage/main` | E3 | lese-optimierter Column-Store (OLAP) |
|
||
| `compression/` | E3 | Dictionary + Prefix/RLE/Cluster/Sparse/Indirect |
|
||
| `merge/` | E4 | Delta → Main (das Herzstück) |
|
||
| `query/` | E5 | Router: OLTP- vs OLAP-Pfad (der HTAP-Beweis) |
|
||
| `txn/` | E7 | MVCC / konsistente Lesersicht |
|
||
|
||
## Prinzipien
|
||
|
||
- **Verstehen vor Benutzen** – jedes Modul kommentiert das Warum.
|
||
- **Klein, aber echt** – lieber wenig, das wirklich läuft.
|
||
- **Schlanke Public API** – Re-Exports in `lib.rs`, Details bleiben privat.
|