Direct sharing and storing of memory objects allows high-performance and low-overhead collaboration between parallel processes or application workflows with loosely coupled programs. However, sharing of objects is hindered by the inability to use subtype polymorphism which is common in object-oriented programming languages. That is because implementations of subtype polymorphism in modern compilers rely on using virtual tables stored at process-specific locations, which makes objects unusable in processes other than the creating process.
In this paper, we present SAVI Objects, objects with Sharing and Virtuality Incorporated. SAVI Objects support subtype polymorphism but can still be shared across processes and stored in persistent data structures. We propose two different techniques to implement SAVI Objects and evaluate the tradeoffs between them. The first technique is virtual table duplication which adheres to the virtual-table-based implementation of subtype polymorphism, but duplicates virtual tables for shared objects to fixed memory addresses associated with each shared memory region. The second technique is hashing-based dynamic dispatch which re-implements subtype polymorphism using hashing-based look-ups to a global virtual table.
Our results show that SAVI Objects enable direct sharing and storing of memory objects that use subtype polymorphism by adding modest overhead costs to object construction and dynamic dispatch time. SAVI Objects thus enable faster inter-process communication, improving the overall performance of production applications that share polymorphic objects.
Wed 25 OctDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00 | |||
10:30 22mTalk | SAVI Objects: Sharing and Virtuality Incorporated OOPSLA Izzat El Hajj University of Illinois at Urbana-Champaign, USA, Thomas B. Jablin University of Illinois at Urbana-Champaign, USA / Multicoreware, USA, Dejan Milojicic Hewlett Packard Labs, USA, Wen-mei Hwu University of Illinois at Urbana-Champaign, USA DOI | ||
10:52 22mTalk | A Simple Soundness Proof for Dependent Object Types OOPSLA Marianna Rapoport University of Waterloo, Canada, Ifaz Kabir University of Waterloo, Canada, Paul He University of Waterloo, Canada, Ondřej Lhoták University of Waterloo, Canada DOI | ||
11:15 22mTalk | Unifying Typing and Subtyping OOPSLA DOI | ||
11:37 22mTalk | Fast and Precise Type Checking for JavaScript OOPSLA Avik Chaudhuri Facebook, USA, Panagiotis Vekris University of California at San Diego, USA, Sam Goldman Facebook, USA, Marshall Roch Facebook, USA, Gabriel Levi Facebook, USA DOI |