Coordination Strategies: Degree of Decentralization
Here's a look at degrees of decentralization of agents that serve multiple,
geographically-dispersed users. Note, in the discussion that follows, that I generally
assume that two completely separate instances of the same application (such as Lotus Notes
two different companies) would count as a "single central server" (or whatever) and not as
"multiple, non-mirrored servers that don't know about each other", because the servers
involved are in totally separate and hermetic information domains. The one exception I
make is Julia, because
she could conceivably run multiple instantiations (one per MUD) all on a
single workstation. In this case, even though all instantiations are essentially in
separate information spaces, it's conceivable that it's useful to know that there are
multiple instantiations of the same software running around.
- A single central server
This is generally the easiest and most obvious organization for any sort of agent
that serves multiple users.
- Advantages:
- Easy to coordinate; no work has to be done by the agent itself to do so.
- Easy for users to know where to contact.
- Lends itself to crossbar algorithms and similar cases in which the
entire knowledge base must be examined for each query or action.
- If the server is used by very widely spread users, timezones may
spread out some of the load.
- Disadvantages:
- Doesn't scale: generally, the workload goes up as the square of the
number of users.
- Not fault tolerant: the server is a single point of failure for both
performance and security (it is a single obvious point to
compromise).
- The majority of users will find themselves a good part of an Internet
diameter away from the server; this can be serious if low latency is
required of the server.
- Examples:
- SABER (the airline reservation system).
- Most typical data-warehousing operations.
- HOMR and
maybe Firefly.
- Webhound.
- Multiple mirrored servers
This describes a class of server where the basic algorithm is run in parallel on a
number of machines (typically, very-loosely-coupled parallelism, e.g., separate
workstations, rather than a single MIMD or SIMD parallel architecture). Such
architectures in general can be divided into:
- Tightly-consistent architectures, in
which all servers have exactly the same, or virtually the same, database and
simply handle multiple requests or take actions for users in parallel,
possibly checkpointing with each other as each action is taken, and
- Loosely-consistent architectures, in
which the servers have mostly the same information or at least information
in the same domain, but they do not try to enforce a particularly strong and
consistent worldview among themselves.
The choice of tight or loose consistency is generally a function of the operations
being supported by the servers.
- Advantages:
- These architectures are handy when it is relatively simple to
maintain database consistency between servers (for example, if user
requests or actions taken on their behalf do not side-effect the
database, then its consistency is easier to maintain).
- Load-balancing is fairly simple, and extra hosts can be added
incrementally to accomodate increases in load.
- The servers may be geographically distributed to improve either
network load-balancing, timezone load-balancing, or fault-tolerance.
- Disadvantages:
- If the algorithm requires tight consistency, the requisite
interserver communications costs can eventually come to dominate the
computation.
- Even loosely-consistent servers will probably still suffer from
roughly quadratic growth in load with the number of users. This
implies that, to keep up with even linear user growth, a
quadratically-increasing number of servers must be put online;
keeping up with typical exponential growth, of course, is much harder.
- Examples:
- Current Firefly is
presumably some sort of mirrored, probably loosely-consistent server
architecture.
- Lycos is certainly a
tightly-consistent multiple-server architecture, where its tight
consistency is archieved by distributing the same index database to
all servers on a regular basis.
- Many FTP archives are mirrored in some sort of loosely- or
tightly-coupled server architecture, where the servers are themselves
geographically distributed to spread out the concommittant network
load.
- Multiple, non-mirrored servers
These types of agent architectures can fairly trivially be divided into:
The Web itself is an example of this architecture; each server does not need to
know about each other, and, in general, do not mirror each other. Few agent
architectures seem to be designed in this way, however, except in the limit of the
same agent simply being run in multiple instantiations in different information
domains.
- Advantages:
- Consistency is easy to achieve.
- Load sharing may be implemented as in the mirroring case above.
- Disadvantages:
- Similar to mirrored servers, though the disadvantage of maintaining
consistency is eliminated.
- Load growth may still be a problem.
- It may be difficult to find all servers if the algorithm demands it,
since the lack of mirroring means servers may tend to fall out of
touch with each other.
- Totally distributed peers (no distinction between server and client)
As in the case above of multiple, non-mirrored servers, totally-distributed peers
can be divided into:
This approach resembles an ALife system more than the approaches above, and
deviates most radically from typical client/server or centralized-system approaches.
- Advantages:
- Can probably be scaled up to accomodate loading easily, because
servers are also peers and probably associate close to 1-to-1 with
the user base.
- No central point of either failure or compromise.
- Disadvantages:
- Coordination between the peers becomes much more difficult.
- Algorithms that require global consistency are probably impossible to
achieve with acceptable performance.
- It may be difficult to keep all agents at similar software revision
levels.
- Examples:
- Yenta
is a classic example of totally-distributed peers that, for the
most part, don't know about each other (except those in current
clusters of the given peer).
Up |
Table of contents |
Next
Lenny Foner
Last modified: Fri Dec 15 09:56:07 1995