April 21, 2014

How Can Percona MySQL Server Development Services Help ?

At Percona we offer a number of services. One of them, Custom MySQL Server Development, is commonly the most misunderstood and undervalued. There are a lot of ways Percona custom MySQL server development can help your business be more successful with MySQL. Here are some ways:

Bugs – There are Bugs in MySQL, Percona Server, and other products. By far the best and most cost efficient way to deal with Bugs is to have a Percona MySQL Support subscription which includes all you can eat bug fixes. If you need just one bug fixed this may be a way to go. Many bugs we’re tasked to fix are actually bugs in MySQL which the Oracle MySQL development team has not fixed. This does not only apply to “community reported bugs” as we had a number of customers who had an Oracle MySQL Support subscription but still could not get their relevant bug fixed in a prompt manner. The other possibility is you might get the bug fixed but in the wrong version of MySQL. If you’re running MySQL 5.1 but the bug is planned to be fixed only in MySQL 5.6, this might not be good enough for you. Percona MySQL Server Development Services can often Backport Bug Fixes in the version you’re running hence helping you to reduce upgrade costs and risks. We even can backport bugfixes to specific minor MySQL versions in many cases which can be important in some environments which focus on minimizing changes.

MySQL Version Compatibility – As new major MySQL versions are released they often have some incompatibilities ranging from very subtle to significant. In many cases it is easy to change the application to become compatible with a new MySQL version. In others, though, the application might be legacy or proprietary and changing it might not be an option so we can help with changes on the MySQL server side to make it work.

New Features in MySQL Server – In many cases you can get great value from new features added to MySQL which benefit your application a lot. I think many people do not even think about this option so they might come up with ugly workarounds for something which could be implemented on the MySQL server side relatively easily and then it can be controlled by the MySQL DBA team where it belongs instead of by by Application Developers. Sometimes a good workaround is not even possible; dynamic row format in memory engine is an example of such a feature.

Plugins – Plugins are a great way to implement new MySQL server features in many areas while keeping them easily maintainable. Customers have requested that we implement or include a numbers of plugins in Percona Server such as the Percona PAM authentication plugin or the HandlerSocket interface. If you have some custom authentication, auditing, or storage engine needs, we can help. It also might be more cost advantageous for you to work with us to implement the extra features from MySQL Enterprise Edition you need for your business rather than suffer from proprietary license lock-in.

Performance – We’re very good helping you to get the most performance from your MySQL server via our Percona MySQL Consulting, Percona MySQL Support, and Percona MySQL Remote DBA services. With our MySQL Server Development Services we can go even further and analyze your workload for code level optimization possibilities. We have seen a number of cases when optimizing for specific workload can provide substantial gains, ranging from tens of percents to 10x or more. For example, MySQL Optimizer doing a bad job in your circumstances which cannot be easily fixed with hints is one of those opportunities.

Custom Builds and Platform Support – Sometimes MySQL or Percona Server is not available for the platform you’re using. Other times you need a custom build with special compile time settings. Using Percona MySQL Server Development Services to do this work will ensure you get an optimal and tested build. We have seen many cases when compilation would be either done with settings for poor performance (such as debugging code enabled) or going overboard with unsafe optimization and not doing proper QA, resulting in stability issues.

In-House MySQL Dev Team Augmentation – A number of companies maintain an in-house MySQL build which can include community patches from various sources as well as some internally developed features. For example, shared hosting providers often implement features for abuse detection and prevention. Percona we can help you maintain your own tree or take the project over completely. Your features can remain your own – we will not force you to Open Source everything.

Percona Toolkit and Other Tools – So far I’ve been writing about MySQL Server only, though this is not the only software we can address. In fact, a lot of custom work we’re doing is on new tools, features, improvements, and bug fixes in tools like Percona Toolkit, Percona Xtrabackup, Percona Monitoring Plugins, and others.

Non-Percona Tools – Can we help you with non-Percona Tools, too? We have worked with a number of Open Source tools from the MySQL ecosystem and often we can either help you with the related development needs or we can help make an introduction to someone who can.

In Summary – There is a lot you can gain by taking a broad view of your MySQL server needs. Chances are custom MySQL server development should be one pillar of your strategy, and Percona MySQL Server Development Services can help with it, too.

About Peter Zaitsev

Peter managed the High Performance Group within MySQL until 2006, when he founded Percona. Peter has a Master's Degree in Computer Science and is an expert in database kernels, computer hardware, and application scaling.

Comments

  1. Just an idea. I have considered developing this my self. (time it always about time).

    Indexes for the CSV storage engine. (http://www.mysqlfanboy.com/2012/07/indexed-csv/)

    Lots of data comes to the user in CSV format and is never modified. (Weather data from radar in my case.) This data then has to be INSERTED into indexed tables to be used. MyISAM for speed or InnoDB because of record locking during the inserts. What if this could all just be sidestepped?

    How do you INSERT millions of rows into a table in milliseconds? Replace the file at the OS level. (http://www.mysqlfanboy.com/2010/05/mg_hot_replace_table-pl/) Put there are not indexes. If only someone used a file seek function to read from selected parts of a CSV file. You could then combine the MyISAM index routines with the CSV table engine and create a CSVI engine.

    What a concept. Know anyone how would like to help me develop this?

  2. Eyal Yurman says:

    Hi Peter,

    Such changes will force the costumer, of course, to keep it’s own compiled version MySQL server, and to merge the patch with each upgrade of the MySQL server version.

    What is your view of the balance between maintenance concerns and the wish to solve issues/bugs at the server level?

    BTW,
    Patches are maintained much easier within Oracle RDBMS Server, since Oracle’s server contains a utility for patch management (called OPATCH).

  3. Eyal,

    Having your own patched server is a choice for a few companies. for many it is better to have features needed included in mainline. The features who run their significantly patched version typically will not update to every single release to reduce cost of porting and changing. Looking at Reports from Facebook for example they are still on heavily patched MySQL 5.1 and not even the latest version.

    Other thing to note – number of features can be implemented as plugins these days which make it a lot easy to port it.

  4. Hello ,
    i am also software company employee so i know very well or aware from that language so i realy well managed and properly arranged article ..
    i hope it would be beneficial to the developer .

    Thanks

Speak Your Mind

*