awesome-repositories.com
المدونة
awesome-repositories.com

اكتشف أفضل مستودعات المصادر المفتوحة باستخدام بحث مدعوم بالذكاء الاصطناعي.

استكشفعمليات بحث منسقةبدائل مفتوحة المصدربرمجيات ذاتية الاستضافةالمدونةخريطة الموقع
المشروعحولكيفية ترتيب النتائجالصحافةخادم MCP
قانونيالخصوصيةالشروط
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
oceanbase avatar

oceanbase/miniob

0
View on GitHub↗
4,318 نجوم·1,567 تفرعات·C++·mulanpsl-2.0·4 مشاهداتoceanbase.github.io/miniob↗

Miniob

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.

Features

  • Relational Data Storage - Manages on-disk relational data storage using pages, buffers, and file organization.
  • Educational Database Systems - An open-source relational database kernel designed for learning database internals.
  • Concurrent Read-Write Transactions - Coordinates concurrent read and write operations to maintain ACID properties.
  • Atomic Transaction Coordinators - Coordinates concurrent transactions with isolation and atomicity guarantees using a transactional storage layer.
  • Data Persistence and Storage - Manages persistent data storage and retrieval through a dedicated storage engine.
  • Record-Level Indexes - Build and maintain index structures to accelerate record retrieval by key values.
  • Transactional Row Storages - Persists rows to disk and reads them back while preserving atomicity and isolation for each operation.
  • Commit Order Dependencies - Coordinate transaction commit order by tracking which transactions must commit before others to prevent deadlocks.
  • Relational Database Metadata Inspectors - Stores and retrieves metadata about databases, tables, fields, and indexes for schema operations.
  • Page-Based Storage - Organizes index data into fixed-size pages stored in external files for B+ tree nodes.
  • Scan Method Selections - Pick between full table scan and index scan based on relation size, selectivity, and available indexes to minimize data access cost.
  • Grouped Aggregations - Group rows by specified columns and compute aggregate functions per group using a hash-based approach.
  • Hash Join Implementations - Combine rows from two tables by building a hash table on one table and probing it with rows from the other.
  • Join Operator Selection - Select the lowest-cost join algorithm by comparing estimated costs of Nested Loop Join and Hash Join.
  • Join Order Selections - Evaluate alternative join sequences using cost estimates or heuristic rules to select the most efficient plan.
  • Level-Based Compaction Strategies - Implements level-based compaction to merge overlapping sorted runs and bound read amplification.
  • Multi-Version Concurrency Control - Controls transaction commit, rollback, and isolation using multi-version concurrency control.
  • MySQL Wire Protocol Servers - Communicates with clients using the standard MySQL wire protocol.
  • Fixed-Size Page Organizations - Divides database files into fixed-size pages and tracks which pages store data, free space, and contents.
  • Buffer Pool Page Evictions - Manages disk page loading into a fixed-size memory pool with eviction for efficient access.
  • Predicate Pushdown - Move filter conditions from the WHERE clause closer to the table scan to reduce rows processed early.
  • Query Aggregates - Compute aggregate functions like sum over all rows without grouping and process data in chunks for efficiency.
  • Query Plan Optimizations - Rewrites query syntax trees using rules and statistics to produce faster execution plans.
  • Query Plan Execution Engines - Parse SQL statements into a query plan and run it through a custom execution engine to produce results.
  • Result Sorting - Order the result set by specified columns in ascending or descending order using the ORDER BY clause.
  • Identifier Semantic Resolution - Translate table and field names in the syntax tree into pointers that point to actual in-memory metadata objects.
  • Arithmetic Expression Parsers - Parse arithmetic expressions with operator precedence, parentheses, and unary negation from SQL text into an abstract syntax tree.
  • SQL Query Optimizations - Rewrite and adjust the query syntax tree using rules and statistics to improve execution efficiency.
  • SQL Statement Parsing - Parse SQL statements into an internal representation for further processing and execution.
  • Per-Table File Group Storages - Persists each table as a set of files for metadata, data records, and indexes inside a database folder.
  • B+ Tree Indexing - Implements B+ tree index entry insertion with node splitting and upward propagation.
  • B+ Tree Index Entry Deletions - Removes key-value pairs from a B+ tree and borrows from or merges with sibling nodes when underfull.
  • Dual Storage Engines - Stores relational data using either a balanced B+ Tree for indexed lookups or a log-structured merge-tree for write-optimized batch operations.
  • Node Locking Mechanisms - Acquire read or write locks on tree nodes during traversal and release parent locks when child nodes are safe.
  • Range Scans - Walks leaf nodes of a B+ tree to retrieve all records whose keys fall within a specified interval.
  • Dual-Engine Storage Systems - Implements a dual-engine storage architecture combining B+ Tree and LSM-Tree.
  • LSM-Tree Key-Value Stores - A write-optimized storage engine organizing data in sorted runs with leveled compaction.
  • Subquery Flattenings - Rewrite nested subqueries as equivalent multi-table join operations to eliminate repeated execution and enable better access paths.
  • Isolation Level Management - Supports serializable, repeatable read, snapshot isolation, and read committed levels for transaction visibility.
  • Checkpoint-Based Recovery Logs - Creates periodic checkpoints to bound the log range needed for crash recovery.
  • Vector Storage - Stores high-dimensional vectors as a native column type with configurable dimensionality.
  • Write-Ahead Logging - Records before and after images of modifications to a log before flushing data pages to disk.
  • Checkpoint-Based Recovery Systems - Combines write-ahead logging with periodic checkpoints for crash recovery.
  • Interactive Command Line Interfaces - Read commands from standard input, send them to the server, and display the returned results.
  • Database Crash Recovery - Restores database consistency after failure using write-ahead logging and checkpoints.
  • Text SQL Executions - Accept plain-text SQL statements from authenticated clients and return results as OK, error, or result-set packets.
  • Relational Database Tutorials - A hands-on project for learning relational database internals by building a SQL engine.
  • Operation Logs - Records operation logs to support database recovery and durability.
  • Database Connection Acceptances - Accept TCP or Unix socket connections and dispatch requests to a thread model for processing.
  • Database Page Caching - Keep frequently accessed disk pages in a memory region using a page table with dirty flags and reference counts.
  • Slotted Page Storage Layouts - Arranges variable-length records inside pages using a slot array that grows from the front while data grows from the back.
  • Expression Type Hierarchies - Model SQL expressions as a class hierarchy covering fields, constants, comparisons, functions, and subqueries.
  • Concurrency Locking - Implements shared and exclusive locks on data items to coordinate concurrent transaction access.
  • Transaction Deadlock Resolution - Detects circular wait conditions in transaction lock graphs and aborts transactions to resolve deadlocks.
  • Volcano Query Processors - Processes SQL queries by pulling tuples one at a time through a tree of physical operators, enabling modular plan execution.
  • Buffer Pool Frame Managers - Manages disk page loading into memory frames with pin counting and lock tracking.
  • Database Test Case Executors - Execute a suite of SQL test cases against the database kernel and report pass or fail results for each case.
  • Corrupted Page Recovery Mechanisms - Restores partially written database pages from saved copies during crash recovery.
  • Database Internals - Shares internal technical notes and paper reviews to help developers understand database internals.
  • Fixed-Length Record Storage - Structures fixed-length records within pages using bitmaps for slot tracking.
  • Shared Table Scans - Attach multiple queries to a single table scan cursor so they reuse data already read from disk.
  • Static Hashing - Maps keys to buckets via hash functions for record retrieval from pages.
  • Heap Storage Engines - Stores records in unordered page collections with linked lists or page directories.
  • In-Memory Block Caches - Store frequently accessed data blocks in memory to accelerate lookups from sorted string table files.
  • Top-K Vector Similarity Retrievals - Retrieve the top-K most similar vectors by combining a distance function with ORDER BY and LIMIT clauses.
  • Output Comparison Validators - Run the same SQL statements on both MiniOB and MySQL and compare their outputs to detect discrepancies.
  • PAX Storage Layouts - Implements PAX hybrid storage layout that partitions attributes vertically within each database page.
  • Page Prefetching - Load pages into the buffer pool ahead of query execution to reduce wait time during sequential scans.
  • Aggregate Push-Ups - Move aggregate computation from a subquery into the outer query so the aggregation is calculated only once.
  • IVF-Flat Indexes - Accelerates nearest-neighbor search by clustering high-dimensional vectors and probing only the most relevant clusters during query time.
  • Custom SQL Statement Extensions - Adds new SQL statement types by defining lexer tokens, parser rules, AST nodes, and execution operators.
  • Concurrent Tree Mutations - Run multi-threaded insert, delete, query, and scan workloads under Google Benchmark to verify concurrency correctness.
  • Subquery Merging Optimizations - Combine several semantically equivalent subqueries into a single one to reduce redundant table scans and join operations.
  • Vector Database Extensions - Extends the relational database with vector storage, distance functions, and nearest neighbor search.
  • Vector Arithmetic - Supports element-wise vector addition, subtraction, and multiplication in SQL queries.
  • SIMD-Accelerated Arithmetic - Uses single-instruction-multiple-data instructions to speed up arithmetic, aggregation, and hash-table operations on vectorized data chunks.
  • Batch Processing Accelerators - Use single-instruction-multiple-data instructions to speed up arithmetic, aggregation, and hash-table lookups on vectorized data.
  • Relational Algebra Rewritings - Transform a relational algebra expression into an equivalent form that reduces intermediate result sizes and improves efficiency.
  • SQL Vector Distance Functions - Calculate L2, cosine, or inner-product distance between two vectors using built-in SQL functions.
  • Sequential Scan Buffer Pool Bypasses - Read large sequential page runs directly into local query memory instead of the shared buffer pool.
  • Dedicated Connection Threads - Assign each client connection its own thread that listens for messages, processes SQL, and sends responses.
  • Server Thread Pools - Selects between one-thread-per-connection and a shared thread pool at startup via a command-line argument.
  • Shared Connection Thread Pools - Route all client connections through a single thread pool that listens for messages and dispatches tasks to worker threads.
  • Custom - Define new test scenarios by writing Python code that groups DDL, DML, and DQL instructions with dependency ordering.
  • Databases and Analytics - Compact database for learning database internals.
  • C Plus Plus - Listed in the “C Plus Plus” section of the Awesome For Beginners awesome list.

