Skip to content

Storing and streaming large binary objects using the Scalable BLOB Streaming Architecture for MySQL

Even though MySQL is used to power a lot of web sites and applications that handle large binary objects (BLOBs) like images, videos or audio files, these objects are usually not stored in MySQL tables directly today. The reason for that is that the MySQL Client/Server protocol applies certain restrictions on the size of objects that can be returned and that the overall performance is not acceptable, as the current MySQL storage engines have not really been optimized to properly handle large numbers of BLOBs. To work around these limitations, these projects usually just store a reference to the object (e.g. a path name in a regular file system). This approach works around the limitations applied by the MySQL Server, but results in a disconnection and potential source of inconsistency between the database and the file system content. There was an interesting discussion about that topic on Sheeri's blog some time ago, with an excellent reply by Kristian, if you are curious to read more about this.

Thanks to the pluggable storage engine architecture of MySQL 5.1, we now see many independent storage engines emerging, one of them being PBXT by Paul McCullagh from SNAP Innovation. One of its strengths is going to be the handling of large binary objects in a performant way, so data objects can be stored in the database along with the other information related to it. To compliment this feature and to work around the limitations applied by the Client/Server Protocol, SNAP has now launched the Scalable BLOB Streaming Architecture for MySQL project, which intends to develop an architecture that accompanies the MySQL Client/Server protocol by providing an API to access and stream BLOBs stored in a MySQL database. See their press release (PDF) for the official announcement..

Paul will hold a BOF about this at the MySQL Conference and Expo this Tuesday at 19:30 in room San Thomas. So if storing and streaming large binary objects out of a MySQL Database is an essential requirement for your project, make sure to attend this session and provide Paul with your feedback and ideas!

MySQL Conference and Expo 2007 for Perl developers

Jay has written an excellent summary of sessions at the MySQL Conference & Expo that will be particularly interesting for developers using MySQL to power their applications or web sites. I noticed that he did not explicitely mentioned the Perl scripting language, even though there actually are a few sessions that will be of interest for the Perl Mongers amongst us (I would not dare to claim I am one myself, I just hack on it in my spare time):
I am sure I missed some relevant sessions, as Perl is usually taken as a given in many of today's implementations and applications and may therefore not be considered worthwhile to mention anymore. It's probably more hip to work with Python or Ruby these days... Let me know, if I missed one!

In closing I'd also like to add another shameless plug for the DotOrg Pavilion here: Perl is going to be present there, too: the very popular XAMPP application stack of course includes it, and Bugzilla is an entire application written in this scripting language. So make sure to stop by at the exhibition area and let them know, if you are a Perl geek as well!

Presenting the DotOrg Pavilion exhibitors of the MySQL Conference & Expo 2007

In two weeks from now, the MySQL Conference & Expo 2007 will take place in Santa Clara, California. Our team has been very busy with working with the conference management team from O'Reilly to prepare for this event, especially Jay who is in charge of organizing and arranging the more than 110 sessions that will be held in several parallel tracks. The conference program looks very exciting, I am impressed by the wide range of topics and quality of speakers that we have lined up.

In addition to the presentations and tutorials, there will also be an Expo, where partner companies will exhibit their products related to MySQL. You will notice a number of well-known names in the industry there, e.g. hardware vendors like Dell, Dolphin Interconnect, HP or Sun as well as software companies like Alfresco, BitRock, Google, Pentaho, Red Hat and many more.

