We announced support for Oracle today. Specifically, Amanda Enterprise now protects:
On Linux and Solaris, we took the approach of integrating Amanda with RMAN. Keeping with Amanda’s philosophy of using native tools as closely as possible, we allow Oracle DBAs to perform recovery right from within Oracle Enterprise Manager. Amanda takes care of restoring all files needed for a DBA to perform recovery specific to their need (e.g. table level recovery or point-in-time recovery).
For Windows, on recommendation from backup experts at Oracle, we integrated with their new VSS writer. This enables us to take quick snapshot of Oracle and basically have no processing overhead on Oracle for bulk of the backup process (i.e. actual movement of data).
We also added Oracle Enterprise Linux as one of the Linux distributions that we support. Now our Linux backup list reads: Red Hat, Fedora, CentOS, Ubuntu, Debian, SUSE, OpenSUSE and Oracle Enterprise Linux.
Oracle DBAs now benefit from open formats (relieving them of costly vendor lock-in) and ease of use of Amanda. Of course, they benefit from huge cost savings offered by Amanda Enterprise - in many cases one-fifth the cost of other solutions. In addition, for the first time, they can backup their databases directly to the Amazon S3 storage, combining backup and disaster recovery in one step.
At Zmanda our strategy is to continue to stretch our umbrella to protect more and more platforms and applications. Supporting Oracle is a major step in this direction.
..aka how to spend a magnificent Sunday-Monday in SUN’s company :)
If your applications run on Windows? and you need a MySQL? Cluster for testing purposes you can use Virtual Box to install SUN Solaris? 10 and set up the Database Cluster creating 4 Solaris? Zones (4 IP are required for a minimal Cluster setup).
It’s an interesting scenario.
You will need:
You can create the Solaris? Zones manually or you can create them at once using a script file.
Note that you don’t need to install 4 Operating Systems. You’ll install 1 Solaris? 10 and then 4 Zones, each with a different IP: one for the MGT Node, one for the SQL Node, one for the Data Node 1 and one for the Data Node 2.
To get started with Solaris? Zones, I followed a very useful article by a Sun blogger - “Setting up MySQL Cluster using Solaris Zone”.
Unfortunately, after setting up Solaris? 10 and the Database Cluster I was not able to connect through SSH to the SQL Node from my Vista? machine, thus my Cluster was up, running but isolated and unreachable as well :(
After a long pause I got the idea for the solution of the issue (it’s typical): I forgot the configuration of port forwarding with NAT in the Solaris? 10 Guest System.
…The disadvantage of NAT mode is that, much like a private network behind a router, the virtual machine is invisible and unreachable from the outside internet; you cannot run a server this way unless you set up port forwarding..
ummh.. always RTFM (and check it again, and again…)!
I set up the port forwarding with the commands:
C:\Program Files\Sun\xVM VirtualBox>VBoxManage.exe setextradata “Solaris-10″ “VB
oxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol” TCP
VirtualBox Command Line Management Interface Version 1.6.2
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
C:\Program Files\Sun\xVM VirtualBox>VBoxManage.exe setextradata “Solaris-10″ “VB
oxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort” 22
VirtualBox Command Line Management Interface Version 1.6.2
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
C:\Program Files\Sun\xVM VirtualBox>VBoxManage.exe setextradata “Solaris-10″ “VB
oxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort” 2222
VirtualBox Command Line Management Interface Version 1.6.2
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
However since making this change the Solaris? Guest did not start anymore and I got the following error:
Configuration error: Failed to get the “MAC” value.
VBox status code: -2103 (VERR_CFGM_VALUE_NOT_FOUND).
I found some posts - like this - but they didn’t help me.
Conclusion: it’s 4:20 am and I am still looking for a solution to get my Cluster reachable, wondering why I want to use Solaris? before attending an intensive SUN Training ;-)
I really want to figure out why if I set up the port forwarding for SSH Connections the Guest does not start.. but.. I’d go to bed ;-)
I’ll try to comment in the next days after getting help from VB guru :)
So… some colleagues have been experimenting with DTrace a bit, and I’ve been (for a while now) wanting to experiment with it.
The challenge now, instead of in the past, is that I’m setting up a Solaris based system - not getting one premade.
I chose OpenSolaris as I’d previously tried Solaris 10 and just sunk too much time trying to get updates and a development environment installed (another colleague could get the opposite to me going: he got devtools but no updates. at least mine was up to date and secure… but without a compiler).
So… OpenSolaris. It isn’t 100% open, there’s binary only drivers and such… but compared to previous Solaris, a whole lot better. Now, if only it was GPL licensed so we could have cross-pollination with Linux.
I grabbed the 2008.05 ISO as soon (in fact, slightly before) it was released and installed it in VirtualBox.
The installation was shiny - one of the best OS installs I’ve seen in a while. It set up nice things (zfs, X) and (an improvement on the previous release) even managed to get all the hardware going (not sound though).
However, on first reboot, nasty surprise. DNS isn’t enabled by default.
I found out why DNS isn’t enabled by default - and (as usual) this comes down to hysterical raisins. Back in what we laughingly call the past, during install Solaris would ask you what services you wanted to use for name resolution (which I guess made sense when people used yp/NIS more often than DNS). The default didn’t include DNS.
In the graphical installer, it just chose the default without asking… which is no DNS. So my mother would be able to install OpenSolaris, but once done, she’d have to know to type in 150.101.98.214 instead of www.google.com.au into Firefox. However, I swallowed my pride, edited /etc/nsswitch.conf and went along my business (I wonder the percentage of users who would actually go from “hrrm, internet not working” to editing /etc/nsswitch.conf without intense googling).
The UI did look nice though. Nice looking GDM, GNOME desktop looked nice. You could tell that whoever did the theme had spent too much time near MacOS X, but I’ll forgive them for that. The default shell is remotely sane and even though the bash completions aren’t as funky as on Ubuntu, I managed (unlike sitting at cmd.exe, where somebody is likely to die each time my keystrokes end up there).
I even had a look at the graphical package management tool - which looked quite nice. I even tried to do an update via it… which ended in what seemed to be a locked package manager and general amounts of fail. To see if it had just stopped or was chewing up my CPU or memory, I opened a terminal and ran ‘top’.
I then found out that top isn’t installed by default. It’s 57kb on my Ubuntu 8.04 laptop so disk space couldn’t be the reason why it’s not installed. It’s certainly not a “it’s a minimal install” argument, there’s lots of other things there by default.
Next step, let’s get updates (some time had elapsed between first install and now).
Seeing as I hadn’t met too much success with the graphical utility (it was at version 0.0000001 or something, so I don’t lay blame there). I find out that ‘pkg image-update’ is what you want to run. So I do.
It chugs for a while and says there’s 1GB of updates. That’s okay, I (where I=Sun) pay for what here on the arse end of the Internet is considered a decent link to my home office. About 20-30minutes later, having downloaded about 600MB, it goes “url timedout error” and aborts. Oh well I think, that’s easy - i’ll run it again and it’ll just resume downloading (remember the revolution when that started working, you know, in 1997).
I then discovered that pkg doesn’t resume downloads. It creates a snapshot using ZFS and puts the updates in it. If anything goes wrong, it just deletes the snapshot. This is a huge benefit over (say) dpkg, which if you press the reset button at the right time will leave your system very, very fucked (magic incantations can revive it, but it’s not fun - and the dpkg developers don’t think it’s a problem - come to my “Eat My Data” talk at OSCON to find out the full story). So OpenSolaris pkg wins on the “don’t ruin my working OS install already” front, but fails on resuming downloads.
I try again. Same story.
It’s now wasted a bit over 1GB of downloads… which equates to a couple of dollars.
I wait a few days, a week, and try again. Same story. I even try with a few hints found online that should fix things (well.. they did let another 100MB on average download before dying with the same story).
I then decided to just try and do the minimal - I wanted a development environment so I could build a MySQL Server with NDB and then play with DTrace to help nut out a performance problem or two.
So i tell pkg to install SunStudio Express. I’m even using instructions off sun.com, so it has to work.
It’s only ~500MB now (IIRC). Fails with exactly the same error as before (url timedout). Gah!
So, this brings us to today. I head into the Sun office.
I figure “this just has to work from a Sun office… ” and I was right!
It got through the (now) 1500MB download of updates!
It even applied them!
Success!
Win!
Well, no, - FAIL.
It now refused to boot with the updates. Or rather, it just rebooted soon after having started booting. No panic, no error screen, no “will reboot in 120 seconds” or anything useful. Instead, you just saw a flicker of the error message before it rebooted.
So… with some very careful pause/unpause of the VM (thanks VirtualBox… I also have a feature request now - pause before reboot :) I got this:
Aparrently the successful update, not so much.
Hrrm… perhaps select the known good one from the GRUB menu? It did actually boot! But this wasn’t just the old kernel, it was the whole older system. I guess that’s a possible upside of ZFS snapshots…. but oh my, that could be sooooo subtle and lead to data loss that it’s really quite dangerous.
I was still no closer to getting an up to date opensolaris system with enough developer tools to build a MySQL Server and use dtrace.
And this was enough. It’s now gone and I get my 10GB of disk back.
Maybe I’ll try again later… but I’m finding the google-perftools to be rather exciting and they’re really satisfying shiny thing urges at the moment.
Today Sun announced release of X4540 Open Storage server (a.k.a Thor). We were fortunate to get early access to Thor to certify Amanda Enterprise and Zmanda Recovery Manager (ZRM) for MySQL. Both solutions are optimized for backing up to disk, are already certified with Solaris 10, and leverage capabilities of ZFS. So it made perfect sense to certify them on Thor, effectively creating a high-performance and yet relatively inexpensive backup appliance.
The unit we were using is powered by 8 CPUs operating at 2300 MHz and provides 48 SATA drives with total capacity close to 50TB in 4U enclosure. That is good packing; a typical EMC unit with so much capacity will take the whole rack.
The two boot drives configured as a mirror were running UFS. To get capacity for backups, we easily created Zpool with 12 drives and 6 spares in RAIDZ2 configuration. That gave us 7 TB of capacity for backups with very high level of protection against drive failure:
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zmanda 203K 7.13T 49.0K /zmanda
zmanda/vtapes 49.0K 7.13T 49.0K /var/lib/amanda/vtapes
While installing ZRM and Amanda Enterprise on Thor, we found that a couple of Solaris packages that we require were missing, and our coverage of dependencies in documentation was not perfect. Luckily, that was the only hiccup. After fixing the dependencies, the rest of installation and configuration went smoothly.

