April 6, 2009

MySQL and IBM

Posted by Vadim |

No, this is not about Sun and IBM :) This is about MySQL. If you download latest 5.1.33 source code you may find there storage/ibmdb2i directory, which obviously is IBM DB2 related. Interesting that there is no mentioning of new engine in Announcement http://dev.mysql.com/doc/refman/5.1/en/news-5-1-33.html.
Quick look into source code says

CODE:
  1. MYSQL_STORAGE_ENGINE([ibmdb2i], [], [IBM DB2 for i Storage Engine],                                                               
  2.         [IBM DB2 for i Storage Engine], [max,max-no-ndb])                                                                         
  3. MYSQL_PLUGIN_DYNAMIC([ibmdb2i], [ha_ibmdb2i.la])

Also interesting that license of added files is not GPL, but

CODE:
  1. /*
  2. Licensed Materials - Property of IBM
  3. DB2 Storage Engine Enablement
  4. Copyright IBM Corporation 2007,2008
  5. All rights reserved
  6. Redistribution and use in source and binary forms, with or without modification,
  7. are permitted provided that the following conditions are met:
  8. (a) Redistributions of source code must retain this list of conditions, the
  9.      copyright notice in section {d} below, and the disclaimer following this
  10.      list of conditions.
  11. (b) Redistributions in binary form must reproduce this list of conditions, the
  12.      copyright notice in section (d) below, and the disclaimer following this
  13.      list of conditions, in the documentation and/or other materials provided
  14.      with the distribution.
  15. (c) The name of IBM may not be used to endorse or promote products derived from
  16.      this software without specific prior written permission.
  17. (d) The text of the required copyright notice is:
  18.        Licensed Materials - Property of IBM
  19.        DB2 Storage Engine Enablement
  20.        Copyright IBM Corporation 2007,2008
  21.        All rights reserved
  22. THIS SOFTWARE IS PROVIDED BY IBM CORPORATION "AS IS" AND ANY EXPRESS OR IMPLIED
  23. WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  24. MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
  25. SHALL IBM CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  26. EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
  27. OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  28. INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  29. CONTRACT, STRICT LIABILITY, OR TORT INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  30. IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
  31. OF SUCH DAMAGE.
  32. */

I think this is outcome of 2-year old press release
"MySQL AB and IBM Announce Open Source Database Support for the IBM System i Platform", it just took a bit a while to put it into source tree. I wonder what happened with policy not accept significant changes into production release.

February 5, 2009

Announcing Percona Performance Conference 2009 on April 22 & 23

Posted by Baron Schwartz |

Percona Performance ConferenceAll of us here at Percona warmly invite you to Percona Performance Conference 2009 on April 22 and 23, 2009 in the Hyatt Regency in Santa Clara, California. The theme for the conference is Performance Is Everything. This conference is about application performance overall, not just databases. Attendance is free of charge for everyone. Experts in many types of technologies -- databases, search, cloud computing, massively parallel computing, client-side optimization -- will present their real-life experience.

[read more...]

July 24, 2008

Percona builds with patches

Posted by Vadim |

As there were many requests for Debian binary packages in our announcement of Percona builds with custom patchsets, we decided to play with it and built .deb, which you can find there:
http://www.mysqlperformanceblog.com/mysql/debian/

You can also add the following repositories into your sources.list:

deb http://mysqlperformanceblog.com/mysql/debian/5.0/ binary-amd64/
deb http://mysqlperformanceblog.com/mysql/debian/5.0/ source/
deb http://mysqlperformanceblog.com/mysql/debian/5.1/ binary-amd64/
deb http://mysqlperformanceblog.com/mysql/debian/5.1/ source/

Also we have generic RPMs for x86-64 architecture:
http://www.mysqlperformanceblog.com/mysql/RPM/. They are based on .spec file provided in MySQL source tree and should be compatible with SuSe, CentOS and RedHat.

Your comments are welcome!

February 15, 2008

MySQL Performance Blog now uses Sphinx for Site Search

Posted by peter |

I never liked how build in Wordpress search works. it shows full documents rather than snippets it does not search comments and it does not have any query language so I always used Google search if I wanted to find something on MySQL Performance Blog.

Today we have published new search functionality for our site which is based on Sphinx. We have developed it as WordPress plugin which will be available as open source software in a few weeks - just want to test it a bit more and write proper documentation before announcing. If you would like to test it however let us know.

As you can see search functionality allows you to specify what would you like to search (Posts, Pages or Comments) as well as if you would like to sort results be relevance of freshness. You can also use query standard Sphinx query language to search phrases or Search MyISAM in post title.

Besides basic search functionality we've implemented list of last searches and Top searches which if both nice for fun and for SEO.

Hope this addition will make MySQL Performance Blog more useful for you.

UPDATE: For those looking to download plugin code it is here:
https://launchpad.net/wp-sphinx-plugin/+download

November 26, 2007

Data Recovery Toolkit for InnoDB Version 0.1 Released

Posted by Alexey Kovyrin |

As Peter mentioned in one of previous posts, we've done huge work developing robust strategies of InnoDB data recovery to provide our customers effective data recovery services and one of major parts of these strategies is our toolkit for InnoDB data recovery. Today I'm proud to announce its first public release which was used to help some of our customers to recover 95-100% of their deleted data.