One of my tasks for this conference is to arrange the DotOrg Pavilion, an exhibition area inside the expo hall that is reserved for Open Source Community projects that are based on or support MySQL in some way. The conference web page does not yet list them all, therefore I'd like to give you a full rundown of all the OSS projects that will be present there:
  • Bugzilla is an open source bug tracker used by thousands of businesses to track defects and enhancements. Bugzilla, the standard in open source bug tracking, is a versatile and powerful web based system with a minimal footprint, proven to support groups of any size from small projects to multinational enterprises.
  • dotProject is a Web-based project management framework that includes modules for companies, projects, tasks (with Gantt charts), forums, files, a calendar, contacts, tickets/helpdesk, multi-language support, user/module permissions, and themes. It is translated into 17 languages and has a modular design that allows extra modules (such as time sheets and inventory) to be added in easily.
  • Drupal is a powerful, scalable and full-featured content management system that allows an individual or a community of users to easily publish, manage and organize content and run an online community. Tens of thousands of people and organizations use Drupal to power scores of different web sites. A large, healthy and diverse community of developers, users and consultants drives a rapid pace of innovation and a wide variety of feature development.
  • Eventum is user friendly and extensible issue tracking software from MySQL that can be used by a support department to track incoming technical support requests, a software development team to quickly organize tasks and bugs or anyone else looking to organize their work.
  • HeidiSQL is an easy-to-use interface for developers using MySQL, allowing simple management of their databases and tables. Previously known as MySQL-Front, the name has been switched in 2006 by Ansgar Becker, the first developer, that put his old sources into a new open source project at SourceForge. Currently this tool is available on Windows and Linux.
  • Joomla! is one of the most outstanding content management systems in the world. This is not only because of his approach of providing one of the most well structured and simple user interfaces for managing your media, text, image and other public information materials in the web. With Joomla! you are able to provide a huge information base for your professional audience as simple as you build up your own family community website. The new refactored content framework gives you the confidence that your site is based on a reliable, flexible, future proven and easy to manage plattform.
  • LinuxQuestions.org is a free, friendly and active Linux Community with over 180,000 members and over 1,7000,000 posts. Founded in 2000 LQ offers forums, reviews, a Linux hardware compatibility list, a Linux knowledge base in wiki format, Linux tutorials, a free Linux download site, a Linux podcast, a Linux radio show and more. LQ has forums for everything from Linux Newbies to Linux in the Enterprise and has over 20 officially recognized Linux distribution forums.
  • OTRS is an Open source Ticket Request System (also well known as trouble ticket system) with many features to manage customer telephone calls and e-mails. The system is built to allow your support, sales, pre-sales, billing, internal IT, helpdesk, etc. department to react quickly to inbound inquiries. Do you receive many e-mails and want to answer them with a team of agents? You're going to love the OTRS!
  • Phorum, is the original PHP/MySQL message board software. Started in 1997 by Brian Moon, Phorum has been used by sites such as Zend.com and currently is the message board of choice for MySQL.com. Phorum's developers focus on speed and expandability through its flexible module system.
  • phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Web. Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, manage keys on fields, manage privileges,export data into various formats and is available in 50 languages.
  • SnapLogic is an Open Source project that enables developers to easily and rapidly integrate applications and other data sources through a Data Integration Network. SnapLogic embraces the simplicity and scalability of the Web to collapse the complexity of data integration for Internet-scale integration.
  • Sphinx is fast and powerful full text search engine designed with indexing database content in mind. It offers high performance, good scalability (with multi-server distributed searching), great search quality, and other advanced features such as efficient filtering, sorting and grouping. Both native search APIs and a Pluggable MySQL Storage Engine search client are available, which makes Sphinx easy to integrate into existing applications.
  • WordPress is a state-of-the-art semantic personal publishing platform with a focus on aesthetics, web standards, and usability. What a mouthful. WordPress is both free and priceless at the same time. More simply, WordPress is what you use when you want to work with your blogging software, not fight it.
  • XAMPP is a free software package containing the Apache web server, MySQL database and necessary tools to use the PHP and Perl programming languages. Currently, XAMPP is available for Windows, Linux, Solaris and Mac OS X (the X in its name could stand for any one of these operating systems).
I hope I have gathered an interesting mix of projects and look forward to meeting with these people in person soon! If you attend the conference, please make sure to stop by the DotOrg pavilion and have a chat with the representatives from these projects!

Report and pictures from the 6th Hamburg MySQL Meetup

Yesterday we had our sixth MySQL Meetup here in Hamburg - we had a nice crowd of 21 people. Erick Dennis and Michael Otto from epublica gave a presentation about their experiences with MySQL and scaling it to keep up with the growth of the Xing.com web site. The talk was a rehearsal for their presentation at the upcoming MySQL Conference and Expo in Santa Clara - it went very well and we had good discussions and comments during and after the session. I took some pictures during the meeting, which are now available on my picture gallery. The meeting was rounded up with excellent chinese food, thanks again for the folks at the Ni Hao for hosting us! I look forward to our next meeting, which will take place some time in May. If you have a suggestion for a presentation, please let me know!

Reminder: 6th Hamburg MySQL Meetup coming up on Monday, 2nd of April

It's time for another Meetup of the Hamburg MySQL User Group! As for previous events, we'll meet on Monday, 2nd of April at 19:00 in the Chinese restaurant Ni Hao in Hamburg-Wandsbek.

This time there will be a presentation about "Xing/OpenBC growing pains", held by Erick Dennis und Michael Otto from epublica, the company behind Xing.com.

The talk will be held in english and is a rehearsal for their presentation at our upcoming MySQL Conference and Expo, which will take place from April 23rd-26th in Santa Clara, California. Please subscribe to our mailing list and RSVP, if you plan to attend the Meetup. Thank you!

To start or not start the MySQL server during the RPM installation?

So far, the MySQL Server RPM packages as provided by MySQL AB used to automatically start the mysqld process after the package has been installed. It has been like that since the very beginning and we think of it as a convenience for our users when they want to get up and running quickly.

However, Kristian raised an interesting point in BUG#27072 where he points out that automatically starting mysqld during the RPM installation might not always be the desired behaviour, especially in automatic installation environments or during a fresh installation (where the system might not be fully configured yet). Therefore he proposes to change this behaviour to not start mysqld as part of the installation.

While I personally agree with his proposal, this is of course a tricky decision: our users are familiar with this behaviour and it's never a good idea to cause surprises. Therefore this change could only be done in future versions of MySQL, where they can be properly announced and documented and don't cause too much confusion.

Then again, there are several options here. Should we just disable it for the Enterprise Linux RPMs (RHEL/SLES) and keep it enabled in the "generic" RPMs? This would be inconsistent and harder to document/explain. Should the server never be started at all, or should we keep the behaviour for updates at least (when the server was already running before the package update)?

