Showing entries 23056 to 23065 of 44106
« 10 Newer Entries | 10 Older Entries »
Maatkit learns how to map-reduce

The May release of Maatkit included a new feature in mk-query-digest. This allows you to process queries in many pieces, write out intermediate results, and then combine the pieces in a separate step. Maybe it’s not exactly map-reduce, but it makes a good headline.

The purpose is to enable query analysis across an arbitrarily large group of servers. Process queries on all of them, ship the results to a central place, and then combine them together. Pre-processing the results has some nice benefits, such as reduced bandwidth requirements, speeding up processing by doing it in parallel, and reducing the workload on the central aggregator. One Percona customer with many MySQL instances is trying this out.

The --save-results option on mk-query-digest saves the digested results to a file, stopping just before the final stages of the query event pipeline. There is a tool in Subversion trunk, tentatively called …

[Read more]
Two quick performance tips with MySQL 5.1 partitions
While I was researching for my partitions tutorial, I came across two hidden problems, which may happen often, but are somehow difficult to detect and even more difficult to fix, unless you know what's going on, and why. I presented both cases during my tutorial, but there were no pictures to convey the mechanics of the problem. Here is the full story.

TO_DAYS() prunes two partitions instead of one
If you are partitioning by date, chances are that you are using TO_DAYS(). And depending on how you have partitioned your table, your queries are as fast as you expect them to be. However, there are cases where your query takes twice as long as it should, and of course this will not make you happy.

For example, in a table partitioned by month, when …

[Read more]
MySQL is gone. Here comes MariaDB and Drizzle.

Bookmark and Share this post

After Sun Microsystems was acquired by Oracle, there has been a large amount of discussions in the business and developer community on the future of MySQL community involved in its development.

A Community Fork?

Interestingly, MySQL community has been able to create a new Database by a fork from the public branch and has revived the project as MariaDB.

On it’s website, AskMonty.org [founded by Michael “Monty” Widenius, the founder and creator of MySQL] states that its aim is,

To provide a community developed, stable, and always Free branch of MySQL that is, on the user level, compatible with the main version. We strive for total interoperability with both our own, and our upstream, communities.

[Read more]
Business insight from the MySQL Conference 2010

At this year’s conference, I was pleasantly surprised with the high level of interest in Open Query’s proactive services for MySQL and MariaDB, and specifically our focus on preventing problems, while explicitly not offering emergency services.

I’ll describe what this is about first, and why I reckon it’s interesting. When you think about it, most IT related support that includes emergency (24×7) operates similar to this:

You have a house that has the front and back doors wide open with no locks, and you take out an insurance policy for the house contents. After a short time you call the insurance company “guess what, the most terrible thing happened, my TV got stolen.” Insurance company responds “that’s dreadful, you poor soul, let us fix it all up for you with getting a new TV and installing it. It’ll be our pleasure to serve you.” A few weeks later you call the insurance company again …

[Read more]
Crosstabs cell-shifting

A crosstab query is a specific query used to create aggregate reports on two or more fields, it’s  a handy way to display summary information. At Open Query we have customers using that trick to display production schedules.

The summary table is generated from the database to extract the manufacturing date (mand), unit number (unitn), product area (pro_area), and ranking (rnk). Then we can start using that summary table to process our crosstab. The summary table looks like this:

mand unitn pro_area rnk
2009-12-15 587-MWI2-PP49 1 11
2009-12-15 587-MWI2-PP50 1 10
2009-12-16 …
[Read more]
MySQL Track at Kaleidoscope

On Monday, Ronald Bradford posted that the independent Oracle Developer Tools User Group had opened up their Kaleidoscope Conference, well-known throughout the Oracle community for in-depth technical sessions for developers, to the MySQL community. Giuseppe Maxia posted his thoughts on Tuesday.

We have confirmed that there will be an entire MySQL track at Kaleidoscope! Because Kaleidoscope is less than 8 weeks away, we could not go through a standard call for papers. Ronald and I have been working to come up with appropriate topics and speakers for an audience that uses MySQL but is probably more familiar with Oracle. We contacted folks we thought …

[Read more]
Starting a new job!

I’ve had a wild ride over the past ~4.5 years, starting with MySQL AB as a “Support Engineer”, and working through to “Senior Support Engineer”, and then “Regional Support Manager, Americas” with the MySQL Support Team - truly one of the best product support teams I’ve ever known in the IT industry, even if I am biased.

I’ve always had a passion for helping people, which is why I think I did “OK” in Support. However I’ve always also had a second passion which has been bubbling away for me too - building solutions for diagnosing database issues. I started in the database world in the Oracle market, working on monitoring and management tools. MySQL “poached” me from there whilst I was building a MySQL monitoring module for the cross database monitoring tool that we had, as well as working in a supporting/consulting role for our customers.

Given my background when I joined, I was an obvious person to be …

[Read more]
Tilting at Windows. Why rejecting Microsoft’s OSS contributions is counter-productive

Or: “Don’t be a Cnut.”

Yesterday I had a look at the response of the Joomla! community to the news that Microsoft had signed the Joomla! Contributor Agreement and was contributing code to the content management project.

You probably won’t be surprised to find that some people don’t like the idea. The speed and vehemence of their rejection of Microsoft’s involvement in the project is entirely predictable, but none the less depressing for that.

The usual complaints were rolled out:

you can’t trust Microsoft

when Microsoft contributes a major product to open source, we’ll listen Microsoft is only doing this to sell more proprietary software

.
Taking those in reverse order: yes Microsoft is doing this to encourage Joomla developers to use Windows. Just as IBM supports Linux to …

[Read more]
Release notes for the Facebook patch for MySQL 5.0.84

These are release notes for the Facebook patch for MySQL 5.0.84. The formatting isn't perfect but I wanted to share the content.

Interesting changes include:

  • innodb_thread_lifo - reduces the overhead from innodb_thread_concurrency when there are many threads
  • rpl_transaction_enabled - makes slave replication state more crash proof
  • log_datagram - writes slow query log output to a Unix datagram socket instead of a file
  • innodb_readahead_random, innodb_readahead_sequential - disable InnoDB readahead
  • innodb_read_io_threads, innodb_write_io_threads - use more background IO threads

Features

make innodb_lock_wait_timeout dynamic and per-session

innodb_lock_wait_timeout was not dynamic (only set at startup from my.cnf) and not per session. This change makes it dynamic at the global and session levels. Connections that use a client-side read …

[Read more]
Checking for a live database connection considered harmful

It is very common for me to look at a customer's database and notice a lot of overhead from checking whether a database connection is active before sending a query to it. This comes from the following design pattern, written in pseudo-code:

PLAIN TEXT CODE:

  1. function query_database(connection, sql)
  2.    if !connection.is_alive() and !connection.reconnect() then
  3.       throw exception
  4.    end
  5.    return connection.execute(sql)
  6. end

Many of the popular development platforms do something similar to this. Two things are wrong with this code: 1) it doesn't actually work and 2) it has a large performance overhead.

It Does Not Work

This code doesn't work because of a race condition. If the connection is alive when checked, there's …

[Read more]
Showing entries 23056 to 23065 of 44106
« 10 Newer Entries | 10 Older Entries »