Files
Baradb/docs/de/changelog.md
T
dimgigov cd46edcb67
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
Bump version to 1.1.6; fix storage bugs, tests, CI pipeline and Docker config
Storage fixes:
- Fix bloom filter hash2 OverflowDefect (uint64 instead of int Hash)
- Fix MemTable.put size calculation on overwrite (was leaking size)
- Fix fuzz_test duplicate-key issues in LSM delete and SSTable tests

Test fixes:
- Fix stress_test.nim: replace deprecated threadpool with std/threads
- Fix fuzz_test.nim: add missing imports (tables, algorithm, sets)
- Fix fuzz_test.nim: var sst for close() compatibility
- Remove unused imports from test_all.nim and bench_all.nim

Docker / CI fixes:
- Fix Dockerfile.source: invalid nimlang/nim:2.2.10-alpine tag → 2.2.10 + ubuntu:24.04 runtime
- Fix Dockerfile.source healthcheck (--spider → -qO- for 200 OK)
- Fix Dockerfile run comment ports (9470/9471 → 9912/9913)
- Fix scripts/docker-run.sh healthcheck port (9470 → 9912)
- Add ARG BUILD_DATE/VCS_REF to Dockerfile for docker-build.sh
- Update all version strings 1.1.4 → 1.1.6 across nimble/docker/source/docs
2026-05-19 12:13:33 +03:00

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-Variablen
    • vector_search — Semantische HNSW Vektor-suche mit Tenant-Isolation
    • schema_inspect — Tabellen-/Spalten-/Index-/RLS-Policy-Exploration
    • Standalone Binary: build/baramcp
  • Graph Engine Tiefe IntegrationCREATE GRAPH / DROP GRAPH DDL mit nativer Adjacency-List-Speicherung
    • GRAPH_TABLE() SQL-Funktion mit 7 Algorithmen: BFS, DFS, PageRank, ShortestPath, Dijkstra, Louvain, Community
    • INSERT in _nodes/_edges Tabellen synchronisiert automatisch mit nativen Graph-Objekten
    • Optional MATCH, ALGORITHM, START, END, MAXDEPTH in GRAPH_TABLE Syntax
  • Chunking + Embedding Pipeline — Serverseitige AI-Datenverarbeitung:
    • chunk() SQL-Funktion — Text-Splitting mit konfigurierbarer Größe/Überlappung
    • embed_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 BaraDBChatHistory Klasse:
    • 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 Generierung
    • schema_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 Knotenpaaren
    • node2vec_embed() — Random-walk basierte Graph Embeddings
  • Cypher Compatibility Layer:
    • cypher() SQL-Funktion — übersetzt MATCH (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, llmClient Feldern
  • Graph Engine erweitert mit addNodeWithId, addEdgeWithId, Jaccard, Adamic-Adar, node2vec

[1.1.0] — 2026-05-13

Hinzugefügt

  • Client SDKs v1.1.6 — Vollständige Clients für alle Sprachen:
    • JavaScript: TypeScript Definitionen, package.json, Beispiele, Unit & Integration Tests
    • Python: Umstrukturiert als proper Package (baradb/ mit __init__.py und core.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/finish im HTTP Server
  • Docker Compose Test Configurationdocker-compose.test.yml für Test-Umgebungen
  • CI/CD Clients Pipeline.github/workflows/clients-ci.yml fü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 + scanAll auf 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
  • Recoverysummary() mutiert die Datenbank nicht mehr
  • Wire Protocol — 64MB Limit + Bounds Checking + Max Depth um OOM/DoS zu verhindern
  • SQL InjectionexprToSql escaped jetzt Single Quotes
  • ReDoSirLike/irILike escaped jetzt Regex Metacharacters
  • GraphaddEdge prüft jetzt Knotenexistenz
  • Vector — Dimension mismatch Validierung + HNSW Locking
  • FTS — UTF-8 Tokenisierung verwendet jetzt runes statt bytes
  • Buildnim.cfg fügt -d:ssl hinzu damit nimble build ohne Flags funktioniert; --threads:on zu 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.6
  • TLA+ Formal Verificationcrossmodal.tla, backup.tla, recovery.tla hinzugefü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 in CREATE TABLE mit Dimensionsvalidierung
    • CREATE INDEX ... USING hnsw / USING ivfpq für Approximate Nearest Neighbor Indizes
    • SQL Distanzfunktionen: cosine_distance(), euclidean_distance(), inner_product(), l1_distance(), l2_distance()
    • <-> Nearest-Neighbor Operator (Euclidean Distanz)
    • ORDER BY Support für Vektor-Distanz-Ausdrücke, inklusive Spalten nicht in SELECT
    • Automatische HNSW Index-Wartung bei INSERT und UPDATE
  • Advanced SQL Engine — Window Functions, MERGE/UPSERT, LATERAL JOIN, PIVOT/UNPIVOT, SQL/PGQ Property Graph, Advanced Aggregates
  • JavaScript Client — TCP Request Queue — Interne _requestQueue + _requestLock für sichere konkurrierende Abfragen

Behoben

  • Query Executor — Row Value EscapingexecInsert escaped jetzt korrekt Kommas und Equals-Zeichen
  • Query Planner — ORDER BY ProjectionirpkSort ist jetzt vor irpkProject im IR Plan platziert
  • Wire Protocol — Big-Endian Float SerializationFLOAT32/FLOAT64 werden jetzt in Big-Endian Byte-Reihenfolge serialisiert
  • Gossip Protocol — Async UDP Socket — Synchrone newSocket + blocking recvFrom ersetzt durch newAsyncSocket + await recvFrom

Geplant

  • Query Plan Caching
  • Materialized Views
  • Geospatial Index
  • Time-series Optimierungen
  • CDC (Change Data Capture) Streaming
  • Federated Queries über BaraDB Instances