xCalls: safe I/O in memory transactions

12 years 8 months ago
xCalls: safe I/O in memory transactions
Memory transactions, similar to database transactions, allow a programmer to focus on the logic of their program and let the system ensure that transactions are atomic and isolated. Thus, programs using transactions do not suffer from deadlock. However, when a transaction performs I/O or accesses kernel resources, the atomicity and isolation guarantees from the TM system do not apply to the kernel. The xCall interface is a new API that provides transactional semantics for system calls. With a combination of deferral and compensation, xCalls enable transactional memory programs to use common OS functionality within transactions. We implement xCalls for the Intel Software Transactional Memory compiler, and found it straightforward to convert programs to use transactions and xCalls. In tests on a 16-core NUMA machine, we show that xCalls enable concurrent I/O and system calls within transactions. Despite the overhead of implementing transactions in software, transactions with xCalls impr...
Haris Volos, Andres Jaan Tack, Neelam Goyal, Micha
Added 10 Mar 2010
Updated 10 Mar 2010
Type Conference
Year 2009
Authors Haris Volos, Andres Jaan Tack, Neelam Goyal, Michael M. Swift, Adam Welc
Comments (0)