In this blog I will go through a number of popular applications
that use
NDB Cluster 8.0 and also how these applications have developed
over the
years.
There is a presentation at slideshare.net accompanying this
blog.
The first major NDB development project was to build a prototype
of a
number portability application together with a swedish telecom
provider.
The aim of this prototype was to show how one could build
advanced
telecom applications and manage it through standardised
interfaces.
The challenge here was that the telecom applications have
stringent
requirement, both on uptime and on latency. If the database
access
took too long time the telecom applications would suffer
from
abandoned calls and other problems. Obviously the uptime of
the …
The latest from the MySQL community
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
In this post I’ll expand on the subject of my MySQL pre-FOSDEM talk: what dbadmins need to know and do, when upgrading from MySQL 5.7 to 8.0.
I’ve already published two posts on two specific issues; in this article, I’ll give the complete picture.
As usual, I’ll use this post to introduce tooling concepts that may be useful in generic system administration.
The presentation code is hosted on a GitHub repository (including the …
[Read more]Recently one of our client approach Mydbops with Query slowness on a MySQL environment . They deployed the new code for generate the huge reports for the year end analytics data . After the deployment the queries were extremely slow and they struggled lot , then they approached us for the solution. After the analysis, their OLAP database as expected it was IO bound with 100% disk IOPS utilised during the report generation. So, the queries were starving for the Disk IO slows the process .
Problem statement :
- Reports are majorly focused on two larger log tables ( emp_Report_model , emp_details ) .
- The report generator (procedure) is using the count(*) statement to stimulate the aggregated data on each call. It is required for their business purpose .
- Count(*) is terribly slow in MySQL ( Using MySQL 5.7 ) as it …
Galera is the best solution for High Availability, It is being used by many peoples world wide . Galera is doing synchronous replication ( really it is Certification based replication ) to keep update the data on group nodes . In this blog I have explained about “How the Galera replication works?” . For the better understanding, I have made an architecture diagram to describe the replication flow . I have also provided the explanation for the key words which has used in the architecture diagram .
Architecture flow Diagram :
What is writeset ?
Writeset contains all changes made to the database by the transaction and append_key of the changed rows .
What is append_key ?
Append_key registers the key of the changed data by the transaction. The key for rows can be represented in three parts as DATABASE NAME, TABLE NAME, PRIMARY KEY . …
[Read more]Overview The Skinny
In this blog post we explore various options for tuning MySQL traffic routing in the Tungsten Connector for better control of the distribution.
A Tungsten Cluster relies upon the Tungsten Connector to route client requests to the master node or optionally to the slaves. The Connector makes decisions about where to route requests based on a number of factors.
This blog post will focus on the Load Balancer algorithms available via configuration that allow you to adjust the routing behavior of the Connector, along with ways to debug the Connector Load Balancer’s routing decisions.
The Question Recently, a customer asked us:
How do I know which load balancer algorithm is in use by the Connector? And how do we enable debug logging for the Connector load balancer?
…[Read more]
How to Deploy MySQL InnoDB Replica Set in Production?
Before i talk about Deployment process of MySQL InnoDB Replica Set , it is more important to know below details:-
- What is MySQL InnoDB Replica Set?
- What is prerequisite and limitation of using MySQL Replica Set?
- In what kind of scenarios MySQL Replica Set is not recommended.
- How to configure and deploy MySQL Replica Set- (step by step guide )
- How to use InnoDB Replica Set?
- What if Primary goes down? Does select query re-routed to another server?
- What if Secondary goes down while executing select queries?
§ I will answer these all question in this blog.
What is Replica Set ?
MySQL InnoDB ReplicaSet a quick and easy way to get MySQL replication(Master-Slave), making it well suited …
[Read more]In this post, I am going to show you how to run Orchestrator on FreeBSD. The instructions have been tested in FreeBSD 11.3 but the general steps should apply to other versions as well.
At the time of this writing, Orchestrator doesn’t provide FreeBSD binaries, so we will need to compile it.
Preparing the Environment
The first step is to install the prerequisites. Let’s start by installing git:
[vagrant@freebsd ~]$ sudo pkg update Updating FreeBSD repository catalogue... Fetching meta.txz: 100% 944 B 0.9kB/s 00:01 Fetching packagesite.txz: 100% 6 MiB 492.3kB/s 00:13 Processing entries: 100% FreeBSD repository update completed. 31526 packages processed. All repositories are up to date. [vagrant@freebsd ~]$ sudo pkg install git Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. New …[Read more]
In the past year, GitHub engineers shipped GitHub Packages, Actions, Sponsors, Mobile, security advisories and updates, notifications, code navigation, and more. Needless to say, the development pace at GitHub is accelerated.
With MySQL serving our backends, updating code requires changes to the underlying database schema. New features may require new tables, columns, changes to existing columns or indexes, dropping unused tables, and so on. On average, we have two schema migrations running daily on our production servers. Some days we have a half dozen migrations to run. We’ll cover how this amounted to a significant toil on the database infrastructure team, and how we searched for a solution to automate the manual parts of the process.
At first …
[Read more]
Using numbers produced already with MySQL Cluster 7.6.10 we
have
shown that NDB Cluster is the world's fastest Key-Value store
using
the Yahoo Cloud Serving Benchmark (YCSB) Workload A.
Presentation at Slideshare.net.
We reached 1.4M operations using 2 Data Nodes and 2.8M
operations
using a 4 Data Node setup. All this using a standard JDBC
driver.
Obviously using a specialised ClusterJ client will improve
performance
further. These benchmarks was executed by Bernd Ocklin.
The benchmark was executed in the Oracle Cloud. Each Data Node
used
a Bare Metal Server using DenseIO which have 52 CPU cores
with
8 NVMe drives.
The MySQL Servers and Benchmark clients was executed on Bare
Metal
servers with 2 MySQL Server per server (1 MySQL Server per …
This blog is the first part of a two-articles series. In this article, I’m going to introduce the Common Table Expression (CTE), a new feature available on MySQL 8.0, as well as Percona Server for MySQL 8.
What is a Common Table Expression?
We can define a CTE as an alternative to a derived table. In a small way, CTE simplifies complex joins and subqueries, improving the readability of the queries. CTE is part of ANSI SQL 99 and was introduced in MySQL 8.0.1. The same feature is available even on Percona Server for MySQL 8.0.
The main reasons for using CTE are:
- Better readability of the queries
- Can be referenced multiple times in the same query
- Improved performance
- A valid alternative to a VIEW, if your user cannot create VIEWs
- Easier chaining of multiple CTE …