Nirvana

Today I’ve put With The Lights Out in the virtual CD player (read: amaroK) and am remembering why I like Nirvana. I just haven’t listened to it in long enough. Actually, now that I come to think of it… long enough is like, what, a week? I know I was listening to it on the way to/from SFO on the plane.

Now, after spending the morning on financial issues (tax not fun, especially the weird way I end up getting payed and the complications it has) I may actually get to some work…. Well, conference tutorial preparation… Doing a tutorial where you get the people in the room to do things is always tricky – and nerve racking.

10,000 Days completed on my birthday – Wikipedia,

Tool (band) – Wikipedia, the free encyclopedia

Okay, only interesting to me – but aparrently 10,000 Days was completed on my birthday this year. What better birthday present than more Tool? None, exactly.[1]

DSC_0021-small.JPG

[1] Okay, there probably is, but here is not the place to discuss it.

More Shwag at The Swag Report

The Swag Report

I’ve posted more there, check it out. Some from the recent MySQL UC, some from linux.conf.au, some from wherever.

Kristian on “How to blog for a planet”

How to blog for a planet – MySQL-dump

I have to say I disagree with the whole teaser/article body thing. I really don’t like having RSS feeds that don’t contain the full article. It means I can’t read them offline. I often like to catch up on RSS while offline. I also don’t particularly feel the need to have to make yet another click to view the content of an article.

Yes, it’s a little more bandwidth. But really, it’s cheap. Especially with mod_gzip and whatever else optimised foo we can do.

Maybe planet aggregators could get more clever in summarising entries? Or not. How many people actually read a planet from the web site anyway?

An Apple article on MySQL on Mac OS X

MySQL on Mac OS X: An Ideal Development Combination

They got one bit a bit unclear. They say “In fact, the development team at MySQL AB uses the Mac platform for developing the MySQL server software itself.” Which is misleading at best if not downright wrong.

Yes, some people do use MacOS X. But some also use Microsoft Windows, some FreeBSD and a lot use Linux (various flavours – mine’s Ubuntu). The way their sentence reads is that we only use the Mac platform. This, is wrong. They even quote Brian later on as saying that “A significant number of the developers inside MySQl AB use MacOS X as one of their development platforms.” So they can’t be ignorant of the fact that the Mac is just another platform.
They then go on to again, mislead at best. “the MySQL database was originally an open-source project, but is now owned by a commercial enterprise”. WHAT??? Oh, if you read the next sentence (and disregard this one) you find out you can get both commercial and free, open source licenses.

Apart from that, it reads like marketing. Good for us though, more exposure of MySQL to OSX people is a good thing.

Oh, and I am pointing this out to Apple too. I’m not some asshole who just whines on his blog :)

UPDATE: Brian mentions in the comments of this entry that Apple is taking the feedback seriously and have contacted him about my feedback. So, I’m quite impressed. In fact, kudos to Apple. Anybody who actually takes notice of comments submitted on their web site is doing pretty good. I also have the feeling that this entry perhaps came over a little strong…. so go back and interperet it as “hey, maybe people could read the article and get the wrong idea”.

last.fm

Set myself up on last.fm, changed to amaroK for playing music (so things go to last.fm) and added foo to the sidebar of my blog. I guess the trick now would be to get something to auto-add my current tune to the bottom of each entry. Maybe :)

I’m a GNOME boy, but amaroK seems to be leaps and bounds ahead of either rhythmbox or the version of banshee that ships with Ubuntu Breezy.

My main complaints with amaroK are that it looks nothing like my other desktop applications – it stands out that it’s a KDE app and not a GNOME app. Some clue on how to fix this would be appreciated.

Back to last.fm, I think the goal is to help suggest music that you may like by looking at what you listen to and what other people who listen to some of the stuff you listen to listen to. Seems interesting at least.

Newfangled technology to remove the “so what have you been listening to?” question from the list of things to talk about with friends :)

How auto_increment is implemented in NDB

I was writing this in an email to a co-worker today, could possibly interest people in the outside world as well. It’s a good idea to look at the source at the same time as reading this :)

In ha_ndbcluster::write_row(byte*),

if (table_share->primary_key != MAX_KEY)
{
/*
* Increase any auto_incremented primary key
*/
if (has_auto_increment)
{
THD *thd= table->in_use;

m_skip_auto_increment= FALSE;
update_auto_increment();
/* Ensure that handler is always called for auto_increment values */
thd->next_insert_id= 0;
m_skip_auto_increment= !auto_increment_column_changed;
}
}

We set next_insert_id to 0 so that in handler::update_auto_increment() we end calling the handler and never doing it just inside the server.

The handler function that we end up in is: ha_ndbcluster::get_auto_increment().

From here we end up inside NDB to do the actual work (not in the table handler).

Looking inside storage/ndb/src/ndbapi/Ndb.cpp at the method:

Ndb::getAutoIncrementValue(NdbDictionary::Table*,Uint32)

