Monday 1 February 2010

Distributed Computing - Introduction



Introduction to distributed computing


As this is just an intro I'll keep it brief...

Sooooo, what is a distributed system? I'm going to 'borrow' the description that Matt used in his COMP10052 posts (this post to be precise):

A distributed system is one in which independent, self-sufficient, often heterogeneous and autonomous,spatially separated components must use a common interconnect to exchange information in order to coordinate their actions and allow the whole to appear to its users as a single coherent system.


So basically, it's a computing platform built with many computers that:



  • Operate concurrently

  • Are physically distributed (maybe across a room, maybe across an ocean)

  • Are linked by a network (quite an important part)

  • Have independent clocks



Consequences


There are some consequences of running a distributed system. They aren't necessarily bad but they need to be considered.

  • There's no such thing as a global clock (not even Big Ben)

  • There's no global state (s0 there isn't any process that knows the current global system state)

  • The usual consequences that come from parallel processing, like race conditions and deadlocks

  • System failures can occur on one machine (so it's important we build a system that can keep running when machines fail)


Examples


There are lots and lots and lots of distributed systems around, so here's a few examples:

  • The world wide web

  • DNS

  • P2P networks

  • e-banking networks


The real advancements in distributed computing came with the rise of the web in the early 90s and network technology developed quickly.

The 8 fallacies of distributed computing


There's no point in me going over these again when Matt has summarised them perfectly in a COMP10052 post, so I'm just going to link to that post. Read the 8 fallacies (aka axioms) and then come back here for the summary.

Click here for the post



Summary


There really isn't much to add, as it is just an introductory post, so:

  • Remember what a distributed system is

  • Learn what the consequences to consider in creating one are

  • Learn the 8 fallacies / axioms

  • Floss


And that's everything.


No comments:

Post a Comment