HyflowCPP: A Distributed Software Transactional Memory Framework for C++

The distributed transactional memory (DTM) abstraction aims to simplify the development of distributed concurrent programs. It frees programmers from the complicated and error-prone task of explicit concurrency control based on locks (e.g., deadlocks, livelocks, non-scalability, non-composability),...

Full description

Bibliographic Details
Main Author: Mishra, Sudhanshu
Other Authors: Electrical and Computer Engineering
Format: Others
Published: Virginia Tech 2013
Subjects:
C++
Online Access:http://hdl.handle.net/10919/19265
id ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-19265
record_format oai_dc
spelling ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-192652020-09-29T05:48:17Z HyflowCPP: A Distributed Software Transactional Memory Framework for C++ Mishra, Sudhanshu Electrical and Computer Engineering Ravindran, Binoy Jones, Mark T. Broadwater, Robert P. Distributed Transactional Memory Transactional Framework C++ Distributed Concurrency The distributed transactional memory (DTM) abstraction aims to simplify the development of distributed concurrent programs. It frees programmers from the complicated and error-prone task of explicit concurrency control based on locks (e.g., deadlocks, livelocks, non-scalability, non-composability), which are aggravated in a distributed environment due to the complexity of multi-node concurrency. At its core, DTM\'s atomic section-based synchronization abstraction enables the execution of a sequence of multi-node object operations with the classical serializability property, which significantly increases the programmability of distributed systems.<br /><br />In this thesis, we present the first ever DTM framework for distributed concurrency control in C++, called HyflowCPP. HyflowCPP provides distributed atomic sections, and pluggable support for concurrency control algorithms, directory lookup protocols, contention management policies, and network communication protocols. The framework uses the Transaction Forwarding Algorithm (or TFA) for concurrency control. While there exists implementations of TFA and other DTM concurrency control algorithms in Scala and Java, and concomitant DTM frameworks (e.g., HyflowJava, HyflowScala, D2STM, GenRSTM), HyflowCPP provides a uniquely distinguishing TFA/DTM implementation for C++. Also, HyflowCPP supports strong atomicity, transactional nesting models including closed and open nesting (supported using modifications to TFA), and checkpointing.<br /><br />We evaluated HyflowCPP through an experimental study that measured transactional throughput for a set of micro- and macro-benchmarks, and comparing with competitor DTM frameworks. Our results revealed that HyflowCPP achieves up to 600% performance improvement over competitor Java DTM frameworks including D2STM, GenRSTM, HyflowScala and HyflowJava, which can be attributed to the competitors\' JVM overhead and rudimentary networking support. Additionally, our experimental studies revealed that checkpointing achieves up to 100% performance improvement over flat nesting and 50% over closed nesting. Open nesting model achieves up to 140% performance improvement over <br />flat nesting and 90% over closed nesting. Master of Science 2013-02-19T22:44:14Z 2013-02-19T22:44:14Z 2013-02-13 Thesis vt_gsexam:182 http://hdl.handle.net/10919/19265 In Copyright http://rightsstatements.org/vocab/InC/1.0/ ETD application/pdf Virginia Tech
collection NDLTD
format Others
sources NDLTD
topic Distributed Transactional Memory
Transactional Framework
C++
Distributed Concurrency
spellingShingle Distributed Transactional Memory
Transactional Framework
C++
Distributed Concurrency
Mishra, Sudhanshu
HyflowCPP: A Distributed Software Transactional Memory Framework for C++
description The distributed transactional memory (DTM) abstraction aims to simplify the development of distributed concurrent programs. It frees programmers from the complicated and error-prone task of explicit concurrency control based on locks (e.g., deadlocks, livelocks, non-scalability, non-composability), which are aggravated in a distributed environment due to the complexity of multi-node concurrency. At its core, DTM\'s atomic section-based synchronization abstraction enables the execution of a sequence of multi-node object operations with the classical serializability property, which significantly increases the programmability of distributed systems.<br /><br />In this thesis, we present the first ever DTM framework for distributed concurrency control in C++, called HyflowCPP. HyflowCPP provides distributed atomic sections, and pluggable support for concurrency control algorithms, directory lookup protocols, contention management policies, and network communication protocols. The framework uses the Transaction Forwarding Algorithm (or TFA) for concurrency control. While there exists implementations of TFA and other DTM concurrency control algorithms in Scala and Java, and concomitant DTM frameworks (e.g., HyflowJava, HyflowScala, D2STM, GenRSTM), HyflowCPP provides a uniquely distinguishing TFA/DTM implementation for C++. Also, HyflowCPP supports strong atomicity, transactional nesting models including closed and open nesting (supported using modifications to TFA), and checkpointing.<br /><br />We evaluated HyflowCPP through an experimental study that measured transactional throughput for a set of micro- and macro-benchmarks, and comparing with competitor DTM frameworks. Our results revealed that HyflowCPP achieves up to 600% performance improvement over competitor Java DTM frameworks including D2STM, GenRSTM, HyflowScala and HyflowJava, which can be attributed to the competitors\' JVM overhead and rudimentary networking support. Additionally, our experimental studies revealed that checkpointing achieves up to 100% performance improvement over flat nesting and 50% over closed nesting. Open nesting model achieves up to 140% performance improvement over <br />flat nesting and 90% over closed nesting. === Master of Science
author2 Electrical and Computer Engineering
author_facet Electrical and Computer Engineering
Mishra, Sudhanshu
author Mishra, Sudhanshu
author_sort Mishra, Sudhanshu
title HyflowCPP: A Distributed Software Transactional Memory Framework for C++
title_short HyflowCPP: A Distributed Software Transactional Memory Framework for C++
title_full HyflowCPP: A Distributed Software Transactional Memory Framework for C++
title_fullStr HyflowCPP: A Distributed Software Transactional Memory Framework for C++
title_full_unstemmed HyflowCPP: A Distributed Software Transactional Memory Framework for C++
title_sort hyflowcpp: a distributed software transactional memory framework for c++
publisher Virginia Tech
publishDate 2013
url http://hdl.handle.net/10919/19265
work_keys_str_mv AT mishrasudhanshu hyflowcppadistributedsoftwaretransactionalmemoryframeworkforc
_version_ 1719346409930489856