Tag Archives: MCslp Coalface

MySQL Docs Updates and Stats

We got an interesting question on the documentation list the other day, which basically asked if we provided a service that listed changes to specific pages in the manual.

While I like the idea of such a service, the mechanics of making such a service work are very difficult. To start with, and to re-iterate something I have to explain again and again:

the MySQL documentation is rebuilt up to 10 times *every* day

We don’t have set schedules for when we release changes. We don’t bundle changes up and then produce a new reference manual on a set day of the month, or week. If I make a change to the documentation right now, there is every chance that you would see that change in the live docs at http://dev.mysql.com/doc within 3 hours, and for the PDF format, possibly even within the hour.

Yep, it happens that quickly. And that happens every day of the year – even at weekends and holidays.

It’s also worth pointing out some of the statistics of the documentation to help explain why such a system might be impractical, but not impossible.

Our current mysqldoc repo, in existence since we made the move to DocBook, has just hit revision 14955, which means over the last 3 years and 7 months, we’ve made on average 11.45 commits every single day. On some days, we make many more than that, and sometimes those changes can be minor (like a typo correction), and other times they will be a huge reorganization or rewrite.

But there-in lies the other problem with any kind of monitoring of changes – our documentation is big and complex. Any ‘page watcher’ to notify you of changes would be limited by the fact that we split the reference manual into just over 2000 different HTML pages. And of course we do that for each manual (4.1, 5.0, 5.1, 5.1-maria, 5.4, and 6.0). For those keeping score, that’s about 12,000 different HTML pages for the reference manual alone.

If you want to talk printed pages (and why not), the Letter-sized PDF manuals for the main documents in English (reference manuals, GUI docs, the MySQL version reference (15 docs) constitutes about 17,300 pages of content.

We actually create 91 different documents from our English language repository, and 234 documents across all languages in up to 14 different output types (PDF, HTML, texinfo, txt, etc).

So to return to the original question, would a page monitoring service be possible?

Probably.

Would it be useful?

I’m in two minds about this. I can see the value of having a way to see changes, but if what you want is to be able to monitor changes in behavior, then most of the time this is documented in the changelog, and we have a number of different outputs available for viewing the changelog information in more useful ways.

Other, more minor changes, and in some case major rewrites wouldn’t feature in the changelog (because they don’t relate to a change in the product we are documenting). Whether you would find such changes useful is up to you. A rewrite normally means we’ve decided to change the content to make it clearer, or we’ve re-organized the information to make it flow better. Again, it doesn’t necessarily constitute a change to the product that wouldn’t otherwise be in the changelog.

Would it be practical?

Probably not – the sheer size of our documentation would mean that just providing the data on the changes would probably double the number of pages and information, and it wouldn’t always be clear whether the change were just a typo correction or a major rewrite. And tracking the changes if we change a page ID (which we do, from time to time), would it difficult to correctly identify changes across different pages that really had the same content.

Of course, I’m open to suggestion here, and we are doing things to further improve and enhance the content, and maybe this is something we will consider. But I’m open to input on whether this is needed.

Speaking at CommunityOne West

Sorry for the (relatively) short notice, but I will be talking at Sun’s CommunityOne conference in San Francisco on June 1st.

I’ll be talking about, and demonstrating, the DTrace probes we have put into MySQL in a joint presentation with Robert Lor who will be doing the same for Postgres.

CommunityOne West Badge

CommunityOne West Badge

Our presentation is on the Monday afternoon.

Check out the CommunityOne West Conference Site for more details and registration.

Solaris 10 Boot Failure

OK, so this has now bitten me twice on a new install.

Basically, put Solaris 10u5 on certain machines, and it will work fine until you edit the /etc/vfstab and forget to add a terminating newline to one of your entries.

Upon reboot you will get something like this:

Error: svc:/system/filesystem/root:default failed to mount /boot (see 'svcs -x' for details)
[ system/filesystem/root:default failed fatally (see 'svcs -x' for details) ]
Requesting System Maintenance Mode
Console login service(s) cannot run

At the top of the output from svcs, you’ll see:

svc:/system/filesystem/root:default (root file system mount)
Reason: Start method exited with $SMF_EXIT_ERR_FATAL
see: http://sun.com/msg/SMF-8000-KS
see: /etc/svc/volatile/system-filesystem-root:default.log
Impact: 44 dependent services are not running. (use -v for list.)

The problem is that missing newline, which means the mount table is never parsed correctly.

To fix, enter your root password to get into admin mode. You’ll need to first remount the root fs as read/write:

# mount -orw,remount

And then add that offending missing line end:

# echo >>/etc/vfstab

Be careful with that second line; miss a > symbol and you’ll wipe out your vfstab altogether.

Now reboot, and things should be back to normal.

Presentations now on MySQL Conf Site Too

So I talked to the wonderful JB from O’Reilly who is responsible for all sorts of parts of the conference, and she’s now enabled my presentations on the MySQL Conference Presentations page.

While you’re there downloading mine, make sure you go and download some of the others.

In particular, you might want to try:

UC2009: Scale Up, Scale Out and High Availability: Solutions and Combinations

My presentation slides for the Scale Up, Scale Out and High Availability tutorial here at the MySQL Users Conference are now available for download:

Scale Up, Scale Out and High Availability: Solutions and Combinations

These have been on the MySQL Conference website for days now, but for some reason they don’t seem to have been freed yet.

To those waiting I’m sorry for the delay in getting these uploaded.

UC2009: On the Starting Blocks

Despite an annoying 3 hour flight delay from Heathrow (and no, I wasn’t connecting there, I was leaving from there), I’m here in San Francisco and Santa Clara again ready for the MySQL User Conference 2009.

I obviously have my four presentations to get through, and there will be plenty of other stuff going on at the conference both in terms of other presentations, the show floor, the booths, and the Birds of a Feather sessions (which are terrific fun).

But mostly, I see the UC2009 as the best opportunity to meet up with both other MySQL/Sun people, our customers, and the community at large and talk about the thing we are all passionate about – MySQL and the technologies surrounding it.

And I don’t care if that sounds goofy. Nothing beats talking to face to face with like minded individuals, and one thing that MySQL – and Sun – seems to engender is an extreme passion about the products we deliver that I don’t always see in other products or companies. That means the talk is always interesting and intelligent, and, when it needs to be, good fun.

To anybody attending, welcome to the fun and enjoy the experience. To those not coming, you really are missing something.

MySQL Conf 2009 Preview: Scalability and HA Tutorial

Like most people, and with just over a week to go before the conference, I’m putting the finishing touchs on my various presentations.

First up for me, on Monday afternoon, is my tutorial: Scale Up, Scale Out, and High Availability: Solutions and Combinations.

What will be doing?

Very simply: Looking at every potential solution for maximum scalability and availability for your database environment.

If you are attending, be prepared to:

  • Expand your mind as we think about scaling up.
  • Expand your horizons as we think about scaling out.
  • Divide and conquer, as we think about high-availability.

We’re not not hands on in this session – but I will expect you to be brains on!