Exploring Time-Space trade-offs for "synchronized" in Lilliput
Exploring Time-Space trade-offs for "synchronized" in Lilliput
18 August 2021
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 readers is assumed to be familiar with current HotSpot implementation of “synchronized” as well as the the Compact Java Monitors (CJM) design.
Venue : discussion whitepaper for the JVM's "lilliput" project -- we intent to post the pdf to the lilliput mailing list and also to arxiv.org
File Name : lilliput-synchronization.pdf