MySQL can be used as a NoSQL JSON Document Store as well as a
traditional relational database. Before the MySQL Document
Store you needed a DBA, or someone acting as one, to set up the
schema to hold the tables and the tables according to how the
data was arranged (and the indexes, constraints, and all the
other stuff RDMS are known for). This was great for cases when
you know exactly what the data looks likes, there are no changes
to the structure of that data, and once things are set they go
one that way forever.
But what about projects where change is constant, or where making
changes to accommodate but keeping the old stuff as already
formatted is needed? That is a perfect case for the MySQL
Document Store.
MySQL w/o SQLSo you can connect to the server, create a schema,
create a document collection, and store data without once using
SQL.
This video shows you a simple example of …
Recently, we were affected by an ignored configuration option introduced in MySQL 5.6. This incident caused us to perform extended planning of downtime and the rebuilding of the slave. In this post, we’ll discuss our encounter with binlog_error_action and likely bad default.
The incident started with an alert from our monitoring platform that a check failed to verify a MySQL master’s binary log coordinates. My colleague working from the other side of the globe observed the following:
mysql> show master status; Empty set (0.00 sec) mysql> show binary logs; ERROR 1381 (HY000): You are not using binary logging
Interestingly, the MySQL slave was still reporting that everything was okay!
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master
Master_User: …[Read more]
In this blog, I want to evaluate Group Replication Scaling capabilities to handle several writers, that is, when the read-write connection is established to multiple nodes, and in this case, two nodes. This setup is identical to my previous post, Evaluating Group Replication Scaling Capabilities in MySQL.
For this test, I deploy multi-node bare metal servers, where each node and client are dedicated to an individual server and connected between themselves by a 10Gb network.
I use the 3-nodes Group Replication setup.
Hardware specifications:
System | Supermicro; SYS-F619P2-RTN; v0123456789 (Other)
Service Tag | S292592X0110239C
Platform | Linux
Release | Ubuntu 18.04.4 LTS (bionic)
Kernel | 5.3.0-42-generic
Architecture | CPU = 64-bit, OS = 64-bit
Threading | NPTL 2.27 …[Read more]
March is not only the month when a pandemic closed all borders and people had to stay home on the quarantine; it’s also the month when daylight saving time change happens. For some regions, this is not only a time change but also a switch to a different timezone. For example, New York uses EST during winter and EDT during summer. If you use the system timezone and do not restart the MySQL server or a PXC node after the switch, you may notice that the change was not implemented.
You may end up with a situation where some of your cluster nodes still use the time zone before the switch (e.g. EST) and others use the timezone after the change (e.g. EDT).
$ date Sun Mar 8 03:03:28 EDT 2020 $ ./bin/mysql -h127.0.0.1 -P3373 -uroot test ... EDT node> show variables like '%zone%'; …[Read more]
In this blog, I am going to share the MySQL 8 InnoDB architecture diagram with related variables . From the MySQL official document I have seen some InnoDB variables related to MySQL 8.0.20 . The architecture has been prepared based on that . Also, I am providing the variables list which used in this diagram and its respective versions .
MySQL 8 InnoDB Architecture :
- For understand the diagram better , I have added some old variables as well ( sync_binlog / innodb_log_buffer / innodb_flush_log_at_trx_commit / innodb_flush_method etc .. )
- I have marked the MySQL 8 variables with yellow colour .
MySQL 8 variables :
- innodb_buffer_pool_in_core_file ( 8.0.14 )
- …
“unprecedented”, “difficult”, “challenging”, “current situation” – are just some of the most commonly heard words to describe what is going on in the world right now and it’s fair to say there probably isn’t any other way to describe it.
Continuent has been a fully remote working company since its inception, and I have been part of the team for coming up to 5 years, so for me, the usual Monday to Friday “9-to-5” feeling is no different; but for those facing this for the first time, it can present challenges and a change of approach to how you work.
In this blog I want to cover a few of the approaches I found that made the transition easier for me, but also look at the technical side and what we at Continuent use to conduct our day to day business and Keep the Lights on.
Work at home or home at work?
The single most important thing when working from home is ensuring you …
[Read more]In this blog, I want to evaluate Group Replication Scaling capabilities in cases when we increase the number of nodes and increase user connections.
For testing, I will deploy multi-node bare metal servers, where each node and client are dedicated to an individual server and connected between themselves by a 10Gb network.
Also, I will use 3-nodes and 5-nodes Group Replication setup.
Hardware specifications:
System | Supermicro; SYS-F619P2-RTN; v0123456789 (Other)
Service Tag | S292592X0110239C
Platform | Linux
Release | Ubuntu 18.04.4 LTS (bionic)
Kernel | 5.3.0-42-generic
Architecture | CPU = 64-bit, OS = 64-bit
Threading | NPTL 2.27
SELinux | No SELinux detected
Virtualized | No virtualization detected
# Processor ##################################################
Processors | physical = 2, cores = 40, virtual = 80, hyperthreading = yes
Models | 80xIntel(R) Xeon(R) Gold 6230 CPU @ …[Read more]
In the previous post, we setup a Drupal website with MySQL as backend on a different compute instance in a different subnet.
Today we will increase the High Availability of our Database by transforming this single MySQL instance into a MySQL InnoDB Cluster!
The architecture will be the following:
We will use 2 different Availability Domains (AD), of course we could have used 3, it’s up to you.
We will install MySQL Router on the Application Server as advised, and we will modify our Drupal’s configuration to connect locally on the R/W port of the MySQL Router.
You will see that this is very easy to achieve, the most …
[Read more]This is a three-part blog series that focuses on dealing with an unexpected high traffic event as it is happening. Part one can be found here, and part two can be found here. 13. Configure MySQL Server Properly
Complexity:Medium
Potential Impact: High
A poorly configured MySQL Server can cause severe issues, especially under high load during a traffic spike, yet getting the basics right is not that hard. While MySQL Server has more than 400 variables you can tune, you rarely need to change more than 10-20 of them to get 95% of the possible performance for your workload.
…
[Read more]By and large this would be a topic of interest for most of us including me when I started to explore this space. Before we dwell into the numbers let’s first understand some basic differences between 2 architectures. Beyond being CISC and RISC let’s look at the important differences from MySQL perspective.
- Strong vs Weak memory model (weak memory model needs proper memory barrier while writing lock-free code).
- Underlying hardware specific specialized instructions. For example: both now support crc32c hardware instructions but being low-level they are different ways to invoke them. For more differences checkout for x86-SSE/ARM-ACLE.
- Cache Line differences. Most of the ARM processors tend to use bigger cache lines (128 bytes for all caches or a mix of 64/128 bytes).
- Other sys-call level differences like: absence of PAUSE instructions with ARM and substitute instruction with very low latency …