Next: Dependability
Up: Requirements
Previous: Speed
  Contents
Processing and data movement requirements of our environment cannot be met
easily by monolithic systems. They have several major disadvantages:
- Partial upgrades are difficult or even impossible.
- Connectivity is limited by number of ports and memory bandwidth.
- Larger machines are more expensive to build.
- Error in a part of the system causes failure of the whole
system.
- Maintenance causes unavailability of the whole system.
These reasons drive the deployment of clusters built from commodity computing
components. They have the numerous advantages (partly from [McC99,FGC$^$97]):
- Per unit cost of the system is smaller because of mass
production.
- Incremental upgrade with state of the art commodity components
is possible.
- Availability is high, as single failures can be tolerated.
- Performance of the sum of units is generally higher than the
performance of a single large machine. This stems from the fact that
resources do not have to be shared.
- Clusters of independent units are well suited for applications
with simultaneous independent users or applications.
- Each application can comprise richer functionality, as the whole node
is exclusively available for processing.
- Due to their openness,
computing clusters are easier to adapt to specific needs.
Spreading the workload over a large number of processors and network
ports helps to overcome the limitations of processing power in single machines.
A system that allows such graceful extension in order to meet its
performance specification is said to be scalable. This quality becomes
more and more important for the software part as it is difficult to
manage large quantities of independent units.
Furthermore multiplicative growth of
messages in our system limits scalability. Each node has to keep state
information about all other communication participants. It has been
shown that at a number of about 700 communication partners and 300
threads to handle this load, 70% of processing is spent in the operating
system kernel[FGC$^$97, pp. 86-87]. This exhibits one of the
problems with we have to deal with when it comes to design of
communication middleware.
Requirement 2 (Scalability)
Software for construction of a distributed data
acquisition system shall support scalability of the
cluster. Scalability means, that the increase of overhead with additional
participants in the system is predictable (at best linear) and
that the other performance requirements can be met.
Next: Dependability
Up: Requirements
Previous: Speed
  Contents
Johannes Gutleber
1999-10-29