Three weeks ago, I released the Pluto Beta of Planet for the MySQL Community. Since then, a few things changed and I think it is worth doing an update to the Ecosystem. The change I am the most happy about is that Ivan Groenewold started helping with the project (you can find him in the people of the oursqlcommunity.org GitHub organization). So Planet for the MySQL Community is
Data SRE – Building Database Systems Infrastructure Operations for Performance and Reliability
Recently ( on Friday, 5 June 2020 – 06:00 PM PDT to 06:45 PM PDT ) our Founder and Principal ( Shiv Iyer ) did a webinar on building Database Systems Infrastructure Operations for Performance and Reliability. In this webinar, he discussed about capacity planning / sizing, observability & resilience, performance audit / health-check / diagnostics / forensics, performance optimization & tuning and building highly available / fault-tolerant / self-healing systems architecture. You can download the PDF of the webinar here . Thanks for joining the webinar and making it a success, Looking forward to seeing you all in the next webinar.
…
[Read more]
A common MySQL strategy to perform updates with accumulating
functions is to employ user-defined variables, using the
UPDATE [...] SET mycol = (@myvar := EXPRESSION(@myvar,
mycol))
pattern.
This pattern though doesn’t play well with the optimizer (leading to non-deterministic behavior), so it has been deprecated. This left a sort of void, since the (relatively) sophisticated logic is now harder to reproduce, at least with the same simplicity.
In this article, I’ll have a look at two ways to apply such logic: using, canonically, window functions, and, a bit more creatively, using recursive CTEs.
[Read more]
Backup of Database is the pillar of our system which is necessary
and mandatory to provide us data incase of crash, new machine
provisioning and many other scenarios listed here.
As part of the backup process, a snapshot is taken, and the data
is transferred to the Recovery Services vault with no impact on
production workloads. The snapshot provides different levels of
consistency, as described below:1. Application-consistent:
App-consistent backups capture memory content and pending I/O
operations. App-consistent snapshots use a VSS writer (or
pre/post scripts for Linux) to ensure the consistency of the app
data before a backup occurs.When you're recovering a VM with an
app-consistent snapshot, the VM boots up. There's no data
corruption or loss. The apps start in a consistent state.2.
File-system consistent: File-system consistent backups
provide consistency …
Recently we have setup Orchestrator in High Availability mode using RAFT. We are
running a 3 node setup in which there used to be a leader and
rest 2 are Healthy raft member.
So To access orchestrator service we may only speak to the leader
node using /api/leader-check as HTTP health check for our
proxy. This url returns http 200 on leader …
First I want to thank everyone who attended my May 21, 2020 webinar “How Safe is Asynchronous Master-Master Setup in MySQL?“. Recording and slides are available on the webinar page.
Here are answers to the questions from participants which I was not able to provide during the webinar.
Q: What do you generally think of hosting Relational Databases on VM’s as opposed to Bare metals?
A: With modern hardware and modern virtual machines this is absolutely possible. I know about many successful high loaded applications that run MySQL on VMs.
Just note that running a few VMs on a single physical machine may lead to resource loss rather than saving. For …
[Read more]We are proud to announce that Percona was selected as a participating organization for the Google Summer of Code (GSoC) 2020 program, this is our second year as a participating org with the GSoC program.
GSoC is a great program to involve young student developers in
open source projects. We participated in the program in 2019 for
the first time and we were really happy and satisfied with the
results.
Percona Platform Engineering team decided to participate again
for the 2020 program and we are glad and really happy to inform
you that we were selected and welcome the student to work with
our team during the summer of 2020 on their GSoC Project.
Preparations
We started planning for GSoC around November-December 2019, with the help from our Product Management team, we were able to shortlist a few ideas which we thought were really the right fit for …
[Read more]
Constraint Checks that actually checked the constraints were
introduced last year with MySQL 8.0.16 and they really do help
you keep bad data out of your database. I have found them
very handy in the past year but today I spotted a question on a
website about how to remove a Constraint Check.
What is a Constraint Check?It is an integrity check. In the
following example a constraint is set up to make sure the calues
of the column 'is' are greater than one hundred.
CREATE TABLE c1 (id INT NOT NULL,
CONSTRAINT id_gt_100 CHECK (('id' >
100))
);
A simple test with a value in range runs perfectly fine.
INSERT INTO c1 (id) VALUES (10000);
Query OK, 1 row affected (0.0037 sec)
But you will receive an error if the value of 'is' is less
than 100.
INSERT INTO c1 (id) …
In systems nowadays, improving security is a must! One of the weakest links in the security system is the user password from where an attacker can enter. In order to improve password strength and security, MySQL provides a plugin called “Validation plugin” which can be configured to enforce a set of rules for passwords.
Installation
The plugin can be enabled by executing the following at runtime:
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
Or by adding the plugin in the configuration file, but this requires bouncing MySQL for it to take effect:
[mysqld] plugin-load-add=validate_password.so
It’s also suggested to add the following variable in my.cnf so that the plugin cannot be removed at runtime (also requires a MySQL bounce to take effect):
[mysqld] validate-password=FORCE_PLUS_PERMANENT
Checking Installation
…[Read more]