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.