incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roman Shaposhnik <...@apache.org>
Subject [VOTE] Sharding-Sphere incubation proposal
Date Tue, 06 Nov 2018 06:41:08 GMT
Hi!

on behalf of Sharding-Sphere community, I'd like to call
a VOTE to accept it into the Apache Incubator. The full
proposal is available on the wiki:
    https://wiki.apache.org/incubator/ShardingSphereProposal
and it is also attached below for your convenience.

Please cast your vote:

  [ ] +1, bring Sharding-Sphere into Incubator
  [ ] +0, I don't care either way,
  [ ] -1, do not bring Sharding-Sphere into Incubator, because...

The vote will open at least for 72 hours.

Thanks,
Roman.

= Abstract =
Sharding-Sphere is an ecosystem of transparent distributed database
middleware, focusing on data sharding, distributed transaction and
database orchestration. It provides maximum compatibility for
applications through Sharding-JDBC (a driver to implement JDBC) or
Sharding-Proxy (a proxy to implement database protocol).

= Proposal =
With a large number of end users, Sharding-Sphere has a fairly huge
community in China. It is also widely adopted by many
[[http://shardingsphere.io/community/en/company/|companies and
organizations]] as a solution to process their massive amounts of
data.

We believe that bringing Sharding-Sphere into Apache Software
Foundation could advance development of a stronger and more diverse
open source community.

Dangdang submits this proposal to donate Sharding-Sphere's source
codes and all related documentations to Apache Software Foundation.
The codes are already under Apache License Version 2.0.

  * Code base: https://github.com/sharding-sphere/sharding-sphere

  * Web site: http://shardingsphere.io/

  * Documentations: http://shardingsphere.io/document/current/

  * Community: http://shardingsphere.io/community/

= Background =

Relational database hardly supports such huge amounts of data any more
which has increased rapidly in recent years, but for reason of
technique maturity, developers and DBAs still want to use it to
persist core data.

Sharding-Sphere was open sourced on Github in 2016. At the very
beginning, Sharding-Sphere is just a JDBC driver for data sharding
(name as Sharding-JDBC) at Dangdang internal framework; now it offers
data sharding, distributed transaction and database orchestration.
Besides JDBC, proxy to implement MySQL database protocol is also
supported at present. Furthermore, our roadmap includes Proxy for
PostgreSQL protocol, Sidecar model, data repica and elastic data
scalability function as well.

Due to the extension of project, we provide proxy model and sidecar
model in addition to JDBC model. Therefore, we rename it to
Sharding-Sphere by
[[https://github.com/sharding-sphere/sharding-sphere/issues/788|a
public vote]], which refers to a sharding ecosphere with
Sharding-JDBC, Sharding-Proxy and Sharding Sidecar as its three
sub-projects.

Sharding-JDBC has won the
[[http://www.oschina.net/project/top_cn_2016|TOP 20 most popular open
source projects in China 2016]].

= Rationale =

Relational database still plays a very important role on current
application system. The maturity of products and surrounding
ecosystem, the friendliness of its data query and developers' and
DBAs' mastery of it, cannot be completely replaced with other types of
database in the near future. However, current relational database
cannot support cloud native very well and it is not friendly to
distributed system.

It is the ultimate goal of Sharding-Sphere, which manages the
databases scattering around the system, to make user use distributed
databases as simply as using a single one.

Without extra cost, Sharding-JDBC directly connects database with Java
application to get the best performance.

Sharding-Proxy is deployed as a stateless server and supports MySQL
protocol at present. In the paper
[[https://db.cs.cmu.edu/papers/2016/pavlo-newsql-sigmodrec2016.pdf|What’s
Really New with NewSQL?]], three types of NewSQL are introduced, among
which Sharding-Proxy is a Transparent Sharding Middleware.

Sharding-Sidecar can be understood as a data panel in Service Mesh.
The interaction between the application and the database provides a
mesh layer. The concept of Database Mesh is similar to Service Mesh,
and it focuses on how to connect data access applications to the
database. Database Mesh will set up a huge grid system between
applications and databases. Applications and databases need be placed
in the grid system. They are all objects managed by the meshing layer.

