Try fucking awful.
The highlight of the film is seeing the Nokia 770.
Try fucking awful.
The highlight of the film is seeing the Nokia 770.
So, for whatever reason, at about 2am this morning I was finding out what showed up when you googled linux.conf.au for sites in Swedish.
(actually… I do know why.. I was waiting for a a cluster to start so i could run a test)
Somebody should blog (in Swedish) about how awesome the upcoming linux.conf.au in January 2008 (in Melbourne) is coming along.
Melbourne will be much warmer and sunnier than Sweden in January. Promise.
somewhere in these 1.6GB of debug log files and signal traces… somewhere… really.
I’m going and stealing Jay’s idea (who stole it off Brian Duff… but his was for Oracle so obviously doesn’t count :)
So, my five wishes for MySQL Are:
5. Six-monthly release cycles
Getting a release out there takes way too long. There’s a variety of reasons, but seeing the amazing success of other free software projects taking the shorter release cycle, with each release not being too ambitious, I’m pretty convinced.
Although I think our increased use of pushbuild has helped immensely with the general quality of the tree, there’s a lot more that can be done…
4. Much more in depth automated testing
For MySQL Cluster we have (in parts) an insanely detailed test suite… lots of error injection to test failure (or, more importantly, recovery), verifying data, transactional consistency etc. Also, tests that run multiple connections, threads, simultaneous transactions and test the results programatically (comparing strings is generally not very useful… even when it comes to something as simple as IPv4 or IPv6 address!).
Part of getting here is the SoC project I’m mentoring… which should have an output of some utilities for helping write better tests (rather like we have for NDB… but for SQL instead of NDB API).
3. Sane build system
Something that not just the build team knows how to produce a binary that’s released. The other side of this is a way to build your local working tree (and test it) on BLAH platform, without pushing.
3.5. (yes, i have a 3.5)
Kill HPUX. There’s a reason the name sounds like a disease.
2. Increased liberal use of asserts
This is just a wish from a bug I’ve been tracking down where the code to build an I_S table didn’t check that we opened all the tables successfully before calling handler::info()… which promptly goes fooey because the handler hasn’t opened the table. Luckily here it’s ended in a crash… IMNSHO it’s better to bail out on an assert than possibly return crap to the user…
1. Pluggable data dictionary
There are so many oddities and “bugs” around related to the casually strange mix of data dictionaries around the MySQL Server (and Federated, NDB, InnoDB, Falcon etc) that we could do a lot better if we had a “Virtual Data Dictionary Layer”… where engines who really do have a reason to not be simple (e.g. NDB) could plug in and the MySQL Server could get all the metadata consistently from the cluster (with out own form of sane-ish caching).
This would also solve the online ALTER TABLE frm consistency problem with engines that may roll back the alter table on crash recovery (or not support querying the index until it has finished being built).
Perhaps this is something for either the next engine summit or dev conf…
So, I hear you ask (ask dagnammit!), what does a MySQL Cluster hacker do when not hacking MySQL Cluster?
Well,
Today, a box arrived:
I eagerly opened the box… eager for what was inside:
Hrrm… this does look promising! Quickly I turned it all up the right way:
It’s here! It’s here! Only about a month after Michael got his copies! Gah international shipping (and moving addresses) can be casually annoying sometimes. But anyway, it’s here, it looks sweet and now I can go set up a menu option to automatically transcode MythTV recordings to a good format for the iPod. Brilliant!
Of course, this is about how many copies you should go and buy:
So kids, go order your copy of Practical MythTV today! You too, like me, can then go “hrrm… my MythTV MySQL database isn’t Clustery enough… perhaps I should run it on NDB”. :)
You should also go and get a copy of the MySQL Cluster Certification Study Guide as I have writing in it too! Yes, this past year has kept me busy!
Today, immediately after lunch, I got IO errors from my laptop hard drive (ironically while attempting a file system dump). Words to the affect of “oh gosh and bother” exiting my mouth and the decision was made to go get a new drive.
Well… one “shortcut” to the computer store later, have new HD (will travel).
Backup from previous night, xfsrestore here I come. And a good number of hours later… about 1.5million files restored.
I do wish file systems had REPEATABLE_READ though… that would be nice.
My trusty google alerts alerted me to: Yeraze’s Domain 2.0 – Practical MythTV (and about 15 seconds after mailing off to Mikal going all awww over it, I saw he’s blogged this already.
Not only is the review positive on the book (“5 out of 5” is a good rating), it looks as though the book will be of value to the reviewer as they expand their MythTV system (precisely one of the aims we had with the book). In fact even I am looking forward to my hard copy to use as a reference when doing some things to my MythTV system….. oh, and likely when I finally give into my mum’s requests and build her one too (yes, the same mother of mine who finds keyborad shortcuts confusing but has been using Linux on the desktop for years and now even installs her own security updates).
I feel good.
Linus is right when he talks about the performance of SCMs…. and that BitKeeper was about the first one to be worth using at all (really).
But as an interesting speed comparison… I’ve managed to pull the latest git (with git) and build it in less time than BitKeeper has taken to pull the latest NDB tree…. hrrm..
One of the reasons I’m so enjoying quilt for every day hacking is that it is blindingly fast.
As Roland pointed out, recently a bunch of us took the MySQL Cluster Certification Exam. I was strongly encouraging people to take it (and, in fact, got the majority of people to take it… except those working on urgent customer issues or were rather new to the product). That’s one of my cunning plans (number 8 IIRC) – to have anybody doing anything to do with MySQL Cluster inside MySQL AB to be certified (in cluster, not insane).
Response from the exam is overwhelmingly positive and as it’s new, afterwards I discussed a few questions with Roland (in fact, all the ones I got wrong). The (good!?) news is that I legitimately brain-farted on some.
As for bragging rights… I currently share the top score. I’ll also (happily) buy a (large) beer for the first person to score higher than I did. So get cracking!
(oh, warning.. this isn’t some trivial know-a-tiny-bit-and-score-really-high certification… this is a serious one).
P.S. I may have heard at some point one of our people saying they thought it was the best certification exam we have…
P.P.S. Yes, this means you should go strive towards getting it if you do anything with MySQL Cluster.
P.P.P.S. If you’re an employer/manager with people doing stuff (or will be doing stuff… or evenly possibly going to do stuff) with MySQL Cluster, get them certified!
86 Mac Plus Vs. 07 AMD DualCore. You Won’t Believe Who Wins
Well, except I did believe it – and pretty much expected it.
Proves my suspicion that next time I need to go type a few pages of text I should just go and boot up the MacPlus (as I have little doubt that these numbers are also true for OpenOffice.org).
Of course, these days my xchat logs take up about 10x the disk space of any drive you could buy for the MacPlus….
Kristian is currently talking about the new NdbRecord API for the NDBAPI and how it relates to ha_ndbcluster (the mysql storage engine, which uses ndbapi to talk to the cluster nodes) and how it can be used by ndbapi applications.
It looks like we’re getting a really neat API that avoids so much mess and makes it possible to write incredibly efficient mappings between what comes over the wire from data nodes and whatever internal structures the application wants to fill out.
Talking about this and Monty Taylor’s ORM mapping stuff could be very interesting.
that says something along the lines of “contrary to popular beleif, I don’t speak Swedish”. I find that some people will switch to Swedish when speaking to me… Although I do pick up a bit…. not quite a local though :)
Having just moved apartments, it’s obviously time to get on a plane again.
On Monday I fly off to Stockholm again to attend the MySQL Cluster team meeting. Somehow we’re going to squeeze everybody into the Stockholm office (I’ll post humorous cramped photos, I promise).
Of course the thing to do now is to prepare for the meeting… packing can be done on sunday night or something.
Of course, if you’re in the area, come for food/beer!
My co-conspiritor Mikal (a geek from Canberra living in Silicon Valley) reports that copies of the book have arrived at his house! Not only that, Amazaon is reporting it’s in stock!
Now, hoping that because I’ve just moved the books still get to me… eep. Expect me to be going around showing off the book as soon as I get it. I reckon it’s cool :)
Why does two spaces between a full stop and the beginning of the next sentence so irritate me? I mean, it really grates on me… more so than liberal use of sms style abbreviations everywhere.
SSH Filesystem – possibly the coolest thing I’ve started using this week.
Mount a file system, as a user over ssh.
I currently have a home directory in a datacenter somewhere in Sweden mounted so i can easy ls, cp etc to it. Sure, gnomevfs and nautilus let me do some of this, but not from the command line!
Over at mysql.bkbits.net you can also get the “telco” (commonly known as CGE or “Carrier Grade Edition”) source trees of MySQL Cluster.
I think it’s exciting that we now have the source trees up here. You can use the freely available bk client to pull the sources or the commercial bitkeeper.
Since I just got back from the US for the MySQL UC (which was rather awesome) I don’t quite have the energy to go into the difference between normal mysql 5.1 and the telco trees… so wait for part 2 :)
Also now up is the patch series in my “ndb-work” tree which small patch for adding INFORMATION_SCHEMA.NDB_NODE_STATUS. It’s nearly useful… I haven’t brought in the nice “id to string” functions in the management client that make pretty printing nice… so not quite end user friendly :)
But it’s a nice patch to learn how to add an INFORMATION_SCHEMA table in a pluggable engine and put some engine specific information in it.
(kudos to the falcon code… which i looked at on how to do it).
Doesn’t take long – this was completed in less than 2hrs while watching and paying attention to sessions…. so should take next to no time if you actually concentrate on it.
Of course, this totally abuses the purity of the information schema.
I’ve just put up the current “add node” patch… which is like, totally experimental and kills kittens… but could be interesting for people to have a look at as it progresses. Still lots of work before production ready – but people here at the MySQL Conf have said they’re interested in looking at the code for it.
You can grab a combined patch or the quilt series from:
http://saturn.flamingspork.com/~stewart/ndb-experimental/
Applies to 5.1… at least on a few weeks ago tree.
So, probably like lots of people – i run a few web apps locally that I use for various purposes. In my case, this also includes some cool custom developed things.
I also use Zeroconf to easily discover all this foo around a network.
I run my critical mysql install by hand – it’s not constantly up. This is so, as somebody noticed (during Eben’s keynote at the MySQL Conference where he talked a lot about privacy) that one of the apps i run is entitled “tax”.
Since I’m somewhere other than at home, my mysql instance was stopped (much harder for people to grab the data out of it if the process isn’t running to begin with).
So yeah… good points – check what random people out on the network may have access to on your laptop – and know what you should not run as default (I’m careful there).