Monday Mar 24, 2014

Just Published! MySQL March Newsletter

Have you read the MySQL March Newsletter? Check it out to learn more about the Call of Papers for MySQL Connect @ OpenWorld 2014, MySQL in action in the finance, retail and channel management sectors, as well as numerous technical tips written by MySQL experts at Oracle and in the community. The highlights in this edition include:

  • Submit Sessions for MySQL Connect @ OpenWorld 2014
  • MySQL Connector/NET 6.8.3 Available as Official MySQL NuGet Packages
  • New Case Studies: MySQL in Action in Finance, Retail, and Channel Management
  • New White Paper: Guide to the MySQL Workbench Migration Wizard: From Microsoft SQL Server to MySQL
  • Featured Video: How to Export Your Database with MySQL for Visual Studio
  • Blog: Today's Practical Use Case for MySQL Performance Schema
  • Blog: Repos and Distros: Upstream and Downstream

You can read it online or subscribe to it to receive the latest copy in your inbox automatically every month. Watch this tutorial to learn step-by-step instructions for newsletter subscription.

Enjoy!

Thursday Mar 20, 2014

Buongiorno Relies on MySQL Enterprise Edition to Power its Mobile Services

Buongiorno is known in the worldwide mobile ecosystem for developing and managing paid applications and content that help consumers get greater enjoyment from their mobile devices.


Buongiorno’s strategic goal is to deliver directly to consumers around the world a broad portfolio of content & services on all their personal devices, exploiting social and location based propositions, and letting telecom operators be in control of the billing. With direct connections to more than 130 telecom operators in 25 countries, over 10 years’ experience and a team of 600 professionals, Buongiorno makes the mobile internet experience happen for consumers globally. Buongiorno’s web apps brands include Gamifive, MuchGossip, Fingerbooks, Appsfuel HTML5 Marketplace, Winga, Play.me and the mobile payments solution Cashlog.




Challenges

  • Rely on a database delivering high performance and scalability to power Buongiorno’s mobile services. The database additionally needed to be very easy to use in order to rapidly launch and easily manage new fast growing applications.
  • Implement an effective monitoring solution in order to increase Dev-Ops productivity and focus resources on strategic operations.
  • Maintain a low Total Cost of Ownership (TCO) for its infrastructure, both initially and over time.

Solution
  • Selected MySQL to power Buongiorno’s platform.  The team especially valued its performance and scalability for mobile applications, including the ability to very quickly open and close connections to the database. MySQL was moreover extremely easy to use, and would allow the company to cost-effectively scale-out, adding more database servers at low cost to fuel its growing business.
  • MySQL instances are hosted on virtualized servers. The architecture currently consists of over 50 MySQL database instances including:
    • Over 40 “MySQL chains” as illustrated in the below diagram with circular replication between master and slave servers (or "Master Backup") to ensure High Availability, and replication to a second slave server for reporting purposes.
    • Over 10 additional similar MySQL chains without replication to another slave server for reporting needs.

  • More than 8 TB of data are stored in the MySQL master servers (excluding the replicas). The application handles:
    • Over 50,000 queries/second
    • Over 15,000 transactions/second
  • While several MySQL versions are still in use in the platform, all servers are being migrated to MySQL 5.6 in order to take advantage of the latest features.
  • Standardized on MySQL Enterprise Edition. Relying on the MySQL Enterprise Monitor Visual dashboard to monitor all MySQL databases at a glance. Automated alerts enable the Buongiorno DBAs to immediately focus on potential problems and fix them before they impact the system.
  • Leveraging Oracle’s MySQL Technical support to assist their team. "We turn to the support team whenever we don’t know the answer, they are extremely good and really responsive" said Carmine Giordano, DBA Manager.
  • Planning to use MySQL Enterprise Backup, that now integrates with their central company backup solution.


"MySQL is an excellent database to deliver mobile applications; it’s really fast, reliable and easy to use. I highly recommend MySQL Enterprise Edition; the latest version of the MySQL Enterprise Monitor is extremely useful and saves us a lot of time and efforts." Carmine Giordano, DBA Manager, Buongiorno

MySQL Enterprise Monitor provides real-time visibility into the performance and availability of all your MySQL databases. Learn More.

Wednesday Mar 19, 2014

MySQL Connect @ OpenWorld Call for Proposals Open

We announced yesterday that the call for proposals for MySQL Connect @ OpenWorld 2014 is now open!



Part of Oracle OpenWorld 2014, MySQL Connect @ OpenWorld will be held September 29 - October 2 in San Francisco.

We encourage MySQL customers, partners and community members to submit proposals to present best practices, case studies and insights you’ve gained working with MySQL. Proposals can be submitted for conference sessions, Birds-of-a-Feather sessions and tutorials.

