Showing entries 15103 to 15112 of 44106
« 10 Newer Entries | 10 Older Entries »
On the clarity of licensing

Being clear in licensing is a great benefit to users. I’m quite proud that with Drizzle we got to a really simple situation:

  • server is GPLv2
  • client libraries are BSD licensed and are fresh implementations

We had the complete okay from Sun to have libdrizzle be BSD licensed and for us to work on that.

On learning InnoDB: A journey to the core

I’ve been using InnoDB for about a decade now, and up to now have understood it well enough to make it do what I wanted, most of the time. However in order to achieve some goals related to efficiency, I’ve found it necessary to take my understanding to the next level. Unfortunately, the InnoDB documentation was pretty lacking in clear explanations of InnoDB’s internal data structures. Reading the code turned out to be the only way to find the information I needed.

However I quickly found that the structures and their usage (and especially their inter-relationships) are way too complex to keep in your head just based on reading the code. Additionally it’s only really possible to hope you’ve understood the structure correctly just based on reading (and for me, there were a lot of misunderstandings along the way).

An approach I’ve long taken to understanding something that is complex and poorly documented is the …

[Read more]
MySQL RDS 'GoSH' is broken

RDS has created some basic tooling for looking at the internal status variables within MySQL called Global Status History or "GoSH" though unfortunately the tooling is broken.

The tooling, detailed at the following link here is meant to snapshot the output of "show status" and squirt the data into a table in the MySQL schema called mysql.rds_global_status_history.

The issue is that the bootstrapped event called 'ev_rds_gsh_collector' is missing and therefore the procedures to enable the snapshotting fail.

It appears that whenever an RDS instance is started (or bounced) the contents of the 'mysql' schema is re-created - therefore the injection of the row into the event table is missing from whatever init script AWS has.

To 'fix' GoSH you can …

[Read more]
Benchmarking ProxySQL 1.4.4

Comparing ProxySQL 1.4.3 vs. 1.4.4

ProxySQL 1.4.4 has recently been released (GA on Dec 20, 2017) which naturally leads to the question “What performance gains are to be expected when moving to the new version?”. In this article we compare performance between 1.4.3 and 1.4.4 in a CPU bound workload. The instances are configured with the default settings for the initial benchmark and then again after tuning one specific variable, mysql-max_stmts_per_connection, which can lead to substantial performance gains.

Lets first discuss what the ProxySQL variable mysql-max_stmts_per_connection affects and how it is evaluated. ProxySQL maintains a counter for each backend connection which increments each time a statement is prepared on that connection. Just before the connection is returned to the pool, this counter is evaluated against mysql-max_stmts_per_connection, and if the threshold is …

[Read more]
Untrusted downloads and MySQL

When the MySQL version from your distribution isn't good enough you need to download the latest Oracle MySQL. There are more possibilities like Percona Server and MariaDB, but that's not what this post is about.

The dowload site for MySQL is https://www.mysql.com/downloads/mysql/ and contains to a mirror.php script which ask you if you like to login with a Oracle Web Account and then chooses a mirror for you. You don't have to login. Then you will be redirected to the chosen mirror. In my case this is https://cdn.mysql.com

Firefox will give you a "This Connection is Untrusted" dialog. If you click on "Technical details" it will show the following error:

cdn.mysql.com uses an invalid security certificate.

The certificate is only valid for the following names:
  a248.e.akamai.net , *.akamaihd.net , …

[Read more]
Determining the Universal Scalability Law’s coefficient of performance

If you’re familiar with Neil Gunther’s Universal Scalability Law, you may have heard it said that there are two coefficients, variously called alpha and beta or sigma and kappa. There are actually three coefficients, though. See?

No, you don’t see it — but it’s actually there, as a hidden “1″ multiplied by N in the numerator on the right-hand side. When you’re using the USL to model a system’s scalability, you need to use the C(1), the “capacity at one,” as a multiplier. I call this the coefficient of performance. It’s rarely 1; it’s usually thousands.

To illustrate why this matters, consider two systems’ throughput as load increases:

The green line and the blue line are both linearly scalable systems. Add twice the concurrency, get twice the throughput. But the slope of the lines is different. The green system can do three times as much work as the blue system, even though it’s no more …

[Read more]
Who is using Galera Cluster?

A common question, especially for a new technology like Galera, is always that people want to know who else is already using the technology. In terms of sales this is often called reference customers. Over the last year we've seen some case studies and press releases regarding business critical Galera option, so I have now collected all of those to our website's User Stories section.

Some highlights of the newly added user stories include:

GuteFrage.net is a German language Question & Answer site and ranks as Germany's 3rd most popular website. They moved to Percona XtraDB Cluster to mitigate operational issues caused by their previous HA solution, and after half a year in production have been happy to see the problems solved.

[Read more]

Effective MySQL: Replication Techniques in Depth
Ronald Bradford
Oracle Press
270 pages

Effective MySQL: Replication Techniques in Depth

Ronald Bradford has a way of distilling a great deal of information into eight chapters unlike any otehr author on MySQL. Replication has been one of the more popular features of MySQL, allowing it to blossom into environments ranging from the simplest to the awesomely complex. Usually replication is simple, predictable, and easy to manage. But this book is written for the MySQL DBA on the front lines looking for better, more resilient way of keeping data flowing. This is the latest of a series of books that cover one aspect of MySQL in a concise, no-fluff fashion. But what is …

[Read more]
MySQL 5.6 Delayed Replication – Making a Slave Deliberately Lag Behind a Master

In the majority of MySQL replication scenarios, you want your slave databases to be a mirror of your master databases. You usually don’t want your slave to be behind your master by more than a few seconds – and your main goal is for your slave to always be in sync with your master. Would you ever want your slave to deliberately be a few seconds, minutes or even hours behind your master? There have been several suggestions from MySQL users over the years regarding this functionality as “feature request” (even though most of the requests were submitted as MySQL “bugs”, which was the easiest way to submit such a request).

The first request (that I could find) was by Jason Garrett, back in August of 2006, and was logged as “bug 21639″. Jason wanted MySQL to “provide a parameter/setting which allows an administrator to specify how many seconds a replication …

[Read more]
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

This would have to be one of the most common MySQL error messages that is misleading to the end user developer. The MySQL Manual page confirms the broad range of possible conditions, but offers little to a PHP developer that does not speak MySQL Geek. I am commonly asked to help solve this issue from a developer.

The problem is that there are several conditions that can cause this error, and a more meaningful explanation to the end user would help in addressing the issue. In general terms, this actually means “Your SQL statement has failed because the connection to the database has been disconnected because of ???”.

Here are a few common situations and how to check for what “???” is.

1. Your MySQL server really did go away.

We can easily check this by looking at the server uptime and the server error log.

$ …
[Read more]
Showing entries 15103 to 15112 of 44106
« 10 Newer Entries | 10 Older Entries »