= Current Status =
== Meritocracy ==
Sharding-Sphere was incubated at Dangdang in 2015 and open sourced on
GitHub in 2016. In 2017, Jingdong recognized its value and determined
to sponsor this project. Sharding-Sphere has contributors and users
from many companies; we have set up the PMC Team and Committer Team.
New contributors are guided and reviewed by existed PMC members. When
they are ready, PMC will start a vote to promote him/her to become a
member of PMC or Committer Team. See the details See the details
[[http://shardingsphere.io/community/en/organization/|here]].
Contributions are always welcomed and highly valued.

== Community ==
Now we have set development teams for Sharding-Sphere respectively in
Jingdong, Dangdang and Bestpay. Companies like Sohu and Dataman have
shown great interest in Sharding-Sphere. We hope to grow the base of
contributors by inviting all those who offer contributions through The
Apache Way. Right now, we make use of github as code hosting as well
as gitter for community communication.

== Core Developers ==
The core developers, including experienced open source developers and
team leaders, have formed a group full of diversity.

= Known Risks =
== Orphaned products ==
Three development teams from Jingdong, Dangdang and CHINA TELECOM
Bestpay will spare no pains to work on Sharding-Sphere in the future
with contributors from the growing community. Also, Sharding-Sphere is
widely adopted in China by many
[[http://shardingsphere.io/community/en/company/|companies and
organizations]]. Thus, it is very unlikely that Sharding-Sphere
becomes orphaned.

== Inexperience with Open Source ==

The current core developers all work for companies that have developed
or contributed to many open source projects.

  * Liang Zhang, PMC. He is the lead of two open source projects,
Sharding-Sphere and Elastic-Job. Also Committer of Apache Dubbo
(Incubator).

  * Sheng Wu, PMC. He is the PPMC and committer of Apache
SkyWalking(Incubating), Apache Zipkin(Incubating) contributor, CNCF
OpenTracing member. Also contributed a lot other open source projects.

  * Hongtao Gao, PMC. He is the PPMC and committer of Apache
SkyWalking(Incubating) too. Also contribute a lot of features of
Elastic-Job.

Therefore, we believe we have enough experience to deal with open source.

== Homogenous Developers ==
The current core developers work across a variety of organizations
including Jingdong, Dangdang and CHINA TELECOM Bestpay; some
individual developers are accepted as core developers of
Sharding-Sphere as well. Considering that Sohu and Dataman have shown
great interest in Sharding-Sphere, we plan to encourage them to
contribute and invite them as contributors to work together.

== Reliance on Salaried Developers ==
At present, three of the core developers are paid by their employer to
contribute to Sharding-Sphere project. It is estimated that the
development of Sharding-Sphere will be continued with mainly salaried
developers, and we will make efforts to attract more volunteers and
grow the community.

== Relationships with Other Apache Products ==

An automatic prober of Sharding-Sphere is introduced into SkyWalking
to send APM data, and SkyWalking also use Sharding-Sphere to persit
tracing data. Saga provided by ServiceComb is adopted by
Sharding-Sphere as one of the distributed transaction processing
engines. Sharding-Sphere integrates Apache Zookeeper as one of the
service registration/discovery mechanisms.

== A Excessive Fascination with the Apache Brand ==
We acknowledge the value and reputation that the Apache brand would
bring to Sharding-Sphere. However, our primary interest is in the
excellent community provided by Apache Software Foundation, in which
all the projects could gain stability for long-term development.

= Documentation =
A complete set of Sharding-Sphere documentations is provided on
shardingsphere.io in both English and Simplified Chinese.

  * [[http://shardingsphere.io/document/current/en/overview/|English]]
  * [[http://shardingsphere.io/document/current/cn/overview/|Chinese]]

= Initial Source =
The project consists of three distinct codebases: core, example and
document. The address of three existed git repositories are as
follows:

  * https://github.com/sharding-sphere/sharding-sphere
  * https://github.com/sharding-sphere/sharding-sphere-example
  * https://github.com/sharding-sphere/sharding-sphere-doc

= Source and Intellectual Property Submission Plan =
The codes are currently under Apache License Version 2.0 and have been
verified to have no intellectual property or license issues before
being released to open source by Dangdang in 2016. Dangdang will
provide SGA and all committers will sign ICLA after Sharding-Sphere is
accepted into the Incubator.

= External Dependencies =

As all dependencies are managed using Apache Maven, none of the
external libraries need to be packaged in a source distribution. All
dependencies have Apache compatible licenses except MySQL (GPL-2.0).

We will remove MySQL dependencies in future. MySQL JDBC driver is
adopted by Sharding-Proxy to connect MySQL now; We will use SPI to
load JDBC driver, so MySQL JDBC driver is no longer provided on
Sharding-Sphere.

  * Guava Apache-2.0
  * Guava Retrying Apache-2.0
  * commons-codec Apache-2.0
  * commons-pool Apache-2.0
  * commons-dbcp Apache-2.0
  * netty Apache-2.0
  * curator Apache-2.0
  * grpc Apache-2.0
  * protobuf BSD 3-clause
  * lombok MIT
  * groovy Apache-2.0
  * snakeyaml Apache-2.0
  * spring-context-support Apache-2.0
  * spring-context-test Apache-2.0
  * spring-boot-starter Apache-2.0
  * spring-boot-configuration-processor Apache-2.0
  * spring-boot-starter-test Apache-2.0
  * slf4j MIT
  * logback EPL-1.0
  * junit EPL-1.0
  * hamcrest BSD 3-clause
  * mockito MIT
  * h2 MPL-2.0/EPL-1.0
  * mysql GPL-2.0 Will remove before first apache release, use SPI instead of it
  * postgresql BSD
  * mssql-jdbc MIT
  * HikariCP Apache-2.0
  * ANTLR BSD
  * OpenTracing BSD

= Required Resources =
== Git Repositories ==
  * https://github.com/sharding-sphere/sharding-sphere.git
  * https://github.com/sharding-sphere/sharding-sphere-example.git
  * https://github.com/sharding-sphere/sharding-sphere-doc.git


== Issue Tracking ==

The community would like to continue using GitHub Issues.

== Continuous Integration tool ==
Travis

== Mailing Lists ==
  * Sharding-Sphere-dev: for development discussions
  * Sharding-Sphere-private: for PPMC discussions
  * Sharding-Sphere-notifications: for users notifications, and
notifications from GitHub

== Initial Committers ==
  * 张亮, Liang Zhang, zhangliang@apache.org
  * 曹昊, Hao Cao,
  * 吴晟, Sheng Wu, wusheng@apache.org
  * 高洪涛, Hongtao Gao, hanahmily@apache.org
  * 张永伦, Yonglun Zhang
  * 潘娟, Juan Pan
  * 赵俊, Jun Zhao
  * 岳令, Ling Yue
  * 马晓光, Xiaoguang Ma
  * 陈清阳, QingYang Chen
  * 彭勇升, Yongsheng Peng, pengys@apache.org

== Affiliations ==
  * JD: Liang Zhang, Yonglun Zhang, Juan Pan, Jun Zhao
  * Dangdang: Hao Cao, Ling Yue
  * CHINA TELECOM Bestpay: QingYang Chen
  * Individuals: Sheng Wu, Hongtao Gao, Xiaoguang Ma

= Sponsors =
== Champion ==
  * Roman Shaposhnik (rvs at apache dot org)

== Mentors ==
  * Craig L Russell (clr at apache dot org)
  * Benjamin Hindman (benh at apache dot org)
  * Willem Ning Jiang (ningjiang at apache dot org)

== Sponsoring Entity ==
We are expecting the Apache Incubator could sponsor this project.

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org


Mime
View raw message