Skip to content

Opening book details…

Can I read AtomCaml: first-class atomicity via rollback on EtoBox?

AtomCaml: first-class atomicity via rollback by Michael F. Ringenburg; Dan Grossman is a scholarly article available to read on EtoBox.

What is AtomCaml: first-class atomicity via rollback about?

We have designed, implemented, and evaluated AtomCaml, an extension to Objective Caml that provides a synchronization primitive for atomic (transactional) execution of code. A first-class primitive function of type (unit->'a)->'a evaluates its argument (which may call other functions, even external C functions) as though no other thread has interleaved execution. Our design ensures fair scheduling and obstruction-freedom. Our implementation extends the Objective Caml bytecode compiler and run-time system to support atomicity. A logging-and-rollback approach lets us undo uncompleted atomic blocks upon thread pre-emption, and retry them when the thread is rescheduled. The mostly functional nature of the Caml language and the Objective Caml implementation's commitment to a uniprocessor execution model (i.e., threads are interleaved, not executed simultaneously) allow particularly efficient logging. We have evaluated the efficiency and ease-of-use of Atom-Caml by writing libraries and microbenchmarks, writing a small application, and replacing all locking with atomicity in an existing, large multithreaded application. Our experience indicates the performance overhead is negligible, ato

Author
Michael F. Ringenburg; Dan Grossman
Publisher
ACM
Published
2005
Language
EN

More by Michael F. Ringenburg; Dan Grossman

Browse all works by Michael F. Ringenburg; Dan Grossman