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...
Main Author: | |
---|---|
Other Authors: | |
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 |