This release already has a pretty decent set of features:

  • Supports both REDUNDANT (pre mysql 5.0) and COMPACT (mysql 5.0+) versions of tablespaces
  • Works with single tablespaces and file-per-table tablespaces
  • Able to recover data even when processed InnoDB page has been reassigned to another table and/or was partially destroyed
  • Supports all MySQL data types except BLOBs, SETs and BITs (will be implemented in next releases)
  • Has really great set of data filters to define data ranges (for numbers), field lengths (for variable length fields), character sets (for strings), date periods (for dates), etc.
  • Shipped with easy to use tool which could be used to create innodb table definitions based on CREATE TABLE clauses, so you don't need to write table definitions yourself - you just need to add data filters and get your data back (well, in most of the cases)
  • Results are presented in CSV file format which could be used with MySQL's LOAD DATA function

So, if you intrigued enough and would like to check it out, welcome to Google Code page of the project where you can find latest version of the toolset code and more links to information resources related to InnoDB data structures and recovery procedures.

May 3, 2007

Countless storage engines

Posted by Vadim |

Today everybody writes about MySQL Conference & Expo and I am not an exclusion. I am under impression of count of storage engines were presented. In good old time when Oracle bought InnoDB, MySQL did one step - announced MySQL supports Plugginable Storage Architecture. In that time nobody was able to predict what is the outcoming of such feature, but currently we all see it.
Let me list Transactional Storage Engines I heard of on Conference and main impression about.
InnoDB On the conference InnoDB presented two new interesting features - transparent ZIP of pages stored on disk. Potentially it can imporove performance of tasks with intensive I/O load a lot. Second feature - fast index build. Both should be available in 5.2 MySQL.
PBXT Interesting engine, mainly because of way to store new records "never updates" and just write to the end of file. Surely it has as benefits as and drawbacks. We are going to test PBXT in write workload, though currently comparison with InnoDB will not be fair, as PBXT do not perform fsync() after commit and fully rely to OS. The developers promise to fix it soon.
Falcon The Storage Engine which is developed in MySQL. The performance we see in our previous benchmarks was not good enough, but there was some fixes in 5.2 tree. Also this engine will not support index coverage optimization, that makes Falcon less attractive from performance reasons.
Solid The engine with both pessimistic and optimistic locking on the table level. The interesting note Solid proposes High Availability solution for Solid Engine, which can be replacement of MySQL replication (the solution was only announced and will be available later)

And three engines which were only presented and details only available from marketing materials:
NitroEDB The engine promises to handle in very fast way aggregative functions on massive data sets. As I understood they use special index to store pre-calculated values for limited number of functions, and then engine can retrieve values from index. The interesting question if engine is able to calculate combination of functions or user-defined function on TB data. I would like to test it, but most likely it is not possible in near future, as license price is 20.000$ per server ( the price I heard somewhere, not sure if it's 100% correct)
Infobright Infobright is non-transactional and read-only engine designed for DataWarehouse applications with compression rate from 10:1 to 30:1
ScaleDB The engine based on special index, so named "Trie", the extension of "Patricia Tree" data structure. The developers promises ultimate speed and scalability for index access operations. It's interesting to test it in real situations, because theoretical ideas can be very far from life. Also nobody prohibits to add such index to other storage engine if it will show good performance results.

The wide choice is always good, but I'm afraid making right decision about Storage Engine will be much harder.

March 29, 2007

Speaking on RIT-2007, Moscow, Russia

Posted by peter |

I've been invited to speak at RIT-2007 which stands for "Russian Internet Technologies" conference. It takes place 16-17 April in Moscow, Russia. It looks like this is going to be biggest Russian conference on Internet technologies so far with many large Russian Internet projects sending their delegates. You can check out conference sessions schedule here.

Andrew Aksyonoff, the author of Sphinx Search Engine will also be giving a talk there.

The day following the conference April 18 I'm giving full day "Master Class"/Training on MySQL Performance.

Even though this post is in English the conference and training will be in Russian language :)

February 20, 2007

MySQL Consulting – Being on your own

Posted by peter |

About half a year have passed since me and Vadim have left MySQL to do MySQL Consulting on our own. Bunch of people have been wondering about our experiences so I thought it would be worth to share it here.
[read more...]

January 16, 2007

Speaking at MySQL Users Conference 2007

Posted by peter |

Just got email from Jay today about two of my talks being accepted to MySQL Users Conference 2007 "MySQL Server Settings Tuning" and "MySQL Performance Cookbook". This is great as MySQL Conferences are always fun and great way to get to know people and learn things about MySQL and connected areas.

This will be my 5th time, but only first time, not being MySQL Employee.

No word so far about other talk I proposed - "Innodb Performance Optimization" which I think is one of my best talks. Might be the name sounds old, even though I add new information to it each time to keep it fresh.

January 8, 2007

Sphinx Developer joins our team

Posted by peter |

We're happy to announce Andrew Aksyonoff, developer of popular OpenSource full text search software Sphinx joins our team.

Andrew will now have more time to dedicate to Sphinx development so cool new features will come sooner.

Having Andrew on board we'll be able to solve all kinds of problems related to full text search, tagging and general information retrieval.

It does not mean we'll push sphinx ether it suits your needs well or it does not. Sphinx is great for high performance high quality or complex full text search applications - but If you're looking at smaller search applications we can help you getting most of MySQL build in full text search. If there are some features which are missing in Sphinx or it is not best solution for your application for other reasons we can help you with using Lucene or other external search system.

Finally having Andrew onboard we'll be able to offer official Sphinx support, consulting and custom feature development via our company.