Memory Abstractions for Data Transactions
نویسنده
چکیده
This thesis presents STO, a software transactional memory (STM) based not on low-level reads and writes on memory, but on datatypes—arrays, lists, queues, hash tables, and so forth—that explicitly support transactional operations. Conventional STMs allow programmers to write concurrent code in much the same way as sequential code—thereby more easily taking advantage of multiple CPU cores. However, these conventional STMs track every memory word accessed during a transaction, so even simple operations can perform many more memory accesses for synchronization than is strictly required for transactional correctness. Our insight is that concurrent data structures can generate fewer superfluous accesses, and use more efficient concurrency protocols, when transaction bookkeeping tracks high-level operations like “insert node into tree.” We test our ideas on the STAMP benchmark suite for STM applications, on a high-performance in-memory database, and on a previously single-threaded program that we extend to multithreaded operation. We find that datatypes can support transactional operations without too much trouble; that relatively naive users can build simple transaction support into their own data structures; and that our typed STM can outperform and outscale conventional, untyped STM, and even outperform world-class, handrolled transactional implementations for databases. This thesis also includes a full implementation of the system, which will be made open source and is currently available on request. Thesis Supervisor: Eddie Kohler Title: Professor
منابع مشابه
Modular transactional memory
Software transactional memory has the potential to greatly simplify development of concurrent software, by supporting safe composition of concurrent sharedstate abstractions. However, STM semantics are defined in terms of low-level reads and writes on individual memory locations, so implementations are unable to take advantage of the properties of user-defined abstractions. Consequently, the pe...
متن کاملMemory abstractions for parallel programming
A memory abstraction is an abstraction layer between the program execution and the memory that provides a different “view” of a memory location depending on the execution context in which the memory access is made. Properly designed memory abstractions help ease the task of parallel programming by mitigating the complexity of synchronization or admitting more efficient use of resources. This di...
متن کاملLanguage Support for Communicating Transactions
In the context of databases, a transaction is a sequence of data operations that are executed atomically and in isolation: either all operations are executed or none is; and their effects are visible to the environment only after the transaction commits. Database transactions are well-established abstractions that simplify concurrent data access in computer programming. Recently Software Transa...
متن کاملVERBAL MEMORY FUNCTION IN ADOLESCENTS WITH DIABETES MELLITUS TYPE 1: CONSIDERING THE ROLE OF RUMINATION
Background & Aims: Verbal memory refers to the memory of words and other abstractions related to language. The purpose of this study was to determine the effect of diabetes mellitus type 1 on verbal memory considering the moderation role of rumination in adolescents. Materials & Methods: Using a suitable sampling method, 40 adolescents with diabetes type 1 were selected from members of the Ira...
متن کاملA Uniform Transactional Execution Environment for Java
Transactional memory (TM) has recently emerged as an effective tool for extracting fine-grain parallelism from declarative critical sections. In order to make STM systems practical, significant effort has been made to integrate transactions into existing programming languages. Unfortunately, existing approaches fail to provide a simple implementation that permits lock-based and transaction-base...
متن کاملReducing the Integration Complexity of Software Transactional Memory with TBoost.STM
Transactional memory (TM) is a concurrency control paradigm that reduces the difficulty of writing parallel programs and supports the efficient execution of some concurrent workloads. While TM offers advantages over other abstractions, it can sometimes require complex hardware, programming language extensions, specific compiler support, or enforce impractical software design, making it unrealis...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015