Exploiting Object Relationships for More Deterministic Management of Distributed Objects

Craig E. Wills. Exploiting object relationships for more deterministic management of distributed objects, Sept, 2000–Aug, 2003. National Science Foundation Operating Systems and Compilers Program of the CCR Division in the CISE Directorate. 9988250. $66,141.
Student: Mikhail Mikhailov

Caching of objects on the Internet and the World Wide Web is a frequently used technique to reduce latencies for clients accessing these objects while reducing network and server load. Mirrors also have become more important as commercial Web sites want to replicate objects closer to users for better performance. In addition, exported server objects are increasingly composed of multiple components of different types and characteristics. A prime example is the Web where ``container'' pages serve as composite objects containing a multimedia of text, image, programming script, audio and video objects. The object relationships within these composite objects and the relationships between objects at a server site are often not used nor exploited in managing objects, such as for communicating with clients retrieving and caching the objects. This lack of communication leads to less effective caches because heuristic-based, rather than deterministic, approaches are used for deciding what to cache, how long to keep it and deciding if cached objects are still fresh.

This work investigates the potential of managing objects in an environment where servers supply more complete information to client caches and use the information to manage replicated content. The idea is to exploit composite objects, which group a set of distinct objects where each object has a uniform type and change characteristic (changes on each access, at regular intervals, based on a data base changing, etc). Relationships between these objects can be ``compiled'' at a server into information that the server can pass to clients. Such information might include explicit expiration times for caching/mirroring a list of objects to invalidations based on the membership in a server volume. A volume contains a set of objects grouped by some relation. It might consist of all the objects within a composite object or all of the objects dependent on another object, such as a database changing. A server can then piggyback volume invalidations onto responses for server objects.

Effective and predictable caching is an important technique for continued performance improvements in the Internet and the World Wide Web. The proposed approach is supported by research on Web caching and characterization with potential for many improvements to current techniques used in the Web. The techniques can also be used to drive placement and removal of mirrored content, particularly when combined with client access counts. These techniques will have continued impact as distributed object environments continue to grow in size with increasing diversity in the type of objects being grouped together and served. There are many specific problems this research will address concerning how to gather relationship information at a server, how to compile it and how to communicate the information to client caches and server mirrors. After addressing these problems, these ideas will be tested by constructing a client/server environment consisting of objects with different types and relationships.