Features/ReplaceMySQLwithMariaDB

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(Documentation)
(updated scope paragraph)
Line 13: Line 13:
 
== Current status ==
 
== Current status ==
 
* Targeted release: [[Releases/19|  Fedora 19]]
 
* Targeted release: [[Releases/19|  Fedora 19]]
* Last updated: 2013-01-04
+
* Last updated: 2013-01-10
* Percentage of completion: 40%
+
* Percentage of completion: 60%
  
 
== Detailed Description ==
 
== Detailed Description ==
  
MariaDB is a drop-in replacement for MySQL (fork), that tries to preserve API/ABI compatibility with MySQL and adds some new features. Recent changes in MySQL development made by Oracle indicate moving MySQL project to be more closed (e.g. CVE fixes or new regression tests are not publish any more).  
+
MariaDB is a drop-in replacement for MySQL (fork), that preserves API/ABI compatibility with MySQL and adds some new features. Recent changes in MySQL development made by Oracle indicate moving MySQL project to be more closed (e.g. CVE fixes or new regression tests are not publish any more).  
  
 
MariaDB has active community with true open-source attitude instead. We would like to replace MySQL with MariaDB in early development cycle for Fedora 19. MySQL will be packaged in parallel at least for one release, but MariaDB will be the default.
 
MariaDB has active community with true open-source attitude instead. We would like to replace MySQL with MariaDB in early development cycle for Fedora 19. MySQL will be packaged in parallel at least for one release, but MariaDB will be the default.
Line 28: Line 28:
 
== Scope ==
 
== Scope ==
  
TODO: will we depend on binary compatibility or do we change soname?
+
MariaDB is binary compatible with MySQL of the same minor version, so we don't need to change anything in packages depending on libmysqlclient.so.
 +
 
 +
However, libmysqld.so has changed soname, because we had to create this library manually before, while MariaDB supports it now. As a consequence, packages depending on libmysqld.so (this file is included in mysql-embedded package) will have to be rebuilt (currently only amarok).
  
 
Admins shouldn't notice any change.
 
Admins shouldn't notice any change.
Line 39: Line 41:
  
 
End-users:
 
End-users:
* There are no end-user visible changes, except the database being faster and more relieable.
+
* There are no end-user visible changes, except the database being faster and more reliable.
  
 
Admins:
 
Admins:
Line 50: Line 52:
 
== Contingency Plan ==
 
== Contingency Plan ==
  
* Since we'll still package MySQL in parallel, we will be able to switch back to MySQL if necessary. Proper setting of Provides/Obsoletes should be enough to do so.
+
* Switching back to MySQL if necessary is quite easy. Proper setting of Provides/Obsoletes should be enough to do so.
  
 
== Documentation ==
 
== Documentation ==

Revision as of 15:18, 10 January 2013

Contents

Replace MySQL with MariaDB

Summary

MariaDB, a community developed fork of MySQL, will be the default implementation of MySQL in Fedora 19.

Owner

Current status

  • Targeted release: Fedora 19
  • Last updated: 2013-01-10
  • Percentage of completion: 60%

Detailed Description

MariaDB is a drop-in replacement for MySQL (fork), that preserves API/ABI compatibility with MySQL and adds some new features. Recent changes in MySQL development made by Oracle indicate moving MySQL project to be more closed (e.g. CVE fixes or new regression tests are not publish any more).

MariaDB has active community with true open-source attitude instead. We would like to replace MySQL with MariaDB in early development cycle for Fedora 19. MySQL will be packaged in parallel at least for one release, but MariaDB will be the default.

Benefit to Fedora

Fedora will have true open-source MySQL implementation and won't depend on what Oracle decides to do with MySQL in the future. Compared to MySQL, MariaDB is faster in some cases, it includes some new engines and features, the existing engines and features are enhanced and still compatible.

Scope

MariaDB is binary compatible with MySQL of the same minor version, so we don't need to change anything in packages depending on libmysqlclient.so.

However, libmysqld.so has changed soname, because we had to create this library manually before, while MariaDB supports it now. As a consequence, packages depending on libmysqld.so (this file is included in mysql-embedded package) will have to be rebuilt (currently only amarok).

Admins shouldn't notice any change.

How To Test

We need to test switch MySQL -> MariaDB on some large production databases. We will have some larger database and MySQL will be running. At this point updating to MariaDB will be done and should process cleanly. After RPM update, database will be checked from database POV and users POV. Dump of the database should be the same and users shouldn't notice any change. We will need to test also connectors and applications using mysql client library.

User Experience

End-users:

  • There are no end-user visible changes, except the database being faster and more reliable.

Admins:

  • Packages structure and their contents are similar to MySQL and the changes are usually just some new files.

Dependencies

  • Dependencies are unchanged from MySQL.

Contingency Plan

  • Switching back to MySQL if necessary is quite easy. Proper setting of Provides/Obsoletes should be enough to do so.

Documentation

Main differences between MariaDB and MySQL are listed in https://kb.askmonty.org/en/mariadb-versus-mysql-features/

Compatibility between MariaDB and MySQL is discussed in https://kb.askmonty.org/en/mariadb-versus-mysql-compatibility/

Package Review is available in https://bugzilla.redhat.com/show_bug.cgi?id=875150

Some related discussions took place on fedora-devel-list: http://lists.fedoraproject.org/pipermail/devel/2012-December/175269.html

Release Notes

We need to note this change in release notes.

Comments and Discussion