MySQL

Making MySQL-8.0 XA transaction processing crash safe

The key to use MySQL as storage nodes for distributed databases
D.mysql
Wei Zhao
MySQL XA transaction processing has a series of pitfalls and issues that make it NOT crash safe nor fault tolerant. In this talk the author would like to share his insights, findings and analysis about such issues and MySQL transaction processing in general, and how he and his team solved all these issues and made MySQL XA transaction processing really crash safe and fault tolerant, which is crucial to use MySQL as storage nodes of a distributed DBMS such as Kunlun.
In an era of data explosion, more and more database users will need distributed databases to scale out ever increasing data management needs. From the author's past decade of database kernel development experience in Oracle and Tencent, he knows that although MySQL is an excellent DBMS in itself, its storage capacity has a limit of a couple of terabytes. Beyond that, users would need table sharding to scale to multiple MySQL storage clusters to get good performance. And using MySQL as part of a distributed database will be more and more pervasive in the future, thus it's crucial that the MySQL XA transaction processing issues be well understood and solved. In the author’s former work in Tencent TDSQL development team, he took the initiative to evolve TDSQL from a simple table sharding solution to a full-blown distributed DBMS which handles distributed transaction and query processing, among others, and TDSQL since then has been widely used inside Tencent and in Tencent’s public cloud service. In this work they solved a series of MySQL-5.7 XA transaction processing issues and pitfalls, so that TDSQL is made crash safe and fault tolerant. And they reported such XA crash-safety bugs to MySQL official team and contributed the initial patches too. Since Aug 2019, the author left Tencent and started to develop Kunlun distributed DBMS, which uses MySQL 8.0 as storage nodes. Based on his previous experiences and knowledge of using MySQL-5.7 in TDSQL, he and his team implemented a series of features and functionality to make MySQL 8.0 XA transaction processing crash safe and fault tolerant. Note that community MySQL XA modules lack such guarantees. In this session the author would like to share the insights and findings of some of the XA transaction processing issues&pitfalls, as well as the analysis and solution.

Additional information

Type devroom

More sessions

2/7/21
MySQL
Dave Stokes
D.mysql
MySQL has now been arounds for over a quarter of a century. So what has really changed since 3.21 has become available? So how did a little programming project become the ubiquitous database? This session is a look at the many changes in the product, the company, and the people involved in MySQL.
2/7/21
MySQL
Shlomi Noach
D.mysql
This session reveals four experimental Vitess developments that automate away complex database operations. With these developments Vitess is able to run its own database infrastructure, transparently to the user, and take control of risky and elaborate situations and operations. We will briefly explain the Vitess architecture and how it supports said control, and discuss the following developments: Throttling: pushback for massive writes. Table life cycle: safe and lazy DROP TABLE operations. ...
2/7/21
MySQL
Frédéric Descamps
D.mysql
During this session, I will show how we can start from a single instance to MySQL InnoDB Cluster, the automated HA solution for MySQL, passing by the following architecture: Single MySQL Source / Asynchronous Replica InnoDB ReplicaSet InnoDB Cluster I will cover the limitations of each options and how to migrate from one to the next one with minimal downtime.
2/7/21
MySQL
Aníbal Pinto
D.mysql
Group replication is a mature and feature rich solution for data replication and automation of fail-over. To be able to operate without human intervention, it relies on group-based coordination protocols and as such require constant interaction between servers over the network. As such, adjusting the configuration to deal with network instability is something that should be done to get the most of the replication deployment. This session showcases the best practices that allow you to deploy ...
2/7/21
MySQL
Marco Tusa (the Grinch)
D.mysql
Containers, kubernetes and virtualizations are, as never before, the shining objects of our times. While we are used to implementing them in case of stateless situations, it becomes more difficult to see them serve properly in case of stateful solutions like RDBMS. But after I have won some personal reluctance, I started to experiment with the Percona Operator for MySQL. With this presentation, I will bring you a short journey as a result of my experience as DBA in the usage of the Percona ...
2/7/21
MySQL
Frédéric Descamps
D.mysql
MySQL Router is part of MySQL InnoDB Cluster and MySQL InnoDB ReplicaSet, but not only. This piece of software is still unknown by many users but improved a lot during the last year. In this session, the audience will learn about MySQL Router's REST API. How to enable it and how to use it. We will also see how this API can be integrated into a monitoring solution and I will share my journey dealing with its authentication: I will share my thoughts and best practices.
2/7/21
MySQL
Dave Stokes
D.mysql
MySQL has added many new features to make user account management easier. The server can now generate random passwords that follow the rules you manage. If you have too many 'Dave's or 'Fred's in your organization, you can store GCOS like information in the mysql.user.User_attributes column to directly identify who you are referencing. And you can now have dual passwords on an account. These additions can make account management much easier but only if you know about them!