📜 ⬆️ ⬇️

Habrainterview with Michael Widenius (MySQL)

Unfortunately, despite the fact that Monty’s your questions were sent long before the end of December, he managed to answer them somewhat later than the scheduled date, which, however, does not detract from the interestingness and relevance of his answers ( Michael’s original English answers to your questions can be downloaded here (RTF-file, 16.6 Kbytes); our translation is given below, it may not be perfect, so I’ll be happy if you point out possible errors ).

Let me remind you that Michael "Monty" Videinus is one of the main developers of the popular MySQL DBMS, which, in turn, is wanted by Oracle Corporation. For obvious reasons, this state of affairs is not at all convenient for Monty, in connection with which he published a corresponding note in his blog last year, asking the community for help.

So, Monty, did you get questions from Habrahabr.ru? People worry that you don’t answer for so long.
I just noticed. I apologize for the delay, I added support for foreign languages ​​on helpmysql.org , it took almost all my time in recent days.
')
How did you come up with the idea of ​​creating MySQL in 1994? Why did you decide to do this at all? What did not suit the existing solutions?
MySQL was based on an older Unireg database program that I started developing in 1982. It was a tty (screen) based application generator. With Unireg, we created application programs for our customers.

In 1993, we needed to provide customers with access to their Unireg databases via the Internet. To solve this problem, I made a SQL layer on top of Unireg (since I thought it would be easy to embed SQL in HTML scripts), as well as an ODBC driver.

In other words, the original MySQL task was to solve our own problems in order to provide clients with access to data.

As an alternative, we considered Sybase, but this DBMS was not fast enough (compared to Unireg) and could not be easily embedded into HTML pages.

Now, MySQL (like other relational DBMS) has actually become “decide by default” for all data storage and retrieval issues. But, as you know, any general solution loses to the highly specialized one. Do you think that the use of RDBMS is justified almost everywhere, or there is a wide range of tasks, where it is better to use a different approach, and there is - where it’s generally faster to write your own solution than to “sharpen” a traditional RDBMS to obtain comparable efficiency. Can you name some illustrative examples of where using RDBMS is a wrong decision?
The main advantage of the RDBMS, especially based on SQL, is the ease of integration into the code of applications (especially scripts such as PHP) while maintaining its readability. The usual SQL-line fix you can get a variety of reports, almost without changing the code of the application itself.

In the old days, the biggest problem with RDBMS, compared to specialized systems, was that this more universal solution required more system memory and disk space. With the increase in computer performance and the advent of voluminous cheap disks, this is usually no longer a problem.

But of course, you should always choose the most suitable tool for solving a specific task, and RDBMS is not an ideal solution in some cases.

- When the size of the program is important. For example, on small or very cheap mobile devices.

- When you want to get the highest possible speed and you can sacrifice the convenience of tracking. For example, when you have to deal with petabytes of data.

- When you can load all data into memory with your tool (but not with the available RDBMS).

- When data processing is required in patterns for which the RDBMS language is not adapted (for example, searching friends from friends of your friends).

- When you need to run many complex packages with operations like update / delete / insert, if in a specialized application you can do everything in one package, and in the RDBMS you have to run 10x packages. (This is the case where Unireg is still better than any SQL-based RDBMS).

- When data size is very important (redundancy in volume is usually observed in RDBMS).

Have you ever been involved in designing / developing high-load systems and how did you get around the limitations of relational DBMS?
At TCX (where I worked during the development of Unireg / MySQL), we used Unireg for high loads and MySQL to display data.

Nowadays, when only MySQL is used, you can achieve performance by replicating and running many parallel subordinate processes.

How do you feel about the NoSQL paradigm? What is more promising for web development: relational databases or NoSQL?
NoSQL has already taken its place to solve many problems that I listed earlier.

For web development, relational databases are usually better because SQL is so easy to embed in code and you don’t need to duplicate the functionality that RDBMS does for you (like grouping and sorting).

How does Oracle threaten MySQL and is the decision of the European Commission on this issue a panacea?
There are several ways that Oracle can damage MySQL.

- Transfer all development processes to the corporate version of MySQL with closed source, leaving a minimum / zero number of programmers on the Open Source version.

- Stop selling or increase the price of MySQL licenses (which will kill the economic ecosystem around MySQL).

- Be active in selling Oracle solutions, but not MySQL.

- Start transferring users to the paid version of MySQL with closed source or to Oracle servers.

- To provide such support for MySQL and such a minimal amount of development of the Open Source version (for a limited time) so that users do not switch to the fork too early, so that any other company has difficulty in developing a competitive business.

