I’ve Moved

June 20, 2011

Due to various trivial and frankly uninteresting reasons I’ve decided to move my blog across to Posterous.

You can now find me at http://akatkinson.posterous.com. I trust my vast readership will go ahead and update their bookmarks accordingly (or alternatively wait for the redirect from akatkinson.com to update in their DNS and not notice a thing).

Thank you.


Caching by Mail

May 9, 2011

A nice little bit of nostalgia from Stuart Cheshire’s 1996 article ‘It’s the Latency, Stupid’ in its discussion of caching:

One of the most effective techniques throughout all areas of computer science is caching, and that is just as true in networking…

Recently companies have started providing CDROMs of entire Web sites to speed Web browsing. When browsing these Web sites, all the Web browser has to do is check the modification date of each file it accesses to make sure that the copy on the CDROM is up to date. It only has to download files that have changed since the CDROM was made. Since most of the large files on a Web site are images, and since images on a Web site change far less frequently than the HTML text files, in most cases very little data has to be transferred.

I have no recollection of ever encountering this, seeing as I was all of fourteen at the time this was written; maybe that’s why I find it amusing. It’s certainly a great example of Sneakernet in action, and it also illustrates just how much the web’s changed since, and and how unbelievably static is was in its original form.

As they say: never underestimate the bandwidth of a 747 full of tapes. Or, in this case, a postie bike.


Abridged

March 7, 2011

A wordle of my thesis. Sixty-thousand words distilled down to a few dozen. May I never (or at least, rarely) type the word ‘tuple’ again.

Thesis Wordle


Welcome to Watson, our new Jeopardy-playing overlord

February 17, 2011

I’m still digesting the significance of the IBM Watson‘s defeat of two human champion Jeopardy players in the last few days.

Is it not that significant? Could Google do just as well? Or is this a significant moment in computer science history? I mean, while a game of Jeopardy isn’t the equivalent of the Turing Test, it’s impressive in its own right.


Yield and harvest as a way of thinking about fault-tolerance

January 30, 2011

I was put onto an excellent article by Coda Hale titled ‘You Can’t Sacrifice Partition Tolerance‘ which expands on some of the ideas laid out in Dr Eric Brewer’s CAP Theorem.

The CAP Theorem is the distributed systems version of the classic engineering maxim of “Good, fast, cheap: pick two”. Briefly stated, it declares that any distributed system may only have two of the following properties: consistency; availability; partition tolerance. It makes perfect sense when you think about it, as it’s logically impossible to remain both consistent and available in the case of the system becoming partitioned due to node failure/disconnections etc.

The case raised by Hale is that, for any distributed system, partition tolerance is not something that can simply be chosen. That is, disconnections and node failures etc are guaranteed to happen at some point in time. They are simply an annoyingly constant fact of life for anyone involved in the field. Therefore, any real-world distributed system must support some kind of fault-tolerance, otherwise it’s useless.

This means that the distributed systems designer is left to decide the following: given that system failures will occur, and your system may become partitioned, is your system going to degrade by sacrificing consistency, or availability? It depends on the system requirements as to which should be chosen, however it’s the unfortunate face that you simply can’t preserve both.

Given this, Hale suggests that a better way to think about handling failure is by using yield and harvest. Yield is defined as the impact of unavailability on handling incoming requests (related to but different to uptime), and harvest is a measure of how much of the required data is available to fulfil a request (ie. if a request needs to data from two servers, one of which is unavailable, the harvest will be only 50%).

Hale’s point is that you can choose which of these will be affected in the case of system failures and partitions. Is it better for some requests to be dropped in the interests of preserving accuracy (harvest), or can we handle a lower harvest in the interests of maintaining responsiveness? Again, the system requirements determine the answer.

I find this a very useful way to think about how a system is going to degrade when faults occur. After all, if you design something to be scalable (increase throughput as nodes are added) it makes perfect sense to consider how a system will degrade/scale down as nodes are lost. It can only be beneficial to be completely clear on the choices and tradeoffs involved, and that, ultimately, you can’t have your cake and eat it too when it comes to consistency and availability.


My 2010 in review

January 1, 2011

A quick summary of the highlights of my year:

  • Started out living in Napier, NZ, finished up in Brisbane, Aus. Miss some things about Napier, but no regrets. Brisbane is a fantastic place to live, and I’m not moving again in a hurry.
  • Started out working as a lecturer at EIT, finished up as an engineer at Merge Gaming. Found that I was happy with the career change. No regrets at all.
  • Also found that (thankfully) I still had my coding chops, and that I enjoy building software.
  • Started learning about all the neat stuff that’s been happening in the industry that I missed due to a myopic focus on my PhD.
  • Oh yes, officially (finally) graduated in April with a doctorate.
  • Presented a paper at ACSW2010 in Brisbane in January.
  • Started learning about web design and development, something I’d always done my best to maintain a militant ignorance about. Remedial education in HTML, CSS, Javascript. Always wanted to learn Python, so getting into Django. Turns out it’s all actually pretty fun.
  • Started a little web project that I’d like to get finished over the summer.
  • Haven’t got out mountain biking as much as I’d have liked, but discovered some nice trails around Mt Coot-tha. They’re not a jot on what I had on my doorstep this time last year though *sigh*.

So overall, it’s been a great year with a lot of change, all of which has thankfully turned out to be positive. Hopefully 2011 will be slightly less hectic but just as productive.


Follow

Get every new post delivered to your Inbox.