40
© 2016 MariaDB Foundation 1 * * Forking in Open Source: Case Study of MySQL/MariaDB Otto Kekäläinen October 17th 2016 Mindtrek Tampere, Finland

Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

Embed Size (px)

Citation preview

Page 1: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation1 * *

Forking in Open Source:Case Study of MySQL/MariaDB

Otto Kekäläinen October 17th 2016

MindtrekTampere, Finland

Page 2: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation2 * *

The MariaDB FoundationEnsuring continuity and open collaboration

in the MariaDB ecosystem

Funded by Booking.com, MariaDB.com, Visma, DBS and many others.

Page 3: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation3 * *

Definition of open source

1.Freedom to use

2.Freedom to study

3.Freedom to improve

4.Freedom to redistribute

Freedoms, not obligations nor warranties

Page 4: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation4 * *

Definition of open source

Open source

=

Free (as in freedom) software

Page 5: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation5 * *

Definition of open source

Open source ≠ closed source

Commercial ≠ non-commercial

Page 6: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation6 * *

free software ≠ free software

Page 7: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation7 * *

Definition of open source

Longer definition at https://opensource.org/osd

List of licenses athttps://opensource.org/licenses

Page 8: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation8 * *

Forking?

Page 9: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation9 * *

Forking

FreeBSD

MacOS X (Darwin)

NetBSD

OpenBSD

Page 10: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation10 * *

Open source=

License to fork

Page 11: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation11 * *

Permissive license = forks can become closed sourceCopyleft license = forks must stay open

Credits:David A. Wheeler (2007)

Page 12: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation12 * *

Forks do happen

● EGCC → GCC● OpenOffice → LibreOffice● Hudson → Jenkins● NCSA HTTPd → Apache HTTP Server● ownCloud → Nextcloud● Debian → Ubuntu, RHEL → CentOS ?

Page 13: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation13 * *

Open source governance

=Behave, or get forked!

Page 14: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation14

Benefits of widely used open source software

● Quality: The bigger the community is, the faster the software evolves.

● No lock-in: Software stays open source, ecosystem has multiple vendors.

● No dead-end: Big user base guarantees availability of software and people.

Page 15: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation15

”Given enough eyeballs all bugs are shallow” – Linus's law

Page 16: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation16 * *

Two types of forks

● Competitive fork– Users become alienated, turn to the rescuer

● Non-competitive fork– Needs diverge, users split into two groups

Page 17: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation17 * *

What is a fork and what is not?

Page 18: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation18 * *

Definition of fork

● Linus Nyman, 2015: Any instance in which the code of a program is copied, modified, and reused to start or develop another program.

Page 19: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation19 * *

Definition of fork

● Melwin Conway 1963: fork()

Page 20: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation20 * *

Definition of fork

● Melwin Conway 1963: fork()● Linus Torvalds, 2005: git clone

Page 21: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation21 * *

Definition of fork

● Melwin Conway 1963: fork()● Linus Torvalds, 2005: git clone● Tom Preston-Werner, 2008:

Page 22: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation22 * *

Definition of fork

● Does forking require that the fork is incompatible with the original program?

● How much incompatible, 1% or 99%?● What if the fork is temporary and later merges

with the main branch again?

Page 23: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation23 * *

The history of MySQLand MariaDB

Page 24: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation24 * *

MySQL history

● Development started in 1994, release 1995● MySQL AB founded by David Axmark, Allan

Larsson and Michael "Monty" Widenius 1995● Named after Monty's daughter My● General Public License v2 (GPL) since 2000● Mårten Mickos elected CEO 2001● The M in LAMP

Page 25: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation25 * *

MySQL hugely popular since year ~2000

Page 26: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation26 * *

MySQL AB history

● Acquired by Sun Microsystems for approximately $1 billion in 2008

● Sun Microsystems acquired by Oracle for $6 billion (net Sun's cash and debt) in 2009

● MySQL was the disruption on a market dominated by Oracle's database

Page 27: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation27 * *

”Save MySQL”

● Public pledge by Monty● European Commission investigation on the

implications of Oracle's control of MySQL

Page 28: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation28 * *

”Save MySQL”

● EU Competition Commissioner Neelie Kroes announced approval of the deal in 2010

Page 29: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation29 * *

MariaDB history

● Anticipating the ill fate of MySQL it was forked● Goal to keep the open source project going● Named after Monty's youngest daughter● MariaDB 5.1 released in October 2009● And indeed, Oracle did close down many

aspects of the open source project MySQL

Page 30: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation30 * *

The power of the fork?

● ...but Oracle didn't kill MySQL– MySQL 5.5 in 2010– MySQL 5.6 in 2013– MySQL 5.7 in 2015– MySQL 8.0 in 2016?

Page 31: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation31 * *

Open source principles at MariaDB● Publish code in real time, not just at release time.

● Discuss and plan on public mailing list and IRC.

● Public bug tracker, transparent progress and priorities.

● Respond quickly to pull requests on Github and to bug reports that have patches attached.

● Keep documentation up-to-date, develop documentation alongside code and allow also contributions in documentation.

● Regular, free-to-attend developer meetups.

● True open source, not just code dumps

Page 32: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation32 * *

Other MySQL forks

● Drizzle (MySQL 6.0 branch)● WebScaleSQL by Facebook, Google etc● MySQL Galera Cluster● Percona Server, XtraDB and Cluster● AliSQL by Alibaba● TMySQL by Tencent

Page 33: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation33 * *

MariaDB success

● Steady cadence in releases: 5.5, 10.0, 10.1..● Ported to ARM, AIX, System Z, Power 8 etc● 10.2 to be released in late 2016

Page 34: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation34 * *

MariaDB success

Steadily increasing LOC(10.1 branch / Ohloh.net)

DB-Engines.com ranking of MariaDB

0

10

20

30

40

Page 35: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation35 * *

MariaDB success

● Large community and adoption– Wikipedia– WordPress.com– Debian: from an option to the default

Page 36: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation36 * *

MariaDB success

Google Trends

Page 37: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation37 * *

MariaDB community grows

Page 38: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation38 * *

MariaDB community grows

Page 39: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation39 * *

Towards the best solution in the worldUsing the open source software development model

Page 40: Otto Kekäläinen - Forking in Open Source: Case Study of MySQL/MariaDB - Mindtrek 2016

© 2016 MariaDB Foundation40

Thanks!

mariadb.org

@[email protected]