There are many other ways that Oracle can make it almost impossible to fork survival. When all the adequate forks die, Oracle can quietly kill MySQL.

The European Commission may still block an Oracle / Sun transaction. They will announce the final decision on January 11-15. I believe that if our petition for helpmysql.org collects enough signatures, the European Commission will block the deal, and Oracle will have to either not buy Sun, or allocate MySQL as a separate business, or provide real guarantees for MySQL judicial protection (but not those voiced guarantees, which have no value) so that MySQL will continue to remain a competitive force against Oracle.

Is it possible to develop an alternative MySQL branch by the community without Oracle?
Technically, someone can fork MySQL, but it cannot be used for commercial purposes. Therefore, it is almost impossible to earn enough money on it to support such a serious amount of development.

So if Oracle really wants to kill MySQL, they can do it if they want. It will take a long time, but in the end they can get their way.

I tried to reveal this topic in my blog .

What do you think of Drizzle? Was it worth it to fork or was it possible to somehow try to make MySQL itself more modular, with different build options?
I think Drizzle is an interesting project. Experimenting with the code, they will discover new things that are useful for everyone. Of course, the future of the project also depends on the Oracle / Sun deal, so let's see what happens next.

Fork was necessary because Brian Aker lost the ability to make changes to MySQL because of the management of MySQL (and the rules they introduced), so the only way to implement his ideas was to create a separate project.

What is your personal opinion on other free DBMS, such as PostgreSQL. Do you consider them your competitors?
Among them, the most notable (and frequently used) are PostgreSQL and SQL-lite. Both of them are good DBMS and have their own use.

SQL-lite has a clear niche without competition. When you need something mostly per user, it’s easy to use and consumes very little memory, this is your first choice.

PostgreSQL and MySQL complement each other. Depending on your application, either one or the other is better (I don’t want to start discussions about PostgreSQL / MySQL, because they always end with holivar). In many cases, you can transfer an application from PostgreSQL to MySQL or vice versa, but the larger the application and the more modules it uses, the harder it is to do. And if you are bogged down with replications and monitors, it is even more difficult.

In the commercial market, MySQL has always occupied a much larger share than PostgreSQL, largely due to the fact that there was a large firm behind us and we provided support everywhere.

How do you feel about the Firebird / Interbase database?
I am not very knowledgeable about this project, although I am well acquainted with its authors Jim Starkey (Jim Starkey) and Ann Harrison (Ann W. Harrison).

Compared to MySQL and PostgreSQL, it does not have much distribution and has never been in demand in the commercial market.

What is the future of the Falcon project?
As far as I know, the project is dead. Falcon was created to replace InnoDB, but with the advent of Oracle's interest in buying MySQL, its mission was exhausted.
This is confirmed by the stopping of work on MySQL 6.0, where Falcon was a key feature.

The list of MySQL 6.0 functions is still not known, but I'm sure Falcon will not be there.

Is there any prospect for recursive queries in MySQL? If so, when is it planned?
If you mean CONNECT BY, then yes, it is in the plans. We only need to find a couple of customers willing to pay for the implementation. Or find someone in the community who would agree to cooperate with us and do it.

In general, my new company Monty Program Ab earns the implementation of new features in the MariaDB DBMS, this is the MySQL branch. We try to spend 40% of the time to work with the community and 60% on the implementation of features ordered by clients.

To use MySQL Embedded in local programs, Sun required a payment of 250 euros for each copy of the program sold using the embedded version. This made it impossible to use the library in small commercial products, since in most cases its price exceeded the cost of software. What are your plans for the development of MySQL Embedded and will there be any real legal possibility of using the library in commercial products?
250 euros was the standard price for a single copy. If you buy more, the price can go down to 1 euro per copy.

The price also depends on the value of your application. If the cost is low, it is possible to buy very inexpensive licenses from Sun.

In general, I personally always believed that the cost of the built-in server should be proportional to the cost of the application, but not exceed 10%. And with today's competition in the DBMS market, the percentage probably should be even lower.

Will priorities change when developing MySQL after Sun and Oracle merge?
I believe that as soon as Oracle can, they will transfer the bulk of the development to a closed version or closed modules.

Oracle is also unlikely to implement any features that could make MySQL a more competitive DBMS with respect to their flagship product 11g. You can not wait for rack-like capabilities, replication with automatic interception at failure, better support for multi-core processors, optimizer improvements, etc.

The easiest way to avoid such a scenario is to sign a petition to helpmysql.org . The voice is important, from which corner of the world he would not have come. This voice can influence the future both here in the European Union and in Russia.

Thank you all for interesting questions :)

Source: https://habr.com/ru/post/80534/


All Articles