MySQL is the world’s most popular open source database. Sphinx allows MySQL users to search text (and more) at scale, without choking-out their favorite database. It’s a match made in the big data heavens. So, it shouldn’t be a surprise that this year, like many years before, we’ll be heading to the Percona Live MySQL [...]
Yesterday we released TokuDB v7.1.5, which includes the following important features and fixes:
- Upgraded MySQL and MariaDB to version 5.5.36.
- Six months of performance improvements to our underlying Fractal Tree indexing.
- Fixes for bugs, stalls, and behavioral issues reported by users.
- Fixes for issues identified by the addition of Random Query Generator (RQG) testing.
- Fixes for issues identified by the addition of Valgrind testing.
- Full details on the changes in TokuDB v7.1.5 can be found in the release notes section of the TokuDB User’s Guide, available from our documentation page.
As always, you can download the Community and Enterprise Editions from the …
[Read more]With many apologies to David Bowie, come 2009 it was my 5 year anniversary with Sun (well, MySQL AB and then Sun). Companies tend to like to talk about how they like to retain employees and that many employees stay with the company for a long time. It is very, very expensive to hire the right people, so this is largely a good plan.
In 2009, it was five years since I joined MySQL AB – something I didn’t quite originally expect (let’s face it, in the modern tech industry you’re always surprised when you’re somewhere for more than a few years).
The whole process of having been with sun for 5 years seemed rather impersonal… it largely felt like a form letter automatically sent out with a certificate and small badge (below). You also got to go onto a web site and choose from a variety of gifts. So, what did I choose? The one thing that would be useful at Burning Man: a camelbak.
…
[Read more]March 11, 2014 By Severalnines
For ops folks with multiple environments and instances to manage, a fully programmable infrastructure is the basis for automation. ClusterControl exposes all functionality through a REST API. The web UI also interacts with the REST API to retrieve monitoring data (cluster load, alarms, backup status, etc.) or to send management commands (add/remove nodes, run backups, upgrade a cluster, add/remove load balancer, etc.). The API is written in PHP and runs under Apache. The diagram below illustrates the architecture of ClusterControl.
Figure: ClusterControl - Agentless Architecture
In this blog post, we will show you how to interact directly with the ClusterControl API to retrieve monitoring data or to perform management tasks.
All requests against …
[Read more]
TL;DR version: The backup locks feature introduced in Percona
Server 5.6.16-64.0 is a lightweight alternative to FLUSH
TABLES WITH READ LOCK and can be used to take both
physical and logical backups with less downtime on busy servers.
To employ the feature with mysqldump, use
mysqldump --lock-for-backup --single-transaction.
The next release of Percona XtraBackup will also be using backup
locks automatically if the target server supports the
feature.
Now on to the gory details, but let’s start with some history.
In the beginning…
In the beginning there was FLUSH TABLES, and users
messed with their MyISAM tables under a live server and were not
ashamed. Users could do nice things like:
mysql> FLUSH TABLES; # execute myisamchk, myisampack, backup / restore some tables, etc.
And users were happy until someone realized that tables must be …
[Read more]Problem
Using MySQL Connector/Python, you are calling a stored procedure which is also selecting data and you would like to fetch the rows of the result.
Solution
For this example we create a stored procedure which is executing SHOW SLAVE STATUS.
cnx = mysql.connector.connect(user='scott', password='tiger',
database='mining')
cur = cnx.cursor()
cur.execute("DROP PROCEDURE IF EXISTS slave_status")
proc = "CREATE PROCEDURE slave_status () BEGIN SHOW SLAVE STATUS; END"
cur.execute()
cur.call("slave_status")
for result_cursor in cur.stored_results():
for row in result_cursor:
print(row[0])
The result from the above would be:
shell> python foo.py Waiting for master to send event
Discussion
The stored_results() method of …
[Read more]This is the 8th installment in the rather long series that started with Part 1 about a month ago.
Back in 2006, we were in the situation where MySQL 5.0 had taken forever, and the first “GA” release was not suitable for production. Looking towards MySQL 5.1, it was also unlikely to be out any time soon. The MySQL Cluster team had customers that needed new features in a stable release. The majority of users didn’t use the MySQL server at all, they directly used the C++ NDB API for the vast majority of queries – so the vast majority of release blocker bugs in the MySQL server would not affect the production readiness of MySQL Cluster for these customers.
So, the decision was wisely made to do separate releases from a separate tree for MySQL Cluster. This was named MySQL Cluster: …
[Read more]
Many people think buffered write (write()/pwrite()) is fast
because it does not do disk access. But this is not always true.
Buffered write sometimes does disk access by itself, or waits for
some disk accesses by other threads. Here are three common cases
where write() takes longer time (== causing stalls).
1. Read Modify Write Suppose the following logic. Opening
aaa.dat without O_DIRECT/O_SYNC, writing 1000 bytes sequentially
for 100,000 times, then flushing by fsync().
fd=open("aaa.dat", O_WRONLY);
for(i=0; i< 100000; i++) {
write(fd, buf, 1000);
}
fsync(fd);
You might think each write() will finish fast enough (at
least less than 0.1ms) because it shouldn't do any disk access.
But it is not always true.
Operating System manages I/O by page. It's 4KB for most
Linux environments. If you'd modify 1000 bytes of the 4KB page
from offset 0, Linux first needs to read the 4KB …
The MariaDB project is pleased to announce the immediate availability of MariaDB 10.0.9. This is a Release Candidate release.
Among other changes, XtraDB is now the default InnoDB implementation, Oracle’s InnoDB is included as a plugin and can be dynamically loaded if desired. Packages for Ubuntu 14.04 “trusty” and Debian “Sid” have also been added to the MariaDB Ubuntu and Debian repositories.
See the Release Notes and Changelog for detailed information on this release and the …
[Read more]MySQL’s Performance Schema is an incredibly rich and versatile instrumentation engine, but apparently, with great power, comes increased complexity for the user to understand up front.
I think this is pretty natural:
- The more flexibility you provide to the user on what to monitor (and this is one of the major goals of Performance Schema) – the more there is to twiddle from a configuration perspective.
- The more data we provide in as generic a ways as possible – the more data there is.
Performance Schema is also only going to grow over time. There are many many missing bits of instrumentation within MySQL that users want us to add, and for the most part, most of those new things are now going in to Performance Schema. Things such as memory …
[Read more]