MySQL Connect @ OpenWorld will feature five tracks:

  • Performance and Scalability
  • High Availability and Replication
  • Cloud and Big Data
  • Database Administration and DevOps
  • Architecture and Application Development


Details and submission guidelines are available at: http://www.oracle.com/openworld/call-for-papers/index.html

The call for proposals will be open until April 15, 2014. We look forward to your submissions!

Tuesday Mar 04, 2014

Update on the MySQL Connect 2014 Call for Papers

In January we encouraged you to prepare for the MySQL Connect Call for Papers, indicating how.


While dates are still subject to change, we wanted to let you know that the CFP (for MySQL Connect and Oracle OpenWorld overall) will likely open around March 18th. Remember to prepare your submissions in advance in order to swiftly submit them during the 4 to 5 weeks that the CFP will remain open!

Thursday Feb 27, 2014

SIG - MySQL meeting in Berlin, Germany!

We are pleased to announce the SIG MySQL meeting taking place in Berlin, Germany next month! Come to hear news not only from the MySQL world but also on the other topics!

Event details:

Event Name: SIG MySQL

Date: March 27, 2014

Time: 9:30 - 17:30

Place: DOAG e.V. Geschäftsstelle Tempelhofer Weg 64 12347 Berlin  

Event URL & Agenda

We are looking to seeing you there! 

Tuesday Feb 18, 2014

Zyme Relies on MySQL Enterprise Edition to Deliver High Quality Global Channel Insights to Customers

Zyme, based in Redwood Shores, California, is the global leading provider of Channel Data Management (CDM) solutions to companies selling through indirect channels. For high tech and consumer electronic products alone, over $1 trillion USD worth of goods are flowing through those indirect sales channels every year. However, when companies sell products through multi-tier channel partners and retailers around the world, it has proven to be challenging in acquiring global, standardized channel inventory and sales data cost-effectively. As a result, companies lacking of such critical information often miss the opportunities to make timely and accurate business decisions either to increase revenue, reduce costs or to prevent losses.

Having a vision to solve such channel visibility problems for customers including Symantec, Logitech, Seagate and Xerox, Zyme built its channel data management solutions that not only get reliable, high-quality channel data from thousands of partners worldwide, but also have the capability to integrate with customers’ existing on-premise or cloud CRM, Data Warehousing or Business Intelligence systems to bring such channel visibility and information to the field sales and marketing teams and drive better business results.

The Business Challenge 

Zyme was founded with a mission to improve channel visibility after witnessing the following issues:

  • Lack of a cost-effective infrastructure to capture channel activities globally
  • Lack of a global standard for channel data reporting, such as point-of-sales (POS) data
  • Poor partner compliance and low quality of data reporting 

To build a system that is capable of handling critical channel data across continents cost-effectively, Zyme was looking for a database to support its solution that automatically captures, validates, cleanses and synchronizes the channel data, which then provides a high-quality view of data that correctly reflects Zyme’s customers’ sales and inventory activities on a daily and weekly basis. In addition, the database has to support millions of transactions every day given the huge volume of channel data flowing into Zyme’s channel solution from all over the world.

The MySQL Solution 

Zyme selected MySQL since the launch of its products because it met all the following requirements Zyme needed for its mission-critical channel data solution:

  • ACID compliant
  • Ease of use and administration
  • Open source
  • Cost-effective support services backed by a well-recognized company  

Currently MySQL stores 2.5 Terabytes data, composed by 1 billion records Zyme collects from retailers and distributors across the globe. Deploying the master-slave replication topology, Zyme makes the master MySQL database in charge of receiving incoming data and processing over 50 million transactions per month, with two layers of slave databases handling reporting and backups respectively.  

To ensure the channel activities are captured consistently and correctly, one of the critical missions for Zyme’s DBA team is to minimize unplanned downtime and data corruption, and to restore the data to a previous time in the rare case that something goes wrong. The team had tried out various backup solutions, both commercial and open source ones; however those tools either provided merely file-level backup or required a lot of manual setup and configuration processes which made backup very difficult. Moreover, Zyme has a unique need of creating a lot of temporary tables, as many as 200 to 300 on top of its 600GB to 800GB database, and the other backup tools just couldn’t keep up with the volume of data Zyme needed to archive. MySQL Enterprise Backup, with its “point-in-time recovery” feature, allows Zyme to recover data to a previous time easily when an error happens, without taking the system down. Furthermore, MySQL Enterprise Backup provides many additional benefits to Zyme, including: 

  • One single utility for both backup and recovery
  • Easy-to-find, easy-to-configure backup options
  • Adjustable read, write and compression speeds for better flexibility
  • Easy automation for backup processes
  • Easy-to-access backup data which is stored right in the database – no need for a separate repository
  • Incremental backup for InnoDB tables to save disk space
  • Backward compatibility – using InnoDB Plug-in, the complete backup and recovery features can be used by databases still on MySQL 5.1