We would like to get your take on this. Please post your comments and suggestions to the bug report (preferred) or leave a comment on my blog, so we can get an impression on what you would expect to be the correct behaviour here. Thanks!

FrOSCon 2007 Call for Papers now open!

I just stumbled over Sebastian's blog entry:

The second Free and Open Source Conference "FrOSCon" takes place on August, 25th and 26th 2007 in Sankt Augustin, near Bonn, Germany. The conference is once again hosted by the faculty of computer science of the University of Applied Sciences Bonn-Rhein-Sieg in collaboration with the student body and the Linux/Unix User Group Sankt Augustin.

I attended FrOSCon last year and found it a very pleasant conference to be at. I gave two sessions about MySQL Backup and Security and the MySQL Business model, which both had a good audience and went quite well. I will definitely consider going there again this year, still pondering about the topics of my talks... The CfP ends on June, 4th, so make sure to turn in your suggestions in time!

If you are looking for a very well organized OSS event with lots of good technical content in a relaxed atmosphere, consider visting FrOSCon this year! I look forward to being there again.

Several new feeds added to Planet MySQL

Due to a small mail filtering glitch we did not notice a number of new feed submissions for Planet MySQL that had been sent to us via the submission form since the beginning of the year. Doh!

Today I discovered them in a separate mail archive and have now added all the ones that were not spam or unrelated to MySQL.

So if you recently submitted your RSS feed and you don't see it aggregated on Planet MySQL by now, please resend your submission. Thanks and we're sorry for the delay and inconvenience!

MySQL FLOSS License Exception updated

Long time no blogging! I hope PlanetMySQL finally picks up my posts again, I really miss the additional audience :-)

We recently received a request from the OpenISR project about adding the Eclipse public license to our FLOSS License Exception. As it turns out, it is almost identical to the Common Public License (CPL), which was already included in the exception. So the decision was fairly easy - version 0.6 of the FLOSS License Exception now also covers the Eclipse public license.

What is the FLOSS License exception all about anyway? Our intent:

We want specified Free/Libre and Open Source Software applications to be able to use specified GPL-licensed MySQL client libraries despite the fact that not all FLOSS licenses are compatible with version 2 of the GNU General Public License.
In other words, we want to make it possible for more non-GPL applications that are licensed under any of the listed OSI-approved licenses to link against the MySQL client libraries. The term exception may be misleading here, what it really does is widen the scope of the client license and make it more compatible to applications that are not under the GPL.

Giving a lightning talk at FOSDEM: schedule now online

FOSDEM 2007

FOSDEM, the Free and Open Source Software Developers' European Meeting will again take place in Brussels, Belgium on February, 24th & 25th. I went there last year and really had a great time. This year, I submitted a proposal for a lightning talk, which has been accepted! I've just been informed that the lightning talk schedule is now published. My talk "What's new at MySQL AB" will be on Saturday, at 17:00. I look forward to being there!

PlanetMySQL is up again...

Sorry for the short outage, due to a small coding glitch the script that updates the planet feeds got stuck and it took us a bit to find the problem... But thanks to Jay we now spotted the bug and it was fixed quickly!

MySQL++ v2.2.0 has been released

Congratulations to Warren Young and the other developers that maintain the MySQL++ C++ wrapper around the MySQL Client libraries: version 2.2.0 has just been announced and boasts a wide range of changes. Here's a description of MySQL++ from the project web site:
MySQL++ is a C++ wrapper for MySQL's C API. It is built around STL principles, to make dealing with the database as easy as dealing with an STL container. MySQL++ relieves the programmer of dealing with cumbersome C data structures, generation of repetitive SQL statements, and manual creation of C++ data structures to mirror the database schema

MySQL Community Meeting in Dublin, Ireland this Saturday (27th) at 18:00

I just learned from my colleagues in our Dublin office that Mårten Mickos, CEO of MySQL AB will be visiting them this coming weekend. They would like to take this opportunity to arrange a MySQL User Group Meeting, which will take place on Saturday, 27th of January, 18:00 o'clock in their offices:

MySQL Ireland,
Ground Floor, Misys Building,
Eastpoint Business Park,
Dublin 3
Ireland

This is your chance to meet and talk with Mårten and other MySQLers. There will also be free food and drinks and most likely a tech talk about MySQL (details will follow). So if you are located somewhere around Dublin, make sure to attend this event!

Next Hamburg MySQL User Group Meetup on Monday, 5th of February

I've already sent out the invitation and announcements to various channels, but let me repeat it once more: the 5th Hamburg MySQL User Group Meetup is coming up on Monday, 5th of Februrary. So far, 15 people have already RSVPed, so it's going to be a fun evening again. If you have not done so yet, please register via meetup.com or Xing soon! I will give a 15 minute lightning talk about "What's new at MySQL AB", but we're still looking for another MySQL-related talk. If you want to share your experiences with MySQL or talk about a certain application or tool that has a relation to MySQL, please let me know! As usual, we'll meet a 19:00 at the Chinese Restaurant "Ni Hao", Wandsbeker Zollstraße 25-29, 22041 Hamburg.
tweetbackcheck