This screenshot shows part of a summary report about backup of five Solaris clients to Thor over 1 Gb network. Each client had about 100 MB of data. In that test we forced full backup on each run, with each client pushing data at 60 MB/s. That is not bad at all considering that you can get only 20-25 MB/s for a typical LTO-2 tape drive.
The X4540 Open Storage server is an excellent choice for creating your own backup to disk appliance. It provides high performance and very large capacity. One key feature is how easy it is to manage all that capacity with ZFS.
Special thanks to Sun?s Menlo Park and Colorado interoperability teams who helped us to get started and advised on considerations in configuring ZFS for backup to disk.
———
Dmitri Joukovski
Today Sun announced release of X4540 Open Storage server (a.k.a Thor). We were fortunate to get early access to Thor to certify Amanda Enterprise and Zmanda Recovery Manager (ZRM) for MySQL. Both solutions are optimized for backing up to disk, are already certified with Solaris 10, and leverage capabilities of ZFS. So it made perfect sense to certify them on Thor, effectively creating a high-performance and yet relatively inexpensive backup appliance.
The unit we were using is powered by 8 CPUs operating at 2300 MHz and provides 48 SATA drives with total capacity close to 50TB in 4U enclosure. That is good packing; a typical EMC unit with so much capacity will take the whole rack.
The two boot drives configured as a mirror were running UFS. To get capacity for backups, we easily created Zpool with 12 drives and 6 spares in RAIDZ2 configuration. That gave us 7 TB of capacity for backups with very high level of protection against drive failure:
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zmanda 203K 7.13T 49.0K /zmanda
zmanda/vtapes 49.0K 7.13T 49.0K /var/lib/amanda/vtapes
While installing ZRM and Amanda Enterprise on Thor, we found that a couple of Solaris packages that we require were missing, and our coverage of dependencies in documentation was not perfect. Luckily, that was the only hiccup. After fixing the dependencies, the rest of installation and configuration went smoothly.

