MiniOB is an open-source educational relational database kernel designed for learning the internals of database systems. It implements a dual-engine storage architecture combining B+ Tree and LSM-Tree, supports SQL parsing and query execution, and provides transactional processing with multi-version concurrency control. The system communicates with clients using the MySQL wire protocol and includes a vector database extension for storing and querying high-dimensional vectors.
The project distinguishes itself through its comprehensive coverage of core database concepts in a single, learnable codebase. It features a volcano-style execution model with SIMD-accelerated batch processing, write-ahead logging with checkpoint-based crash recovery, and a frame-based buffer pool for disk page management. The system supports multiple transaction isolation levels, deadlock detection and resolution, and includes an IVF-Flat vector index for approximate nearest neighbor search.
The database includes a full SQL processing pipeline with query optimization techniques such as predicate pushdown, join reordering, and subquery flattening. It provides configurable thread pool models for client connection handling, supports custom SQL statement extensions, and includes monitoring tools for concurrency debugging and memory usage tracking. The project ships with a Docker-based development environment and an automated testing framework that can compare outputs against MySQL.