Home |  MySQL Buzz |  FAQ |  Feeds |  Submit your blog feed |  Feedback |  Archive |  Aggregate feed RSS 2.0 English Deutsch Español Français Italiano 日本語 Русский
Showing entries 1 to 30 of 23023 Next 30 Older Entries
LinuxTag 2011
+0 Vote Up -0Vote Down

Last week I was at LinuxTag in Berlin. It was a great event. This time it was my second year there. I really enjoyed the first year and so I did this time as well. I spoke to many people, learned new interesting stuff and my todo list got again somehow longer And I believe that I also showed some interesting stuff to the people at our booth. I was speaking about GNOME Shell to anybody who happened to be nearby and everybody liked it! Good work, GNOME guys!
I’m glad I was able to be there and I want to share few pictures from the event with you, so even if you couldn’t make it there, you’ll see at least a little bit of what we were doing. We had a lot of fun


  [Read more...]
Win a free ticket to RailsConf!
+0 Vote Up -0Vote Down

I have one free ticket to give away to RailsConf next week in Baltimore! Post a comment to win, and if you aren’t the winner, I’ll give you a discount code for Percona Live as a consolation prize.

Here’s the catch: you have to find at least one thing wrong with the following typical logrotate configuration for MySQL. This should be easy even if you’re not a MySQL expert

# This logname can be set in /etc/my.cnf
# by setting the variable "err-log"
# in the [safe_mysqld] section as follows:
#
# [safe_mysqld]
# err-log=/var/lib/mysql/mysqld.log
#
# If the root user has a password you have to create a
# /root/.my.cnf configuration file with the
  [Read more...]
Disk latency versus filesystem latency
+0 Vote Up -0Vote Down
Brendan Gregg has a very good ongoing series of blog posts about the importance of measuring latency at the layer that’s appropriate for the question you are trying to answer. If you’re wondering whether I/O latency is a problem for MySQL, you need to measure I/O latency at the filesystem layer, not the disk layer. There are a lot of factors to consider. To quote from his latest post:

This isn’t really a problem with iostat(1M) – it’s a great tool for system administrators to understand the usage of their resources. But the applications are far, far away from the disks – and have a complex file system in-between. For application analysis, iostat(1M) may provide clues that disks could be causing issues, but you really want to measure at the file system level to directly associate latency with the application, and to be inclusive of

  [Read more...]
Introducing MySQL to MongoDB Replication
+1 Vote Up -0Vote Down
The last article on this blog described our planned MySQL to MongoDB replication hackathon at the recent Open DB Camp in Sardinia.  Well, it worked, and the code is now checked into the Tungsten Replicator project.   This article describes exactly what we did to write the code and set up replication.  You can view it as a kind of cookbook both for implementing new database types in Tungsten as well as setting up replication to MongoDB.

The Team

MySQL to MongoDB replication was a group effort with three people:  Flavio Percoco, Stephane Giron, and me.  Flavio has worked on



  [Read more...]
slides from the ‘From MySQL to MariaDB’ presentation
+0 Vote Up -0Vote Down

As announced, I held a short talk on switching from MySQL community edition (especially 5.1) to MariaDB (currently 5.2.6) at this years LinuxTag in Berlin.

Here are the (German) slides for reference:

(In case you cannot see the embedded presentation, you can also click here)

Please note: There are a lot of good English slides around. If you want give a talk on MariaDB, the “Beginner’s Guide” might be a good start:

A Beginner’s Guide to MariaDB Presentation

Distributed set processing performance analysis with ICE 3.5.2pl1 at 20 nodes.
+2 Vote Up -0Vote Down

Demonstrating distributed set processing performance

Shard-Query + ICE scales very well up to at least 20 nodes

This post is a detailed performance analysis of what I’ve coined “distributed set processing”.

Please also read this post’s “sister post” which describes the distributed set processing technique.

Also, remember that Percona can help you get up and running using these tools in no time flat. We are the only ones with experience with them.

20 is the maximum number of nodes that I am allowed to create in EC2. I can test further on our 32 core system, but I wanted to do a real world “cloud” test to show that this works

  [Read more...]
Distributed Set Processing with Shard-Query
+1 Vote Up -0Vote Down

Can Shard-Query scale to 20 nodes?

Peter asked this question in comments to to my previous Shard-Query benchmark. Actually he asked if it could scale to 50, but testing 20 was all I could due to to EC2 and time limits. I think the results at 20 nodes are very useful to understand the performance:

I will shortly release another blog post focusing on ICE performance at 20 nodes, but before that, I want to give a quick preview, then explain exactly how Shard-Query works.

Yes, Shard-Query scales very well at 20 nodes

Distributed set


  [Read more...]

New dbqp feature – using pre-created datadirs for tests
+2 Vote Up -0Vote Down

