incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "P. Taylor Goetz" <ptgo...@apache.org>
Subject [RESULT] [VOTE] Accept Gossip into the Apache Incubator
Date Thu, 28 Apr 2016 18:34:29 GMT
This vote is now closed and passes with 14 binding +1 votes, 8 non-binding +1 votes and not
0 or -1 votes.

Vote tally (* indicates a binding vote):

+1:
P. Taylor Goetz*
Chris Nauroth*
Joe Witt
Josh Elser*
Amol Kekre
Debo Dutta
Sean Busbey*
Pierre Smits
Edward Capriolo
Phillip Rhodes*
Jean-Baptiste Onofré*
John D. Ament*
Anatole Tresch
Ralph Goers*
Jake Farrell*
Ted Dunning*
Andrew Purtell*
Tsuyoshi Ozawa
Ashish Paliwal
Lewis John Mcgibbney*
Bertrand Delacretaz*
Tom Barber*

0:
-none-

-1:
-none-

Thank you to all who voted.

Welcome Gossip community!

-Taylor

> On Apr 25, 2016, at 2:14 PM, P. Taylor Goetz <ptgoetz@apache.org> wrote:
> 
> Following the discussion thread [1], I would like to call a VOTE to accept Gossip into
the Apache Incubator.
> 
> The Gossip proposal can be found here [2] and is also listed below.
> 
> [ ] +1 Accept Gossip into the Apache Incubator
> [ ] +0 Abstain.
> [ ] -1 Do not accept Gossip into the Apache Incubator because…
> 
> This vote will be open for at least 72 hours.
> 
> Obviously I am +1 (binding).
> 
> -Taylor
> 
> [1] https://s.apache.org/gossip-discuss <https://s.apache.org/gossip-discuss>
> [2] https://wiki.apache.org/incubator/GossipProposal <https://wiki.apache.org/incubator/GossipProposal>
> 
> --------------------
> = Abstract =
> 
> Apache Gossip will be an implementation of the Gossip Protocol based on code available
here: https://github.com/edwardcapriolo/gossip/ <https://github.com/edwardcapriolo/gossip/>
which is already licenced using the glorious Apache V2 License.
> 
> = Proposal =
> 
> Apache Gossip aims to provide a gossip based consensus protocol written in Java for peer-to-peer
communication to the Apache Incubator (http://incubator.apache.org/ <http://incubator.apache.org/>).
This implementation will effectively scale from one to one-thousand node clusters. In addition
to the code implementation, the project should produce specifications of the wire protocol,
features, and expected behavior of the system such that compatible implementations can communicate.
> 
> = Background =
> 
> The gossip protocol has been implemented to varying levels of rigor by a number of entities.
In particular, Apache Cassandra uses an implementation of gossip to locate peers and transmit
up/down state. Apache Spark leverages tooling in Akka which provides peer-to-peer node discovery
capabilities.
> 
>  * http://highscalability.com/blog/2011/11/14/using-gossip-protocols-for-failure-detection-monitoring-mess.html
<http://highscalability.com/blog/2011/11/14/using-gossip-protocols-for-failure-detection-monitoring-mess.html>
> 
>  * https://en.wikipedia.org/wiki/Gossip_protocol <https://en.wikipedia.org/wiki/Gossip_protocol>
> 
> = Rationale =
> 
> With distributed computing becoming extremely widespread, and the growth of the buzz-factor
of ‘the-internet-of-things’ it is increasingly important that networks of IP addressable
devices can form a peer-to-peer network. Applications of peer-to-peer networks include generating
crypto currency, managing hardware such as solar power micro-grids, and more traditional roles
like grid/High Performance Computing and distributed storage systems. Different implementations
of gossip based consensus protocols have been implemented in numerous languages or as part
of more complex software stacks. The Apache Software Foundation should lead the effort of
producing a purpose built tool that can be used by downstream projects to form peer-to-peer
networks.
> 
> = Initial Goals =
> 
>  * Migration of current code https://github.com/edwardcapriolo/gossip <https://github.com/edwardcapriolo/gossip>
and existing community to the Apache Software Foundation infrastructure
>  * Secure communications
>   * Transport security using a pre-shared key
>   * Public Key Infrastructure
>  * Introduce a cluster name to wire protocol to avoid misconfigurations
>  * Effectively operate when systems have multiple network interfaces by controlling IP
binding settings
>  * Effectively operate when systems have Network Address Translations devices between
them using a broadcast IP settings
>  * Develop advanced integration testing from cluster sizes of 1-1000 nodes
>   * Test convergence times
>   * Demonstrate the tradeoffs of different settings in regard to bandwidth/cpu/convergence
time/accuracy
>  * Gossip data other than cluster state such as application/user data
>  * Provide detailed specifications such that others can implement the protocol in other
programming languages
>  * Explore HTTP transport as an alternative to UDP
> 
> = Current Status =
> 
> The current code has been around for some time. Previously it was a Google code project.
Since the fork in January 2015 there have been 55 commits and 4 releases.
> 
> == Meritocracy ==
> 
> We believe in meritocracy. All suggestions are taken seriously. We enjoy helping new
people become part of process. For other projects available on our Github, once a user shows
enough activity we grant them collaborator status.
> 
> == Community ==
> 
> In a relatively short amount of time, with a small amount of promotion on twitter and
through blogging, we have 50+ followers on Github and several forks of the project. With the
Apache brand we should be able to attract more. Once we have entered the incubator we believe
it will be easier to attempt to unify with other similar implementations.
> 
> == Core Developers ==
> 
> The code was forked on Jan 9th 2015, since then there have been 4 releases and 55 commits.
Since that period, the majority of the work was undertaken by Edward Capriolo. Several people
are interested in the features of this proposal and have indicated they will volunteer their
time.
> 
> == Alignment ==
> 
> Apache is the perfect organization to take on the Gossip project. Besides benefiting
a number of projects directly, the active development and outreach will increase adoption
of Gossip with the aim of it becoming a leader in the space.
> 
> = Known Risks =
> 
> Several existing implementations of similar cluster membership systems (gossip based
and otherwise) exist. A key challenge is moving from a relatively niche technical audience
to a more general tool for solving a common problem. Differentiating when Apache Gossip may
be the optimal solution versus a clouded landscape of coordination services such as etcd or
zookeeper, and distributed data stores via feature set will also be key. We believe that users
be attracted to the peer-to-peer distributed service toolkit that gossip will provide.
> 
> == Orphaned products ==
> 
> We plan on building on the current code by developing discrete features with a focus
on testing. Up until this point the project has been maintained by a single person. However
the project currently releases artifacts to maven central, is tested using travis CI, and
follows controlled development practice. This level of dedication will see the process through
the initial stages.
> 
> == Inexperience with Open Source ==
> We are very familiar with Open Source development and the Apache Foundation. The current
code base already carries an Apache V2 Licence.
> 
> == Homogenous Developers ==
> Multiple people have made contributions to the current code base. This proposal has generated
more interest and several more are offering to volunteer time. These volunteers are from diverse
corporate entities and many of them are also affiliated with existing Apache projects (both
top level and incubating) so there is a already experience and degree of incubating knowledge
within the proposed incubating community.
> 
> == Reliance on Salaried Developers ==
> We wish to create Apache Gossip for the challenge of producing great software. Initially
all members of the project will volunteer their time and no one will be expressly salaried
to work only on this project.
> 
> == Relationships with Other Apache Products ==
> If the Apache Gossip project is successful, other products in Apache such as Storm or
Cassandra could adopt it. However, adoption by those specific projects is not our criteria
for success. There are a large number of applications for this system. One example is Apache
JMeter could be built with Apache Gossip as a backend for distributed testing. Another example
is a polyglot registry of thrift services with gossip based discovery.
> == A Excessive Fascination with the Apache Brand ==
> We care about the Apache foundation. Having the recognition of the Apache incubator will
undoubtedly help the project. We do not seek the Apache brand to be used as legal shield or
personal glory. We believe in the Apache foundation and will manage the project with espirit
de corps, welcoming all through meritocracy while using bylaws as guiding values.
> 
> = Initial Source =
> The initial source for https://github.com/edwardcapriolo/gossip <https://github.com/edwardcapriolo/gossip>
was forked from https://code.google.com/p/java-gossip/ <https://code.google.com/p/java-gossip/>.
The code base always Apache V2 licensed.
> 
> = Source and Intellectual Property Submission Plan =
> During the course of proposal development, the two original authors of the software were
contacted to see if they would be interested in joining the project as initial committers,
and if they are willing to submit an SGA to the ASF. The first author has responded positively
and has been added as an initial committer. We would prefer to have an SGA from both authors,
but given second author has not contributed to the codebase in 6 years, the ability to obtain
an SGA is not certain. If we do not hear back from the second author within a reasonable time
frame, we intend to proceed with the Incubator IP Clearance process.
> 
>  1. Make final commit on the gossip GitHub project explaining the move to ASF.
>  1. Complete the Incubator IP Clearance process.
>  1. Move code into ASF repo.
>  1. Rename references to old name.
>  1. Apply Apache V2 licence to all source files.
> 
> = External Dependencies =
> Currently the project encodes messages into JSON for network transmission. This is done
using JSONorg, but will switch to jackson (potentially before the move to the ASF).
> = Cryptography =
> The current code is not using cryptography. It is on the road map to add security through
transport encryption (SSL) and transport encryption.
> = Required Resources =
> == Mailing lists ==
>  * dev@gossip.incubator.apache.org <mailto:dev@gossip.incubator.apache.org>
>  * commits@gossip.incubator.apache.org <mailto:commits@gossip.incubator.apache.org>
>  * private@gossip.incubator.apache.org <mailto:private@gossip.incubator.apache.org>
> The user list will be added when we have broader adoption.
> == Git Repository ==
> https://git-wip-us.apache.org/repos/asf/incubator-gossip.git <https://git-wip-us.apache.org/repos/asf/incubator-gossip.git>
> == Issue Tracking ==
> JIRA tracker: GOSSIP
> = Initial Committers =
>  * Edward Capriolo (ecapriolo at apache dot org)
>  * Josh Clemm (clemm22 at gmail dot com)
>  * P. Taylor Goetz (ptgoetz at apache dot org)
>  * Gary Dusbabek (gdusbabek at apache dot org)
>  * Dorian Ellerbe (Doellerbe06 at gmail dot com)(requires CLA)
>  * Sathish Dhinakaran (requires CLA)
>  * Joe Price (pricejosephd at gmail dot com)(requires CLA)
> = Affiliations =
>  * Edward Capriolo - The Huffington Post
>  * P. Taylor Goetz - Hortonworks
>  * Gary Dusbabek - Silicon Valley Data Science
>  * Dorian Ellerbe - Dstillery
>  * Sathish Dhinakaran - Dstillery
>  * Sean Busbey - Cloudera
>  * Josh Elser - Hortonworks
> 
> = Additional Interested Contributors =
> 
> Those interested in getting involved with the project as it starts are encourage to list
themselves here.
> 
>  * Suneel Marthi (smarthi at apache dot org) - Red hat Inc.
>  * Debo Dutta (ddutta at apache dot org) - Cisco
> 
> = Sponsors =
> == Champion ==
> P. Taylor Goetz (ASF Member, IPMC)
> 
> == Proposed Mentors ==
>  * Sean Busbey (ASF Member, IPMC)
>  * Josh Elser (ASF Member, IPMC)
>  * P. Taylor Goetz (ASF Member, IPMC)
> = Sponsoring Entity =
> The Apache Incubator
> 


Mime
View raw message