Object views
- 1 October 1999
- conference paper
- Published by Association for Computing Machinery (ACM)
- Vol. 34 (10) , 447-460
- https://doi.org/10.1145/320384.320433
Abstract
Object-based parallel and distributed applications are becoming increasingly popular, driven by the programmability advantages of component technology and a flat shared-object space. However, the flat shared-object space introduces a performance challenge: applications that rely on the transparent coherent caching of objects achieve high performance only on tightly coupled parallel machines. In distributed environments, the overheads of object caching force application designers to choose other solutions. Consequently, most applications sacrifice programmability, relying instead on either the explicit coherence management of cached objects, or on vastly different middleware abstractions such as multicast and events.In this paper, we describe object views — language support for efficient object caching in parallel and distributed computations. Object views specify restrictions on how computation threads can use an object, providing the underlying implementation with information about the potential side effects of object access, and thereby enabling construction of scalable, low-overhead caching protocols customized to application requirements. We present extensions to the Java programming language for expressing object views, and describe the design and implementation of a translator and run-time system for executing view-augmented Java programs on a distributed cluster of workstations. Experimental results based on a shared whiteboard application demonstrate that view-based object caching can achieve performance superior to multicast- and event-based implementations, while retaining essentially a shared object interface.Keywords
This publication has 12 references indexed in Scilit:
- ShastaPublished by Association for Computing Machinery (ACM) ,1996
- TreadMarks: shared memory computing on networks of workstationsComputer, 1996
- Highly efficient and encapsulated re-use of synchronization code in concurrent object-oriented languagesPublished by Association for Computing Machinery (ACM) ,1993
- The shared regions approach to software cache coherence on multiprocessorsPublished by Association for Computing Machinery (ACM) ,1993
- Object-oriented concurrent reflective languages can be implemented efficientlyPublished by Association for Computing Machinery (ACM) ,1992
- Orca: a language for parallel programming of distributed systemsIEEE Transactions on Software Engineering, 1992
- Implementation and performance of MuninPublished by Association for Computing Machinery (ACM) ,1991
- Emerald: A general‐purpose programming languageSoftware: Practice and Experience, 1991
- Memory coherence in shared virtual memory systemsACM Transactions on Computer Systems, 1989
- Inheritance and synchronization with enabled-setsPublished by Association for Computing Machinery (ACM) ,1989