Exploring Time-Space trade-offs for synchronized in Lilliput
Dave Dice, Alex Kogan

TL;DR
This paper investigates various synchronization algorithms within Project Lilliput to optimize space and time efficiency for Java object headers in the HotSpot JVM, highlighting key design trade-offs.
Contribution
It introduces a curated set of synchronization algorithms that serve as potential replacements for 'synchronized' in HotSpot, exploring their space-time trade-offs.
Findings
Different algorithms offer various space-time efficiency trade-offs.
Key design decisions impact synchronization metadata placement and lifecycle.
The algorithms provide insights into optimizing JVM synchronization mechanisms.
Abstract
In the context of Project Lilliput, which attempts to reduce the size of object header in the HotSpot Java Virtual Machine (JVM), we explore a curated set of synchronization algorithms. Each of the algorithms could serve as a potential replacement implementation for the "synchronized" construct in HotSpot. Collectively, the algorithms illuminate trade-offs in space-time properties. The key design decisions are where to locate synchronization metadata (monitor fields), how to map from an object to those fields, and the lifecycle of the monitor information. The reader is assumed to be familiar with current HotSpot implementation of "synchronized" as well as the Compact Java Monitors (CJM) design and Project Lilliput.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsCellular Automata and Applications
