Transactional data structures

Concurrent programming is difficult and the effort is rarely rewarded by faster execution. The concurrency problem arises because information cannot pass instantly between processors resulting in temporal uncertainty. This thesis explores the idea that immutable data and distributed concurrency cont...

Full description

Bibliographic Details
Main Author: Jarvis, Kimberley James
Other Authors: Kirkham, Christopher ; Watson, Ian
Published: University of Manchester 2011
Subjects:
Online Access:http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.549106
id ndltd-bl.uk-oai-ethos.bl.uk-549106
record_format oai_dc
spelling ndltd-bl.uk-oai-ethos.bl.uk-5491062017-07-25T03:20:53ZTransactional data structuresJarvis, Kimberley JamesKirkham, Christopher ; Watson, Ian2011Concurrent programming is difficult and the effort is rarely rewarded by faster execution. The concurrency problem arises because information cannot pass instantly between processors resulting in temporal uncertainty. This thesis explores the idea that immutable data and distributed concurrency control can be combined to allow scalable concurrent execution and make concurrent programming easier. A concurrent system that does not impose a global ordering on events lends itself to a scalable distributed implementation. A concurrent programming environment in which the ordering of events affecting an object is enforced locally has intuitive concurrent semantics. This thesis introduces Transactional Data Structures which are data structures that permit access to past versions, although not all accesses succeed. These data structures form the basis of a concurrent programming solution that supports database type transactions in memory. Transactional Data Structures permit non-blocking concurrent access to familiar abstract data types such as deques, maps, vectors and priority queues. Using these data structures a programmer can write a concurrent program in C without having to reason about locks. The solution is evaluated by comparing the performance of a concurrent algorithm to calculate the minimum spanning tree of a graph with that of a similar algorithm which uses Transactional Memory and by comparing a non-blocking Producer Consumer Queue with its blocking counterpart.005.3University of Manchesterhttp://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.549106https://www.research.manchester.ac.uk/portal/en/theses/transactional-data-structures(7060eaec-7dbd-4d5a-be1a-a753d9aa32d5).htmlElectronic Thesis or Dissertation
collection NDLTD
sources NDLTD
topic 005.3
spellingShingle 005.3
Jarvis, Kimberley James
Transactional data structures
description Concurrent programming is difficult and the effort is rarely rewarded by faster execution. The concurrency problem arises because information cannot pass instantly between processors resulting in temporal uncertainty. This thesis explores the idea that immutable data and distributed concurrency control can be combined to allow scalable concurrent execution and make concurrent programming easier. A concurrent system that does not impose a global ordering on events lends itself to a scalable distributed implementation. A concurrent programming environment in which the ordering of events affecting an object is enforced locally has intuitive concurrent semantics. This thesis introduces Transactional Data Structures which are data structures that permit access to past versions, although not all accesses succeed. These data structures form the basis of a concurrent programming solution that supports database type transactions in memory. Transactional Data Structures permit non-blocking concurrent access to familiar abstract data types such as deques, maps, vectors and priority queues. Using these data structures a programmer can write a concurrent program in C without having to reason about locks. The solution is evaluated by comparing the performance of a concurrent algorithm to calculate the minimum spanning tree of a graph with that of a similar algorithm which uses Transactional Memory and by comparing a non-blocking Producer Consumer Queue with its blocking counterpart.
author2 Kirkham, Christopher ; Watson, Ian
author_facet Kirkham, Christopher ; Watson, Ian
Jarvis, Kimberley James
author Jarvis, Kimberley James
author_sort Jarvis, Kimberley James
title Transactional data structures
title_short Transactional data structures
title_full Transactional data structures
title_fullStr Transactional data structures
title_full_unstemmed Transactional data structures
title_sort transactional data structures
publisher University of Manchester
publishDate 2011
url http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.549106
work_keys_str_mv AT jarviskimberleyjames transactionaldatastructures
_version_ 1718503819971657728