Why would one want to do this, you may ask?  Well, for starters, it makes a great ‘canary-in-the-coal-mine‘ in regards to backwards compatibility!

For Drizzle, we’ve created some tables (via the randgen’s data generator if you are curious), saved a copy of the datadir, and then created a test case that uses said datadir for the test server.  The test executes some simple SQL queries to make sure we can read the tables properly.  This way, if we ever do something to either the server or .dfe format (data format exchange – had a most enlightening conversation with the team about this

  [Read more...]
Taking a look at MySQL Cluster -- and saving money in the long run
Employee +3 Vote Up -0Vote Down
Over the last few years I have worked for few different companies that utilized versions of relayed replication with the MySQL databases. Their data handler connections where done with Java connection pooling or custom built PHP/PERL code. This allowed each company to spread the load of heavy queries and maintain a decent up time based on the load of their servers. One of the companies comes to mind often when I think of the MySQL cluster.
The company was growing and we made plans to move out of leased servers and build out our racks in a co-location center. This would have been a great time to think ahead and move towards or at the very least heavily evaluate a MySQL Cluster solution. I often got push back on this topic. Granted hindsight is always 20/20. Everything was new and fresh and we could have tested and benchmarked before live traffic was on the systems.
  [Read more...]
OurSQL Episode 45: Hackathon Success! (MySQL -> MongoDB replication)
+1 Vote Up -0Vote Down

At Open Database Camp in Sardinia last week, there was a hackfest to try to get replication working from MySQL to MongoDB. In only 2 hours and 45 minutes, a small group of hackers did it! This week I interview Flavio Percoco, the MongoDB guru on the team, who talked about getting replication from MySQL to MongoDB working via Tungsten Replicator (which we talked about on last week's podcast).

read more

Mydumper now with myloader!
+4 Vote Up -0Vote Down

It has only been a few days since the 0.2.0 release of mydumper but there have been some big changes since then.  I will try and go over them all here.

Mydumper 0.2.1

Mydumper 0.2.1 has been released today, many thanks for all those who have been testing the trunk source, the feedback has gone a long way to making fixes and improvements to mydumper.  You can download the source for it here.

Myloader

A few days ago Mark Callaghan asked about restoring mydumper backups.  There is of course the great

  [Read more...]
MONyog MySQL Monitor 4.51 Has Been Released
+0 Vote Up -0Vote Down

Please note that when upgrading from a version previous to 4.5  to this one, it is required that MONyog detects the replication topology of registered servers before the ‘registered servers’ page can display. This may take a few minutes with a large number of registered servers. Please be patient for as long. Note that this delay will only happen once.

Changes (as compared to 4.5) include:

Features:
* This release focuses on improving performance of the MONyog built-in HTTP daemon. You will find up to 10 times performance improvements for most MONyog pages. This has been achieved by internal code optimizations, use of compression (if browser supports) and minification/optimization of HTML, Javascript, CSS and graphics.

Bug fixes:
* Prepared statements were not


  [Read more...]
Upcoming MySQL Events in Europe
Employee_Team +1 Vote Up -0Vote Down

Oracle is running MySQL seminars during the next few weeks in Europe! Those free events represent a great opportunity to learn, to meet Oracle’s MySQL team members face to face & have all your questions answered, and to network with other MySQL users & customers.

Here are the details and how to register:

- Rome, May 19th - Register here

- Zürich, May 25th - Register here

- Langen (near Frankfurt), May 26th – Seminar dedicated to channel partners -

  [Read more...]
Connecting orphaned .ibd files
+1 Vote Up -0Vote Down

There are two ways InnoDB can organize tablespaces. First is when all data, indexes and system buffers are stored in a single tablespace. This is typicaly one or several ibdata files. A well known innodb_file_per_table option brings the second one. Tables and system areas are split into different files. Usually system tablespace is located in ibdata1 file and every InnoDB table has two files e.g.  actor.frm and actor.ibd.

The annoying thing about .ibd files you can’t easily copy the an .ibd file to another MySQL server. If you try to very often you’ll get an error in the log:

InnoDB: Error: tablespace id is 10 in the data dictionary
InnoDB: but in file ./sakila/actor.ibd it is 15!

However sometimes you have to connect the .ibd file to an alien ibdata1.

There are several situation when

  [Read more...]
Drizzle JSON interface merged
+2 Vote Up -0Vote Down

https://code.launchpad.net/~stewart/drizzle/json-interface/+merge/59859

Currently a very early version of course, but it’s there in trunk if you want to play with it. Just have libcurl and libevent installed and you can submit queries via HTTP and JSON. Of course, the next steps are getting a true non-sql interface going and seeing how people go with it.

Some notes and observations on ICE storage engine
+0 Vote Up -0Vote Down

I’ve used Vertica, a commercial column-based database storage engine, and was reasonably impressed. During O’Reilly MySQL conference last month, I checked out Infobright’s vendor booth and talked with some users. I became curious and wanted to test it out. Infobright has a free community version (ICE Infobright Community Edition)of its column-based storage engine that works with MySQL, which was what I used for my testing. I have no relationship with Infobright whatsoever, I happen to think that column-based storage can be a potentially disruptive technology in the BI/DW field. I’d love to hear your comments/experiences.

Here are some noteworthy points:

1. Setup is pretty easy. You can follow steps here. Note that the package has most relavant MySQL tools.

  [Read more...]
MariaDB 5.2.6 Released
+3 Vote Up -0Vote Down

I just sent an e-mail to the MariaDB announce list (a low-traffic list to which you should subscribe if you’re only interested in important news) the release announcement for MariaDB 5.2.6. The announcement has much more information, as do the release notes and changelog.

Much of the project’s focus over the past weeks has been on the 5.3 and 5.5 series, as beta releases are something we’d like to do very soon. Add to this the continued discussions of potential 5.6 work initially started in Lisbon and the

  [Read more...]
Partitioning support for the PHP replication plugin
Employee +1 Vote Up -0Vote Down

The Mysqlnd replication and load balancing plugin alpha release has focused on laying foundations for read-write splitting and load balancing. Thus, we can now look into more juicy topics such as support of schemata based partitioning to increase the granularity of load balancing. Not every slave server needs to replicate all schemata (databases) and tables of the master. The plugin load balancer shall be aware of it and transparently pick the server which has the entities required to execute a statement. Some brainstorming…

PECL/mysqlnd_ms 1.0.1 Master Slave   | |   PECL/mysqlnd_ms: load balancer   PECL/mysqlnd_ms: read-write split   PHP application using PECL/mysqlnd_ms  

Replicating  [Read more...]

Developer Week in Review: Oracle sends Hudson on its way
+0 Vote Up -0Vote Down

Lesson for the week: If you really want to stir up an anthill, attack the conventional wisdom of code development best practices.

In other news ...

Another piece of Sun falls off the good ship Oracle

At this point, I could almost follow the practice of Gregg Easterbrook 's Tuesday Morning Quarterback and put this text on Autotext, but in the past week, Oracle cast off another piece of their acquired Sun technology. In this case, it was the integrated build platform "Hudson." Either fed up with the infighting that had led to the spin-off "

  [Read more...]
Pop quiz answered: “what would be the results of the following queries?”
+0 Vote Up -0Vote Down

The quiz presented poses with an uncommon, though valid SQL syntax: one is allowed to use quoted name aliases. Thus, it is valid to write:

SELECT Name AS 'n', Continent AS 'c' FROM countries

But what does the above mean? Let’s see the results of our three questions:

Question #1

SELECT
  id,
  Name AS 'n',
  Continent AS 'c'
FROM
  countries
ORDER BY
  c
;
+----+--------------------------+---------------+
| id | n                        | c             |
+----+--------------------------+---------------+
| 15 | North Korea              | Asia          |
| 12 | Nepal                    | Asia          |
| 11 | Norway                   | Europe       
  [Read more...]
Covering Indexes: How many indexes do you need?
+0 Vote Up -0Vote Down

I’ve recently been blogging about how partitioning is a poor man’s answer to covering indexes. I got the following comment from Jaimie Sirovich:

“There are many environments where you could end up creating N! indices to cover queries for queries against lots of dimensions.”

[Just a note: this is only one of several points he made. I just wanted to dig into this one in some detail. Here goes...]

Although it is, in theory, possible to generate a workload that would take N! indexes, this is not a realistic (or useful) bound (leaving aside that this workload would kill partitioning!). For one thing, it would take N! queries to exercise all those indexes. And the queries would have to include every field in the where clause — as

  [Read more...]
Pop quiz: what would be the results of the following queries?
+1 Vote Up -0Vote Down

Here’s a quiz for you. The real query I witnessed was very complicated. I’ve simplified it, but kept a confusing alias. Can you answer the following three questions? Are they even valid?

Given the following countries table data:

+----+------+--------------------------+---------------+------------+
| id | Code | Name                     | Continent     | Population |
+----+------+--------------------------+---------------+------------+
|  1 | ANT  | Netherlands Antilles     | North America |     217000 |
|  2 | MNP  | Northern Mariana Islands | Oceania       |      78000 |
|  3 | NAM  | Namibia                  | Africa        |    1726000 |
|  4 | NCL  | New Caledonia            | Oceania       |    
  [Read more...]
Short talk on MariaDB at Linuxtag 2011
+1 Vote Up -1Vote Down

If you happen to be around at this years LinuxTag 2011 in Berlin/Germany, you are invited to attend my short talk on MariaDB as a drop-in replacement for MySQL. The talk focusses on differences between MySQL Community Edition and MariaDB (e.g. XtraDB, Aria, userstats), shows some features live and explains how to switch. I’ll probably post the slides here afterwards.

The talk will be held in German and is scheduled for Friday, the 13th of May, 16:30. The official announcement can be found here.

Shard-Query EC2 images available
+1 Vote Up -0Vote Down

Infobright and InnoDB AMI images are now available

There are now demonstration AMI images for Shard-Query. Each image comes pre-loaded with the data used in the previous Shard-Query blog post. The data in the each image is split into 20 “shards”. This blog post will refer to an EC2 instances as a node from here on out. Shard-Query is very flexible in it’s configuration, so you can use this sample database to spread processing over up to 20 nodes.

The Infobright Community Edition (ICE) images are available in 32 and 64 bit varieties. Due to memory requirements, the InnoDB versions are only available on 64 bit instances. MySQL will fail to start on a micro instance, simply decrease the values in the /etc/my.cnf file if you really want to try micro instances.

  [Read more...]
MySQL 5.6 — InnoDB and Memcached
Employee +1 Vote Up -0Vote Down

One of the more exciting new features in MySQL 5.6 is the InnoDB to Memcached interface. Basically memcached runs as a daemon plugin and can bypass the SQL optimizer and parser for NoSQL access.

The first step is to download the new MySQL 5.6 with the InnoDB-Memcache preview. Sorry, Linux only at this time. And install memcached.

Second, run the provided configuration script mysql> < scripts/innodb_memcached_config.sql. This will do a lot of the work to get things running out of the box and one of the links below details what is happening behind the scenes when you run the script. Third, load the plugin mysql> install plugin daemon_memcached soname “libmemcached.so”;. Forth, to make sure we can see recently inserted data, you will need to set the transaction level mysql> set

  [Read more...]
[MySQL][Spider][VP]Spider-2.25 VP-0.14 released
+3 Vote Up -0Vote Down
I'm pleased to announce the release of Spider storage engine version 2.25(beta) and Vertical Partitioning storage engine version 0.14(beta).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql

The main changes in this version are following.
Spider
- Add table parameter "skip_default_condition" and "direct_order_limit".
- Add server parameter "spider_skip_default_condition" and "spider_direct_order_limit".
  "direct_order_limit" improves some SQL with "order by" and "limit" performance.
- Add UDF "spider_flush_table_mon_cache".
  "spider_flush_table_mon_cache" is used











  [Read more...]
4 performance fixes to MySQL on large servers
+4 Vote Up -0Vote Down

Yesterday I posted results from some MySQL benchmarks I had been doing on a large server. In this post I'd like to list 4 important fixes that were done to avoid bad performance:

read more

Introducing our Percona Live speakers
+2 Vote Up -0Vote Down

We have mostly finalized the Percona Live schedule at this point, and I thought I’d take a few minutes to introduce who’s going to be speaking and what they’ll cover. A brief explanation first: we’ve personally recruited the speakers, which is why it has been a slow process to finalize and get abstracts on the web. Sometimes you know someone’s a dynamite speaker and you discuss over the phone, and then it takes a long time to get a title and abstract from them. In many cases the better they are the busier they are, so this is expected.

Let me introduce just a few of the great speakers we have lined up for this event: Brendan Gregg, Dr. John Busch, and Vladimir Fedorkov.

Brendan  [Read more...]

Innodb Caching (part 2)
+3 Vote Up -0Vote Down

Few weeks ago I wrote about Innodb Caching with main idea you might need more cache when you think you are because Innodb caches data in pages, not rows, and so the whole page needs to be in memory even if you need only one row from it. I have created the simple benchmark which shows a worse case scenario by picking the random set of primary key values from sysbench table and reading them over and over again.

This time I decided to “zoom in” on the time when result drop happens – 2x increase in number of rows per step hides a lot of details, so I’m starting with some number of rows when everything was still in cache for all runs and increasing number of rows being tested 20% per step. I’m trying standard Innodb page size, 4KB page size as 16K


  [Read more...]
Running spotlight from your Mac terminal window
+0 Vote Up -0Vote Down
A colleague just showed me this most excellent little command you can add to your .profile on the Mac to do Spotlight-indexed searches from the command line. Very nice.

function slocate() {
mdfind "kMDItemDisplayName == '$@'wc";
}

config[master]% time slocate my.cnf
/private/etc/my.cnf
/opt/local/var/macports/sources/rsync.macports.org/release/ports/databases/mysql4/files/my.cnf
real 0m0.018s
user 0m0.006s
sys 0m0.006s

Showing entries 1 to 30 of 23023 Next 30 Older Entries

Planet MySQL © 1995-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc.,
2011, Oracle Corporation and/or its affiliates.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.