ShardingSphere - Building a Criterion and Ecosystem Above Multi-Model Databases
Official Website: https://shardingsphere.apache.org/
Stargazers Over Time | Contributors Over Time |
---|---|
ShardingSphere Overview
Apache ShardingSphere is positioned as a Database Plus, and aims at building a new criterion and ecosystem above multi-model databases. It focuses on how to reuse existing databases and their respective upper layer, rather than creating a new database.
The concepts at the core of the project are Link, Enhance and Pluggable.
Link:
Flexible adaptation of database protocol, SQL dialect and database storage. It can quickly link applications and multi-mode heterogeneous databases quickly.Enhance:
Capture database access entry to provide additional features transparently, such as: redirect (sharding, readwrite-splitting and shadow), transform (data encrypt and mask), authentication (security, audit and authority), governance (circuit breaker and access limitation and analyze, QoS and observability).Pluggable:
Leveraging the micro kernel and 3 layers pluggable mode, features and database ecosystem can be embedded flexibily. Developers can customize their ShardingSphere just like building with LEGO blocks.
ShardingSphere became an Apache Top-Level Project on April 16, 2020.
Documentation:
For full documentation & more details, visit: https://shardingsphere.apache.org/document/current/en/overview/
Contribution:
For guides on how to get started and setup your environment, contributor & committer guides, visit: https://shardingsphere.apache.org/community/en/contribute/
Community & Support:
Status:
We are currently working towards our 5.0.0-RC1 milestone. Keep an eye on the milestones page of this repo to stay up to date.
How it Works:
Apache ShardingSphere includes 3 independent products: JDBC, Proxy & Sidecar (Planning). They all provide functions of data scale-out, distributed transaction and distributed governance, applicable in a variety of situations such as Java isomorphism, heterogeneous language and Cloud-Native.
ShardingSphere-JDBC
A lightweight Java framework providing extra services at the Java JDBC layer. With the client end connecting directly to the database, it provides services in the form of a jar and requires no extra deployment and dependence.
ShardingSphere-Proxy
A transparent database proxy, providing a database server that encapsulates database binary protocol to support heterogeneous languages. Friendlier to DBAs, the MySQL and PostgreSQL version now provided can use any kind of terminal.
Hybrid Architecture
ShardingSphere-JDBC adopts a decentralized architecture, applicable to high-performance light-weight OLTP applications developed with Java. ShardingSphere-Proxy provides static entry and all languages support, suitable for OLAP application and sharding databases management and operation.
Through the mixed use of ShardingSphere-JDBC & ShardingSphere-Proxy together with a unified sharding strategy by the same registry center, the ShardingSphere ecosystem can build an application system suitable to all kinds of scenarios.
Solution
Solutions/Features | Distributed Database | Data Security | Database Gateway | Stress Testing |
---|---|---|---|---|
Data Sharding | Data Encrypt | Multi-model Databases Supported | Shadow Database | |
Readwrite-splitting | Row Authority (TODO) | SQL Dialect Translate (TODO) | Observability | |
Distributed Transaction | SQL Audit (TODO) | |||
Elastic Scale-out | SQL Firewall (TODO) | |||
Highly Available |
Roadmap
How to Build Apache ShardingSphere:
Check out Wiki section for details on how to build Apache ShardingSphere and a full guide on how to get started and setup your local dev environment.
Landscapes
Apache ShardingSphere enriches the CNCF CLOUD NATIVE Landscape.