XML Storage Engine?

Every so often you come across people desiring intense XML and RDBMS interaction. Recently, here: Technical Notes and Articles of Interest » MySQL 5.1 is gaining some momentum.

In MySQL land, this usually means “An XML Storage Engine would be great”. hrmm… a storage engine is a way to store a table. A table is a relational thingy. Surely what’s wanted is a good way to query an XML document and search for a specific XML document.

So, is what’s really wanted good XML indexers and the ability to extract parts (or the whole) of a document? Maybe there’s some extension to fulltext (along with some funky functions) that could bring an immense amount of power with dealing with XML?

What is there now? What do people do now? What do they want to do?

All interesting stuff

White Stripes tour dates

ticketmaster.com.au – The White Stripes

Damn, damn, damn, damn damn. Only January 28th – and I’m in NZ.

Note to future organisers: make sure dates don’t overlap BDO or any really cool band tour dates.

Of course, the real disaster would be if Tool were touring at the same time as a work thing. How will people take it if i leave a company event for however long is needed to see Tool live. as many times as possible. I am dearly hoping that travel co-ordinates itself to see them in different cities, countries. Heck, even another planet if we can do that by the time the new album is ready :)

Some people don’t seem to get the Tool thing. It’s just good music. But that’s the thing – it is good music. Also, great music to hack with. I reckon each album gets played at least once per week – still.

upgraded mythtv box to breezy

Finally got arround to upgrading the mythtv box. Less RAM being used is good – it’s only got 512MB and some of the recordings were getting pretty fragmented due to having to flush things to disk a bit too often. Hopefully things will be a bit better now.

Annoying things were:

  • Having to reboot into the old kernel to get the wireless driver to download the new kernel source package
  • having to again reboot to get gcc-3.4 to build the rt2570 module with the gcc-3.4 compiled kernel
  • rebuilding lirc again (but that’s easy)
  • still having to manually load the sound card driver.
  • no fancy boot screen (at least on my lilo setup)
  • no automagic convert to grub now that it seems to work with XFS

But a lot less painful than previous big upgrades. The debian way between releases is so nice it’s not funny.

Things left to do:

  • rebuild mythtv with proper lirc support so i can stop using irxevent and get lirc going with an auto launching xine/mplayer and use the box properly as a DVD player too. (this is not actually related to the ubuntu upgrade, it’s just a thing i’ve wanted to do for a while – and it’s my own fault i didn’t do it right in the first place)
  • upgrade from mysql 4.0 to 5.0 (hey, maybe 5.1 ndb dd just to really be eating our own dogfood :) – again, not related to the ubuntu upgrade.

I’ve also set it up to tape the tennis, although at a low priority so my lovely flatmate doesn’t get annoyed if she misses her shows :)

Oh how I need more tuner cards.

Thanks goes to jdub for quickly asking what the upgrade issue was. No thanks goes to me for making my things left to do list look like it was related to the upgrade.

Mangoes are good

that is all.

err… okay, a bit more. Breakfast this morning consisted of doing the dishes (good first step), some toast with jam and vegemite and a mango. Yum. All the time listening to the recording of the company-wide conf call from the other day (2am was just a little bit late that night).

These conf calls are really good actually – being able to throw questions directly at the top (and have them answered) is a great thing. Also getting to know what is going on from a higher perspective is really valuable.

Microsoft’s file system patent upheld: ZDNet Australia: News: Software

Microsoft’s file system patent upheld: ZDNet Australia: News: Software

Saying any part of the FAT file system is “novel and non-obvious” is rather like saying being stabbed in the eye with a fork is “novel and a good way to spend a sunday afternoon”.

Seriously – what the?

I’m really glad I work for a company that opposes software patents.

Thanks to Pia for the links.

Bug 15695 and NDB initial start

The process for starting up a cluster is pretty interesting. Where, of course, “interesting” is translated to “complex”. There’s a lot of things you have to watch out for (namely you want one cluster, not two or ten or anything). You also want to actually start a cluster, not just wait forever for everybody to show up.

Except in some situations. For example, initial start. With an initial start, you really want to have all the nodes present (you don’t want to run the risk of starting up two separate clusters!).

Bug 15695 is a bug to do with Initial Start. If you have three nodes (a management node and two data nodes) and break the network connection just between the two data nodes, and then reconnect it (at the wrong time – where the wrong time means you trigger the bug) the cluster will never start. A workaround is to restart one of the data nodes and everything comes up.

Note that this is just during initial start so it’s not a HA bug or anything. Just really annoying.

This seems to get hit when people have firewalls stopping the nodes talking to each other and then fix the firewall (but not shutting down the cluster).

As is documented in the bug, you can replicate this with some iptables foo.

One of the main blocks involed in starting the cluster (and managing it once it’s up) is the Quorum manager – QMGR. You’ll find the code in ndb/src/kernel/blocks/qmgr/. You’ll also find some in the older CMVMI (Cluster Manager Virtual Machine Interface).

A useful thing to do is to define DEBUG_QMGR_START in your build. This gives you some debugging output printed to the ndb_X_out.log file.

The first bit of code in QmgrMain.cpp is the heartbeat code. execCM_HEARTBEAT simply resets the number of outstanding heartbeats for the node that sent the heartbeat. Really simple signal there.

During SR (System Restart) there is a timeout period for which we try to wait for nodes to start. This means we’ll be starting the cluster with the most number of nodes present (it’s much easier doing a SR with as many nodes as possible than doing NR – Node Recovery – on lots of nodes). NR requires copying of data over the wire. SR probably doesn’t. Jonas is working on optimised node recovery which is going to be really needed for disk data. This will only copy the changed/updated data over the wire instead of all data that that node needs. Pretty neat stuff.

We implement the timeout by sending a delayed signal to ourself. Every 3 seconds we check how the election of a president is going. If we reach our limit (30seconds) we try to start the cluster anyway – not allowing other nodes to join).

Current problem is that each node in this two node not-quite-yet cluster thinks it has won the election and so switches what state it’s in to ZRUNNING (see Qmgr.h) hence stopping the search for other nodes. When the link between the two nodes is brought back up – hugs and puppies do not ensue.

I should have a patch soon too.

For a more complete explanation on the stages of startup, have a look at the text files in ndb/src/kernel/blocks. Start.txt is a good one to read.

at the pub last night

Well, went out for food with jp, rupak and owen before heading down to a bar to meet with others for beer.

Slow start to this morning. Anyway, got some piccies. some people even smiled!

I wish there was a way to bulk transfer photos from my phone to my computer via bluetooth. It’s a real pain going “Send” on each friggin photo.

Pity phone cameras really suck, but hey – i guess they’re pretty portable. Notice how the really noisy pictures are taken with the phone’s “Night Mode”. Which really just means introduce more noise into the photo.

Picture(12).jpg
Picture(13).jpg

Picture(14).jpg Picture(15).jpg Picture(16).jpg Picture(17).jpg Picture(18).jpg

Picture(20).jpgPicture(19).jpgPicture(21).jpgPicture(22).jpg

uh oh, goodbye secure internet banking

Westpac seem to have lost the plot. My housemate signed into her internet banking a few minutes ago (and then I did, just to confirm) to be greeted with one message.

A portion of which is below.

Westpac looses brain
Do I really need to point out the problems with this?

Followup: I’m on the phone to them now. The woman on the other end of the phone wasn’t aware of the move. She’s just gotten the same message and is now confirming it. I’ve asked if this is some kind of April Fools joke. I hope it is.

Followup 2:  Aparrently it’s no joke. “Early 2006”. I’m putting in a complaint. You can to – and please do!