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 latest from the MySQL community
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
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
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
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
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
Well, every now and then, when we began to start a new project or
app, which has some data storage requirement, we have a deep
intriguing thought as to how best represent the data structure so
as to support a variety of needs including but not limited to
(ACID rules):
1. Normalization
2. Reliability
3. Consistency
4. And many others
Below, I provide a set of steps which you can follow to arrive at
a data model that correctly suites your requirements.
Steps:
1. Identify the project or app requirements /
specifications and business rules which tell you what your app
will be able to do when it is ready.
2. From these business rules, identify possible objects
for each business rule and mark them in a paper using rectangular
sections like authors, posts etc.
3. Once you have recognized the …
As many of you already know, PLMCE is an annual MySQL
community conference and Expo organized by Percona in the month
of April
(usually). It is a great conference, not only to meet new and
eminent people in
MySQL and related database fields, but also to attend interesting
talks, and
also to give some.
This year I spoke about synchronous replication at a higher
level. The talk was
titled “ACIDic Clusters: Review of current relational
databases with synchronous replication”. Having previously
given talks with boring titles (but interesting content), this
time I decided to go with an interesting title, and it seemed to
fit well with topic being discussed.
…
Read the original article at MySQL needs single master to check data integrity
MySQL slaves can drift out of sync. Many of our clients are surprised to find some data differences in their replication topology, once we do some checking and sniffing around. Such checks require a single reliable or authoritative master to compare against. Click through to the end for multi-master solutions that work with MySQL. Reason [...]
For more articles like these go to Sean Hull's Scalable Startups
Related posts:
[Read more]“For analytical things, eventual consistency is ok (as long as you can know after you have run them if they were consistent or not). For real world involving money or resources it’s not necessarily the case.” — Michael “Monty” Widenius. In a recent interview, I asked Justin Sheehy, Chief Technology Officer at Basho Technologies, maker [...]
As an instructor with Percona I’m sometimes asked about the
differences between the READ COMMITTED and REPEATABLE READ
transaction isolation levels. There are a few differences
between READ-COMMITTED and REPEATABLE-READ, and they are all
related to locking.
Extra locking (not gap locking)
It is important to remember that InnoDB actually locks index
entries, not rows. During the execution of a statement InnoDB
must lock every entry in the index that it traverses to find the
rows it is modifying. It must do this to prevent deadlocks and
maintain the isolation level.
If you run an UPDATE that is not well indexed you will lock many rows:
update employees set store_id = 0 where store_id = 1; ---TRANSACTION 1EAB04, ACTIVE 7 sec 633 lock struct(s), heap size 96696, 218786 row lock(s), undo log entries 1 MySQL thread id 4, OS thread handle 0x7f8dfc35d700, query id 47 localhost root …[Read more]