Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and...

30
© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

Transcript of Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and...

Page 1: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 1

Peter Zaitsev, CEO, Percona

Forking and BranchingLessons from MySQL Community

August 28, 2018

Percona Technical Webinars

Page 2: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 2

I am not a Lawyer

This is my general understanding, do not expect 100% correctness of every legal detail. Also laws are different worldwide

Page 3: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 3

How Open Source Software is Different

Proprietary Software

•One or few tightly controlled software builds exist

Open Source Software

•Many Variants Possible•Anyone can change a

code and do your own change

Page 4: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 4

Source Available Licenses

Not every license where you see the source is Open Source License

Microsoft Shared Source License in 2001

Business Source License (BSL)

Apache 2.0 License with Commons Clause

Page 5: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 5

License and Trademark

Open Source Gives you right to modify and re-distribute software

Does not give you the right to do it under the original name

Page 6: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 6

“Upstream”

The Software, from which changed software version originates

Page 7: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 7

Types of Changes (Variants)

Fork

• Software takes on its own path

• Does not merge changes from Upstream

Branch

• Merges Changes from Upstream

• May be merging changes to Upstream

Patch

• Minor changes often applied for security or compatibility

• May be performed as special part of build process

Page 8: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 8

First Third party MySQL Variant

Page 9: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 9

Early Days

Single MySQL Tree with unified community

Small patches applied by Linux Distributions for their Builds

Page 10: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 10

2005 - Oracle Acquires Innobase

Page 11: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 11

2008 – Sun Acquires MySQL AB

Page 12: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 12

2008

Percona XtraDB - Variant of Innodb Storage Engine with better performance

Page 13: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 13

• MySQL fork my Brian Acker• Focus on Clean Design • Pluggable Architecture • For Web and Cloud• Not focused on

Compatibility

2008

Page 14: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 14

• MySQL Fork started by Michael “Monthy” Widenius, one of

• Started as MySQL with Minor Improvements

• Very Different Database Now

2009

Page 15: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 15

2009-2010 Oracle Acquires Sun

Page 16: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 16

• MySQL Variant by Percona• MySQL Re-Base on every

release• Full MySQL Compatibility• Performance, Observability,

Enterprise Features

2010

Page 17: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 17

More MySQL Builds and Patches

Proven Scaling (Jeremy Cole) patches

Google Patches for MySQL

OurDelta (Arjen Lentz)

Page 18: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 18

MySQL forks for Analytics

Page 19: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 19

Private MySQL Variants for their own use

Google Patches for MySQL

Facebook’s MySQL

Twitter MySQL

Yahoo MySQL

LinkedIn MySQL

Ebay MySQL

“AliSQL” – MySQL by Alibaba

Tencent (PhxSQL)

Page 20: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 20

Reasons

You can move a lot faster if yourself is the only one you need to think about

Page 21: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 21

Attempt to Unify MySQL PatchesFacebook, Google, LinkedIn, Twitter, Alibaba Group

Page 22: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 22

Maintenance

Its “easy” to create your minor features

It is very expensive to keep them up to date with upstream

Can we contribute them to upstream ?

Page 23: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 23

Upstream Contribution

MySQL

•Oracle CLA Required•Reported 2,565

signatures•Considered “toxic” by

Some Companies

MariaDB

•MariaDB Contributor Agreement

•BSD-new License code is another option

Page 24: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 24

Cloud Variants

Page 25: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 25

Amazon Aurora MySQL

Serious Changes compared to baseline MySQL

MySQL 5.7 Compatibility Released Feb 6, 2018

More than 2 Years after MySQL 5.7 was released as GA

Porting Changes is Hard!

Page 26: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 26

Open Source Variants in 2018

Page 27: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 27

MySQL

• Most widely used• Enterprise Edition with

Advanced Features

MariaDB

• “Community Focus”• Some advanced SQL

Features • Less and Less MySQL

Compatibility with Every Release

• Additional Storage Engines Available

Percona Server

• Focus on Complete MySQL Compatibility

• Small and highly valuable improvements

• Performance and Observability

• Equivalents to MySQL Enterprise Features

• TokuDB and MyRocks storage engines

Page 28: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 28

MariaDB - Separate Database

https://modern-sql.com/blog/2018-08/whats-new-in-mariadb-10.3

Page 29: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

Buy Now and Save up to €75 With the Early Bird Rate, But Hurry

Connect. Accelerate. Innovate.Percona Live Europe

Frankfurt 5-7 November 2018

PRICES GO UP SEPTEMBER 9TH

Buy Your Tickets >

Page 30: Forking and Branching - Percona...© 2018 Percona. 1 Peter Zaitsev, CEO, Percona Forking and Branching Lessons from MySQL Community August 28, 2018 Percona Technical Webinars

© 2018 Percona. 30

Thank You!