which really just calls Ndb::getTupleIdFromNdb(Uint32,Uint32)
which either returns a cached value, or goes off and does a call to NDB to get either 1 auto increment value or the full cacheSize we’ve requested (which is worked out in ha_ndbcluster::get_auto_increment()). This increment is done in the interestingly named Ndb::opTupleIdOnNdb(Uint32 aTableId, Uint64 opValue, Uint32 op) (with op=0).

This increments an entry in the SYSTAB_0 table inside the sys database in NDB. The row with SYSKEY_0 equal to the table id keeps the auto increment value. You can watch this by using a tool such as ndb_select_all on this table (grepping for the table id which you found with ndb_show_tables) while inserting rows into a table with an auto_increment value.

Melbourne MySQL User Group May Meetup

The Melbourne MySQL User Group May Meetup – The Melbourne MySQL User Group – Meetup.com

We’re going to be going over cool stuff that happenned at the MySQL User Conference. Tales will be told, photos shown and questions answered.

A Googly MySQL Cluster Talk – Google Video

A Googly MySQL Cluster Talk – Google Video

The talk I gave at Google is now up on Google Video for all to see. I don’t think I gave it as well as I did at the User Conference (largely because, I think, by this time I was really tired), but it still went well (I think).

Feedback is much appreciated – always looking for ways to improve my talks.

Oh, I’m also wearing an Augie March t-shirt.

Update: watching yourself give a presentation is a bit strange… but hopefully I can learn from watching my own talk.

Things I’ve learnt so far:

  • some words are spoken a bit quickly/mumbly. probably due to not knowing how long this presentation would go for (it was a bit cobbled together in the two sessions before mine)
  • I (for whatever reason) had nano instead of micro for SCI latency. Oh well, hopefully nobody will notice my mistake (apart from when i blogged it. eep)
  • Make sure the mouse cursor on your slides is hidden/at the edge of the screen
  • At least for google video resolution, small text can’t be read (see my Components of a Cluster slide, you can’t read the name of the processes – ndbd, mysqld, ndb_mgmd). Getting around this can be interesting for some slides – that are easily viewable on a projector, but not on the video. Doh.
    • One possible solution is to “zoom” in on important text.
    • For example, the “A Configuration” slide. When I talk about each config parameter, have it zoom up to a larger font size (on that big bit of white space on the right)
  • I really do want to walk around a room. Having to stand in the one place for the video camera was nearly killing me :)
    • This is interesting as for my UC presentation I was annoyed that I couldn’t get a wireless microphone. Instead I was getting tangled up in a microphone cord.
  • I should possibly have some good slides on the split brain problem and a quick example of how we avoid it (and why you need at least three machines)
  • I sometimes pronounce “server’ strangely.
  • I should have a diagram that includes a magic load balancer box showing it load balancing between the mysql servers connected to the cluster.
  • I should possibly have a clear diagram showing where you can do queries (UPDATE) on cluster (everywhere) versus with replication (only the master).
  • I don’t think i should laugh when there’s something that I think is funny.
  • Be more carefull about when I stop for a drink of water. Think about it. between slides can be good, but when there’s something up for people to look at… maybe the next topic (or something else exciting)
    • I’m unsure if photos of scantily clad models are suitable here… :)
  • For “find out more” – have screenshots of the various things (and a photo of the book)
  • Need a clear definition of fragment.
  • I need to pronounce ‘configurable’ more clearly.
  • a laser pointer is not visible on google video

That’s all i wrote down while watching it. other input welcome

caught in the act of explaining how easy it is to provide food for me

In this photo: Gallery :: MySQL Users Conference 2006 :: 3 it seems that Jeremy managed to capture me (in the background) explaining to the O’Reilly conference woman (I forget her name…. Arjen knows) that it really wasn’t too hard for them to get me lunch considering that inside the building the restaurant staff managed to get food for me (so why can’t they do it outside). I also expressed my dismay at my interaction with the staff around an (afternoon/morning… i forget now) interaction involving a request for an apple (see “How not to do customer service“).

This was after the catering staff took over an hour and a half to bring me a small plate of vegetables (mostly spinach – which I do like – but there’s only so much you can eat) and a salad (that never arrived).

I was also rather dismayed at the comment (from the conf woman) about how they “didn’t cater for vegans”. I then gave an explanation (that she seemed surprised by) that all vegetarians can eat food that is vegan – and a whole bunch of stuff they had out there could be vegan with next to no effort (e.g. not putting cheese in salad,  vegetarian fried rice without egg). There’s also the fact that the sushi bar and the food serevd at the bar in the hotel (not 10ft from where we are) has managed to get me food easily and relatively promptly before.

Things did improve after this. Things like soy milk being available with morning/afternoon tea coffee (and being well used, I’m not the only one who drinks it). Also, the appearance of fruit. Not surprisingly, it mostly gone rather quickly (people like fruit).

Lesson for all conference organisers: have fruit. Everywhere. People like fruit. It’s good snack food that keeps your brain going (not your gut).

