Region-Based Dynamic Separation for STM Haskell

Laura Effinger-Dean Dan Grossman · 2010

We present a design and implementation of dynamic separation in STM Haskell. Dynamic separation is a recent approach to software transactional memory (STM) that achieves strongly-atomic semantics with performance comparable to that of a weakly-atomic STM. STM Haskell, a lazy-versioning STM library for Haskell, previously supported strongly-atomic semantics via static separation, and we have found dynamic separation to be a natural extension of the library’s interface. Our implementation of dynamic separation has two novel extensions. First, we improve support for mutable data structures by providing protection regions, special objects that hold the protection state for multiple references. Second, we expand the set of protection states so that the interface is more expressive. We give a formal semantics for region-based dynamic separation and prove that a weak lazy-versioning STM supports strong atomicity (for a semantics without regions). We have evaluated the performance of our system on a suite of STM Haskell programs. We also discuss an alternate implementation that detects inconsistent protection states at run time.

Read the paper · More papers on PaperTik