سجل النجوم

مخطط تاريخ النجوم لـ oceanbase/miniobمخطط تاريخ النجوم لـ oceanbase/miniob

بحث بالذكاء الاصطناعي

استكشف المزيد من المستودعات الرائعة

صف ما تحتاجه بلغة بسيطة — وسيقوم الذكاء الاصطناعي بترتيب آلاف المشاريع مفتوحة المصدر المنسقة حسب الصلة.

Start searching with AI

الأسئلة الشائعة

ما هي وظيفة oceanbase/miniob؟

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.

ما هي الميزات الرئيسية لـ oceanbase/miniob؟

الميزات الرئيسية لـ oceanbase/miniob هي: Relational Data Storage, Educational Database Systems, Concurrent Read-Write Transactions, Atomic Transaction Coordinators, Data Persistence and Storage, Record-Level Indexes, Transactional Row Storages, Commit Order Dependencies.

ما هي البدائل مفتوحة المصدر لـ oceanbase/miniob؟

تشمل البدائل مفتوحة المصدر لـ oceanbase/miniob: cmu-db/bustub — This is an educational relational database engine used in Carnegie Mellon University's database systems course.… h2database/h2database — H2 is a JDBC-compliant relational database management system written in Java. It functions as an embeddable SQL… skyzh/mini-lsm — Mini-LSM is an educational storage engine and key-value database library designed to demonstrate the implementation of… cberner/redb — redb is an embedded key-value store and ACID-compliant storage engine. It functions as a persistent storage system for… cockroachdb/pebble — Pebble is an embedded key-value storage engine written in Go, designed as a library that provides durable,… spacejam/sled — Sled is an embedded key-value store and ACID-compliant database designed for high-performance data persistence. It…

