-
Notifications
You must be signed in to change notification settings - Fork 4
database framework
akepka edited this page Sep 17, 2026
·
4 revisions
tags:
- database
- sqlparser-rs (Rust): Uniwersalny parser SQL generujący ścisłe drzewo składniowe (AST). Wspiera dialekty m.in. PostgreSQL, MySQL, DuckDB, Snowflake oraz ANSI SQL.
- Apache Calcite (Java): Przemysłowy standard optymalizacji zapytań. Oferuje parser SQL, walidator relacyjny oraz zaawansowane silniki optymalizacji regułowej (RBO) i kosztowej (CBO) oparte na strukturze Volcano/Cascades Memo.
- Substrait (Cross-language): Niezależny od języka standard serializacji planów zapytań (Protobuf). Umożliwia łączenie dowolnego frontendu (np. parser w C++/Pythonie) z niezależnymi silnikami wykonawczymi (np. DataFusion, Velox).
-
Apache DataFusion (Rust):
- Modułowy, wysoce rozszerzalny framework obliczeniowy dla silników SQL.
- Zbudowany na bazie formatu pamięciowego Apache Arrow.
- Oferuje kompletny stos: parser SQL, planer logiczny, optymalizator fizyczny oraz wielowątkowy, wektoryzowany silnik wykonawczy.
- Wymaga jedynie implementacji cechy (traita) dostawcy danych (
TableProvider), aby uzyskać działający silnik SQL.
-
Velox (Meta / C++):
- Biblioteka komponentów wektoryzowanych w C++ zoptymalizowana pod kątem instrukcji SIMD (AVX-512).
- Skupia się wyłącznie na warstwie fizycznego przetwarzania danych: haszowaniu, ewaluacji wyrażeń, sortowaniu i agregacji.
- Służy jako warstwa egzekucyjna w systemach takich jak Presto C++ czy Apache Gluten.
-
LMDB (Lightning Memory-Mapped Database, C): Ekstremalnie szybki silnik klucz-wartość oparty na mapowaniu pamięci (
mmap) i strukturze B+Tree z mechanizmem Copy-on-Write (MVCC). Zapewnia transakcje ACID przy zerowym narzucie serializacji w odczytach. - libmdbx (C/C++): Aktywnie rozwijany i rozszerzony fork LMDB, oferujący lepszą odporność na awarie, asynchroniczne I/O i optymalizacje pod duże obciążenia wielowątkowe.
- RocksDB (C++): Standard rynkowy dla systemów wymagających intensywnego zapisu (wykorzystywany m.in. w TiKV, CockroachDB, MyRocks). Implementuje wielopoziomowe drzewo LSM, filtry Blooma i kompresję blokową.
- Pebble / SlateDB (Go / Rust): Nowoczesne implementacje LSM-Tree – Pebble (rdzeń CockroachDB w Go) oraz SlateDB (warstwa LSM działająca bezpośrednio na obiektowych magazynach danych typu AWS S3).
- raft-rs (Rust) / etcd/raft (Go): Biblioteki implementujące algorytm konsensusu Raft w postaci deterministycznych maszyn stanów (state machine). Pozwalają na implementację architektury Multi-Raft dla rozproszonych silników typu NewSQL.
-
Braft (C++): Wydajna implementacja Raft w C++ firmy Baidu, zintegrowana ze stosem RPC
brpc.
| Typ budowanego silnika | Parser / Planer | Silnik wykonawczy (Compute) | Warstwa składowania (Storage) |
|---|---|---|---|
| Analityczny (In-Process / OLAP) | sqlparser-rs |
Apache DataFusion (Arrow) | Parquet / Object Store (S3) |
| Transakcyjny (OLTP / Embedded) | AST z SQLite / własny | Pętla iteratorów Volcano |
libmdbx / B+Tree + io_uring
|
| Hybrydowy wektorowy (C++) | Substrait / Apache Calcite | Velox (Meta) | Apache Arrow / Pamięć własna |
| Rozproszony NewSQL | Warstwa frontowa PG (pgwire) |
Planer rozproszony (MPP) |
RocksDB + raft-rs (Multi-Raft) |
- A (53)
- B (92)
- C (45)
- D (63)
- E (17)
- F (7)
- G (158)
- H (12)
- I (6)
- J (40)
- K (50)
- L (78)
- M (45)
- N (37)
- O (121)
- P (407)
- R (21)
- S (34)
- T (40)
- U (3)
- V (7)
- W (14)
- Y (1)
- Z (3)