Check out the new USENIX Web site. next up previous
Next: Acknowledgments Up: Implementing Causal Logging using Previous: Lack of Required Information

Discussion

In implementing causal logging to achieve causal consistency for our CORBA service, COPE, we use the interception facilities provided by OrbixWeb filters. OrbixWeb filters allow us to add functionality to legacy software in a manner that is orthogonal and non-intrusive to the main computation. Using filters, invocations in the system can be captured and processed before continuing with the normal flow of the program. However, despite our best endeavors, we were faced with a few difficulties. One problem was in understanding how to structure an OrbixWeb application that passes references to CORBA objects that can be subclassed. With the help of Iona, we were able to find a practical solution. The two remaining problems were more serious:

1.
One cannot impose a per-object filter that is generic--that is, that need not conform to the interface implemented by the object. The level of interception implementable using OrbixWeb filters therefore poses a fundamental problem. As we discovered in our case, getting around the problem incurs a very high performance penalty and is thus not a practical solution.

2.
One has no means to access the calling object in a filter. This violation of context sensitivity property leads to the static variable solution which, except for the problem above, would violate the transparency property.

It is not clear why such a limit to disallow access to the calling object was imposed in the first place. But with this limitation, the piggybacking mechanism in place cannot be utilized to its full potential.

We believe that any communications middleware platform for distributed computing should be powerful enough to build the engineering solution described in Section 3. Such a solution might even be considered a benchmark for the utility of such platforms.

Although we have not attempted to implement COPE using other CORBA ORBs, we have looked into using the Legion system [12]. And, Legion appears to be powerful enough to efficiently implement COPE, but it would be interesting to actually do so to see what problems might arise. Of course, it would also be interesting to see how well other CORBA ORBs could support COPE.


next up previous
Next: Acknowledgments Up: Implementing Causal Logging using Previous: Lack of Required Information

1999-03-21