views:

48

answers:

1

I've heard these two terms quite many times,

but always confused.

My guess:

  1. for distributed servers,each server has its own unique data to serve
  2. for clustered servers,each server is supposed to have the same data given enough time to synchronize

Is that the difference?

+1  A: 

I think the terms themselves might get misused and semantically have overlap, but from my experience, a distributed system is one where all the machines talk to eachother; a cluster is where the machines may be indepedent (but not always).

Take for example a MMORPG. The most complex and highest end architectures are distributed in a way, that the guy standing next to you and that you are talking to, is actually connected to a different physical server. It works by having each 'simulation server' talking to different services (like a 'chat' service, a 'trade item' service,..) via a service bus. This is what is considered distributed architecture - the machines are working togeather to accomplish the same goal

Conversely, clustered servers might do their own, distinct set of work completely independent of other machines in the cluster. Look at the SETI project for example... or even a simple ASP.NET load balanced cluster... In both cases, these clusters are doing their own independent set of work and not communicating with eachother - they are just serving up different jobs (SETI) or pages (ASP.NET) to their clients..

dferraro
So what will you call `master-slave` and `master-master` database architecture respectively?
I'd say its semantics... Going back to the MMO example; another architecure (much more simple and used thouroughly in the original MMOS) is to have your world simulations servers (partioned via physical game space, e.g. maps) ignorant of eachother. All they know about is receiving hand-offs of player info from a 3rd party 'zoning' server. In this case, each server does its own specific set of work, talking to its own clients, and doesnt talk to any other servers as well as clients don't talk to more then one server at a time. This could then easily be considered a cluster, or distributed...
dferraro