Access and method execution on distributed complex objects
Complex objects are used to model “non-traditional” database applications such as in multimedia, software engineering, etc. The complex objects in such applications are large and possibly geographically distributed. ^ The existing database server architectures tend to minimize one communication overhead at the expense of another in accessing the objects for method execution on a complex object. This thesis investigates how compiler optimization techniques can be used to minimize two of those conflicting overheads: number of round-trips and communication bandwidth in retrieving “irrelevant” objects. ^ We present Client-Driven Object Grouping (CDOG) in which an executing method dynamically determines the groups of objects needed in its computation. The a priori computed static information for the method is used in making the decisions. The method semantics and execution profiles are used to extend these object groups. ^ We introduce the notion of complex object skeletons. A skeleton provides a mechanism to determine the identity of objects in a complex object without having to access their data. Using the formal methodology presented, the static information is mapped to a skeleton to determine relevant identities. ^ The implementation and empirical evaluation of CDOG in a distributed object database system called O-Raid is detailed. Finally, we show that dynamic grouping of objects at a client mitigates the limitations of server based object grouping mechanisms during method execution. ^
Major Professor: Bharat K. Bhargava, Purdue University.