10 Years in the Making · Apache 2.0

The Graph Database
Built for the Real World

Inspired by Neo4j. Native C++ storage with WAL, cost-based query optimizer, Raft consensus. B-tree, vector, and full-text indexes in one engine. A decade of iteration.

10 Years of Development
Enterprise Battle-Tested in Production
PB Scale Distributed

Origin

A Decade in the Making

DingoDB started as an internal project—inspired by Neo4j, built from scratch when we needed a graph database that could handle production-scale workloads. What began as a prototype evolved over 10 years into a full stack.

Every layer is hand-crafted: storage (node/relationship/property stores, 8KB pages, LRU cache, WAL), query (DQL parser, logical/physical plans), optimizer (predicate pushdown, cost model, statistics), indexing (B-tree, vector ANN, full-text), distributed (Raft, partitioning, 2PC).

No venture funding. No hype. Just iteration. Today it's Apache 2.0—open source, no vendor lock-in.

Capabilities

Engineered for the Modern Stack

Knowledge graphs, RAG, recommendation engines, fraud detection—every feature designed for graph-native workloads.

Storage Engine

Native C++ with 8KB pages, LRU page cache, and WAL. NodeStore, RelationshipStore, PropertyStore—fixed-size records, bidirectional relationship lists. No GC, no JVM.

Query & Optimizer

Cypher-like DQL, lexer/parser, AST. Rule-based (predicate pushdown, projection pushdown, constant folding) plus cost-based optimization. Statistics and histograms for plan selection.

Indexing

B-tree for range queries, vector index for ANN/KNN (RAG, embeddings), full-text with tokenizer. IndexManager unifies all three in one engine.

Distributed

Raft consensus, partition manager, two-phase commit for cross-shard transactions. Cluster manager, distributed executor. Built for PB-scale.

Architecture

Full Stack, From Scratch

REST API · DQL Lexer/Parser · AST
LogicalPlanBuilder · Rule Optimizer · Cost Model · PhysicalPlanGenerator
NodeStore · RelationshipStore · PropertyStore · PageCache (LRU) · WAL
B-Tree Index · Vector Index (ANN) · Full-Text Index · IndexManager
Raft Log/Node/RPC · PartitionManager · Two-Phase Commit · ClusterManager
Storage — 8KB pages, 32-byte NodeRecord, 72-byte RelationshipRecord. Bidirectional relationship lists. Configurable LRU cache, mmap or heap.
Optimizer — Predicate pushdown, projection pushdown, constant folding. NodeStats, RelationshipStats, histograms. CPU/I/O cost model.
Distributed — Raft for consensus, Partitioner for sharding, 2PC for cross-shard transactions. gRPC-based RPC.

Technical Highlights

Built to Last

WAL
Crash recovery, durable writes
Raft
Consensus, automatic failover
2PC
Cross-shard transactions

Get Started in Minutes

Docker, source build, or cloud. Your choice.

Terminal
# Start DingoDB with Docker
docker run -d --name dingodb \
  -p 7687:7687 -p 7474:7474 \
  -v dingodb-data:/var/lib/dingodb \
  dingodb/dingodb:latest

# Or clone and build from source
git clone https://github.com/cndingbo2030/dingodb.git
cd dingodb && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)