In this article, I’ll explain about the multi version concurrency control (MVCC) of large objects (LOBs) design in the MySQL InnoDB storage engine. MySQL 8.0 has a new feature that allows users to partially update large objects, including the JSON documents. …
In the Replication QA team, we have been continuing to improve test coverage for Replication and Group Replication primarily to ensure that we support the newest and latest offerings of MySQL Server 8.0 such as Generated Columns, Set Persist, User Roles, and User Management DDLs that are now atomic.…
Please join Percona’s Principal Support Escalation Specialist, Sveta Smirnova, as she presents Troubleshooting MySQL Concurrency Issues with Load Testing Tools on Wednesday, May 23, 2018 at 11:00 AM PDT (UTC-7) / 2:00 PM EDT (UTC-4).
Normally, we use benchmarking tools when we are developing applications. When applications are deployed, benchmarks tests are usually too late to help.
This webinar doesn’t cover actual benchmarks, but it does look at how you can use benchmarking tools for troubleshooting. When you need to repeat a situation caused by concurrent client execution, they can be your best …
[Read more]In this blog post, I will show you how to use Percona Monitoring and Management (PMM) to capture per-process metrics in five minutes or less.
While Percona Monitoring and Management (PMM) captures a lot of host metrics, it currently falls short providing per-process information, such as which particular process uses a lot of CPU resources, causes Disk IO or consumes a lot of memory.
In our database performance optimization and troubleshooting practice, this information has proven quite useful in many cases: batch jobs taking much more resources than developers would estimate and misconfigured Percona XtraBackup or Percona Toolkit are among the most common offenders.
Per-process metrics information can also be very helpful when troubleshooting database software memory leaks or memory fragmentation.
You …
[Read more]The UTF-8 is a variable-length encoding. In the case of UTF-8, it means that storing one code point requires one to four bytes. But, In MySQL’s encoding called “utf8” only stores a maximum of three bytes per code point. In the modern web / mobile applications, we have to support for storing not only language characters but also symbols and emojis, Let me show you below some very weird issues faced using MySQL “utf8” :
mysql> SET NAMES utf8; # just to emphasize that the connection charset is set to `utf8` Query OK, 0 rows affected (0.00 sec) mysql> UPDATE custfeeds.reactions SET reacted = 'super like ' WHERE id = 13015; Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> SELECT reactions FROM custfeeds.reactions WHERE id = 13015; +-------------+ | reactions | +-------------+ | super liked | +-------------+ 1 row in set (0.00 sec) mysql> SHOW WARNINGS; …[Read more]
Working with databases, concurrency control is the concept that ensures that database transactions are performed concurrently without violating data integrity.
There is a lot of theory and different approaches around this concept and how to accomplish it, but we will briefly refer to the way that PostgreSQL and MySQL (when using InnoDB) handle it, and a common problem that can arise in highly concurrent systems: deadlocks.
These engines implement concurrency control by using a method called MVCC (Multiversion Concurrency Control). In this method, when an item is being updated, the changes will not overwrite the original data, but instead a new version of the item (with the changes) will be created. Thus we will have several versions of the item …
[Read more]Recently we were evaluating MySQL 8 Enterprise for a customer. During our installation (our MySQL Enterprise Edition installations are always RPM based) using RPM file (CentOS Linux release 7.4.1708 (Core)) we ended up in a very unusual error, “error: Failed dependencies:pkgconfig(openssl) is needed by mysql-commercial-devel-8.0.11-1.1.el7.x86_64” , This was happening more specifically during the installation of “mysql-commercial-devel-8.0.11-1.1.el7.x86_64.rpm” . So decided to write this post about the error and how we fixed it.
[root@localhost MySQL8-Enterprise-RPM]# rpm -ivh mysql-commercial-server-8.0.11-1.1.el7.x86_64.rpm mysql-commercial-client-8.0.11-1.1.el7.x86_64.rpm mysql-commercial-libs-8.0.11-1.1.el7.x86_64.rpm mysql-commercial-common-8.0.11-1.1.el7.x86_64.rpm mysql-commercial-devel-8.0.11-1.1.el7.x86_64.rpm warning: mysql-commercial-server-8.0.11-1.1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, …[Read more]
This post is about setting up MySQL InnoDB Cluster with 5 nodes
on a sandbox deployment. Here, we focus on implementation
part, the core concepts will be explained in separate posts.
Prerequisites:
- MySQL Engine
- MySQL Shell
- MySQL Router
Deploying MySQL InnoDB Cluster involves the following steps:
- Deploying MySQL Engine (Sandbox Instance)
- Creating an InnoDB Cluster
- Adding nodes to InnoDB Cluster
- Configuring MySQL Router for High Availability.
- Testing High Availability.
Deploying MySQL Engine:
If the MySQL engines are already installed on all the nodes, you
can skip this step and directly move into creating an InnoDB
Cluster part.
I am deploying 5 Sandbox instances (which is in-built on MySQL
Shell application) on a same …
MySQL has multiple timeout variables these slides helps to give
an overview of the different timeout variables and their
purposes briefly.
Percona announces the release of Percona Server for MySQL 5.5.60-38.12 on May 18, 2018. Based on MySQL 5.5.60, including all the bug fixes in it, Percona Server for MySQL 5.5.60-38.12 is now the current stable release in the 5.5 series.
Percona Server for MySQL is open-source and free. Downloads are available here and from the Percona Software Repositories.
Bugs Fixed
-
mysqldumputility with--innodb-optimize-keysoption was incorrectly working with foreign …