awesome-repositories.com
博客
MCP
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
erikgrinaker avatar

erikgrinaker/toydb

0
View on GitHub↗
7,251 星标·626 分支·Rust·Apache-2.0·11 次浏览

Toydb

ToyDB is a distributed SQL database that provides a system for storing and querying data across multiple nodes. It focuses on maintaining strong consistency and fault tolerance through the implementation of a distributed consensus algorithm.

The project distinguishes itself by supporting historical data versioning, enabling time-travel queries to retrieve the state of the database from a specific point in the past. It utilizes multi-version concurrency control to manage ACID transactions and ensure data integrity during concurrent operations.

The system covers relational data modeling with table schemas, primary keys, and foreign keys to enforce referential integrity. Its query engine parses SQL statements and executes them through an optimized pipeline of operators, supporting joins, aggregations, and heuristic query optimization. Data is persisted via pluggable storage backends, including log-structured and in-memory engines.

Features

  • Distributed SQL Databases - Implements a relational database engine designed to scale horizontally while maintaining transactional consistency.
  • Raft Consensus Implementations - Synchronizes a command log across a cluster of nodes using the Raft consensus algorithm for fault tolerance.
  • ACID Transactional Cores - Ensures data integrity using snapshot isolation and multi-version concurrency control to prevent dirty and phantom reads.
  • Historical Data Querying Interfaces - Allows retrieval of the database state from specific points in the past using logical timestamps.
  • Time-Travel Query Interfaces - Enables retrieval of past table states using snapshot identifiers or transaction timestamps.
  • Data Joins - Implements general purpose joining functionality to merge columns from multiple tables based on shared keys.
  • Data Querying - Provides interfaces for filtering, sorting, and retrieving stored data collections.
  • Data Replication - Synchronizes an ordered command log across distributed nodes to ensure data consistency and availability.
  • Table Schemas - Supports the creation of tables with specific data types, primary keys, unique constraints, and foreign key relationships.
  • SQL Query Execution - Executes structured SQL statements and transactions using an optimized engine to retrieve or modify data.
  • Schema Definitions - Provides capabilities to create and remove tables with basic datatypes, primary keys, foreign keys, and column indexes.
  • Distributed Consensus Protocols - Replicates state across a cluster using a consensus protocol to maintain consistency across all nodes.
  • Consensus Algorithms - Implements consensus algorithms to ensure all nodes in the cluster agree on the sequence of operations.
  • Fault Tolerant Storage - Maintains data availability and operational status as long as a majority of cluster nodes remain functional.
  • Multi-Version Concurrency Control - Tracks data versions via logical timestamps to provide snapshot isolation and enable time-travel queries.
  • Multi-Version Concurrency Controls - Uses multi-version concurrency control to enable lock-free reads and writes via data versioning.
  • Multi-Version Concurrency Control - Utilizes multi-version concurrency control to provide snapshot isolation and ensure data integrity during concurrent operations.
  • Query Execution Pipelines - Processes SQL statements by pulling and transforming data rows through a pipeline of operator nodes.
  • Referential Integrity Constraints - Blocks deletions, updates, or insertions that violate primary key constraints or foreign key references.
  • Relational Data Modeling - Provides capabilities for organizing data into structured tables with primary keys and foreign key relationships.
  • Row Deletions - Removes rows from a table that match a specific boolean condition.
  • Row Insertions - Provides the ability to add new records to tables using standard SQL insert operations.
  • SQL-Based Row Updates - Allows modification of existing records in a table using SQL expressions and conditional predicates.
  • SQL Query Execution Engines - Provides an engine that processes standard SQL commands while maintaining strict consistency and isolation.
  • Strong Consistency Guarantees - Guarantees linearizability by routing writes through a leader and confirming them via a quorum.
  • Table Deletion - Permanently deletes a table and all its associated data from the system.
  • Log-Structured Storage Engines - Persists data to an append-only file and maintains an in-memory index of keys to file offsets.
  • Replicated State Machines - Maintains identical state across all nodes by applying an ordered sequence of transactions.
  • Write Conflict Resolution Policies - Detects concurrent transactions modifying the same key and resolves conflicts using specific policies.
  • Mathematical Evaluators - Computes results using standard arithmetic operators, floating point math, and three-valued logic.
  • Grouped Aggregations - Reduces grouped data into scalar summaries such as average, count, and sum.
  • Append-Only Log Stores - Writes data to an append-only log while maintaining an in-memory map of keys to file offsets.
  • Pluggable Storage Drivers - Decouples database logic from the persistence layer using a pluggable interface for interchangeable storage engines.
  • Pluggable Storage Engines - Supports interchangeable storage backends, including log-structured and in-memory engines.
  • Query Planning - Rewrites logical execution plans using heuristic strategies to reduce data transmission and computation.
  • SQL Abstract Syntax Tree Parsing - Processes SQL queries into abstract syntax trees to enable programmatic analysis and execution.
  • SQL Aggregate Functions - Provides standard SQL aggregate functions for calculating sums, counts, and averages over datasets.
  • Storage Backend Adapters - Supports swapping between different data persistence layers such as log-structured stores or in-memory engines.
  • SQL Expression Evaluation - Computes results using logical, comparison, mathematical, and string operators including pattern matching with wildcards.
  • Storage Abstractions - Uses trait-based interfaces to decouple the core database logic from the underlying persistence layer.
  • Database Systems - Distributed SQL database implementation for educational purposes.
  • Databases & Data - Distributed SQL database implementation for educational purposes.