بدائل مفتوحة المصدر لـ Miniob

مشاريع مفتوحة المصدر مشابهة، مرتبة حسب عدد الميزات المشتركة مع Miniob.
  • cmu-db/bustubالصورة الرمزية لـ cmu-db

    cmu-db/bustub

    4,861عرض على GitHub↗

    This is an educational relational database engine used in Carnegie Mellon University's database systems course. Students learn internals by implementing core components of a working database, including storage, indexing, concurrency control, and crash recovery. The system covers key database architecture: a B+ tree index for fast key-based lookups and range scans, a disk-oriented buffer pool that caches pages from disk, an iterator-based query execution model that composes physical operators, page-based storage for records, two-phase locking for coordinating concurrent transactions, and write

    C++databasedbms
    عرض على GitHub↗4,861
  • h2database/h2databaseالصورة الرمزية لـ h2database

    h2database/h2database

    4,607عرض على GitHub↗

    H2 is a JDBC-compliant relational database management system written in Java. It functions as an embeddable SQL database that can run directly within an application process to remove network latency, or as an in-memory database for high-performance volatile storage. It also includes a web-based console for executing SQL commands and administering schemas. The system is characterized by its flexible deployment modes, including a standalone server mode for remote TCP/IP access and a mixed mode for simultaneous local and remote connectivity. It features a dialect emulation layer and compatibilit

    Javadatabasejavajdbc
    عرض على GitHub↗4,607
  • skyzh/mini-lsmالصورة الرمزية لـ skyzh

    skyzh/mini-lsm

    4,034عرض على GitHub↗

    Mini-LSM is an educational storage engine and key-value database library designed to demonstrate the implementation of log-structured merge-tree architecture. It serves as a pedagogical resource for understanding how to build high-performance storage systems from the ground up, focusing on the mechanics of persistent data structures and disk-based storage. The project provides a functional framework for managing data through memory-to-disk flushing and multi-version concurrency control. It distinguishes itself by implementing snapshot-based isolation, which allows for consistent views of the

    Rustdatabasekey-value-storekv-store
    عرض على GitHub↗4,034
  • cberner/redbالصورة الرمزية لـ cberner

    cberner/redb

    4,248عرض على GitHub↗

    redb is an embedded key-value store and ACID-compliant storage engine. It functions as a persistent storage system for saving and retrieving data as key-value pairs within a tree structure. The engine is built as an MVCC transactional database, utilizing multi-version concurrency control to manage simultaneous reads and writes without blocking. It employs a single-writer multi-reader model to ensure data consistency while allowing multiple threads to access the store. The system provides persistent state management and atomic transaction management to prevent data corruption during crashes.

    Rustrust
    عرض على GitHub↗4,248
  • عرض جميع البدائل الـ 30 لـ Miniob→