Posts Categorized: Technical Blog
IOUG has a free series of three webinars on upgrading MySQL. Each webinar is an hour long, and it starts with a webinar by me tomorrow at 12 noon Central time (GMT-5) on “Why and How to Upgrade to MySQL 5.1″. The webinar assumes you are upgrading from MySQL 5.0 to MySQL 5.1, and talks a little bit about the new features, server variables, and what you need to know when upgrading to MySQL 5.1.
One common question I get is how to use partitioning instead of MERGE tables. The process I use involves using stored procedures to create and drop partitions. This article will go over the stored procedures I use; special thanks to Roland Bouman for taking a look and giving great feedback to optimize this process.
Welcome to Log Buffer, the weekly roundup of database industry news.
Following up on my threat of last week, I released Test::Wrapper on CPAN. If you read my previous blog entry, you know that one of the big gotchas of the wrapping gymnastics I was doing was that it was utterly #@$%$# up Test::Builder’s internal states. Thus, at that point, it was either run TAP tests, or use Test::Wrapper, but don’t do both at the same time. Not the most God-awful limitation ever, perhaps, but still not very cool. Since then, I’ve taken a second look at the problem, and realized that this limitation can not only be overcome, but in a surprisingly easy manner.
As I’ve already gone thru building a Windows Server 2008 cluster in this blog post, let’s have a look at installing SQL Server 2008. Whether you’re looking at R2 or non-R2 versions of both Windows Server 2008 and SQL Server 2008, the steps are almost the same except for some PowerShell support for Windows Server 2008 on the Clustering side and whether or not you’re dealing with Hyper-V LiveMigration as part of your cluster (this, however is beyond the scope of this blog post).
Those of us that have been around for the past 3 or so years know that there was a point in time where there were two different editions of MySQL available, back when MySQL Enterprise and MySQL Community were actually different. But that experiment was a complete failure, and the code is now the same. MySQL Enterprise does package the software in a way that is not available to the community, specifically the quarterly service pack (QSP) releases. But the actual code….the same.
Although many electrons have been expended discussing Exadata’s features, storage indexes tend to figure last, with a vague mention of row elimination in heavily clustered data. Even Oracle’s Exadata software user guide devotes barely half a page to them. Unlike the better known smart scanning features though, storage indexes have an important advantage: rather than offloading workload to storage cells, they eliminate the need to do the I/O at all. Here are some sample statistics taken from an actual production system:
Emerson wrote: “Foolish consistency is the hobgoblin of small minds”. I love this quote, because it allows me to announce a presentation titled “7 Sins of Concurrency” and then show up with only 5. There are places where consistency is indeed foolish, while other times I wish for more consistency. Here is a nice story that illustrates both types of consistency, or lack of.
I hear lots of feedback on Exadata front asking for more and more technical information and I often refer them to some material online. I think I should reference couple credible resources for the readers of our blog in addition to our own Exadata content and Oracle’s own Exadata Technology section.
I was happily minding my business today, until I got sight of Tim’s tweet bemoaning the fact that Test::Difference tests can’t easily be used outside of a test harness. Darn him, that’s exactly the kind of happy little puzzle I can’t resist. So I began to think about it. Of course, the Right Solution is probably to add alternative non-TAP-tied functions to the test modules themselves. But what if you just want to quickly leverage the module’s functionality without having to re-arrange its innards? Well, most test modules use Test::Builder, so there’s surely ways to twist that to our advantage. After a hour or two of hacking, I think I got one.