What is happening with the MySQL conference?
I'm at the moment perplexed, confused and disappointed in what's going on around the traditional MySQL user conference. Percona yesterday announced Percona MYSQL conference that they will be organizing their own event during the same time and in the same place where this great conference has taken place for years.
The reason for my state of mind is that although there have been rumors about discontinuance of the O'Reilly arranged conference there hasn't been any announcement about this.
In fact, I have been working with O'Reilly to try to setup next year's O'Reilly MySQL conference with the intention of having it 'exactly like before', even if Oracle would not participate. The intention was to have Percona, SkySQL and Monty Program Ab and some other sponsors helping O'Reilly to drive the conference.
This is something that Percona has been very well aware of when announcing this (I personally talked with Percona about this a few weeks ago).
One of the main reasons we at MySQL Ab originally liked to work with O'Reilly is not only that O'Reilly knows how to do a good conference. We also saw the importance to have the conference being organized by a neutral entity to make it easier for competing vendors to be part of the conference. A conference called the "Percona MySQL conference" is not going to be seen as vendor neutral, which will cause problems in getting different vendors to attend. Giuseppe Maxia and Sheeri Cabral seem to think in a similar ways.
Personally I will wait and see what will happen with the O'Reilly MySQL Conference & Expo 2012, or equivalent neutral conference for the MySQL community. The best option, if O'Reilly is not doing it, would of course be a community conference where Oracle/MySQL participates actively, both as a sponsor and as content provider.
2011-08-10
2011-08-08
MariaDB Crash Course released
I am happy to announce that the first MariaDB book is released!
The book is called MariaDB Crash Course and is written by Ben Forta, who also wrote the MySQL Crash Course book.
Quoting the book description:
"This book will teach you all you need to know to be immediately productive with MySQL. By working through 30 highly focused hands-on lessons, your MySQL Crash Course will be both easier and more effective than you'd have thought possible"
This is great news for new users to SQL and to MariaDB as it makes it easier for them to get things going quickly!
You can find a link to this book and other recommended MariaDB / MySQL books here.
Enjoy!
The book is called MariaDB Crash Course and is written by Ben Forta, who also wrote the MySQL Crash Course book.
Quoting the book description:
"This book will teach you all you need to know to be immediately productive with MySQL. By working through 30 highly focused hands-on lessons, your MySQL Crash Course will be both easier and more effective than you'd have thought possible"
This is great news for new users to SQL and to MariaDB as it makes it easier for them to get things going quickly!
You can find a link to this book and other recommended MariaDB / MySQL books here.
Enjoy!
2011-07-26
MariaDB 5.3 released as beta
MariaDB 5.3 is now released as beta (feature freeze).
MariaDB 5.3 radically improves performance for subqueries as well as for joins and single-table queries over large data sets. MariaDB 5.3 is based on MySQL 5.1.
For a detailed description of MariaDB 5.3, see the What is MariaDB 5.3 page.
In most respects MariaDB will work exactly as MySQL: all commands, interfaces, libraries and APIs that exist in MySQL also exist in MariaDB.
A few highlights:
One of the major performance improvements in MariaDB 5.3.0 is that subqueries are finally usable in practice. It is no longer necessary to rewrite subqueries manually into joins or separate queries. The optimizer of MariaDB 5.3 will do this, and more automatically. EXPLAIN for derived tables and materialized views is instantaneous. Both derived tables and views can be optimized by indexes created on the fly.
MariaDB now supports many join optimizations, including utilizing the Block Nested Loop algorithm that can be used for outer joins, Classic Hash Join which can be used for equi-joins, and Batch Key Access joins are supported providing the benefits of ordered retrievals for primary and secondary keys provided by the new implementation of Multi-Range-Read (MRR) optimizations. MariaDB also features a new version of Index Condition Pushdown.
NoSQL is all the rage these days and MariaDB 5.3.0 ships with the HandlerSocket plugin and improved HANDLER commands. Dynamic columns allows you to have a different set of "virtual columns" for each row in your table. You can at any time add or remove columns from a row.
MariaDB 5.3 implements group commit which gives you a big speedup when using XtraDB with the binary log enabled and you have many concurrent running updates.
Microsoft Windows performance improvements from MySQL 5.5 have been backported, including benefits to the XtraDB storage engine. MariaDB 5.3 also uses the new Windows installer and includes the HediSQL GUI client for Windows.
There is also a lot of other "goodies", like progress reporting, checksum for binary logs, mytop, microsecond support in DATETIME, TIMESTAMP and TIME, more status variables etc. See What is MariaDB 5.3 for details.
When it comes to MariaDB 5.5 we have just finished the first big merge between MariaDB 5.3 and MySQL 5.5 and we are now working on merging the recent changes. This should be released shortly (you can follow the work on launchpad). We will continue to fix bugs in both version for some time! The reason we are releasing 5.3 and 5.5 is that we don't want to delay users the features in 5.3 while we work to merge and stabilize 5.5. (We don't expect any problems with 5.5 but as one never knows we want to play safe.).
Please test MariaDB 5.3 and report bugs to launchpad! The more input we can ge the quicker we can do stable (GA) release.
If you want to know more, visit the MariaDB booth at OSCON or come to the MariaDB BOF on Wednesday at 8.00 PM!
MariaDB 5.3 radically improves performance for subqueries as well as for joins and single-table queries over large data sets. MariaDB 5.3 is based on MySQL 5.1.
For a detailed description of MariaDB 5.3, see the What is MariaDB 5.3 page.
In most respects MariaDB will work exactly as MySQL: all commands, interfaces, libraries and APIs that exist in MySQL also exist in MariaDB.
A few highlights:
One of the major performance improvements in MariaDB 5.3.0 is that subqueries are finally usable in practice. It is no longer necessary to rewrite subqueries manually into joins or separate queries. The optimizer of MariaDB 5.3 will do this, and more automatically. EXPLAIN for derived tables and materialized views is instantaneous. Both derived tables and views can be optimized by indexes created on the fly.
MariaDB now supports many join optimizations, including utilizing the Block Nested Loop algorithm that can be used for outer joins, Classic Hash Join which can be used for equi-joins, and Batch Key Access joins are supported providing the benefits of ordered retrievals for primary and secondary keys provided by the new implementation of Multi-Range-Read (MRR) optimizations. MariaDB also features a new version of Index Condition Pushdown.
NoSQL is all the rage these days and MariaDB 5.3.0 ships with the HandlerSocket plugin and improved HANDLER commands. Dynamic columns allows you to have a different set of "virtual columns" for each row in your table. You can at any time add or remove columns from a row.
MariaDB 5.3 implements group commit which gives you a big speedup when using XtraDB with the binary log enabled and you have many concurrent running updates.
Microsoft Windows performance improvements from MySQL 5.5 have been backported, including benefits to the XtraDB storage engine. MariaDB 5.3 also uses the new Windows installer and includes the HediSQL GUI client for Windows.
There is also a lot of other "goodies", like progress reporting, checksum for binary logs, mytop, microsecond support in DATETIME, TIMESTAMP and TIME, more status variables etc. See What is MariaDB 5.3 for details.
When it comes to MariaDB 5.5 we have just finished the first big merge between MariaDB 5.3 and MySQL 5.5 and we are now working on merging the recent changes. This should be released shortly (you can follow the work on launchpad). We will continue to fix bugs in both version for some time! The reason we are releasing 5.3 and 5.5 is that we don't want to delay users the features in 5.3 while we work to merge and stabilize 5.5. (We don't expect any problems with 5.5 but as one never knows we want to play safe.).
Please test MariaDB 5.3 and report bugs to launchpad! The more input we can ge the quicker we can do stable (GA) release.
If you want to know more, visit the MariaDB booth at OSCON or come to the MariaDB BOF on Wednesday at 8.00 PM!
2011-06-30
Progress reporting for ALTER TABLE
I just finished my last MariaDB 5.3 feature before we go beta:
Progress reporting for ALTER TABLE, LOAD DATA INFILE etc.
This is a feature that I think every MySQL user who has ever waited for an ALTER TABLE to finish has wanted for a long time! I know people who have written scripts to monitor the size of the result files to try to estimate how much an ALTER TABLE has progressed.
Progress reporting means that:
MariaDB [test]> alter table my_mail engine=maria;
Stage: 1 of 2 'copy to tmp table' 5.37% of stage done
MariaDB 5.3 also includes a modified mytop which shows progress for the running commands.
This feature is now pending a review. It will be pushed into MariaDB 5.3 tomorrow.
You can find a full documentation of this feature in the knowledgebase.
Progress reporting for ALTER TABLE, LOAD DATA INFILE etc.
This is a feature that I think every MySQL user who has ever waited for an ALTER TABLE to finish has wanted for a long time! I know people who have written scripts to monitor the size of the result files to try to estimate how much an ALTER TABLE has progressed.
Progress reporting means that:
- There is a new column Progress in SHOW PROCESSLIST which shows the total progress (0-100 %)
- INFORMATION_SCHEMA.PROCESSLIST has three new columns which allow you to see in which process stage we are and how much of that stage is completed:
- STAGE
- MAX_STAGE
- PROGRESS_DONE (within current stage).
- The client receives out-of-band progress messages which it can display to the user to indicate how long the command will take!
MariaDB [test]> alter table my_mail engine=maria;
Stage: 1 of 2 'copy to tmp table' 5.37% of stage done
MariaDB 5.3 also includes a modified mytop which shows progress for the running commands.
This feature is now pending a review. It will be pushed into MariaDB 5.3 tomorrow.
You can find a full documentation of this feature in the knowledgebase.
2011-06-10
Open Oceans new fund has closed
Open Ocean's new Fund celebrated with pitching competition - I'll give the winner Black vodka as much as he/she can carry (inside and outside)!
I am delighted that we now have been able to launch our new Open Ocean Fund. With 40 M euro (60M USD) in first closing, the race is now on to identify new disruptive start ups, that we with Community and Open Source strategy and proper funding, can help drive for similar success as achieved with MySQL.
In my mind a vital part of entrepreneurship is to be able to combine work with fun!
For this reason we decided to launch a pitching competition, where we bring the winning team to Finland, both for good worktime with our team, but also for some social time and nice summer activities.
On top of the boat trip and crayfish party already mentioned in the news item, I add here an additional personal price. During the evening party I will offer our guests with a chance to taste some (or a lot) of one of my personal favorites: The Finnish Black Vodka. And, the next morning, as a gift to take home, I will provide the winner with Black Vodka - as much as he/she can carry - to take home as a souvenir. Something that should help to remember the trip, and something enabling the entrepreneur(s) to share the fun with family, friends and colleagues!
I am delighted that we now have been able to launch our new Open Ocean Fund. With 40 M euro (60M USD) in first closing, the race is now on to identify new disruptive start ups, that we with Community and Open Source strategy and proper funding, can help drive for similar success as achieved with MySQL.
In my mind a vital part of entrepreneurship is to be able to combine work with fun!
For this reason we decided to launch a pitching competition, where we bring the winning team to Finland, both for good worktime with our team, but also for some social time and nice summer activities.
On top of the boat trip and crayfish party already mentioned in the news item, I add here an additional personal price. During the evening party I will offer our guests with a chance to taste some (or a lot) of one of my personal favorites: The Finnish Black Vodka. And, the next morning, as a gift to take home, I will provide the winner with Black Vodka - as much as he/she can carry - to take home as a souvenir. Something that should help to remember the trip, and something enabling the entrepreneur(s) to share the fun with family, friends and colleagues!
2011-05-23
Dynamic columns as a bridge between SQL and NoSQL
Last week Oleksandr "Sanja" Byelkin and I pushed Dynamic columns into MariaDB 5.3.
Dynamic columns allows you to store a different set of columns for every row in the table. This allows you to solve things that you can't normally do with a relational database, like the web store problem where you want to store attributes for different things, like a computer (memory, speed, weight) and t-shirt (size, color).
Dynamic columns works by storing the extra columns in a blob and having a small set of functions to manipulate it. The functions exist both in SQL and in the MariaDB client library to allow you to manipulate the data where it suits you best. The client code is BSD to make it easy to port the code to other languages.
You can use a dynamic column in SQL anywhere you can use a column or function:
Some examples:
SELECT name, COLUMN_GET(blob, 1 as char(10)) FROM t1 WHERE COLUMN_EXISTS(blob, 1);
SELECT COLUMN_GET(blob, 1 as char(10)) as color, count(*) FROM t1 group by COLUMN_GET(blob, 1 as char(10));
COLUMN_GET() is used above to access the dynamic column stored in the table colum 'blob'.
The full set of SQL functions are:
Create data for a dynamic column:
COLUMN_CREATE(column_nr, value [as type], [column_nr, value [as type]]...)
Add a new column or update an old one:
COLUMN_ADD(dynamic_col, column_nr, value [as type], [column_nr, value [as type]]...)
Delete a dynamic column:
COLUMN_DELETE(dynamic_column, column_nr, column_nr...);
Get the value from a dynamic column casted to a given type. (The cast is required as SQL is a strongly typed language and we need to send the result type to the client before we have executed the query)
COLUMN_GET(dynamic_column, column_nr as type)
Check if a column exists:
COLUMN_EXISTS(dynamic_column, column_nr);
Get a list of the existing dynamic columns:
COLUMN_LIST(dynamic_column);
You can find more information in the MariaDB /MySQL knowledge base.
It's very nice to finally get this work done. I got the idea for Dynamic columns 8 years ago and always wanted to do this in MySQL but never managed to find the time to do it.
The recent trend of combining NoSQL with SQL finally pushed me to get this done as this also opens doors to do new existing things with MariaDB. There are people already working on using Dynamic columns as a building block for creating connections to NoSQL databases like HBase.
At the O'Reilly MySQL conference 2011 my talk about Dynamic columns was well attended. A large portion of the attendees said this is something they need and want to start testing / using right away as it can replace some things they are already doing / planning to do. We will have another talk about dynamic columns and combining NoSQL and SQL at Open Source bridge on June 21-24 in Portland, Oregon.
Please try this out and send your feedback to the MariaDB email list or come to Open Source bridge and discuss it with us in person.
Dynamic columns allows you to store a different set of columns for every row in the table. This allows you to solve things that you can't normally do with a relational database, like the web store problem where you want to store attributes for different things, like a computer (memory, speed, weight) and t-shirt (size, color).
Dynamic columns works by storing the extra columns in a blob and having a small set of functions to manipulate it. The functions exist both in SQL and in the MariaDB client library to allow you to manipulate the data where it suits you best. The client code is BSD to make it easy to port the code to other languages.
You can use a dynamic column in SQL anywhere you can use a column or function:
Some examples:
SELECT name, COLUMN_GET(blob, 1 as char(10)) FROM t1 WHERE COLUMN_EXISTS(blob, 1);
SELECT COLUMN_GET(blob, 1 as char(10)) as color, count(*) FROM t1 group by COLUMN_GET(blob, 1 as char(10));
COLUMN_GET() is used above to access the dynamic column stored in the table colum 'blob'.
The full set of SQL functions are:
Create data for a dynamic column:
COLUMN_CREATE(column_nr, value [as type], [column_nr, value [as type]]...)
Add a new column or update an old one:
COLUMN_ADD(dynamic_col, column_nr, value [as type], [column_nr, value [as type]]...)
Delete a dynamic column:
COLUMN_DELETE(dynamic_column, column_nr, column_nr...);
Get the value from a dynamic column casted to a given type. (The cast is required as SQL is a strongly typed language and we need to send the result type to the client before we have executed the query)
COLUMN_GET(dynamic_column, column_nr as type)
Check if a column exists:
COLUMN_EXISTS(dynamic_column, column_nr);
Get a list of the existing dynamic columns:
COLUMN_LIST(dynamic_column);
You can find more information in the MariaDB /MySQL knowledge base.
It's very nice to finally get this work done. I got the idea for Dynamic columns 8 years ago and always wanted to do this in MySQL but never managed to find the time to do it.
The recent trend of combining NoSQL with SQL finally pushed me to get this done as this also opens doors to do new existing things with MariaDB. There are people already working on using Dynamic columns as a building block for creating connections to NoSQL databases like HBase.
At the O'Reilly MySQL conference 2011 my talk about Dynamic columns was well attended. A large portion of the attendees said this is something they need and want to start testing / using right away as it can replace some things they are already doing / planning to do. We will have another talk about dynamic columns and combining NoSQL and SQL at Open Source bridge on June 21-24 in Portland, Oregon.
Please try this out and send your feedback to the MariaDB email list or come to Open Source bridge and discuss it with us in person.
2011-05-06
Welcome to Percona Live in New York
Percona is organizing another Percona Live event, this time a one-day MySQL summit in New York.
This is a 100% technical conference with no marketing allowed, perfect for those that are only interested in the real stuff or those that want to get answers to problems they have *right now*.
The previous summit, held in San Francisco, was very well attended and I have heard a lot of good things about it from people that were there.
In San Francisco we had one of the MariaDB optimizer gurus holding a talk about all the advanced optimization we have added to MariaDB 5.3.
In NYC we have Kurt von Finck giving a talk about What's New In MariaDB.
Unfortunately I can't be there, even if I would like to attend :(
I was in the USA last month at the MySQL Conference and expo, and I will be in the USA again in June for Open Source Bridge. Then again in July for OSCon.
Even if I like to travel to the USA, once a month is a little too often when you live in Europe. Hope that Percona will host a summit in Europe soon ...
However, don't worry; Kurt will, of course, have with him in NYC some of the black stuff everyone is expecting from a Monty Program Ab employee.
Last not but least, for all the readers of the monty-says blog, you can get a 50$ discount to the Percona Live event by using the MONTYSAYS discount code. One never knows in what kind of places this discount code may work... ;)
This is a 100% technical conference with no marketing allowed, perfect for those that are only interested in the real stuff or those that want to get answers to problems they have *right now*.
The previous summit, held in San Francisco, was very well attended and I have heard a lot of good things about it from people that were there.
In San Francisco we had one of the MariaDB optimizer gurus holding a talk about all the advanced optimization we have added to MariaDB 5.3.
In NYC we have Kurt von Finck giving a talk about What's New In MariaDB.
Unfortunately I can't be there, even if I would like to attend :(
I was in the USA last month at the MySQL Conference and expo, and I will be in the USA again in June for Open Source Bridge. Then again in July for OSCon.
Even if I like to travel to the USA, once a month is a little too often when you live in Europe. Hope that Percona will host a summit in Europe soon ...
However, don't worry; Kurt will, of course, have with him in NYC some of the black stuff everyone is expecting from a Monty Program Ab employee.
Last not but least, for all the readers of the monty-says blog, you can get a 50$ discount to the Percona Live event by using the MONTYSAYS discount code. One never knows in what kind of places this discount code may work... ;)
Subscribe to:
Posts (Atom)