How tribrix23/cleavedb works
CleaveDB is a document database that combines CleaveQL querying, bonds for connected data, and semantic search. The primary workflow is a client sending a query to the server, which parses and executes it; storage and search capabilities supply the database operations. The graph includes documented product stages and sampled storage layers. Some engine subsystems are represented by their exact enclosing directory because their implementations were not excerpted; relationships not established by the excerpts, source index, or README are omitted.
Main entry points: interpreter.py Query Interpreter · cleavedb_server.py TCP Server · parser.py Query Parser · python.rs Python Binding
Components 22
Client and Server
- Database Client
cleave_cli.py - TCP Server
cleavedb_server.py
CleaveQL
- Query Lexer
cleaveql/lexer.py - Query Tokens
cleaveql/tokens.py - Query Parser
cleaveql/parser.py - Query AST
cleaveql/ast.py - Query Interpreter
cleaveql/interpreter.py - Query Planning
cleaveql/planner.py - Query Security
cleaveql/security.py
Database Engine
- Python Binding
storage/src/python.rs - Database Operations
storage/src/engine/operations.rs - Documents and Bonds
storage/src/engine - Indexes and Shards
storage/src/engine - Query Executors
storage/src/engine/volcano.rs - B+ Tree
storage/src/btree/mod.rs - Buffer Pool
storage/src/buffer_pool.rs - Storage Pages
storage/src/page.rs - Write-Ahead Log
storage/src/wal.rs
Semantic Search
- Semantic Search
attention/sra.py - Vector Index
storage/src/engine/vector_index.rs
Other components
- User
- External Client
Connections 22
- User → Database Client: issues queries
- Database Client → TCP Server: sends requests
cleave_cli.py - TCP Server → Query Lexer: tokenizes
cleavedb_server.py - TCP Server → Query Parser: parses
cleavedb_server.py - TCP Server → Query Interpreter: executes
cleavedb_server.py - Query Lexer → Query Tokens: uses
cleaveql/lexer.py - Query Parser → Query Tokens: consumes
cleaveql/parser.py - Query Parser → Query AST: builds
cleaveql/parser.py - Query Interpreter → Query Security: uses
cleaveql/interpreter.py - Query Interpreter → Semantic Search: uses
cleaveql/interpreter.py - Query Interpreter → Query Planning: plans queries
- Query Interpreter → Python Binding: calls storage
- Python Binding → Database Operations: accesses
storage/src/python.rs - Database Operations → Documents and Bonds: manages
storage/src/engine/mod.rs - Database Operations → Indexes and Shards: uses
storage/src/engine/mod.rs - Query Executors → Documents and Bonds: processes
storage/src/engine/volcano.rs - Python Binding → B+ Tree: uses
storage/src/python.rs - B+ Tree → Buffer Pool: fetches pages
storage/src/btree/mod.rs - Buffer Pool → Storage Pages: loads and flushes
storage/src/buffer_pool.rs - B+ Tree → Write-Ahead Log: logs mutations
storage/src/btree/mod.rs - Semantic Search → Vector Index: searches vectors
- External Client → TCP Server: connects