Exploring Time-Space trade-offs for "synchronized" in Lilliput

Exploring Time-Space trade-offs for "synchronized" in Lilliput

Dave Dice, Alex Kogan

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