Issues with Distributed Systems
In order to effectively design, debug, and manage your distributed system, it is important to consider the following needs:
- Determining and ensuring the proper order of activities performed across processes and threads
- Tracking control flow of messages between processes, unobtrusively
- Identifying interrelationships between distributed components
- Identifying opportunities for optimizing performance such as load balancing
When working with a top down architectural view we need to bear in mind:
- Events and other CORBA messages drive execution
- Causal relationships across processes are presently difficult to track
- Very little information is available to support "optimal" component deployment
Standard types of source debugging tools for instance do not address these kinds of issues. The reasons being:
- Focus is on the execution of a single process
- Usage affects memory footprint and timing
- Requires strategic placement of breakpoints to capture flow
Even RTOS oriented tools, which are designed to support the development of quite complex systems only have the perspective of a single-card/board system. As a result they:
- Cannot provide information about multiple cards/chassis
- Can only be applied once some sort of fault isolation has narrowed the problem scope.