Zyme also takes advantage of the audit functionality in MySQL Enterprise Audit to audit users who log into the system. The DBA team is currently in the process of upgrading production servers from MySQL 5.1 to MySQL 5.5 so the audit plug-in, supported in MySQL 5.5.28 and above, can be used more broadly to improve overall database security. In the next phase, the production servers will be upgraded again to MySQL 5.6, the most current GA version of MySQL, to fully leverage the latest features and further enhance the performance, security and reliability of Zyme’s MySQL databases.

“As a DBA, it’s my job to always make sure we have a consistent backup, a good monitoring solution, plus an audit tool to maintain data integrity, performance and security, and that’s why I strongly advocate MySQL Enterprise Edition, where I can find all the features I need in one place, to support the MySQL environment at Zyme”. Prasad Gowda, Associate Director - DBA, Zyme

MySQL Enterprise Backup is a powerful, yet very easy-to-use tool. It offers one utility for both backup and recovery, layouts the options that are easy to find, understand and configure, and provides great flexibility with backup customizations. It’s as easy as using a cookie-cutter: just setting the parameters, pointing to the instances, taking the snapshots, and we got the backup done. More importantly, we achieved much better results with MySQL Enterprise Backup, using less than 10 percent of the time we used to spend just researching other backup tools in the market. It has become an indispensable tool for the DBA team at Zyme”. Prasad Gowda, Associate Director - DBA, Zyme

Learn More about Zyme: http://www.zymesolutions.com/ 
Read more MySQL customer stories: http://www.mysql.com/customers/ 

Friday Jan 31, 2014

Upcoming MySQL Tech Tours

Oracle’s MySQL team is running Tech Tours in multiple cities across the US and Europe during the upcoming months. Register now for the following free events:


We look forward to seeing you there!

Thursday Jan 30, 2014

Gina Tricot Scales Online Sales with MySQL Enterprise Edition

Gina Tricot is a family-owned, Swedish fashion chain that consists of over 180 stores across the following five markets: Sweden, Norway, Denmark, Finland and Germany. Combined with growing online sales, the company reaches fashion-conscious women in 28 countries across Europe. In 2012, Gina Tricot reported sales of SEK 2.3 billion.

http://mosseporten.no/wp-content/uploads/2010/10/gina_tricot.jpg


Challenges

  • Implement a reliable and scalable infrastructure to drive online sales both in countries with a physical presence via stores and in countries where the company sells exclusively online.
  • Outsource the day-to-day administration of the e-commerce system, including the databases, to a local partner while maintaining overall overview and control of the system.

Solution
  • Selected MySQL to power Gina Tricot’s e-commerce application based on its reputation as default database for web-based transactional applications, its low Total Cost of Ownership (TCO) and the recommendation of the local partner in charge of the implementation.
  • Decided to outsource both the physical infrastructure to a public cloud services provider and the day-to-day database administration to Oracle partner Emineo in Sweden.
  • Implemented MySQL replication to improve performance and scalability. While the system was initially built using MySQL Community Edition, upgraded to MySQL Enterprise Edition in order to ensure better performance, reliability and security. The MySQL Enterprise Monitor visual dashboard furthermore provides the Gina Tricot IT managers with an overview of the health of the databases at any point in time.
  • Using the MySQL Enterprise Monitor and MySQL Query Analyzer to detect poorly performing queries and to fix both existing and potential issues before they impact the application.
  • Achieved objective of maintaining visibility on all key database performance indicators and control over the application while delegating the execution of the database administration tasks to a partner.

"MySQL Enterprise Edition enables us to expand and grow online sales in both existing and new countries while maintaining a low TCO. It is a high performance, scalable and easy to monitor database; we’re extremely pleased with it." Nicklas Griphem, Manager Server & Infrastructure, Gina Tricot


Wednesday Jan 29, 2014

Atos Manages Transaction Clearing for the Euronext Markets in Continental Europe with MySQL Enterprise Edition

Atos is an international information technology services company with annual revenue of EUR 8.8 billion and 77,100 employees in 52 countries. Serving a global client base, it delivers IT services in 3 domains, Consulting & Technology Services, Systems Integration and Managed Services & BPO and transactional services through Worldline.

In 2009 Atos was asked to drastically reduce the costs of the UCS application (Universal Clearing System): the compensation engine for the Euronext Cash (stocks and bonds) and derivatives markets in the Euro zone. In the financial sector, clearing is exercised by aggregating all purchases and sales by the type of product/assets held by each account holder, resulting in a balance of net payables or receivables as well as the net flows of securities delivered or received.

data:image/jpeg;base64,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

Challenges 

  • Migrate from a proprietary HP NonStop-SQL/MP environment towards an open source infrastructure enabling both a drastic reduction in the Total Cost of Ownership (TCO) as well as technology independence.
  • Guarantee the robustness and the high availability of this highly mission critical financial application.
  • Increase the performance and the scalability of UCS to address constantly growing transactions volumes.


