a28c845476
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
11 KiB
11 KiB
Changelog
Alle bemerkenswerten Änderungen an BaraDB werden in dieser Datei dokumentiert.
[Unreleased] — AI-Native Platform
Hinzugefügt
- MCP Server (Model Context Protocol) — STDIO JSON-RPC 2.0 Server mit 3 AI-Tools:
query— SQL-Ausführung mit parametrisierten Abfragen + Multi-Tenant Session-Variablenvector_search— Semantische HNSW Vektor-suche mit Tenant-Isolationschema_inspect— Tabellen-/Spalten-/Index-/RLS-Policy-Exploration- Standalone Binary:
build/baramcp
- Graph Engine Tiefe Integration —
CREATE GRAPH/DROP GRAPHDDL mit nativer Adjacency-List-SpeicherungGRAPH_TABLE()SQL-Funktion mit 7 Algorithmen: BFS, DFS, PageRank, ShortestPath, Dijkstra, Louvain, Community- INSERT in
_nodes/_edgesTabellen synchronisiert automatisch mit nativen Graph-Objekten - Optional
MATCH,ALGORITHM,START,END,MAXDEPTHin GRAPH_TABLE Syntax
- Chunking + Embedding Pipeline — Serverseitige AI-Datenverarbeitung:
chunk()SQL-Funktion — Text-Splitting mit konfigurierbarer Größe/Überlappungembed_text()SQL-Funktion — ruft externe Embedding-API auf (OpenAI/Ollama kompatibel)- Auto-Embedding bei INSERT — wenn VECTOR-Spalte null ist, generiert aus TEXT-Spalte
- Konfigurierbar via Env-Vars:
BARADB_EMBED_ENDPOINT,BARADB_EMBED_MODEL,BARADB_EMBED_API_KEY
- LangChain ChatMessageHistory — Python
BaraDBChatHistoryKlasse:- Speichert Konversations-Threads in relationaler Tabelle mit RLS
- Multi-Tenant Isolation via
tenant_id+user_id
- RAG Pipeline Beispiel — End-to-End Python Script (
examples/rag_pipeline.py):- PDF/text Ingestion → chunking → embedding → BaraDB Speicherung → hybrid search → LLM Generierung
- Unterstützt OpenAI und Ollama APIs
- AI Agents & NL→SQL — Serverseitige LLM-Integration:
nl_to_sql()SQL-Funktion — natürliche Sprache → SQL Generierungschema_prompt()— generiert DDL + Beispieldaten für LLM-Kontext- Abfrage-Validierungsschicht — Sandbox-Ausführung mit LIMIT 0 + EXPLAIN
- Selbst-Korrektur-Schleife — Fehlerfeedback an LLM zur Korrektur
- Konfigurierbar via Env-Vars:
BARADB_LLM_ENDPOINT,BARADB_LLM_MODEL,BARADB_LLM_API_KEY
- Graph Similarity & Embeddings:
similarity_nodes()— Jaccard/Adamic-Adar Ähnlichkeit zwischen Knotenpaarennode2vec_embed()— Random-walk basierte Graph Embeddings
- Cypher Compatibility Layer:
cypher()SQL-Funktion — übersetztMATCH (a)-[r]->(b) RETURN ...zu GRAPH_TABLE- Automatische Cypher → BaraQL Konvertierung
- German Documentation — Vollständige Dokumentation auf Deutsch (
docs/de/)
Geändert
- Graph Executor upgraded von Stub zu echtem BFS/DFS/PageRank/Dijkstra/Louvain
- ExecutionContext erweitert mit
graphs,embedder,llmClientFeldern - Graph Engine erweitert mit
addNodeWithId,addEdgeWithId, Jaccard, Adamic-Adar, node2vec
[1.1.0] — 2026-05-13
Hinzugefügt
- Client SDKs v1.1.4 — Vollständige Clients für alle Sprachen:
- JavaScript: TypeScript Definitionen, package.json, Beispiele, Unit & Integration Tests
- Python: Umstrukturiert als proper Package (
baradb/mit__init__.pyundcore.py), pyproject.toml, Beispiele, Tests - Nim: Beispiele, Integration Tests, README
- Rust: Beispiele, Integration Tests, verbessertes Cargo.toml
- SCRAM-SHA-256 Authentifizierung — RFC 7677 konforme Authentifizierung mit PBKDF2 + HMAC + SHA-256 + Nonce/Salt Generierung
- HTTP SCRAM Endpoints —
/auth/scram/start+/auth/scram/finishim HTTP Server - Docker Compose Test Configuration —
docker-compose.test.ymlfür Test-Umgebungen - CI/CD Clients Pipeline —
.github/workflows/clients-ci.ymlfür automatisierte Client-Tests
Behoben
- Query Executor — Unärer Minus (
irNeg) funktioniert jetzt korrekt in SELECT und WHERE Klauseln - Distributed Transactions — Rollback nach Commit-Versuch verletzt nicht mehr Atomicity
- Sharding — Datenmigrations-Protokoll mit TCP +
scanAllauf LSM - Raft — Majority-Berechnung für gerade Knotenanzahl korrigiert
- MVCC — Abgebrochene Transaktionen werden nicht mehr sichtbar
- LSM-Tree — Datenverlust bei immutable memtable overwrite behoben; SSTable lookup sorting behoben
- Auth — JWT-Signatur auf HMAC-SHA256 geändert (nicht mehr trivial fälschbar); Token-Ablauf (
exp/nbf/iat) wird jetzt validiert; Signatur-Vergleich ist jetzt constant-time - Recovery —
summary()mutiert die Datenbank nicht mehr - Wire Protocol — 64MB Limit + Bounds Checking + Max Depth um OOM/DoS zu verhindern
- SQL Injection —
exprToSqlescaped jetzt Single Quotes - ReDoS —
irLike/irILikeescaped jetzt Regex Metacharacters - Graph —
addEdgeprüft jetzt Knotenexistenz - Vector — Dimension mismatch Validierung + HNSW Locking
- FTS — UTF-8 Tokenisierung verwendet jetzt runes statt bytes
- Build —
nim.cfgfügt-d:sslhinzu damitnimble buildohne Flags funktioniert;--threads:onzu allen CI Commands hinzugefügt
Geändert
- Version auf 1.1.0 erhöht über alle Komponenten
- README — Version Badge aktualisiert; alle Feature-Tabellen referenzieren jetzt v1.1.4
- TLA+ Formal Verification —
crossmodal.tla,backup.tla,recovery.tlahinzugefügt; Symmetrie-Reduktion in allen 9 Specs - Clean build — 0 Compiler Warnings auf Nim 2.2.10
[0.1.0] — 2025-01-15
Hinzugefügt
-
Core Storage Engines
- LSM-Tree mit MemTable, WAL, SSTables und size-tiered Compaction
- B-Tree geordneter Index mit Range Scans und MVCC Copy-on-Write
- Bloom Filter für effizientes SSTable Skip
- Memory-mapped I/O für SSTable Reads
- LRU Page Cache mit Hit-Rate Tracking
-
Query Engine (BaraQL)
- SQL-kompatibler Lexer mit 80+ Tokentypen
- Rekursiver Descent Parser produziert AST mit 25+ Knotenarten
- Intermediate Representation (IR) für Ausführungspläne
- Code Generator übersetzt IR zu Speicheroperationen
- Adaptiver Query Optimizer mit Cross-Modal Planning
- Query Executor mit Parallelisierung
-
BaraQL Language Features
- SELECT, INSERT, UPDATE, DELETE
- WHERE, ORDER BY, LIMIT, OFFSET
- GROUP BY, HAVING, Aggregatfunktionen (count, sum, avg, min, max)
- INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, CROSS JOIN
- CTEs (Common Table Expressions) mit WITH
- Subqueries (EXISTS, IN, correlated)
- CASE Expressions
- UNION, INTERSECT, EXCEPT
- Schema Definition: CREATE TYPE, DROP TYPE
-
Vector Engine
- HNSW Index für Approximate Nearest Neighbor Search
- IVF-PQ Index für Large-Scale Vector Search
- SIMD-optimierte Distanzfunktionen (cosine, L2, dot product, Manhattan)
- Quantization: scalar 8-bit/4-bit, product quantization, binary
- Metadata Filtering während Vector Search
-
Graph Engine
- Adjacency List Speicherung für gerichtete, kanten-gewichtete Graphen
- BFS und DFS Traversierung
- Dijkstra kürzester Pfad
- PageRank Knotenwichtigkeit
- Louvain Community Detection
- Subgraph Pattern Matching
- Cypher-ähnlicher Graph Query Parser
-
Full-Text Search
- Inverted Index mit Term-Document Mapping
- BM25 Ranking-Algorithmus
- TF-IDF Scoring
- Fuzzy Search mit Levenshtein Distanz
- Wildcard/regex Search
- Multi-Language Tokenizer (English, Bulgarian, German, French, Russian)
-
Columnar Storage
- Perspalten-Speicherung für analytische Abfragen
- RLE (Run-Length Encoding) Kompression
- Dictionary Encoding für Low-Cardinality Spalten
- SIMD-beschleunigte Aggregatfunktionen
-
Transactions
- MVCC (Multi-Version Concurrency Control) mit Snapshot Isolation
- Deadlock-Erkennung via Wait-for Graph
- Write-Ahead Log für Dauerhaftigkeit
- Savepoints und partielles Rollback
-
Protocol Layer
- Binary Wire Protocol mit 16 Nachrichtentypen
- HTTP/REST JSON API
- WebSocket Streaming
- Connection Pooling
- JWT-basierte Authentifizierung
- Token-bucket Rate Limiting
- TLS/SSL mit auto-generierten Zertifikaten
-
Schema System
- Starkes Typsystem mit 17 nativen Typen
- Typvererbung mit Multi-Base Support
- Property Links zwischen Typen
- Schema Diffing und Migrationen
- Computed Properties
-
Distributed Systems
- Raft Consensus (Leader Election, Log Replikation)
- Hash, Range und Consistent-Hash Sharding
- Sync/async/semi-sync Replikation
- Gossip Protocol für Membership Management
- Two-Phase Commit für Distributed Transactions
-
Cross-Modal Queries
- Vereinheitlichte Abfragesprache über alle Speicher-Engines
- Cross-Engine Predicate Pushdown
- Optimierte Ausführungspläne für Multi-Modal Abfragen
-
Backup & Recovery
- Online Snapshots ohne Ausfallzeit
- Point-in-Time Recovery via WAL Replay
- Inkrementelle Backups
-
Client SDKs
- JavaScript/TypeScript Client mit Binary Protocol
- Python Client mit Sync und Async APIs
- Nim Embedded Mode und Client Library
- Rust Client (async)
-
Operations
- Interaktive CLI Shell (BaraQL REPL)
- Strukturiertes Logging (JSON und Text Formate)
- Prometheus-kompatible Metrics Endpoint
- Health und Readiness Probes
- CPU/memory Profiling Endpoints
-
Docker Support
- Multi-stage Dockerfile (Alpine Linux)
- Docker Compose Konfiguration
- Health Checks
Performance
- LSM-Tree: 580K writes/s, 720K reads/s
- B-Tree: 1.2M inserts/s, 1.5M lookups/s
- Vector SIMD: 850K cosine distances/s (dim=768)
- FTS: 320K docs/s indexing, 28K queries/s BM25
- Graph: 2.5M nodes/s insertion, 12K BFS traversals/s
- Binary Protocol: 380K queries/s (100 concurrent connections)
Tests
- 262 Tests über 56 Test-Suiten
- 100% Pass Rate
[Unreleased]
Hinzugefügt
- Vector SQL Integration — Vollständige SQL-Level Vector Search Unterstützung:
VECTOR(n)Spaltentyp inCREATE TABLEmit DimensionsvalidierungCREATE INDEX ... USING hnsw/USING ivfpqfür Approximate Nearest Neighbor Indizes- SQL Distanzfunktionen:
cosine_distance(),euclidean_distance(),inner_product(),l1_distance(),l2_distance() <->Nearest-Neighbor Operator (Euclidean Distanz)ORDER BYSupport für Vektor-Distanz-Ausdrücke, inklusive Spalten nicht inSELECT- Automatische HNSW Index-Wartung bei
INSERTundUPDATE
- Advanced SQL Engine — Window Functions, MERGE/UPSERT, LATERAL JOIN, PIVOT/UNPIVOT, SQL/PGQ Property Graph, Advanced Aggregates
- JavaScript Client — TCP Request Queue — Interne
_requestQueue+_requestLockfür sichere konkurrierende Abfragen
Behoben
- Query Executor — Row Value Escaping —
execInsertescaped jetzt korrekt Kommas und Equals-Zeichen - Query Planner — ORDER BY Projection —
irpkSortist jetzt vorirpkProjectim IR Plan platziert - Wire Protocol — Big-Endian Float Serialization —
FLOAT32/FLOAT64werden jetzt in Big-Endian Byte-Reihenfolge serialisiert - Gossip Protocol — Async UDP Socket — Synchrone
newSocket+ blockingrecvFromersetzt durchnewAsyncSocket+await recvFrom
Geplant
- Query Plan Caching
- Materialized Views
- Geospatial Index
- Time-series Optimierungen
- CDC (Change Data Capture) Streaming
- Federated Queries über BaraDB Instances