I have known for some times that there is an interesting improvement in MySQL 8.0.17 regarding GTID Crash Safety, but I have not had the time nor the need to look into it before. When writing my last post (Understanding MySQL Replication "fatal error 1236": [...]), I saw something interesting related to this, and it is now time to cover this on my blog. From my point of view, this change is very interesting, but the documentation about it should be improved (and more), so there will be bug reports. Let's explore all this.
Showing posts with label Consistency. Show all posts
Showing posts with label Consistency. Show all posts
Tuesday, August 4, 2026
MySQL 8.0.17 GTID Crash Safety Improvement
Labels:
Bugs,
Consistency,
Data Loss,
dbdeployer,
Documentation Bugs,
GTID,
InnoDB,
MySQL 8.0,
MySQL 8.0.17,
Replication
Tuesday, July 16, 2019
MySQL Master Replication Crash Safety Part #5a: making things faster without reducing durability - using better hardware
This is a follow-up post in the MySQL Master Replication Crash Safety series. In the previous posts, we explored the consequences of reducing durability on masters (different data inconsistencies after an OS crash depending on replication type) and the performance boost associated with this configuration (benchmark results done on Google Cloud Platform / GCP). The consequences are summarised in the introduction of Part #4, and the tests are the subject of this last post. Also in this last post, I mentioned that my results for high durability are limited by the sync latencies of GCP persistent disks. As I found a system with better latencies, I am able to present new results. And this system is a vm in Amazon Web Services (AWS) with local SSD.
Labels:
ACID,
Amazon Web Services,
AWS,
Benchmarks,
Consistency,
Durability,
GCP,
Google Cloud Platform,
hardware,
Master Replication Crash Safety,
MySQL,
Replication,
sysbench
Tuesday, July 9, 2019
MySQL Master Replication Crash Safety Part #4: benchmarks of high and low durability
This is a follow-up post in the MySQL Master Replication Crash Safety series. In the three previous posts, we explored the consequence of reducing durability on masters (including setting sync_binlog to a value different from 1). But so far, I only quickly presented why a DBA would run MySQL with such configuration. In this post, I present actual benchmark results. I also present a fundamental difference between on-premise servers and cloud virtual machines as my tests are done in Google Cloud Platform (GCP). But before going further, let's summarise the previous posts.
Labels:
ACID,
Amazon Web Services,
AWS,
Benchmarks,
Consistency,
Durability,
GCP,
Google Cloud Platform,
Master Replication Crash Safety,
MySQL,
Replication,
Replication Crash Safety,
sysbench
Tuesday, February 12, 2019
MySQL Master Replication Crash Safety Part #3: GTID
This is a follow-up post in the MySQL Master Replication Crash Safety series. In the two previous posts, we explored the consequence of reducing durability on masters (including setting sync_binlog to a value different than 1) when slaves are using legacy file+position replication. In this post, we cover GTID replication. This introduces a new inconsistency scenario with a potential replication breakage that depends on transaction execution on the master and timing on the slave. Before discussing this violation of ACID, we start with some reminders about the last posts and with some explanations about GTIDs.
Labels:
ACID,
Binlog Server,
Consistency,
Durability,
GTID,
MariaDB Server,
Master Replication Crash Safety,
MySQL,
Replication
Thursday, November 15, 2018
MySQL Master Replication Crash Safety Part #2: lagging slaves
This is Part #2 of the MySQL Master Replication Crash Safety series. In the previous post, we explored the consequence of reducing durability on masters with slaves using legacy file+position replication. The consequences are data inconsistencies with a clear warning sign: the slaves stop replicating and report an error. In this post, we extend our understanding of the impact of running a master with sync_binlog != 1 by considering lagging slaves that are using file+position replication. This introduces a new inconsistency scenario without replication breakage, which is trickier to detect. But let's start with some reminders.
Labels:
ACID,
Consistency,
Durability,
Master Replication Crash Safety,
MySQL,
Replication
Tuesday, October 30, 2018
On the consequences of sync_binlog != 1 (part #1)
A well-known performance booster in MySQL is to set sync_binlog to 0. However, this configuration alone comes with serious consequences on consistency and on durability (the C and D of ACID); I explore those in this series. In this post, I give some background on the sync_binlog parameter and I explain part of the problem with setting it to 0 (or to a value different from 1). The other problems — including the behaviour with GTIDs (I am limiting the current scope to legacy file + position replication) — and some solutions are the subject of the upcoming posts.
Labels:
ACID,
Consistency,
Durability,
HighLoad++ Moscow,
Master Replication Crash Safety,
MySQL,
Percona Live Frankfurt,
Replication
Subscribe to:
Posts (Atom)