Upload
mindtrek
View
94
Download
1
Embed Size (px)
Citation preview
© 2016 MariaDB Foundation1 * *
Forking in Open Source:Case Study of MySQL/MariaDB
Otto Kekäläinen October 17th 2016
MindtrekTampere, Finland
© 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.
© 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
© 2016 MariaDB Foundation4 * *
Definition of open source
Open source
=
Free (as in freedom) software
© 2016 MariaDB Foundation5 * *
Definition of open source
Open source ≠ closed source
Commercial ≠ non-commercial
© 2016 MariaDB Foundation6 * *
free software ≠ free software
© 2016 MariaDB Foundation7 * *
Definition of open source
Longer definition at https://opensource.org/osd
List of licenses athttps://opensource.org/licenses
© 2016 MariaDB Foundation8 * *
Forking?
© 2016 MariaDB Foundation9 * *
Forking
FreeBSD
MacOS X (Darwin)
NetBSD
OpenBSD
© 2016 MariaDB Foundation10 * *
Open source=
License to fork
© 2016 MariaDB Foundation11 * *
Permissive license = forks can become closed sourceCopyleft license = forks must stay open
Credits:David A. Wheeler (2007)
© 2016 MariaDB Foundation12 * *
Forks do happen
● EGCC → GCC● OpenOffice → LibreOffice● Hudson → Jenkins● NCSA HTTPd → Apache HTTP Server● ownCloud → Nextcloud● Debian → Ubuntu, RHEL → CentOS ?
© 2016 MariaDB Foundation13 * *
Open source governance
=Behave, or get forked!
© 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.
© 2016 MariaDB Foundation15
”Given enough eyeballs all bugs are shallow” – Linus's law
© 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
© 2016 MariaDB Foundation17 * *
What is a fork and what is not?
© 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.
© 2016 MariaDB Foundation19 * *
Definition of fork
● Melwin Conway 1963: fork()
© 2016 MariaDB Foundation20 * *
Definition of fork
● Melwin Conway 1963: fork()● Linus Torvalds, 2005: git clone
© 2016 MariaDB Foundation21 * *
Definition of fork
● Melwin Conway 1963: fork()● Linus Torvalds, 2005: git clone● Tom Preston-Werner, 2008:
© 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?
© 2016 MariaDB Foundation23 * *
The history of MySQLand MariaDB
© 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
© 2016 MariaDB Foundation25 * *
MySQL hugely popular since year ~2000
© 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
© 2016 MariaDB Foundation27 * *
”Save MySQL”
● Public pledge by Monty● European Commission investigation on the
implications of Oracle's control of MySQL
© 2016 MariaDB Foundation28 * *
”Save MySQL”
● EU Competition Commissioner Neelie Kroes announced approval of the deal in 2010
© 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
© 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?
© 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
© 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
© 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
© 2016 MariaDB Foundation34 * *
MariaDB success
Steadily increasing LOC(10.1 branch / Ohloh.net)
DB-Engines.com ranking of MariaDB
0
10
20
30
40
© 2016 MariaDB Foundation35 * *
MariaDB success
● Large community and adoption– Wikipedia– WordPress.com– Debian: from an option to the default
© 2016 MariaDB Foundation36 * *
MariaDB success
Google Trends
© 2016 MariaDB Foundation37 * *
MariaDB community grows
© 2016 MariaDB Foundation38 * *
MariaDB community grows
© 2016 MariaDB Foundation39 * *
Towards the best solution in the worldUsing the open source software development model