TiDB is a production-grade, open-source distributed SQL database with MySQL compatibility, horizontal scalability, strong consistency (ACID), and HTAP capabilities via TiKV (row store) and TiFlash (columnar store). The architecture separates compute (TiDB Server) from storage (TiKV/TiFlash) with PD for cluster management. Key entry points: cmd/tidb-server (SQL layer), lightning/cmd/tidb-lightning (TB-scale import), br/cmd/br (backup/restore), dumpling/cmd/dumpling (export). The codebase demonstrates exceptional craftsmanship with a modular design: the parser (pkg/parser) is a standalone MySQL-compatible SQL parser used by external projects; pkg/objstore provides a unified storage abstraction (S3/GCS/Azure/local/HDFS) with compression/encryption; pkg/dxf/framework implements a distributed execution framework with scheduler/task-executor/planner; pkg/timer provides distributed cron/interval scheduling with persistence; pkg/extension enables plugin-based authentication/session-hooks/custom-functions; pkg/util/chunk/arena/zeropool/mvmap/intset/bitmap provide high-performance columnar processing and memory management; pkg/expression uses code generation for vectorized SIMD evaluation; pkg/planner implements a Cascades-based cost-based optimizer with plan caching; pkg/ddl executes online schema changes via job-based distributed backfill with schema versioning; pkg/statistics maintains histograms/CMS/FM-sketch with auto-analyze priority queues. The repo includes comprehensive testing (unit, integration, realtikv, chaos) and modern Go practices (generics, interfaces, DI).
CockroachDB is a cloud-native distributed SQL database built on a transactional, strongly-consistent key-value store (Pebble). It provides horizontal scalability, survivability against disk/machine/rack/datacenter failures with minimal latency disruption, strongly-consistent ACID transactions, and a PostgreSQL-compatible SQL API. The architecture is a monolithic Go application with a clear separation between the SQL layer (parser, optimizer, distributed execution engine) and the KV layer (Raft-based replication, Pebble storage). Key innovations include a Cascades-style cost-based optimizer with memoization, a vectorized columnar execution engine (colexec), online declarative schema changes, distributed backup/restore with incremental support, change data capture with multiple sink formats, and multi-region/multi-tenant capabilities with geo-partitioning. The codebase demonstrates exceptional engineering craftsmanship throughout - the Raft implementation, distributed SQL planner, admission control system, and time-series storage are all genuinely reusable components that showcase non-obvious solutions to hard distributed systems problems. Active development with recent commits, comprehensive CI/CD, and regular releases.
Mycat is an open-source database middleware proxy for MySQL, implementing the MySQL protocol to provide sharding, read/write splitting, global tables, XA transactions, and multi-database backend support (MySQL, PostgreSQL, MongoDB, SequoiaDB). The system routes SQL statements to appropriate backend shards based on configurable partition algorithms, merges result sets, and manages connection pooling, caching, and distributed sequence generation. Architecture is a Java NIO-based server with frontend and backend connection handlers, an SQL parser (Druid extended), a routing engine, and a management interface. The codebase is large (1200+ files) and shows significant engineering investment but suffers from heavy technical debt: mixed Chinese and English comments, many hardcoded values, duplicate boilerplate response classes, deprecated internal APIs, and an aging dependency footprint (Java 8, old Druid version, sun.misc.Unsafe usage). The project appears to be in maintenance mode with limited recent contributions, and the configuration/synchronization via ZooKeeper adds operational complexity.