As many have noted we have released another milestone release of
MySQL Cluster 7.3. One of the main features of 7.3 is obviously
foreign keys. In this post I am going to describe one more
feature added to MySQL Cluster in the second milestone release
which is called Connection Thread Scalability.
http://dev.mysql.com/tech-resources/articles/cluster-7.3-dmr2.html
Almost all software designed for multithreaded use cases in the
1990s have some sort of big kernel mutex, as a matter of a fact
this is also true for some hyped new software written in this
millenium and even in this decade. Linux had its big kernel
mutex, InnoDB had its kernel mutex, MySQL server had its
LOCK_open mutex. All these mutexes are characterized by the fact
that these mutexes protects many things that often have no
connection with each other. Most of …
The MySQL general query log can be a useful debugging tool, showing commands received from clients. In versions through MySQL 5.5, you could count on the GQL to log every command it received – the logging happened before parsing. That can be helpful – for example, the GQL entries might have records of somebody unsuccessfully attempting to exploit SQL injection vulnerabilities that result in syntax exceptions.
Here’s a sample, which I’ll run in both 5.5 and 5.6 and show the resulting GQL:
mysql> SELECT 1; +---+ | 1 | +---+ | 1 | +---+ 1 row in set (0.00 sec) mysql> SELECT NOTHING(); ERROR 1305 (42000): FUNCTION NOTHING does not exist mysql> SELECT 2; +---+ | 2 | +---+ | 2 | +---+ 1 row in set (0.00 sec)
In 5.5, this produces the following in the general query log:
130513 18:26:34 1 Query SELECT 1 130513 18:26:40 1 Query SELECT NOTHING() 130513 18:26:44 1 Query …[Read more]
tl;dr: Make sure you flash an LSI-9211 to IT firmware rev#14 to get it to work with Linux and SSD trim. You may have to downgrade from newer firmware to older firmware to get the card to work.
Finding a SATA III controller with more than one PCI-e lane
After a recent hardware issue I decided to upgrade my computer to
use new Intel 520 120MB SSD drives in RAID for improved
performance. The motherboard I use (an ASUS Rampage III
extreme) has a Marvel SATA III controller with two ports, but I
discovered that it is connected via only a single PCI-e lane
(each lane can do at most 400MB/sec*). This means that it
can't effectively support even a single Intel 520 because one
device can saturate the SATA III bus (An Intel 520 is rated at up
to 550MB/sec sequential write).
So I went on a quest for a new SATA 3 controller. To Frys!
I exclaimed. But unfortunately, all the PCI-e 2.x SATA III …
tl;dr: Make sure you flash an LSI-9211 to IT firmware rev#14 to get it to work with Linux and SSD trim. You may have to downgrade from newer firmware to older firmware to get the card to work.
Finding a SATA III controller with more than one PCI-e lane
After a recent hardware issue I decided to upgrade my computer to
use new Intel 520 120MB SSD drives in RAID for improved
performance. The motherboard I use (an ASUS Rampage III
extreme) has a Marvel SATA III controller with two ports, but I
discovered that it is connected via only a single PCI-e lane
(each lane can do at most 400MB/sec*). This means that it
can't effectively support even a single Intel 520 because one
device can saturate the SATA III bus (An Intel 520 is rated at up
to 550MB/sec sequential write).
So I went on a quest for a new SATA 3 controller. To Frys!
I exclaimed. But unfortunately, all the PCI-e 2.x SATA III …
I wonder how much longer the ARCHIVE storage engine is going to ship with MySQL…. I think I’m the last person to actually fix a bug in it, and that was, well, a good number of years ago now. It was created to solve a simple problem: write once read hardly ever. Useful for logs and the like. A zlib stream of rows in a file.
You can actually easily beat ARCHIVE for INSERT speed with a non-indexed MyISAM table, and with things like TokuDB around you can probably get pretty close to compression while at the same time having these things known as “indexes”.
ARCHIVE for a long time held this niche though and was widely and quietly used (and likely still is). It has the great benefit of being fairly lightweight – it’s only about 2500 lines of code (1130 if you exclude azio.c, the slightly modified gzio.c from zlib).
It also use the table discovery mechanism that NDB uses. If you remove the FRM file for an ARCHIVE …
[Read more]
I configure all our master databases to use row-based binary
logging where I work. In my opinion it is a much safer option
than statement-based replication. The advantages and
disadvantages of both types of MySQL replication are detailed in
the online documentation here. You can't view the events a slave is
applying directly with 'show processlist' but by
issuing 'show open tables where in use' you can
detect what table is receiving the attention of the SQL thread.
If you need more information the mysqlbinlog command must be used
to decode the slaves relay logs or masters binary logs.
Our developers often change a lot of rows with a single update
statement. This usually results in some reasonable replication
lag on downstream slaves. Occasionally the lag
continues to grow and eventually nagios …
At tomorrow’s Effective MySQL Meetup, I’ll be presenting “Fractal Tree Indexes : Theory and Practice (MySQL and MongoDB).” The meetup is at 6:30pm Tuesday, May 14, 2013, and will be held at Alley NYC in New York City.
I’ll give an overview on how Fractal Tree® indexes work, and then get into specific product features that Fractal Trees enable in MySQL and MongoDB. Some benchmarking and customer use-cases will be discussed, but my intent is for this to be a deep technical dive. Several Tokutek Engineers will also be on hand, so bring any questions you’ve got.
I hope to see you there!
Yes, finally! This took some time, but I have been so busy with
other things, work-related as well as domestic, that I just
haven't had the time for this. But finally version 1.6 is
available for download from sourceforge. The downloads is as
usual the autoconf enabled source code and PDF documentation in
PDF.
So, what is new you ask, well there is one big new feature which
took a lot more effort than I expected. When this program was
written at first, I still have the table/use use in mind. What
this means is that I visioned JSON objects to be mapped to a
table. This is not how programmers view JSON, but this is how
data is viewed in many databases, even NoSQL ones such as
MongoDB. So I wanted an import tool for simple row-structured
JSON objects.
Now, there is a different way to look at things, which is …
Here’s the recording!
Heyo!
Now that we’ve gone through the Percona Live MySQL Conference and Expo review and had an amazing turnout to talk about it, it’s time to open up the discussion around things that DBAs want to talk about and need to be conscientious of. Join us on Wednesday at 12:00pm PDT (19:00 GMT) to take part in the discussion and share your knowledge and experience with the following topics:
- Filesystems and MySQL — Which do you use and why?
- Do you handle I/O alignment? How do you do it?
- Scheduler changes?
- Nagios checks! — Any new checks you’ve added recently?
- The worst settings in MySQL that you always change
- What are the most important variables to you, and what do you set them to?
- What will be important variables in 5.6 that …
This week we discuss the basics of using the performance schema in MySQL 5.5 and 5.6. Ear Candy is about a temporal gotcha when using dates and times that do not exist, and At the Movies is David Stokes giving some useful for System Administrators who also are in a DBA role.
News
Continuent's Tungsten Replicator is now completely
open source
TokuDB is now open source