This screenshot shows part of a summary report about backup of five Solaris clients to Thor over 1 Gb network. Each client had about 100 MB of data. In that test we forced full backup on each run, with each client pushing data at 60 MB/s. That is not bad at all considering that you can get only 20-25 MB/s for a typical LTO-2 tape drive.
The X4540 Open Storage server is an excellent choice for creating your own backup to disk appliance. It provides high performance and very large capacity. One key feature is how easy it is to manage all that capacity with ZFS.
Special thanks to Sun?s Menlo Park and Colorado interoperability teams who helped us to get started and advised on considerations in configuring ZFS for backup to disk.
———
Dmitri Joukovski
Thankfully my RSS reader has builtin-search capability, so I can quickly skim the full RSS feed from blogs.sun.com for keywords of interest. I found the following articles quite helpful:
If you are would like to learn more on how to develop on NetBeans with using a MySQL Server and how to create web apps that use MySQL as a backend, take a look at these two tutorials:
Over on the Novell Cool Solutions pages (which are powered by Drupal, by the way), I found this introduction on how to set up MySQL replication by Damian Myerscough. It walks you through the steps involved in setting up a classical master-slave replication setup.
While we're on the topic of Bazaar - this week I got informed by the organizers of the FrOSCon 2008 conference that they accepted two of my talk proposals: one session will be an introduction to this source code management system (what a coincidence), the other one will be an introduction to OpenSolaris for Linux users, explaining some of the underlying technologies and how they differ from what a seasoned Linux user may be accustomed to.
And no, I have not given up on using Linux - quite the contrary! I have been very impressed by the latest OpenSUSE 11.0 release and already run it for since quite some time on several of my work systems. In fact, I already convinced several colleagues of mine to give it a try as well! I am amazed by the speed and "out of the box experience" of this version and I actually plan to install it on my Genesi Pegasos PowerPC machine as well, replacing Debian on there. But as a Sun employee, I of course have to familiarize myself with the other products and projects that we're involved in. And on the Server side, Solaris does have a few interesting features that Linux currently lacks. But I digress.
I look forward to speaking at FrOSCon again - it has been a great conference in the past two years. Very well organized, nice venue, a relaxed atmosphere and excellent technical sessions and speakers.
Other MySQLers submitted talks as well - for example, Giuseppe will give a presentation titled "MySQL Community How To", Susanne will give a PostgreSQL tutorial and others will participate in the separate PHP subconference. Don't miss it - this year's FrOSCon will take place on August 23rd&24th in St. Augustin, Germany (close to Bonn). For the first time, we will also try to set up a MySQL project table. So if you are there, make sure to stop by and have a chat with us!
Storage Snapshots are excellent tools in arsenal of a system administrator to create quick and consistent backups of their databases and applications. Snapshot is a “picture” of a filesystem at a point-in-time. In most modern snapshot implementations, this “picture” is not a full copy of the data, but rather a set of pointers to the data.
Here is a list of current industry leading snapshot technologies:
Our Zmanda Recovery Manager for MySQL product uses storage snapshots as one of the technologies to do a quick full backup of the MySQL database. We currently support LVM, ZFS, NetApp, VSS and VxFS Snapshots. Rest are coming soon…
From May 28th-31st, the annual LinuxTag will take place in Berlin, Germany. I followed the growth and evolution of LinuxTag from the very early days and I have fond memories of the event back when it still took place at the University of Kaiserslautern and our SuSE "booth" was just a regular table taken from the lecture rooms...
Things have evolved a lot since then. Today, LinuxTag is one of the largest Linux/Open Source Events in Europe and my new employer Sun is a major sponsor this year. In addition to several talks and keynotes, there will be a large Sun booth in the exhibition area (Booth #205) and we will have a dedicated MySQL demo pod! Some of the things we plan to demo there are the upcoming MySQL Server releases (5.1, 6.0 with Falcon and Online Backup), MySQL Workbench, MySQL Enterprise Monitor as well as how to combine these with other Sun products like Glassfish, NetBeans, OpenSolaris or OpenOffice.
Some other stuff that we will be showcasing on the Sun booth:
I look forward to being there! Please contact me, if you are interested in visiting Linuxtag and would like to receive a free pass!
|
Catching up with news from before JavaOne: Pentaho Announced support for GlassFish v2 for Pentaho BI Platform. Note that Pentaho is one of the more than 40 initial companies listed in the new Sun Partner Program for GlassFish. |
|
Catching up with news from before JavaOne: Pentaho Announced support for GlassFish v2 for Pentaho BI Platform. Note that Pentaho is one of the more than 40 initial companies listed in the new Sun Partner Program for GlassFish. |
While being subscribed to the full blogs.sun.com feed certainly feels like drinking water from a firehose, every once in a while I stumble over very well-written and useful articles about MySQL. Below is a collection of helpful posts, especially if you run MySQL on Solaris (surprise!). And while I still am an avid Linux user, I must admit that Solaris has a few neat features - particularly DTrace and ZFS are quite intriguing. If only userland would not feel so weird for someone coming from a GNU/Linux background!
From Jenny Chen's blog:
From Ritu Kamboj's blog:
From Krish Shankar's Blog:
More to come in the near future!
Final slides from keynote delivered this morning at the MySQL user conference. Topic was protecting live MySQL databases.
(Slides render well in both OpenOffice and PowerPoint)
No, this is not a blog about Computational Fluid Dynamics - my least favorite subject in college. This is about a more exciting (sorry mechanical engineers!) CFD: Customer Facing Data. This is the data that is typically available on the website of an organization that their customers interact with. CFD can range all the way from profiles of users on a social networking site such as Facebook to the customer information database of an e-commerce company such as Travelocity.
CFD represents today’s data protection challenge. Probably the biggest challenge while planning a backup solution for CFD is that it is very hard to figure out what to plan for. You might be starting with a very small database which might grow much more rapidly than what you think. If the data can be segmented based on users or some other characteristic, then you will find that your databases may scale-out instead of scale-up. Also, rate of change can be very rapid, sometimes with lots of small changes (e.g. tags) or sometimes with big data changes (e.g. addition of user generated media content), very similar to the rather unpredictable viral growth pattern of the Internet.
Many organizations are keen to save and analyze behavior of users as they interact with CFD. This metadata can itself pose a data protection challenge of its own, since it may change very rapidly, while the actual data is not changing (e.g. tracking of customer intelligence metadata about which prospects downloaded which whitepapers from your corporate website, so that you can determine the best marketing & sales approach for these prospects).
MySQL is the DBMS of choice for CFD. Some skeptical press and analysts have said a few times that MySQL is not being deployed at the back-end of the enterprise (financials, billing etc.), but only on the web-tier. The implicit (sometimes explicit) implication being that web-tier applications are less important for the organization. I think this analysis fails to realize the actual importance of the data being stored in web-tier applications. Most of this is CFD, loss of which will cause huge pain and costs in the form of lost revenues, customers and reputation.
From its very inception, Zmanda has been focused on technologies powering CFD (MySQL, LAMP stack, and now increasingly Solaris). We have dug deeper than anyone else in understanding the needs of protecting this crucial part of any organization and very rapidly delivered products to address these needs. We are the data protection company for CFD. While we do protect back-end applications and platforms, our technology and business focus remains CFD.
I will be talking about deploying radically simple backup solutions for CFD on Thursday (April 17th, 10AM) at the MySQL user conference. I am in the unenviable position of making a Backup presentation sound interesting after the Facebook keynote (”A Match Made in Heaven? The Social Graph and the Database”). Well, I guess the point that conference organizers are trying to make is that if you have a radically simple MySQL backup and recovery solution, you will have more time to spend on Facebook!
Speaking of analysts, I recently read an analyst report which indicates that, on average, salaries offered to MySQL DBAs can be up to 40% lower than those offered to Oracle or DB2 DBAs. This ironically is considered one of the barriers for entry of MySQL in some environments. Per this report: higher paid database personnel have vested interest to keep MySQL out. Another claim is that somehow the lower salary to MySQL DBAs reflects the relative importance of the MySQL powered application for the business. Well if you are a MySQL DBA, you will do well to make your management realize that you are the keeper of their Customer Facing Data. Any business deploys its best resources for customer facing activities. Hopefully this will start reflecting on your paycheck soon.
If you would like to talk about your data protection challenges, or your salary as a MySQL DBA, stop by our booth #307 at the MySQL user conference.
A gentle reminder: next week, there will be two more stops of the MySQL Meetup Mashup Tour:
At both events, colleagues from Sun and MySQL will be present to answer questions and discuss the acquisition of MySQL by Sun and all things Open Source. There will be free drinks and food as well!
We look forward to welcome users from the various related Sun products/projects, e.g. OpenOffice, Java, OpenSolaris, Glassfish or Netbeans. There is so much opportunity for collaboration and exchange of experience - I am very excited to be at both meetings to meet and talk with people from these communities. See you there!
We’ve been running into a problem with one client:
SELECT COUNT(*) FROM tbl;
takes 0.25 seconds on one db, and 0.06 seconds on another.
Consistently. That’s a fourfold difference.
There aren’t any significant configuration differences (like query cache, etc.), the software versions are the same, and the table fits into memory. This has been looked at by at least 3 in-house MySQL experts, and the only thing we can determine is that it’s a hardware difference.
The table fits into memory so it’s not a disk issue, and the only other difference among the hardware is that the slower machine has Solaris virtualization in place in the form of “containers” (cpu is the same, etc). Is this something that’s known to cause issues with speed? The “tbl” in question is an InnoDB table, if that means anything. Is there something like the “speed” of RAM?
Note that Sun has already been called in, and scripts have been run and analyzed on their side and they say “must be a db config issue” even though the configs have no significant differences (and neither does the hardware and OS spec).
I’ve been working with the folks working on OpenSolaris for a few months now providing advice and input on getting MySQL and the connectors (C/ODBC and C/J) installed as a standard component. Having got the basics in, the team are now looking at adding both 32-bit and 64-bit packages.
The question raised at the end of last week was whether OpenSolaris should enable 64-bit builds by default in 64-bit installations, and whether there was a noticeable performance difference that would make this worthwhile.
I did some initial tests on Friday which showed that there was a small increase (10-15%) of the packaged 64-bit installations over 32-bit under x86 using snv_81. Tests were executed using the included sql-bench tool, and this was a single execution run of each package for 5.0.56. Transactions are missing because I hadn’t enabled transactions in the tests.
| ATIS | 20 | 17 | 17.65% |
| alter-table | 18 | 15 | 20.00% |
| big-tables | 14 | 11 | 27.27% |
| connect | 134 | 121 | 10.74% |
| create | 348 | 348 | 0.00% |
| insert | 1038 | 885 | 17.29% |
| select | 399 | 257 | 55.25% |
| transactions | |||
| wisconsin | 10 | 8 | 25.00% |
There are some significant differences there (like the 55% increase on SELECT speeds, for example), but a single execution is never a good test. Also, it’s unclear whether the differences are between the compilations, the platform or just pure coincidence. This requires further investigation.
As a coincidence, Krish Shankar posted these notes on using SunStudio 11 and SunStudio 12 and the right compiler flags to get the best optimization.
I decided to do 10-pass iterations of sql-bench and compare both 32-bit and 64-bit standard builds, the 32-bit standard builds against Krish’s optimizations, and finally 32-bit and 64-bit optimized builds.
Some notes on all the tests:
- All builds are 5.0.56
- All tests are run on SunOS 5.11, snv_81
- Tests are executed on the same OS and machine running in 64-bit. The SPARC tests are on an UltraSPARC IIIi@1.28GHz Workstation with 1GB RAM; x86 are on a Dell T105, Opteron 1212 with 4GB RAM. Of course we’re not comparing machine speed, just 32-bit binaries over 64-bit.
- All results are in seconds; lower values mean faster performance.
- In all tests I’m using the built-in defaults (i.e. no my.cnf anywhere) so as to simulate a standardized installation.
Let’s first look at x86 and the 32-bit standard and 32-bit optimized builds:
| ATIS | 15.4 | 21 | -26.67% |
| alter-table | 15 | 16.3 | -7.98% |
| big-tables | 13.7 | 12.5 | 9.60% |
| connect | 77.6 | 133 | -41.65% |
| create | 343.7 | 350.6 | -1.97% |
| insert | 760.3 | 1043.8 | -27.16% |
| select | 394.8 | 384.2 | 2.76% |
| transactions | 10.8 | 18.6 | -41.94% |
| wisconsin | 6.6 | 10.1 | -34.65% |
The standard build uses gcc instead of SunStudio, but I don’t get the same performance increases that Krish saw - in fact, I see reductions in performance, not improvements at all. I’m going to rebuild and retest, because I’m convinced there’s a problem here with the builds that I’m not otherwise seeing. I certainly don’t expect to get results that show a 27% reduction in insert speed. That said, a 10% big-table increase is interesting. I’ll redo these builds and find out if the slow down is as marked as it here.
Here’s the comparison for standard builds between 32-bit and 64-bit standard builds on x86:
| 64-bit +/- | |||
| ATIS | 15.4 | 13.5 | 14.07% |
| alter-table | 15 | 10.6 | 41.51% |
| big-tables | 13.7 | 10.6 | 29.25% |
| connect | 77.6 | 76.4 | 1.57% |
| create | 343.7 | 346 | -0.66% |
| insert | 760.3 | 681.6 | 11.55% |
| select | 394.8 | 254.8 | 54.95% |
| transactions | 10.8 | 10.7 | 0.00% |
| wisconsin | 6.6 | 5.8 | 13.79% |
There are some incredible differences here - more than 50% increase in SELECT, and 30% for the big-tables test show that there is some advantage to having the 64-bit builds on x86 enabled.
Unfortunately I’ve had problems with the 64-bit optimized builds on my machine, so I haven’t completed optimized test comparisons.
On SPARC, Sun Studio is used as the default compiler, and the standard 32-bit and 64-bit show little difference:
| ATIS | 28.6 | 27.5 | 4.00% |
| alter-table | 27 | 26.7 | 1.12% |
| big-tables | 26.9 | 29.4 | -8.50% |
| connect | 166.3 | 173.6 | -4.21% |
| create | 155 | 143.1 | 8.32% |
| insert | 1577.3 | 1572.3 | 0.32% |
| select | 807.4 | 761.6 | 6.01% |
| transactions | 19.5 | 18.75 | 4.00% |
| wisconsin | 11.1 | 11.4 | -2.63% |
Overall, a pretty insignificant difference here.
Now let’s compare the standard and optimized builds using Krish’s flags on SPARC:
| ATIS | 28.6 | 27.75 | 3.06% |
| alter-table | 27 | 26.25 | 2.86% |
| big-tables | 26.9 | 25 | 7.60% |
| connect | 166.3 | 162.5 | 2.34% |
| create | 155 | 145.25 | 6.71% |
| insert | 1577.3 | 1551.5 | 1.66% |
| select | 807.4 | 769.625 | 4.91% |
| transactions | 19.5 | 16.875 | 15.561% |
| wisconsin | 11.1 | 10.875 | 2.07% |
The tests here show little significant difference between the standard and the optimized builds, although 6-7% would probably be enough to prefer an optimized build if you wanted to build your own.
Now let’s compare the optimized, Sun Studio 12 builds running in 32-bit and 64-bit:
| ATIS | 27.75 | 27.3 | 1.65% |
| alter-table | 26.25 | 26.6 | -1.32% |
| big-tables | 25 | 25 | 0.00% |
| connect | 162.5 | 162 | 0.31% |
| create | 145.25 | 154.3 | -5.87% |
| insert | 1551.5 | 1535.1 | 1.07% |
| select | 769.625 | 771.2 | -0.20% |
| transactions | 16.875 | 19.1 | -11.65% |
| wisconsin | 10.875 | 10.7 | 1.64% |
The differences are virtually non-existent, and taking the reductions and increases in performance overall, there’s probably little difference.
The overall impression is that on x86 the improvement of 64-bit over 32-bit is significant enough that it’s probably a good idea to make 64-bit the default. On SPARC, the difference in the optimized builds is so slight that for compatibility reasons alone, 32-bit would probably make a better default.
I’ll probably be re-running these tests over the next week or so (particularly the x86 so I can get a true comparison of the 64-bit optimized improvements), and I’ll try the T1000 which I upgraded to snv_81 over the weekend, but I think indications are good enough to make a reasonable recommendation of 64-bit over 32-bit.
I’m still working up some good tips and advice on MySQL on Solaris (particularly the T1000, the new x86 based servers like the X4150 and ZFS, amongst other things), but until then I found Getting Best out of MySQL on Solaris while doing some research.
With the latest OpenSolaris builds (b79, from memory) we now have MySQL built-in, and I worked with the folks on the OpenSolaris Database team to get some reasonable configurations and defaults into the system. MySQL 5.1 and 64-bit support is currently going through the process and will be a in future build.
I’ve also been working with the DTrace people to improve the DTrace support we have in MySQL (documentation will go live this week, I hope). MySQL 6.0.4 will have some basic DTrace probes built-in, but I’ve proposed a patch to extend and improve on that significantly.
We’re in the process of updating the documentation and advice on Solaris (and OpenSolaris) installations and layout too, which is itself part of a much larger overhaul of the installation and setup instructions for all platforms.