This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 17763ad Change the Read Me and Update It (#12781)
17763ad is described below
commit 17763ad3d5993305681af4fe70fc3ade1d774979
Author: Yacine Si Tayeb <[email protected]>
AuthorDate: Mon Sep 27 19:38:17 2021 +0800
Change the Read Me and Update It (#12781)
Improved the Read me section with new content, fixed the english, fixed the
roadmap image, added some links, added "solution table"
---
README.md | 153 +++++++++++----------
.../document/content/Read-Me-Pics/Read-me-JDBC.png | Bin 0 -> 164358 bytes
.../content/Read-Me-Pics/Read-me-hybrid.png | Bin 0 -> 252600 bytes
.../content/Read-Me-Pics/Read-me-proxy.png | Bin 0 -> 155680 bytes
.../content/Read-Me-Pics/Read-me-roadmap.png | Bin 0 -> 80175 bytes
5 files changed, 78 insertions(+), 75 deletions(-)
diff --git a/README.md b/README.md
index 868e18f..74c21a3 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# [ShardingSphere - Build criterion and ecosystem above multi-model
databases](https://shardingsphere.apache.org/)
+# [ShardingSphere - Building a Criterion and Ecosystem Above Multi-Model
Databases](https://shardingsphere.apache.org/)
-**Official Website: https://shardingsphere.apache.org/**
+**Official Website:** [https://shardingsphere.apache.org/]()
[](https://www.apache.org/licenses/LICENSE-2.0.html)
[](https://github.com/apache/shardingsphere/releases)
@@ -25,59 +25,76 @@
[](http://opentracing.io)
[](https://github.com/apache/skywalking)
-## Document
-[](https://shardingsphere.apache.org/document/current/en/overview/)
-[](https://shardingsphere.apache.org/document/current/cn/overview/)
-
-## Overview
-
-Apache ShardingSphere is positioned as `Database Plus`, which aims to build
criterion and ecosystem above multi-model databases.
-It focuses on how to reuse existing database, rather than creating a new
database.
-ShardingSphere focuses on the upper layer of databases, pays more attention on
cooperation between databases rather than database itself.
-
-`Link`, `Enhance` and `Pluggable` is the core concepts of Apache
ShardingSphere.
-
-- `Link`:Flexible adaptation of database protocol, SQL dialect and database
storage, it can 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 analyse (Qos
and observability);
-- `Pluggable`:Use micro kernel and 3 layers pluggable mode, to make features
and database ecosystem can be embedded flexibility. Developers can customize
their ShardingSphere just like building blocks.
-
-ShardingSphere became an [Apache](https://apache.org/index.html#projects-list)
Top-Level Project on April 16, 2020.
+# ShardingSphere Overview
-You are welcome to communicate with the community via the [mailing
list](mailto:[email protected]) and interact via the
[ShardingSphere Slack](https://app.slack.com/client/T026JKU2DPF/C026MLH7F34).
+
+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](https://apache.org/index.html#projects-list)
Top-Level Project on April 16, 2020.
+
+## Documentation
-
-
-Apache ShardingSphere including 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.
-
-As the cornerstone of enterprises, the relational database has a huge market
share. Therefore, we prefer to focus on its incrementation instead of a total
overturn.
+[](https://shardingsphere.apache.org/document/current/en/overview/)
+[](https://shardingsphere.apache.org/document/current/cn/overview/)
+
+For full documentation & more details, visit:
[https://shardingsphere.apache.org/document/current/en/overview/](https://shardingsphere.apache.org/document/current/en/)
+
+## Contribution:
+
+For guides on how to get started and setup your environment, contributor &
committer guides, visit:
[https://shardingsphere.apache.org/community/en/contribute/](https://shardingsphere.apache.org/document/current/en/)
+
+## Community & Support
+
+• [Mailing List]([email protected]). Best for: Apache
community updates, releases, changes.
+
+• [GitHub Issues](https://github.com/apache/shardingsphere/issues). Best
for: larger systemic questions/bug reports or anythingdevelopment related.
+
+• [GitHub
Discussions](https://github.com/apache/shardingsphere/discussions). Best for:
technical questions & support, requesting new features, proposing new features.
+
+• [Slack
channel](https://join.slack.com/t/apacheshardingsphere/shared_invite/zt-sbdde7ie-SjDqo9~I4rYcR18bq0SYTg).
Best for:instant communications and online meetings, sharing your applications.
+
+• [Twitter](https://twitter.com/ShardingSphere). Best for: keeping up to
date on everything ShardingSphere.
+
+## Status:
+
+• Version 5.0.0-beta: released, stable enough & anyone can sign up.
+
+- Version 5.0.0-RC1
+
+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
[](https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc)
+
+ShardingSphere-JDBC is 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. It can be considered as an enhanced JDBC driver,
fully compatible with JDBC and all kinds of ORM frameworks.
+Applicable in any ORM framework based on JDBC, such as JPA, Hibernate,
Mybatis, Spring JDBC Template or direct use of JDBC. Supports any third-party
database connection pool, such as DBCP, C3P0, BoneCP, Druid, HikariCP. Supports
any kind of JDBC standard database: MySQL, Oracle, SQLServer, PostgreSQL and
any SQL92 followed databases.
-ShardingSphere-JDBC defines itself as a lightweight Java framework that
provides 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.
-It can be considered as an enhanced JDBC driver, which is fully compatible
with JDBC and all kinds of ORM frameworks.
-
-Applicable in any ORM framework based on JDBC, such as JPA, Hibernate,
Mybatis, Spring JDBC Template or direct use of JDBC.
-Supports any third-party database connection pool, such as DBCP, C3P0, BoneCP,
Druid, HikariCP.
-Supports any kind of JDBC standard database: MySQL, Oracle, SQLServer,
PostgreSQL and any SQL92 followed databases.
-
-
-
+
+
### ShardingSphere-Proxy
[](https://apache.org/dyn/closer.cgi?path=shardingsphere/5.0.0-beta/apache-shardingsphere-5.0.0-beta-shardingsphere-proxy-bin.tar.gz)
[](https://store.docker.com/community/images/apache/sharding-proxy)
+
+ShardingSphere-Proxy is a transparent database proxy, providing a database
server that encapsulates database binary protocol to support heterogeneous
languages. Friendlier to DBAs, the MySQL version now provided can use any kind
of terminal (such as MySQL Command Client, MySQL Workbench, etc.) that is
compatible with the MySQL protocol to operate data.
+It can be used directly as MySQL and PostgreSQL servers, and is applicable to
any kind of terminal that is compatible with MySQL and PostgreSQL protocol.
-ShardingSphere-Proxy defines itself as a transparent database proxy, providing
a database server that encapsulates database binary protocol to support
heterogeneous languages. Friendlier to DBAs, the MySQL version now provided can
use any kind of terminal (such as MySQL Command Client, MySQL Workbench, etc.)
that is compatible of MySQL protocol to operate data.
-
-Transparent towards applications, it can be used directly as MySQL and
PostgreSQL servers.
-Applicable to any kind of terminal that is compatible with MySQL and
PostgreSQL protocol.
-
-
+
+
| | *ShardingSphere-JDBC* | *ShardingSphere-Proxy* |
| ----------------------- | --------------------- | ---------------------- |
@@ -87,44 +104,33 @@ Applicable to any kind of terminal that is compatible with
MySQL and PostgreSQL
| Performance | Low loss | Relatively High loss |
| Decentralization | Yes | No |
| Static Entry | No | Yes |
-
+
+
### Hybrid Architecture
+
+ShardingSphere-JDBC adopts a decentralized architecture, applicable to
high-performance light-weight OLTP application developed with Java.
ShardingSphere-Proxy provides static entry and all languages support, suitable
for OLAP application and sharding databases management and operation.
-ShardingSphere-JDBC adopts a decentralized architecture, applicable to
high-performance light-weight OLTP application developed with Java.
ShardingSphere-Proxy provides static entry and all languages support,
applicable for OLAP application and the sharding databases management and
operation situation.
+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.
-ShardingSphere is an ecosystem consisting of multiple endpoints together.
Through a mixed use of ShardingSphere-JDBC and ShardingSphere-Proxy and a
unified sharding strategy by the same registry center, ShardingSphere can build
an application system that is applicable to all kinds of scenarios. Architects
can adjust the system architecture to the most applicable one to their needs to
conduct business more freely.
+
+
+## Roadmap:
-
+
## Solution
-### Distributed Database
-
-* Data Sharding
-* Readwrite-splitting
-* Distributed Transaction
-* Elastic Scale-out
-* Distributed Highly Available
-
-### Data Security
-
-* Data Encrypt
-* Row Authority (TODO)
-* SQL Audit (TODO)
-* SQL Firewall (TODO)
-
-### Database Gateway
-
-* Multi-model Databases supported
-* SQL Dialect Translate(TODO)
-
-### Stress Testing
-
-* Shadow Database
-* Observability (Tracing and Metrics)
+| *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 (Tracing & Metrics)|
+| Distributed Transaction | SQL Audit (TODO) | Any
+| Elastic Scale-out | SQL Firewall (TODO) | Relatively High loss |
+| Distributed Highly Available | | |
+
## How to Build
-
+
### Build Apache ShardingSphere
```bash
@@ -154,10 +160,6 @@ Artifact:
shardingsphere-ui/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribution/target/apache-shardingsphere-${latest.release.version}-shardingsphere-ui-bin.tar.gz
# Binary package of ShardingSphere-UI
```
-## Roadmap
-
-
-
## Landscapes
<p align="center">
@@ -166,3 +168,4 @@
shardingsphere-ui/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribut
<br/><br/>
Apache ShardingSphere enriches the <a
href="https://landscape.cncf.io/landscape=observability-and-analysis&license=apache-license-2-0">CNCF
CLOUD NATIVE Landscape</a>.
</p>
+
diff --git a/docs/document/content/Read-Me-Pics/Read-me-JDBC.png
b/docs/document/content/Read-Me-Pics/Read-me-JDBC.png
new file mode 100644
index 0000000..0ec2656
Binary files /dev/null and
b/docs/document/content/Read-Me-Pics/Read-me-JDBC.png differ
diff --git a/docs/document/content/Read-Me-Pics/Read-me-hybrid.png
b/docs/document/content/Read-Me-Pics/Read-me-hybrid.png
new file mode 100644
index 0000000..fd1e7c2
Binary files /dev/null and
b/docs/document/content/Read-Me-Pics/Read-me-hybrid.png differ
diff --git a/docs/document/content/Read-Me-Pics/Read-me-proxy.png
b/docs/document/content/Read-Me-Pics/Read-me-proxy.png
new file mode 100644
index 0000000..671cd8d
Binary files /dev/null and
b/docs/document/content/Read-Me-Pics/Read-me-proxy.png differ
diff --git a/docs/document/content/Read-Me-Pics/Read-me-roadmap.png
b/docs/document/content/Read-Me-Pics/Read-me-roadmap.png
new file mode 100644
index 0000000..6bc9a2b
Binary files /dev/null and
b/docs/document/content/Read-Me-Pics/Read-me-roadmap.png differ