Solution

  • Adoption of an Open Source strategy and complete re-engineering of the application relying on a software stack including Linux, MySQL Enterprise Edition, Apache/Tomcat, and the C and Java languages. The new system is architected around several servers or clusters of blade servers running Linux, some of them virtualized, and a SAN. The application primarily relies on the InnoDB storage engine, using the Memory storage engine to a lesser extent.
  • Implementation of an architecture built around business processes acting as sub-components multi-instantiated to allow for better scalability. The previous architecture allowed siloed processes to become bottlenecks.
  • Geographical redundancy achieved using synchronous replication between two data centers, separated by 40 kilometers.
  • The UCS application handles :
    • In excess of 1 million transactions per day, peaking at 2 million per day during the summer of 2011
    • 8000 files sent to customers daily
    • 700 batch processes each night
Several benchmarks were run to ensure that the application could scale to handle more than 6 million daily transactions. Vincent Cornet, DBA Support Manager at Atos, recalls "During one of our benchmarks we faced a crash. We turned to Oracle’s MySQL support team and obtained a fix within 48 hours, which was subsequently integrated within the official MySQL version. We were extremely pleased with such responsiveness."
  • The reengineering of the application handling the clearing for the Cash markets was a project that lasted for 15 months, involved 12,000 man-days of effort and resulted in:
    • An entirely reworked platform and software architecture
    • New data centers
    • New SAN and commodity blade servers
    • New administration and monitoring tools, including MySQL Enterprise Monitor and MySQL Workbench
    • Successful delivery, and an extremely pleased customer
  • Following that achievement, similar re-architecting of the clearing system for derivative products. Requiring teamwork between more than 40 people from different departments and a 24/7 task force for 6 months.
  • The objective of drastically reducing TCO was realized while at the same time the maintenance of the system was simplified and its performance increased. The new UCS application has been a success and has been praised by all parties involved. In addition to being one of the best transactional solutions on the market, it also represents a great technological and human achievement thanks to the very strong cooperation between all of the teams to drive change using new technologies. Atos has moreover acquired an expertise valuable to other customers across multiple industries.
  • Beyond an upgrade to MySQL 5.6, Atos is now also considering using MySQL Cluster within the UCS architecture or other similar applications in the future.


"MySQL allows us to sleep soundly at night, which was far from being the case with the old system. We deliver better results at a lower cost, and the quality of Oracle’s MySQL support is exemplary." Vincent Cornet, DBA Support Manager, Atos

Tuesday Jan 28, 2014

Prepare Now for the MySQL Connect 2014 Call for Papers

As announced last month, MySQL Connect will this year be aligned with Oracle OpenWorld and run from Monday September 29 to Thursday October 2, 2014, in San Francisco.

The MySQL Connect and Oracle OpenWorld Calls for Papers will also open at the same time, and you will most likely be able to submit your sessions between March 4 and April 8 (dates subject to change).

While you will have 5 weeks or so to actually submit your talk proposals, you can already prepare your submissions NOW in order to be ready to submit then, and here is the key information you need to do so. In order to submit a session, you will need to provide:

  • Title
  • Conference session type: This can be either a conference session (1 hour), a Birds-of-a-Feather session (1 hour), or a tutorial (2,5 hours). You are obviously welcome to submit several sessions.
  • Abstract: 750 characters maximum including spaces
  • Speaker’s name(s), e-mail(s), phone(s) and bio(s)
  • Track - MySQL Connect 2014 will have 5 tracks:
    • Performance & Scalability
    • High Availability and Replication
    • Cloud & Big Data
    • Database Administration and DevOps
    • Architecture & Application Development


Get going now and you will have ample time to prepare your MySQL Connect presentations submissions! Let us know if you have any question.

We look forward to a fantastic MySQL Connect 2014!

Tuesday Jan 14, 2014

Atos Gère le Clearing des Transactions des Marchés Euronext en Europe Continentale avec MySQL Enterprise Edition

Acteur international des services informatiques avec un chiffre d’affaires annuel de 8,8 milliards d’euros et 77,100 collaborateurs dans 52 pays, Atos fournit à ses clients du monde entier des services informatiques dans 3 domaines, Conseil & Services Technologiques, Intégration de Systèmes et Infogérance & BPO, ainsi que Services Transactionnels de Haute Technologie avec Worldline.

