In this blog post, I’d like to take a look at a few different things such as MySQL Group Replication, multi-instance MySQL setups on systemd and shell scripting the whole mess to make it easy to build, and easy to rebuild. To be honest, it took a little help from Shinguz’s blog to get the… Read More »
10 Older Entries »
It is a common auditing requirement to log user connection
events, including whether or not authentication was
There are a number of alternatives available for MySQL, but unfortunately there is no built-in functionality at the time of this writing. In this post we will discuss auditing MySQL users with McAfee plugin, which is available under GPL Version 2 license.
These apply to debian-based hosts, but instructions for red hat are similar.
1. Download latest plugin release from github.
At the time of this post for MySQL 5.5 you can get:
2. Decompress …[Read more]
I recently had the opportunity to test out Ansible’s ability to interact with docker containers. Some might ask why we would want Ansible to connect to running containers. Afterall, we can build the containers to our liking using ansible-container, or even mundane tools such as Docker’s Dockerfile. Also, we can link configuration files at runtime to override the container’s settings where appropriate.
The point, though, is to leverage Ansible’s capability as an orchestration tool.
As a very basic example, assume that you have plays for your non-docker environment to ensure MySQL users exist. How do you do that with Docker containers?
You have a few options:
- Assume you have users with appropriate privileges that can connect remotely, you can execute the Ansible plays locally to connect to MySQL over the …
gh-ost now supports hooks. These are your own executables that
gh-ost will invoke at particular points of interest
(validation pass, about to cut-over, success, failure, status,
gh-ost will set various environment variables for
your executables to pick up, passing along such information as
migrated/ghost table name, elapsed time, processed rows,
migrated host etc.
Sub-second lag control
At GitHub we're very strict about replication lag. We keep it
1 second at most times. …
“Isn’t it ironic that in 2016 a non-skilled user can find a web page from Google’s untold petabytes of data in millisecond time, but a highly trained SQL expert can’t do the same thing in a relational database one billionth the size?.–Jim Starkey.
I have interviewed Jim Starkey. A database legend, Jim’s career as an entrepreneur, architect, and innovator spans more than three decades of database history.
Q1. In your opinion, what are the most significant advances in databases in the last few years?
Jim Starkey: I’d have to say the “atom programming model” where a database is layered on a substrate of peer-to-peer replicating distributed objects rather than disk files. The atom programming model enables scalability, redundancy, high availability, and distribution not available in traditional, disk-based database …[Read more]
[something happened to this post and I am reposting it]
It was suggested by Monty that the posts I've made about MariaDB are for publicity. This simply isn't true. I would have much preferred a different outcome in my interactions with MariaDB. I figured that they would end up giving me a hard time, and I'd be stubborn and we'd both hate each other for as long as I could keep from leaving. A quick separation actually seems much better in such context. Regardless, I would have preferred to speak amicably to the MariaDB Corporation about switching the license back, or at least moving to the new license at the time of the notification of the community, ie, changing the license so that bug fixes for 1.3.4 were not mingled with new 2.0 features.
It could have been easily possible to have a 1.3.5 release that fixes the major bugs in 1.3 and then release a new set of features as 2.0. This would have been at least reasonable, but by …
Open Source is a whole-of-process approach to development that can produce high-quality products better tailored to users’ real world needs. A key reason for this is the early feedback cycle built into that complete process.
Simply publishing something under an Open Source license (while not applying Open Source development processes) does not yield the same quality and other benefits. So, not all Open Source is the same.
Publishing source of a product “later” (for instance when the monetary benefit has diminished for the company) is meaningless. In this scenario, there is no “Open Source benefit” to users whatsoever, it’s simply a proprietary product. There is no opportunity for the client to make custom modifications or improvements, or ask a third party to work on such matters – neither is there any third party opportunity to verify and validate either code …[Read more]
Monty announced that he has created a new non-open source license
called the "Business Source License" or BSL. I think it
should have a different name...
You see, Monty has fundamentally crafted a straw man to stand in for the general Open Source model by applying his experience in the dog-eat-dog world of forked software, in particular, the "ecosystem" of MySQL. The software that MariaDB draws the majority of their income from is MariaDB, which is a fork of MySQL. If you don't know the history, well, you see, SUN bought MySQL, Oracle bought Sun, and Monty, in an environment of nearly Biblical levels of FUD, forked MySQL into MariaDB (both products are named after his daughters).
While MariaDB was originally envisioned as a "drop in/drop out" replacement, it has diverged so far from the Oracle product that it is no longer even "drop in" with the latest versions of MySQL. Oracle is adding amazing new …
The behavior of vm.swappiness was always a bit confusing for novice linux users, as setting vm.swappiness to 0 would not completely disable swapping in the system during a memory crunch. vm.swappiness would only affect the agressiveness of swapping.
Following upstream commit tried to give more control to parameter. This commit tried to avoid swapping completely when vm.swappiness is set to 0.
Author: Satoru Moriya
Date: Tue May 29 15:06:47 2012 -0700
mm: avoid swapping out with swappiness==0
With above commit, setting vm.swappiness to “0” instructs the
kernel not to initiate swapping until the amount of free and
file-backed pages is less than the high water mark in a memory
zone. In other words, it tries to reclaim as much memory that can
be reclaimed, before swapping starts.
This greatly reduced the chances of swapping.
When this …[Read more]
This blog is a 2nd part of a multi-part series on areas of failover for MySQL. The first installment looked at design considerations, giving us a “thinking” perspective on what we might want to adopt. Later I will take a look at more of a business and operational way of thinking through these details. In… Read More »
10 Older Entries »