Next Up Previous Contents References

2.5 Related Work

Related Work

At the surface, paths are similar to UNIX pipes [89] and Pilot streams [87]. While all three have in common a linear sequence of components (processes in UNIX, Mesa modules in Pilot, modules in the path model), neither pipes nor streams provide any global context to the individual components. Neither do they attempt to optimize the code along a path. It is also the case that UNIX pipes are more coarse-grain and unidirectional.

The system that is, at least terminology-wise, close to the proposed path model is Da CaPo [40]. Da CaPo stands for dynamic configuration of protocols and defines an infrastructure for building multimedia protocols. It has an explicit notion of paths, but there are important differences to our proposed path model at all levels. At lowest level, Da CaPo paths are unidirectional and the partial processing functions have restricted semantics (they are essentially non-blocking event-handlers). As a result, Da CaPo is not universal or even powerful enough to accommodate all but the most basic tasks that arise from network protocol processing. Another important difference is that path creation is left completely to an external configuration manager. As pointed out in Section 2.2.3, this means that in any reasonably complex system, the configuration manager will be burdened by detailed knowledge of the internal workings of particular modules. In contrast, the path model makes it easy to exploit both local and global information during path creation. At a higher level, Da CaPo focuses completely on automatically selecting appropriate protocol functionality; performance and resource management appear to be lesser issues to Da CaPo.

CORDS is a communication subsystem by the Open Group (formerly Open Software Foundation) that is based on the x-kernel [49]. It employs a path abstraction that is based on early work that lead to the path model proposed here. As such, paths as presented in [105] are limited in several ways. First, they are applicable in the communication subsystem only. Second, they do not admit path-oriented code optimizations as discussed in Section 2.4.1. Third, they do not admit paths that are shorter than anticipated or desired. Indeed, it is not clear whether CORDS would be able to detect and handle such cases. A final, and arguably the most significant, difference is that in CORDS, paths are defined as an add-on abstraction that is often in conflict with other abstractions (e.g., session objects in the x-kernel). In contrast, the path model proposed here provides a unifying and general path abstraction.

In addition to the above mentioned work, there is a wealth of research on mechanisms that offer point-solutions to the more general problem of exploiting paths, both as a code optimization and resource management framework. Examples of code, or fast-path optimizations include Synthesis [60], Synthetix [85], PathIDs [56], Protocol Accelerators [107], and integrated layer processing [16, 1]. Examples in the second category include processor capacity reserves [64], distributed/migrating threads [19, 37], and Rialto activities [52]. These related works do not attempt to define an explicit and universal path abstraction, but are a source of interesting examples of how paths can be employed.

The work on Synthetix is also interesting in that it introduces the notion of quasi-invariants. Quasi-invariants are similar to invariants as discussed in Section 2.2.3.4 but differ in that they may become invalid during the lifetime of a path. The idea behind quasi-invariants is that, in some cases, invariants are likely to be true for a long time-span, but there is a chance that they may become invalid at any point in time. Supporting quasi-invariants enables exploiting such almost invariants and thus allow for more aggressive optimization. They also introduce more complexity in the path model, since invalidation of a quasi-invariant will require corrective actions. There is no reason to believe that the proposed model could not be extended to accommodate quasi-invariants, but this avenue of research has not been explored as part of this dissertation.


Next Up Previous Contents References