En 2009, Atos s’est vu confier le projet de réduire drastiquement les coûts du moteur de compensation des marchés Cash (actions et obligations) et Produits Dérivés d’Euronext en Zone euro: l’application UCS (Universal Clearing System). Dans le domaine financier, la compensation, ou le "clearing", s'exerce par l'agrégat de toutes les positions d'achats et de ventes par type de produit/actif détenu par chaque teneur de compte, et se matérialise par un solde net dû ou à recevoir ainsi que par des flux nets de titres à livrer ou à recevoir.


 Défis

  • Migrer d’un environnement propriétaire basé sur des systèmes HP NonStop-SQL/MP vers un environnement ouvert et des technologies open source permettant à la fois une réduction drastique du coût total de possession (TCO) et une indépendance technologique.
  • Garantir la robustesse et la haute disponibilité de cette application de marchés financiers hautement critique.
  • Accroître les performances et la montée en charge d’UCS pour répondre à une augmentation constante du volume de transactions.

Solution
  • Adoption d’une stratégie Open Source et complète ré-architecture de l’application basée sur un stack incluant Linux, MySQL Enterprise Edition, Apache/Tomcat, langage C et Java. La nouvelle version d’UCS s’articule autour de plusieurs serveurs ou clusters de serveurs blade sous Linux, dont certains sont virtualisés, et d’une baie SAN. InnoDB est le moteur de stockage MySQL principalement utilisé par l’application qui exploite également dans une moindre mesure le moteur Memory.
  • Mise en place d’une architecture construite autour de processus métier agissant comme sous-composants multi-instanciables pour favoriser une rapide montée en charge. L’architecture précédente pouvait en effet créer des goulots d’étranglement du fait d’une intégration en silo de l’ensemble des processus.
  • Redondance géographique assurée grâce à une réplication synchrone entre 2 centres de données distants de plus de 40 kilomètres.
  • L’application UCS gère :
    • Plus d’un million de transactions par jour, et a atteint un pic à plus de 2 millions de transactions journalières durant l’été 2011.
    • 8000 fichiers envoyés par jour aux clients
    • 700 processus batch chaque nuit
Plusieurs benchmarks ont été établis permettant de s’assurer que l’application pouvait gérer 6 millions de transactions journalières. Vincent Cornet, DBA Support Manager chez Atos se souvient "Durant l’un de nos benchmarks, nous avons fait face à un crash. Nous nous sommes tournés vers l’équipe de support MySQL d’Oracle et avons obtenu un correctif en moins de 48 heures, correctif intégré ensuite dans la version officielle de MySQL. Nous avons été ravis d’une telle réactivité."
  • Mise en production de l’application assurant le clearing des marchés Cash après une réécriture complète durant un projet de 15 mois et 12000 jours/h résultant en :
    • Une architecture technique et logicielle intégralement renouvelée
    • De nouvelles salles informatiques
    • De nouvelles baies SAN et nouveaux serveurs blade banalisés
    • De nouveaux outils d’exploitation et de supervision, incluant MySQL Enterprise Monitor et MySQL Workbench
    • Un succès, et un client extrêmement satisfait
  • Suite à cette réussite, refonte similaire du système pour le clearing des produits dérivés. Travail d’équipe rassemblant plus de 40 personnes des différents départements impliqués, et une "task force" en place 24h/24 pendant 6 mois.
  • L’objectif de réduction draconienne du coût total de possession a été atteint, tout en simplifiant la maintenance du système et en augmentant ses performances. La nouvelle application UCS s’avère au final être un succès reconnu et salué par l’ensemble des acteurs. Elle représente non seulement une des meilleures solutions transactionnelles du marché, mais aussi un pari à la fois technologique et humain gagné grâce à une forte coopération des équipes pour conduire le changement en utilisant de nouvelles technologies. Atos a en outre acquis un savoir-faire et une expérience pouvant être valorisée auprès d’autres clients dans de multiples secteurs d’activités.
  • En plus d’une mise à jour vers MySQL 5.6, Atos étudie désormais l’opportunité d’utiliser MySQL Cluster au sein de l’architecture d’UCS ou d’autres applications similaires dans le futur.

"MySQL nous permet de passer des nuits très sereines, ce qui était loin d’être de cas avec l’ancien système. Nous délivrons de meilleurs résultats pour un coût inférieur, et la réaction du support d’Oracle est exemplaire." Vincent Cornet, DBA Support Manager, Atos


Thursday Oct 31, 2013

After 10 Years, MySQL Still the Right Choice for ScienceLogic's "Best Network Monitoring System on the Planet"