Star 历史

erikgrinaker/toydb 的 Star 历史图表erikgrinaker/toydb 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Toydb 的开源替代方案

相似的开源项目,按与 Toydb 的功能重合度排序。
  • prestodb/prestoprestodb 的头像

    prestodb/presto

    16,711在 GitHub 上查看↗

    Presto is a distributed SQL query engine designed for high-performance analytical processing across heterogeneous data sources. It functions as a data federation platform and massively parallel processing engine, allowing users to execute interactive queries against diverse storage systems without requiring data migration. By mapping remote metadata and structures to a unified relational namespace, it enables seamless cross-platform analysis through a standard SQL interface. The engine distinguishes itself through a pluggable connector architecture and a shared-nothing distributed processing

    Javabig-datadatahadoop
    在 GitHub 上查看↗16,711
  • cockroachdb/cockroachcockroachdb 的头像

    cockroachdb/cockroach

    32,207在 GitHub 上查看↗

    Cockroach is a distributed SQL database designed to scale horizontally across multiple nodes while maintaining strict ACID compliance and global data consistency. It functions as a relational database engine that automatically partitions data into ranges, rebalancing them across a cluster to accommodate growing storage and throughput requirements. By utilizing a distributed consensus protocol, the system ensures that all nodes agree on the order of operations, providing fault tolerance and continuous availability even in the event of hardware failures. The system distinguishes itself through

    Gocockroachdbdatabasedistributed-database
    在 GitHub 上查看↗32,207
  • alibaba/alisqlalibaba 的头像

    alibaba/AliSQL

    5,706在 GitHub 上查看↗

    AliSQL is a fork of MySQL by Alibaba that extends the relational database management system with enhancements for high performance, scalability, and enterprise-grade availability. It retains the core MySQL identity as a SQL-based database for storing, organizing, and retrieving structured data, while adding optimizations for large-scale transactional and analytical workloads. The project differentiates itself through a set of Alibaba-specific improvements, including a columnar engine for accelerating analytical queries directly on MySQL tables, and a distributed, shared-nothing NDB Cluster en

    C++alisqldatabaseduckdb
    在 GitHub 上查看↗5,706
  • vonng/ddiaVonng 的头像

    Vonng/ddia

    22,648在 GitHub 上查看↗

    This project serves as a comprehensive technical reference for the architecture and design of data-intensive applications. It provides a structured analysis of the fundamental principles required to build reliable, scalable, and maintainable software systems, covering the core trade-offs inherent in modern data infrastructure. The repository explores the mechanics of distributed data management, including strategies for replication, partitioning, and achieving consensus across multiple nodes. It details the design of storage engines, indexing techniques, and transaction management models, whi

    Pythonbookdatabaseddia
    在 GitHub 上查看↗22,648
查看 Toydb 的所有 30 个替代方案→

常见问题解答

erikgrinaker/toydb 是做什么的?

ToyDB is a distributed SQL database that provides a system for storing and querying data across multiple nodes. It focuses on maintaining strong consistency and fault tolerance through the implementation of a distributed consensus algorithm.

erikgrinaker/toydb 的主要功能有哪些?

erikgrinaker/toydb 的主要功能包括:Distributed SQL Databases, Raft Consensus Implementations, ACID Transactional Cores, Historical Data Querying Interfaces, Time-Travel Query Interfaces, Data Joins, Data Querying, Data Replication。

erikgrinaker/toydb 有哪些开源替代品?

erikgrinaker/toydb 的开源替代品包括: prestodb/presto — Presto is a distributed SQL query engine designed for high-performance analytical processing across heterogeneous data… cockroachdb/cockroach — Cockroach is a distributed SQL database designed to scale horizontally across multiple nodes while maintaining strict… alibaba/alisql — AliSQL is a fork of MySQL by Alibaba that extends the relational database management system with enhancements for high… vonng/ddia — This project serves as a comprehensive technical reference for the architecture and design of data-intensive… lancedb/lancedb — LanceDB is a vector database and columnar data store designed to function as a versioned dataset manager and vector… greptimeteam/greptimedb — GreptimeDB is a distributed, open-source time-series database built for unified observability. It stores and queries…