Oh, and I, of course, would have filled out the bit on the web form saying my dietry requirements. So it’s not as if they can claim ignorance.

Everything did work out eventually though. It just would have been nice to have lunch go smoother. Also, note to catering staff – kosher does not equal vegan. It really, really doesn’t.

10,000 Days

Have I mentioned how awesome the new Tool album is?

I can’t remember changing the star rating in rhythmbox, I think it even knows how awesome it is.

The album packaging itself is rather impressive. Stereoscopic glasses and all. I’ll take some photos and post.

I cannot wait until they tour. I’m very tempted to just fly to where they’re playing sooner. Hrrm… this could be getting a little too fanboy.

Famous on dev.mysql.com

MySQL AB :: MySQL: The World’s Most Popular Open Source Database

Screenshot.jpg

The cool thing is I wasn’t the one who noticed it. A holler goes out to Timmeah!

Interesting SSL with Australian System Administrator’s Conference 2006

The Australian System Administrator’s Conference 2006
It’s interesting that the online registration doesn’t have an SSL certificate that matches. I now have to find a printer to produce dead tree to mail.

Considering that I don’t actually own a printer, this is getting interesting…

P.S. come to my tutorial on MySQL Cluster!

Mr Stillhq.com doesn’t like Sea urchin

so he remembers

Cool Dolphin SCI interconnect stuff

http://www.dolphinics.com/ make this cool SCI socket hardware that can be used with MySQL Cluster (for example, like their example setup).

Their tech provides high performance (350MB/sec avail to the user) and low latency (worst case is like 2 or 3 micro seconds to send 512bytes to another node). So can pretty much kick the butt of gig-e.

We could probably do some really cool stuff with boosting performance (even further) when using SCI with some of the things I have in mind for multithreaded ndb kernel – basically changing some of the ways we do sending and receiving signals and improvements in shared memory stuff.

Big points from the presentation are:

  • small messages sent using basic CPU instructions (it’s remote memory mapping)
  • low cost to write to remote memory address
  • raw worst case send latency for 8 bytes is about 210 nanoseconds
  • no need to lock down or register memory
  • TCP/IP processing not done in software
  • Just LD_PRELOAD the library and it does your (user specified) Ip communication over the SCI interconnect
  • can be fully redundant (dual cards, distributed switching)
  • each card is about 5w of power (rather insignificant compared to other techs apparrently)
  • really small time for failover

It’s also good to note that 10 gigabit ethernet doesn’t really buy you anything in reducing latency. SCI gives you both improved bandwidth and latency.

People looking into wanting more performance in MySQL Cluster should have a good look at it.

It’s also used in fighter planes – which make cool loud jet noises.

(err… i didn’t mean to sound to rah rah. hopefully i’ve just sounded like i think the tech is shiny)

UPDATE: corrected milli to nano.

UPDATE mk2: corrected nano to micro. Oh how I wish I just typed correctly to begin with. At least I’ve had some rest now :)

Mike Hillyer’s laptop melting and backup fun at UC

Mike Hillyer’s Personal Web Space » Blog Archive » It’s Alive!!

Mike’s laptop went funny, but he had a backup of his presentation.

So, something about my backup strategy.

I have a policy that anything that I really care about is backed up. If it’s not backed up, I don’t care about it.

e.g. while I’d be sad if my mythtv box suddenly had a disk failure, I can always put in a blank disk and I don’t loose too much.

My email is fetched onto a server at home, and I use offlineimap to keep an up to date (nearly) copy on my laptop. I also, at least weekly, burn the entire thing to DVD (it still fits, when bzip2 compressed).

Also, for all that other stuff that is pretty important (/home), I do a xfsdump to external disk.

I also now (on a paranoid spending trip at Fry’s) have a small portable drive that is roughly twice the size of my /home partition. The idea is that on the road I can regularly do an xfsdump to this  – in fact, two complete dumps (and one or two incrementals on it).

Call me paranoid, but I like my data.

I also make sure I burn photos to DVD, but that’s more periodic as there’s a lot of them now.

How not to do customer service

“there’s nothing here i can eat for morning tea, could I please get an apple?”

“no”.

fuck.

All your Cluster BOF is belong to us

So, we had a really good Cluster BOF last night. Started at 8:30 and at 11pm everybody was tired enough to go to bed :)

Healthy mix of people with deployed clusters, prototype clusters and even some who have looked at MySQL Cluster in the past, decided it wasn’t for them at that point in time, but are still interested enough to show up to the BOF.

It was really freeform (as in I got up and said “there is no agenda for this – what do we want to talk about?”).

We got some really valuable feedback about what people like, dislike and even did hands-up polls of “what do you want us to do first?”. Also got some good suggestions on what to tweak (small fixes) to make people’s lives a lot easier.

The room was pretty well populated as well. my guess was half full (which means nothing until you see the size of the rooms. i’ll try and get a photo at some point).

The consensus at the end seemed to be that people found the BOF valuable as well.

I’d love to hear further feedback. Be brutally honest too.