ScienceLogic has a pretty fantastic network monitoring appliance.  So good in fact that InfoWorld gave it their "2013 Best Network Monitoring System on the Planet" award.  Inside their "ultraflexible, ultrascalable, carrier-grade" enterprise appliance, ScienceLogic relies on MySQL and has since their start in 2003.  Check out some of the things they've been able to do with MySQL and their reasons for continuing to use MySQL in these highlights from our new MySQL ScienceLogic case study.
  • Science Logic's larger customers use their appliance to monitor and manage  20,000+ devices, each of which generates a steady stream of data and a workload that is 85% write. On a large system, the MySQL database:
    • Averages 8,000 queries every second or about 1 billion queries a day
    • Can reach 175,000 tables and up to 20 million rows in a single table
    • Is 2 terabytes on average and up to 6 terabytes
    • "We told our customers they could add more and more devices. With MySQL, we haven't had any problems. When our customers have problems, we get calls. Not getting calls is a huge benefit."
      Matt Luebke, ScienceLogic Chief Software Architect.


  • ScienceLogic was approached by a number of Big Data / NoSQL vendors, but decided against using a NoSQL-only solution. Said Matt, "There are times when you really need SQL. NoSQL can't show me the top 10 users of CPU, or show me the bottom ten consumer of hard disk. That's why we weren't interested in changing and why we are very interested in MySQL 5.6. It's great that it can do relational and key-value using memcached."
  • The ScienceLogic team is very cautious about putting only very stable technology into their product, and according to Matt, MySQL has been very stable: "We've been using MySQL for 10 years and we have never had any reliability problems. Ever."
  • ScienceLogic now uses SSDs for their write-intensive appliance and that change alone has helped them achieve a 5x performance increase.

Learn more>>




Wednesday Oct 09, 2013

Join us: Upcoming MySQL Tech Tours in EMEA

Would you like to learn about the latest MySQL news and innovations from MySQL Connect/Oracle OpenWorld but couldn't travel there? Are you about to develop a new modern web-based application, wondering what the best database solution is for you? Would you like to learn how to use NoSQL access to MySQL and the new MySQL Database and MySQL Cluster features to build next generation applications?



Join one of our upcoming "Performance, Scalability and High Availability with MySQL" Tech Tours! You will hear directly from the source about new MySQL innovations from Oracle, including how the latest MySQL 5.7 DMR yet again doubles the performance of MySQL, and how the new MySQL Fabric provides you with a framework for both High-Availability and sharding of MySQL Databases. Our technical experts will show you how to take advantage of the new features and enhancements in the best MySQL product releases ever, and share tips and tricks to confer high performance, scalability, availability and flexibility to your applications.

You will also learn how Oracle Linux and Oracle VM deliver more value for your enterprise deployments.

Register Now for the following Tech Tours:

Munich, October 15

Cape Town, November 5

Barcelona, November 7

Milan, November 15

London, November 19

Copenhagen, November 21

We look forward to seeing you there!



Thursday Sep 26, 2013

Tracing MySQL Protocol from Client Side

Protocol tracing infrastructure

Since introduction of PERFORMANCE_SCHEMA in MySQL Server, it is possible to trace what happens inside the server when it executes client queries. The client-side protocol tracing framework is a similar mechanism in the MySQL Client Library. It allows tracing communication of the client with the server. The infrastructure has been included in MySQL 5.7.2 Development Milestone Release.

Unlike PERFORMANCE_SCHEMA, focus of the client-side tracing framework is on tracing the protocol flow and client-server I/O rather than the performance of the client library implementation. The client-side tracing framework recognizes trace events which happen during normal conversation between the client and the server. Events such as sending packets to the server, receiving server replies, establishing and terminating a connection are recognized. These events can be passed to a trace plugin if one is loaded into the library. Trace plugin defines callback functions which are called by the protocol tracing framework when trace events happen.

Protocol tracing infrastructure is enabled by default in the client library. However, it does nothing until a trace plugin is loaded. It is possible to build client library with a test trace plugin included in it and use it to see the protocol tracing framework in action (see below). In what follows it is also described how to build and use own protocol trace plugins.

Note that there can be only one trace plugin loaded into the library. An attempt to load another trace plugin results in an error. This means that to use custom trace plugins one has to use client library without the test trace plugin built into it, as is the case when it is distributed by MySQL.

Test trace plugin

When building client library from sources it can be configured to include a built-in test trace plugin using WITH_TEST_TRACE_PLUGIN cmake option. If this was the case, then the test trace plugin is enabled in the library without any further configuration. It receives trace events and follows the protocol flow checking that everything goes as expected.

By default test trace plugin keeps quiet and ignores unexpected turns in the protocol flow. But user can tell it to produce diagnostic output on standard error stream by setting environment variable MYSQL_TEST_TRACE_DEBUG to something else than 0. An example output produced by the plugin might look as follows:


