Mysos Proposal

Abstract

Mysos is an Apache Mesos framework for running MySQL instances.

Proposal

Mysos runs on Apache Mesos (cluster manager) to dramatically simplify the management of MySQL instances. It is designed to offer:

  • Efficient hardware utilization through multi-tenancy (in performance-isolated containers)
  • High reliability through preserving the MySQL state during failure and automatic backing up to/restoring from HDFS
  • An automated self-service option for bringing up new MySQL clusters
  • High availability through automatic MySQL master failover
  • An elastic solution that allows users to easily scale up and down a MySQL cluster by changing the number of slave instances

Background

Initial development of Mysos was done at Twitter, and its codebase was recently open sourced. This proposal is for Mysos to join the Apache Incubator.

Rationale

Mysos is built to be used by anyone who desires to run MySQL on Apache Mesos, and in the near-future it will take advantage of state primitives that are being added to the Mesos core: https://issues.apache.org/jira/browse/MESOS-1554

Furthermore, the rapid growth of Mysos community is empowered by open source. We believe the Apache Foundation is a great fit as the long-term home for Mysos, as it provides an established process for community-driven development and decision making by consensus.

Initial Goals

  • Move the existing codebase to Apache
  • Integrate with the Apache development process
  • Ensure all dependencies are compliant with Apache License version 2.0
  • Strengthen and grow the Mysos community
  • Incremental development and releases per Apache guidelines

Current Status

Mysos was originally born out of a project within Twitter. The original committers (Twitter) are working with Mesosphere and Percona to fully open source the code and make it ready for incubation at Apache.

The Mysos source is currently hosted at GitHub, which will be used to seed the Apache git repository.

Meritocracy

We plan to invest in supporting a meritocracy. We will discuss the requirements in an open forum. Several companies have already expressed interest in this project, and we intend to invite additional developers to participate. We will encourage and monitor community participation so that privileges can be extended to those that contribute.

Community

By bringing Mysos into Apache, we believe that the community will grow even bigger.

Core Developers

Mysos was initially developed as a collaboration between Twitter and Mesosphere.

Alignment

We believe that having Mysos at Apache will help further the growth of the big-data community, as it will encourage cooperation within the greater ecosystem of projects spawned by Apache Mesos.

Known Risks

Orphaned Products

Mysos is being used and developed by companies we work for so the companies have an interest in its continued vitality.

Given strong interest we've had since open sourcing Mysos, we anticipate we'll grow a sustainable community that will expand contributors and keep it active as the Mesos core evolves.

Inexperience with Open Source

Most of the committers have experience at Apache, whether it's through Apache Mesos, Aurora or other projects. Apache Mesos and Apache Aurora were both shepherded through the ASF incubator process and have graduated to become successful and diverse open source projects. We also have Jake Farrell as an ASF Champion to help us through incubation.

Homogenous Developers

Initial committers come from a number of companies. Our intention is increase the diversity of contributing developers and their affiliations, and we'll recognize contributions and contributors as the community grows at Apache. We encouraged by interest in the project thus far.

Reliance on Salaried Developers

It is expected that Mysos development will occur on both salaried time and on volunteer time, after hours. The majority of initial committers are paid by their employers to contribute to this project. However, they are all passionate about the project, and we are confident that the project will continue even if no salaried developers contribute to the project. We are committed to recruiting additional committers including non-salaried developers.

Relationships with Other Apache Products

Mysos depends on Apache Mesos. The Mysos team will work closely with the Apache Mesos community to ensure the proper stateless primitives are in place to enable MySQL to run on Apache Mesos.

An Excessive Fascination with the Apache Brand

Mysos is a new open source project and the primary benefits to joining Apache are those outlined in the Rationale section.

Documentation

Documentation is currently located as README markdown files:

/README.md
/docs/user-guide.md

Additional will continue to be added to the project.

Source and Intellectual Property Submission Plan

The Mysos codebase is currently hosted on Github: https://github.com/twitter/mysos.

These are the codebases that we would migrate to the Apache foundation.

External Dependencies

All Mysos dependencies have Apache compatible licenses.

Cryptography

We do not expect Mysos to be a controlled export item due to the use of encryption.

Required Resources

Mailing lists

  • private@mysos.incubator.apache.org
  • commits@mysos.incubator.apache.org
  • dev@mysos.incubator.apache.org

Subversion Directory

Git is the preferred source control system:

  • git://git.apache.org/mysos

Issue Tracking

We'd like to use JIRA for issue tracking with project key MYSOS and Review Board for our code reviews.

Initial Committers

  • Chris Aniszczyk <caniszczyk at apache dot org>
  • Vinod Kone <vinodkone at apache dot org>
  • Dave Lester <dlester at apache dot org>
  • Yan Xu <yan at twitter dot com>
  • Tobi Knaup <tobi at mesosphere dot io>
  • Sunil Shah <sunil at mesosphere dot io>
  • Jake Farrell <jfarrell at apache dot org>
  • TODO

Affiliations

  • Chris Aniszczyk (Twitter)
  • Vinod Kone (Twitter)
  • Dave Lester (Twitter)
  • Yan Xu (Twitter)
  • Tobi Knaup (Mesosphere)
  • Sunil Shah (Mesosphere)
  • Jake Farrell (Acquia)
  • TODO

Sponsors

Champion

  • Jake Farrell <jfarrell at apache dot org>

Nominated Mentors

  • Dave Lester <dlester at apache dot org>
  • Benjamin Hindman <benh at apache dot org>
  • Henry Saputra (hsaputra at apache dot org)

Sponsoring Entity

The Apache Incubator

  • No labels