Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 33646 to 33655 of 45353 « Previous | Next »
Estimating Undo Space needed for LVM Snapshot

We know MySQL Backups using LVM are pretty cool (check out mylvmbackup) or MMM though it is quite typical LVM is not configurable properly to be usable for MySQL Backups.

Quite frequently I find LVM installed on the system but no free space left to be used as snapshot undo space, which means LVM is pretty much unusable for backups or required space is very small - created without good understanding on how much space do you need for undo.

LVM Snapshot works kind of like Multi Versioning in Innodb - when you write the new data the new version for the block is stored in undo space. When snapshot is being read if the block is being remapped it is read from the undo location.

The LVM Snapshots versioning is however different from database Multi Versioning because only one old version …

[Read more]
MySQL Sandbox 1.21 - matrioska and launchpad

MySQL Sandbox has moved to a new home. It is now hosted at Launchpad, a friendly environment where developers can work together.

What's new with MySQL Sandbox? The matrioskas in the image are a clue. Version 1.21 introduces the concept of SANDBOX_HOME, which previously was only a path under which store the sandboxes. With time, when I was using more and more sandboxes, I realized that I wanted to take control of all the sandboxes at once, and issue global commands to all of them.
Starting with this version, the sandbox installer recognizes an environmental variable named $SANDBOX_HOME, and builds the sandboxes under that path.
In addition to grouping all the …

[Read more]
Prepared Statements, Musings

In the back of my mind for the last couple of weeks have been some musings on prepared statements.

So I walk into this customers office and they don't speak english.

I only speak a few words of their language.

It goes like this:

"Blah, blah, blah, Prepared Statements, blah, blah..."

I say "Turn them off, they are what is crashing your application."

The end customer is confused because the translator had not finished before I gave the answer.

So I explain the problem... the customer has a lot of connections to the database... a lot... and the database is running out of memory and crashing. Was this the customer's problem? Yes it was.

This is a practiced conversation for me. I could do a song and dance on "well you should be building your application like..." but the customer wants to build their application their way. They want …

[Read more]
Grab your High Performance MySQL sample content

Final versions of High Performance MySQL, Second Edition sample content are posted at the official website. You can download unrestricted PDFs of the foreword, table of contents, chapter 4 (Query Performance Optimization), and the index.

PDF, Sample Chapter

GSoC Week 2

KEY ACCOMPLISHMENTS LAST WEEK

I set up and started using Acunote. Have to admit it is a really great project planning tool. Also I created two accounts for Mark and Colin so that they can track how the things are going any time they want and probably leave comments. I encourage everybody to try it out. Moreover the service is absolutely free and has no limitations for GSoCers. All you have to do is sign up here - "http://www.acunote.com/open-source/summer-of-code-howto".

I set up Bazaar version control system and hosted project on Launchpad. As soon as there would be the first stable version available everybody could get the source code. To do that you will have to issue one simple command - "bzr branch …

[Read more]
Mike Olson joins Hyperic...sort of

Mike Olson sold his open-source database startup, Sleepycat, to Oracle and earlier this year left Oracle to spend time with family. The family, however, had other plans and has booted him out of the house. "Get a real job, Honey!" were the words his wife used to chase him from the house, eyewitness reports reveal.

Well, Mike hasn't managed to get a real job just yet, but he will be spending some time with Hyperic, a leading open-source IT management company. According to Javier Soltero, Hyperic's CEO, Mike will be "helping us develop the next generation of killer products."

I pressed Javier for more detail over IM, and he offered up this lame response:

...

Implementing Timeline in Web Services - Paradigms and Techniques

This is a loose translation from Japanese version.
Further optimized version of the pull model can be found here.

It is quite a while since Twitter has become one of the hottest web services. However, a time-based listing of your friends updates is not a unique function of Twitter. Instead, it is a common pattern found in many social web services. For example, social network services provide time-based listing of your friends' diaries. Or social bookmarks have your friends' list of bookmarks.

What Twitter brought into attention is that implementing a friends timeline in an optimal way is not an easy task. …

[Read more]
MONyog 2.06 Has Been Released

Bug fixes:

* The new version 3 release of Mozilla Firefox (now in RC) had a flickering issue with MONyog and the login page did not load correctly in that browser version.

Downloads: http://webyog.com/en/downloads.php
Purchase: http://webyog.com/en/buy.php

I've accomplished quite a bit in the last week.
On top of my day job, I cleaned out my basement, fixed my car, and got Xen working on my server.

As for the project, I feel I have a solid understanding of how the current cache works and exactly what needs to go into the interface. I'm a bit worried about the invalidate_by_MyISAM_filename stuff because I'm not familiar with the storage engine code, but everything else appears to be smooth sailing.

I've solved the interface problem I was researching: by avoiding it completely.
An interface in comments alone is sufficient at the moment with only two cache backends, a simple #define can switch them at compile time without any performance hit. This can fairly easily be improved upon by future developers so long as I document appropriately.

I've got a skeleton Query_memcache class going with all the necessary methods defined and commented with …

[Read more]
TRUNCATE now and unto ages of ages

MySQL’s TRUNCATE statement will evolve over the next few years, as we fix bugs or strange behaviours, and as we try to make storage engines more consistent with each other. Equally interesting are the aspects that will remain the same, as we confirm that our behaviour conforms to standard requirements.

Define TRUNCATE

TRUNCATE T has two definitions:
(1) it means “delete all rows in T”, as the MySQL Reference Manual says in section “TRUNCATE Syntax”. (2) it means “drop T, then create it again”, as the Reference Manual says later on. The better definition is (2). I have proofs.

Proof #1: The required privilege for TRUNCATE is DROP.

Proof #2: TRUNCATE does not cause activation of DELETE triggers. For example:
CREATE TABLE t (s1 INT);
CREATE TRIGGER t_ad AFTER DELETE ON t
FOR …

[Read more]