test_trace: Test trace plugin initialized
test_trace: Starting tracing in stage CONNECTING
test_trace: stage: CONNECTING, event: CONNECTING
test_trace: stage: CONNECTING, event: ERROR
test_trace: error 2038: Can't open shared memory; client could not create requet event (0)
test_trace: stage: CONNECTING, event: CONNECTED
test_trace: stage: WAIT_FOR_INIT_PACKET, event: READ_PACKET
test_trace: stage: WAIT_FOR_INIT_PACKET, event: PACKET_RECEIVED
test_trace: packet received: 74 bytes
  0A 35 2E 35 2E 32 37 00  51 00 00 00 28 3F 43 73   .5.5.27.Q...(?Cs
  3C 6C 2E 3F 00 FF F7 21  02 00 0F 80 15 00 00 00   <l.?...!........
test_trace: 081: stage: WAIT_FOR_INIT_PACKET, event: INIT_PACKET_RECEIVED
test_trace: 081: stage: AUTHENTICATE, event: AUTH_PLUGIN
test_trace: 081: Using authentication plugin: mysql_native_password
test_trace: 081: stage: AUTHENTICATE, event: SEND_AUTH_RESPONSE
test_trace: 081: packet sent: 60 bytes
  85 A2 3F 00 00 00 00 01  08 00 00 00 00 00 00 00   ..?.............
  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
test_trace: 081: stage: AUTHENTICATE, event: READ_PACKET
test_trace: 081: stage: AUTHENTICATE, event: PACKET_RECEIVED
test_trace: 081: packet received: 7 bytes
  00 00 00 02 00 00 00                               .......
test_trace: 081: stage: AUTHENTICATE, event: AUTHENTICATED
test_trace: 081: stage: READY_FOR_COMMAND, event: SEND_COMMAND
test_trace: 081: QUERY: select @@version_comment limit 1
test_trace: 081: stage: READY_FOR_COMMAND, event: PACKET_SENT
test_trace: 081: stage: WAIT_FOR_RESULT, event: READ_PACKET
test_trace: 081: stage: WAIT_FOR_RESULT, event: PACKET_RECEIVED
test_trace: 081: packet received: 1 bytes
  01                                                 .
test_trace: 081: Expecting result set with 1 columns
test_trace: 081: stage: WAIT_FOR_FIELD_DEF, event: READ_PACKET
test_trace: 081: stage: WAIT_FOR_FIELD_DEF, event: PACKET_RECEIVED
test_trace: 081: packet received: 39 bytes
  03 64 65 66 00 00 00 11  40 40 76 65 72 73 69 6F   .def....@@versio
  6E 5F 63 6F 6D 6D 65 6E  74 00 0C 08 00 13 00 00   n_comment.......
test_trace: 081: Received next field definition
test_trace: 081: stage: WAIT_FOR_FIELD_DEF, event: READ_PACKET
test_trace: 081: stage: WAIT_FOR_FIELD_DEF, event: PACKET_RECEIVED
test_trace: 081: packet received: 5 bytes
  FE 00 00 02 00                                     .....
test_trace: 081: No more fields
test_trace: 081: Reading result set rows
test_trace: 081: stage: WAIT_FOR_ROW, event: READ_PACKET
test_trace: 081: stage: WAIT_FOR_ROW, event: PACKET_RECEIVED
test_trace: 081: packet received: 20 bytes
  13 53 6F 75 72 63 65 20  64 69 73 74 72 69 62 75   .Source distribu
  74 69 6F 6E                                        tion
test_trace: 081: Received next row
test_trace: 081: stage: WAIT_FOR_ROW, event: READ_PACKET
test_trace: 081: stage: WAIT_FOR_ROW, event: PACKET_RECEIVED
test_trace: 081: packet received: 5 bytes
  FE 00 00 02 00                                     .....
test_trace: 081: End of data  

We can see the various trace events reported to the plugin and the data such as packet contents provided with each event. Note that the protocol tracing infrastructure maintains information about the current stage of the protocol. This is helpful for trace plugin to correctly interpret trace events. For example, a packet received from server (PACKET_RECEIVED event) has different meaning and structure depending on whether it arrives during authentication phase (WAIT_FOR_INIT_PACKET stage), just after query has been sent (WAIT_FOR_RESULT stage), when server sends result set metadata (WAIT_FOR_FIELD_DEF stage) or when it sends rows of a result set (WAIT_FOR_ROW stage).

As can be seen the output is quite verbose thus MYSQL_TEST_TRACE_DEBUG should be enabled only for debugging purposes. One can also instruct the test trace plugin to crash client application if it detects problems in the protocol flow. This is done by setting environment variable MYSQL_TEST_TRACE_CRASH to something else than 0.

How to write a trace plugin

Protocol trace plugins, as any other client-side plugins, are loaded into the client library from a shared module. Client library must know the location where plugin modules are stored (MYSQL_PLUGIN_DIR option) and the plugin must be explicitly loaded into the library using mysql_load_plugin() C API call. It is also possible to name the plugin module using environment variable LIBMYSQL_PLUGINS and then it will be automatically loaded during client library initialization. See documentation of plugin functions in C API for the details.

A plugin module must define plugin descriptor using mysql_declare_client_plugin() macro. This macro and other relevant types are defined by <mysql.h> and <mysql/plugin_trace.h> headers which should be included prior to defining a trace plugin.

mysql_declare_client_plugin(TRACE)
  "my_trace_plugin",            /* plugin name */
  "Author Name",                /* author */
  "protocol trace plugin",      /* description */
  {1,0,0},                      /* version = 1.0.0 */
  "GPL",                        /* license type */
  NULL,                         /* for internal use */
  plugin_init,                  /* plugin initialization function */
  plugin_deinit,                /* plugin shutdown function */
  plugin_options,               /* option-handling function */
  tracing_start,                /* start tracing new connection */
  tracing_stop,                 /* stop tracing connection */
  trace_event                   /* handle trace event */
mysql_end_client_plugin;

Callback functions plugin_init(), plugin_deinit() and plugin_options() are the same as for any other type of client-side plugin and are described in plugin data structures documentation.

Callbacks tracing_start(), tracing_stop() and trace_event() are specific to trace plugins and are documented in <mysql> header. Function tracing_start() is called when a new connection is established with mysql_real_connect() C API call. This happens at a very early stage, before any packets are exchanged with the server. Function might return a pointer to plugin specific trace data which will be kept in the MYSQL connection handle and passed to other tracing callbacks. Note that this function is different from the global plugin initialization function plugin_init() which is called only once, after loading the plugin. Function tracing_start() is called for each new connection made by the client.

Function tracing_stop() is called when tracing of the connection has ended. This can happen due to normal connection termination as defined by the protocol, because of connection error detected in the client library or because tracing of this connection has been explicitly terminated by trace_event() callback (see below). This function should de-allocate any resources allocated in tracing_start().

Function trace_event() is called by the protocol tracing infrastructure when various trace events happen. The current protocol stage and additional arguments are passed with each trace event so that this function can for example examine contents of the packets being sent or received. Function trace_event() can tell the protocol-tracing infrastructure to stop tracing the current connection by returning non-zero value.

Here is a list of trace events that are reported to a protocol trace plugin:


Connection events
CONNECTING Client is connecting to the server.
CONNECTED Client is connecting to the server.
DISCONNECTED Connection with server was terminated.
SSL events
SEND_SSL_REQUEST Client is sending SSL connection request.
SSL_CONNECT Client is initiating SSL handshake.
SSL_CONNECTED SSL connection has been established.
Authentication events
INIT_PACKET_RECEIVED Client received initial handshake packet.
AUTH_PLUGIN Client selects an authentication plugin to be used in the following authentication exchange.
SEND_AUTH_RESPONSE Client sends response to the authentication challenge.
SEND_AUTH_DATA Client sends extra authentication data packet.
AUTHENTICATED Server has accepted connection.
Command phase events
SEND_COMMAND Client is sending a command to the server.
SEND_FILE Client is sending local file contents to the server.
General events
READ_PACKET Client starts waiting for a packet from server.
PACKET_RECEIVED A packet from server has been received.
PACKET_SENT After successful sending of a packet to the server.
ERROR Client detected an error.

Test trace plugin implementation

A good place to look for an example of a trace plugin implementation is file test_trace_plugin.cc in libmysql/ subdirectory of MySQL Server source tree. It defines the test trace plugin described above.

Note that test trace plugin is a bit special as it is not loaded dynamically into client library, but it is built into it. This is why the plugin is not declared with the mysql_declare_client_plugin() macro but rather the plugin descriptor structure is defined explicitly. It is then added to the mysql_client_builtins[] array defined in sql-common/client.c.

Looking at the code in test_trace_plugin.cc one can see there how plugin's specific trace data structure st_trace_data is allocated in trace_start() callback. Among other things it contains a next_stage member which specifies the expected stage of the protocol when next trace event is reported. This expected stage is updated in check_event_XXX() functions called from the main trace_event() callback. In trace_event() function there is a check that the protocol stage reported by trace infrastructure is as expected:

if (data && data->next_stage != stage)
{
  LOG(("wrong stage, expected: %s",
       protocol_stage_name(data->next_stage)));
  if (opt_crash)
    DBUG_ASSERT(0);
}

One can also see how trace_event() function analyses arguments passed with each trace event and shows them in the log.

Full discussion of the implementation of test trace plugin is out of the scope of this article. But hopefully the source code and comments there can give an idea how one can write a trace plugin and what can be achieved with the protocol-tracing infrastructure.

MySQL Connect Keynotes and News

The second edition of MySQL Connect took place just a few days ago, Sept 21-23, and was a great event. Thank you very much to all participants including speakers, sponsors, exhibitors and attendees! We hope you had a fantastic time and learned a lot.

The keynotes are now available for you to watch on demand (both highlights and full length), including:

The State of the Dolphin
Edward Screven, Chief Corporate Architect, Oracle
Tomas Ulin, Vice President of MySQL Engineering, Oracle