Skip to content

Commit

Permalink
Merge pull request #1745 from KomachiSion/dev-3.1.0
Browse files Browse the repository at this point in the history
New saga transaction
  • Loading branch information
terrymanu committed Jan 14, 2019
2 parents 9f8a984 + 7f26c70 commit bb1df77
Show file tree
Hide file tree
Showing 1,512 changed files with 40,838 additions and 31,357 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug-report.md
Expand Up @@ -10,14 +10,14 @@ about: Something isn't working as expected
Before report a bug, make sure you have:

- Searched open and closed [GitHub issues](https://github.com/sharding-sphere/sharding-sphere/issues).
- Read documentation: [Sharding-Sphere Doc](http://shardingsphere.io/document/current/en/overview/).
- Read documentation: [ShardingSphere Doc](http://shardingsphere.io/document/current/en/overview/).

Please pay attention on issues you submitted, because we maybe need more details.
If no response **more than 7 days** and we cannot reproduce it on current information, we will **close it**.

Please answer these questions before submitting your issue. Thanks!

### Which version of Sharding-Sphere did you use?
### Which version of ShardingSphere did you use?

### Which project did you use? Sharding-JDBC or Sharding-Proxy?

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/question.md
Expand Up @@ -11,7 +11,7 @@ Before asking a question, make sure you have:

- Googled your question.
- Searched open and closed [GitHub issues](https://github.com/sharding-sphere/sharding-sphere/issues).
- Read documentation: [Sharding-Sphere Doc](http://shardingsphere.io/document/current/en/overview/).
- Read documentation: [ShardingSphere Doc](http://shardingsphere.io/document/current/en/overview/).

Please pay attention on issues you submitted, because we maybe need more details.
If no response **more than 7 days** and we cannot reproduce it on current information, we will **close it**.
32 changes: 22 additions & 10 deletions README.md
@@ -1,13 +1,16 @@
# [Sharding-Sphere - Distributed Database Middleware Ecosphere](http://shardingsphere.io/)
# [ShardingSphere - Distributed Database Middleware Ecosphere](http://shardingsphere.io/)

Official website: http://shardingsphere.io/

[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Gitter](https://badges.gitter.im/shardingsphere/shardingsphere.svg)](https://gitter.im/shardingsphere/Lobby)
[![GitHub release](https://img.shields.io/github/release/sharding-sphere/sharding-sphere.svg)](https://github.com/sharding-sphere/sharding-sphere/releases)
[![Stargazers over time](https://starcharts.herokuapp.com/sharding-sphere/sharding-sphere.svg)](https://starcharts.herokuapp.com/sharding-sphere/sharding-sphere)

[![Total Lines](https://tokei.rs/b1/github/sharding-sphere/sharding-sphere?category=lines)](https://github.com/sharding-sphere/sharding-sphere)
[![Build Status](https://api.travis-ci.org/sharding-sphere/sharding-sphere.png?branch=master)](https://travis-ci.org/sharding-sphere/sharding-sphere)
[![Coverage Status](https://coveralls.io/repos/github/sharding-sphere/sharding-sphere/badge.svg?branch=dev)](https://coveralls.io/github/sharding-sphere/sharding-sphere?branch=dev)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/278600ed40ad48e988ab485b439abbcd)](https://www.codacy.com/app/terrymanu/sharding-sphere?utm_source=github.com&utm_medium=referral&utm_content=sharding-sphere/sharding-sphere&utm_campaign=Badge_Grade)
[![snyk](https://snyk.io/test/github/sharding-sphere/sharding-sphere/badge.svg?targetFile=pom.xml)](https://snyk.io/test/github/sharding-sphere/sharding-sphere?targetFile=pom.xml)
[![OpenTracing-1.0 Badge](https://img.shields.io/badge/OpenTracing--1.0-enabled-blue.svg)](http://opentracing.io)
[![Skywalking Tracing](https://img.shields.io/badge/Skywalking%20Tracing-enable-brightgreen.svg)](https://github.com/OpenSkywalking/skywalking)
Expand All @@ -21,14 +24,14 @@ Official website: http://shardingsphere.io/

## Overview

Sharding-Sphere is an open-source ecosystem consisted of a set of distributed database middleware solutions, including 3 independent products, Sharding-JDBC, Sharding-Proxy & Sharding-Sidecar (todo).
ShardingSphere is an open-source ecosystem consisted of a set of distributed database middleware solutions, including 3 independent products, Sharding-JDBC, Sharding-Proxy & Sharding-Sidecar (todo).
They all provide functions of data sharding, distributed transaction and database orchestration, applicable in a variety of situations such as Java isomorphism, heterogeneous language and cloud native.

Aiming at reasonably making full use of the computation and storage capacity of database in distributed system, Sharding-Sphere defines itself as a middleware, rather than a totally new type of database.
Aiming at reasonably making full use of the computation and storage capacity of database in distributed system, ShardingSphere defines itself as a middleware, rather than a totally new type of database.
As the cornerstone of many enterprises, relational database still takes a huge market share.
Therefore, at current stage, we prefer to focus on its increment instead of a total overturn.

![Sharding-Sphere Scope](http://ovfotjrsi.bkt.clouddn.com/sharding-sphere-scope_en_v2.png)
![ShardingSphere Scope](http://shardingsphere.jd.com/document/current/img/shardingsphere-scope_en.png)

### Sharding-JDBC

Expand All @@ -42,7 +45,7 @@ It can be considered as an enhanced JDBC driver, which is fully compatible with
* Based on any third-party database connection pool, such as DBCP, C3P0, BoneCP, Druid, HikariCP.
* Support any kind of database that conforms to JDBC standard: MySQL,Oracle,SQLServer and PostgreSQL for now.

![Sharding-JDBC Architecture](http://ovfotjrsi.bkt.clouddn.com/sharding-jdbc-brief.png)
![Sharding-JDBC Architecture](http://shardingsphere.jd.com/document/current/img/sharding-jdbc-brief.png)

### Sharding-Proxy

Expand All @@ -55,7 +58,7 @@ Friendlier to DBA, the MySQL version provided now can use any kind of client acc
* Totally transparent to applications, it can be used directly as MySQL.
* Applicable to any kind of compatible of client end that is compatible of MySQL protocol.

![Sharding-Proxy Architecture](http://ovfotjrsi.bkt.clouddn.com/sharding-proxy-brief_v2.png)
![Sharding-Proxy Architecture](http://shardingsphere.jd.com/document/current/img/sharding-proxy-brief_v2.png)

### Sharding-Sidecar(TBD)

Expand All @@ -67,7 +70,7 @@ Focusing on interaction, it effectively organizes the interaction between messy
The application and database that use Database Mesh to visit database will form a large grid system, where they just need to be put into the right position accordingly.
They are all governed by mesh layer.

![Sharding-Sidecar Architecture](http://ovfotjrsi.bkt.clouddn.com/sharding-sidecar-brief_v2.png)
![Sharding-Sidecar Architecture](http://shardingsphere.jd.com/document/current/img/sharding-sidecar-brief_v2.png)

| | *Sharding-JDBC* | *Sharding-Proxy* | *Sharding-Sidecar* |
| ----------------------- | --------------- | -------------------- | ------------------ |
Expand All @@ -78,6 +81,16 @@ They are all governed by mesh layer.
| Decentralization | Yes | No | No |
| Static Entry | No | Yes | No |

### Hybrid Architecture

Sharding-JDBC adopts decentralized architecture, applicable to high-performance light-weight OLTP application developed with Java;
Sharding-Proxy provides static entry and heterogeneous language support, applicable for OLAP application and the sharding databases management and operation situation.

ShardingSphere is an ecosphere consists of multiple endpoints together.
Through mixed use of Sharding-JDBC and Sharding-Proxy and unified sharding strategy by one registry center, ShardingSphere can build application system applicable to all kinds of situations.
Architects can adjust the system architecture to the most applicable one to current business more freely.

![ShardingSphere Hybrid Architecture](http://shardingsphere.jd.com/document/current/img/shardingsphere-hybrid.png)

## Features

Expand All @@ -96,10 +109,9 @@ They are all governed by mesh layer.

* Dynamic configuration
* Fusing & Disabling
* Open tracing
* Multiple data replication (Planing)
* Tracing
* Elastic scaling out (Planing)

## Roadmap

![Roadmap](http://ovfotjrsi.bkt.clouddn.com/roadmap_en_v3.png)
![Roadmap](http://shardingsphere.jd.com/document/current/img/shardingsphere-roadmap_en.png)
34 changes: 24 additions & 10 deletions README_ZH.md
@@ -1,13 +1,16 @@
# [Sharding-Sphere - 分布式数据库中间层生态圈](http://shardingsphere.io/index_zh.html)
# [ShardingSphere - 分布式数据库中间层生态圈](http://shardingsphere.io/index_zh.html)

官方网站: http://shardingsphere.io/

[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Gitter](https://badges.gitter.im/shardingsphere/shardingsphere.svg)](https://gitter.im/shardingsphere/Lobby)
[![GitHub release](https://img.shields.io/github/release/sharding-sphere/sharding-sphere.svg)](https://github.com/sharding-sphere/sharding-sphere/releases)
[![Stargazers over time](https://starcharts.herokuapp.com/sharding-sphere/sharding-sphere.svg)](https://starcharts.herokuapp.com/sharding-sphere/sharding-sphere)

[![Total Lines](https://tokei.rs/b1/github/sharding-sphere/sharding-sphere?category=lines)](https://github.com/sharding-sphere/sharding-sphere)
[![Build Status](https://api.travis-ci.org/sharding-sphere/sharding-sphere.png?branch=master)](https://travis-ci.org/sharding-sphere/sharding-sphere)
[![Coverage Status](https://coveralls.io/repos/github/sharding-sphere/sharding-sphere/badge.svg?branch=dev)](https://coveralls.io/github/sharding-sphere/sharding-sphere?branch=dev)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/278600ed40ad48e988ab485b439abbcd)](https://www.codacy.com/app/terrymanu/sharding-sphere?utm_source=github.com&utm_medium=referral&utm_content=sharding-sphere/sharding-sphere&utm_campaign=Badge_Grade)
[![snyk](https://snyk.io/test/github/sharding-sphere/sharding-sphere/badge.svg?targetFile=pom.xml)](https://snyk.io/test/github/sharding-sphere/sharding-sphere?targetFile=pom.xml)
[![OpenTracing-1.0 Badge](https://img.shields.io/badge/OpenTracing--1.0-enabled-blue.svg)](http://opentracing.io)
[![Skywalking Tracing](https://img.shields.io/badge/Skywalking%20Tracing-enable-brightgreen.svg)](https://github.com/OpenSkywalking/skywalking)
Expand All @@ -19,14 +22,17 @@

## 概述

Sharding-Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。
他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

Sharding-Sphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。
ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。
它与NoSQL和NewSQL是并存而非互斥的关系。NoSQL和NewSQL作为新技术探索的前沿,放眼未来,拥抱变化,是非常值得推荐的。反之,也可以用另一种思路看待问题,放眼未来,关注不变的东西,进而抓住事物本质。
关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。

![Sharding-Sphere Scope](http://ovfotjrsi.bkt.clouddn.com/sharding-sphere-scope_cn.png)
ShardingSphere目前已经进入[Apache孵化器](http://incubator.apache.org/projects/shardingsphere.html)
欢迎通过[shardingsphere的dev邮件列表](mailto:dev@shardingsphere.apache.org)与我们讨论。

![ShardingSphere Scope](http://shardingsphere.jd.com/document/current/img/shardingsphere-scope_cn.png)

### Sharding-JDBC

Expand All @@ -39,7 +45,7 @@ Sharding-Sphere定位为关系型数据库中间件,旨在充分合理地在
* 基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
* 支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer和PostgreSQL。

![Sharding-JDBC Architecture](http://ovfotjrsi.bkt.clouddn.com/sharding-jdbc-brief.png)
![Sharding-JDBC Architecture](http://shardingsphere.jd.com/document/current/img/sharding-jdbc-brief.png)

### Sharding-Proxy

Expand All @@ -52,7 +58,7 @@ Sharding-Sphere定位为关系型数据库中间件,旨在充分合理地在
* 向应用程序完全透明,可直接当做MySQL使用。
* 适用于任何兼容MySQL协议的的客户端。

![Sharding-Proxy Architecture](http://ovfotjrsi.bkt.clouddn.com/sharding-proxy-brief_v2.png)
![Sharding-Proxy Architecture](http://shardingsphere.jd.com/document/current/img/sharding-proxy-brief_v2.png)

### Sharding-Sidecar(TBD)

Expand All @@ -62,7 +68,7 @@ Sharding-Sphere定位为关系型数据库中间件,旨在充分合理地在
Database Mesh的关注重点在于如何将分布式的数据访问应用与数据库有机串联起来,它更加关注的是交互,是将杂乱无章的应用与数据库之间的交互有效的梳理。
使用Database Mesh,访问数据库的应用和数据库终将形成一个巨大的网格体系,应用和数据库只需在网格体系中对号入座即可,它们都是被啮合层所治理的对象。

![Sharding-Sidecar Architecture](http://ovfotjrsi.bkt.clouddn.com/sharding-sidecar-brief_v2.png)
![Sharding-Sidecar Architecture](http://shardingsphere.jd.com/document/current/img/sharding-sidecar-brief_v2.png)

| | *Sharding-JDBC* | *Sharding-Proxy* | *Sharding-Sidecar* |
| --------- | --------------- | ---------------- | ------------------ |
Expand All @@ -73,6 +79,15 @@ Database Mesh的关注重点在于如何将分布式的数据访问应用与数
| 无中心化 ||||
| 静态入口 ||||

### 混合架构

Sharding-JDBC采用无中心化架构,适用于Java开发的高性能的轻量级OLTP应用;Sharding-Proxy提供静态入口以及异构语言的支持,适用于OLAP应用以及对分片数据库进行管理和运维的场景。

ShardingSphere是多接入端共同组成的生态圈。
通过混合使用Sharding-JDBC和Sharding-Proxy,并采用同一注册中心统一配置分片策略,能够灵活的搭建适用于各种场景的应用系统,使得架构师更加自由的调整适合与当前业务的最佳系统架构。

![ShardingSphere Hybrid Architecture](http://shardingsphere.jd.com/document/current/img/shardingsphere-hybrid.png)

## 功能列表

### 数据分片
Expand All @@ -90,10 +105,9 @@ Database Mesh的关注重点在于如何将分布式的数据访问应用与数

* 配置动态化
* 熔断 & 禁用
* Open Tracing
* 多数据副本 (Planing)
* 调用链路追踪
* 弹性伸缩 (Planing)

## Roadmap

![Roadmap](http://ovfotjrsi.bkt.clouddn.com/roadmap_cn_v2.png)
![Roadmap](http://shardingsphere.jd.com/document/current/img/shardingsphere-roadmap_cn.png)
28 changes: 15 additions & 13 deletions RELEASE-NOTES.md
@@ -1,25 +1,27 @@
## 3.0.1
## 3.1.0

### API changes

1. [ISSUE #1375](https://github.com/sharding-sphere/sharding-sphere/issues/1375) Adjust persist structure for orchestration's registry center
### API Changes

### Bug Fixes
1. Adjust persist structure for orchestration's registry center.
1. Adjust Sharding-JDBC configuration API.

#### Core

1. [ISSUE #1422](https://github.com/sharding-sphere/sharding-sphere/issues/1422) Exception occur when using defaultDataSourceName and defaultDatabaseStrategy at same time
### New Features

#### Sharding-Proxy
1. XA Transaction available.
1. All SQL 100% compatible if route to single data node (MySQL Only).
1. DISTINCT SQL syntax available.
1. Broadcast table available.
1. Solve data lean problem when using DefaultKeyGenerator with low TPS.

1. [ISSUE #1403](https://github.com/sharding-sphere/sharding-sphere/issues/1403) master-slave mode exception when using PreparedStatement
1. [ISSUE #1414](https://github.com/sharding-sphere/sharding-sphere/issues/1414) `SHOW CREATE TABLE tb_name` execution exception when configuring multiple logic schema
### Change Logs
1. [MILESTONE #3](https://github.com/sharding-sphere/sharding-sphere/milestone/3)
1. [MILESTONE #4](https://github.com/sharding-sphere/sharding-sphere/milestone/4)

## 3.0.0

### Milestones

1. Sharding-Proxy launch. Support the use of Sharding-Sphere in the form of database to support for MySQL CLI and GUI client
1. Sharding-Proxy launch. Support the use of ShardingSphere in the form of database to support for MySQL CLI and GUI client

### New Features

Expand Down Expand Up @@ -433,7 +435,7 @@ Automatic generation key implementation, including

1. [ISSUE #43](https://github.com/sharding-sphere/sharding-sphere/issues/43) The yaml file contains Chinese, and the operating system mode is not UTF-8 encoding, resulting in yaml can not be parsed
1. [ISSUE #48](https://github.com/sharding-sphere/sharding-sphere/issues/48) Yaml file is not closed after reading
1. [ISSUE #57](https://github.com/sharding-sphere/sharding-sphere/issues/57) At the analytic level, we can identify sub queries to ensure that the behavior of supplementary columns can be accurately positioned
1. [ISSUE #57](https://github.com/sharding-sphere/sharding-sphere/issues/57) At the analytic level, we can identify subqueries to ensure that the behavior of supplementary columns can be accurately positioned

## 1.1.0

Expand Down
23 changes: 13 additions & 10 deletions RELEASE-NOTES_ZH.md
@@ -1,25 +1,28 @@
## 3.0.1
## 3.1.0

### API调整

1. [ISSUE #1375](https://github.com/sharding-sphere/sharding-sphere/issues/1375) 调整数据库治理模块的注册中心存储结构
1. 调整数据库治理模块的注册中心存储结构。
1. 调整Sharding-JDBC的配置相关API。

### Bug Fixes

#### Core
### 新功能

1. [ISSUE #1422](https://github.com/sharding-sphere/sharding-sphere/issues/1422) 同时使用`defaultDataSourceName``defaultDatabaseStrategy`时异常
1. 支持XA强一致事务。
1. 路由至单一数据节点的SQL 100%全兼容(仅MySQL)。
1. 支持DISTINCT语句。
1. 支持广播表。
1. 解决使用默认分布式自增主键在TPS不高的情况下可能导致数据倾斜的问题。

#### Sharding-Proxy
### 更新日志
1. [MILESTONE #3](https://github.com/sharding-sphere/sharding-sphere/milestone/3)
1. [MILESTONE #4](https://github.com/sharding-sphere/sharding-sphere/milestone/4)

1. [ISSUE #1403](https://github.com/sharding-sphere/sharding-sphere/issues/1403) 读写分离模式时,使用`PreparedStatement`异常
1. [ISSUE #1414](https://github.com/sharding-sphere/sharding-sphere/issues/1414) 多逻辑数据源配置时,`SHOW CREATE TABLE tb_name`语句执行异常

## 3.0.0

### 里程碑

1. Sharding-Proxy发布. 支持以数据库的形式使用Sharding-Sphere, 全面提供对MySQL命令行以及图形化客户端的支持
1. Sharding-Proxy发布. 支持以数据库的形式使用ShardingSphere, 全面提供对MySQL命令行以及图形化客户端的支持

### 新功能

Expand Down
10 changes: 6 additions & 4 deletions ROADMAP.md
Expand Up @@ -9,7 +9,7 @@
- [x] Statement
- [x] Prepared Statement
- [x] Result Set
- [x] Result Set Metadata
- [ ] Result Set Metadata

### Database
- [x] MySQL
Expand All @@ -22,6 +22,7 @@
- [x] YAML
- [x] Spring Namespace
- [x] Spring Boot Starter
- [x] Inline expression

## Sharding-Proxy

Expand All @@ -45,6 +46,7 @@

### Configuration
- [x] YAML
- [x] Inline expression

## Sharding-Sidecar
- [ ] TODO
Expand All @@ -61,13 +63,13 @@
- [x] GROUP BY
- [x] Aggregation Functions
- [x] LIMIT, rownum, TOP
- [x] Simple Sub Query
- [x] Simple Subquery
- [x] OR
- [ ] DISTINCT
- [x] DISTINCT
- [ ] HAVING
- [ ] UNION, UNION ALL
- [ ] Calculate Expression, eg: SUM(pv) / COUNT(uv)
- [ ] Complicated Sub Query
- [ ] Complicated Subquery
- [ ] SQL Hint
- [x] DML
- [x] INSERT INTO
Expand Down

0 comments on commit bb1df77

Please sign in to comment.