[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Have we learned anything in the last 20 years?




I was wondering if we have learned anything about distributed systems in the
last 20 years.  I mean, are there any statements we can make that are largely
accepted in the computer science research community?

Before going further, let me say what I mean by a distributed system.  It is
a collection of independent computers that do not share primary memory (i.e.,
NOT a shared memory multiprocessor) but which act to the user like a single
computer (single system image).  By this definition, NFS, Andrew, the Sequent,
and a lot of things are not distributed systems.  Only a few such systems
exist, and they are largely research prototypes.

I would venture to state that the following statements are now considered
true by the majority of researchers in this area.  My question is, can people
think of any more?  For fun, I have a second category of statements that I
consider controversial rather than accepted as true.  Suggestions here, too,
are welcome.

GENERALLY ACCEPTED AS TRUE BY RESEARCHERS IN DISTRIBUTED SYSTEMS
   - The client-server paradigm is a good one
   - Microkernels are the way to go
   - UNIX can be successfully run as an application program
   - RPC is a good idea to base your system on
   - Atomic group communication (broadcast) is highly useful
   - Caching at the file server is definitely worth doing
   - File server replication is an idea whose time has come
   - Message passing is too primitive for application programmers to use
   - Synchronous (blocking) communication is easier to use than asynchronous
   - New languages are needed for writing distributed/parallel applications
   - Distributed shared memory in one form or another is a convenient model


STILL HIGHLY CONTROVERSIAL
   - Client caching is a good idea in a system where there are many more
     nodes than users, and users do not have a "home" machine (e.g., hypercubes)
   - Atomic transactions are worth the overhead
   - Causal ordering for group communication is good enough
   - Threads should be managed by the kernel, not in user space

Please post replies rather than sending them to me.  It should make for an
interesting discussion.  (I bet if someone did this for, high energy physics
or DNA research, there would be a lot more agreement than among computer
scientists.)

Andy Tanenbaum (ast@cs.vu.nl)