Document Type
Report
Date
10-1-2010
Keywords
Networks, Peer-to-Peer, Concurrency, Software Transactional Memory
Language
English
Disciplines
Electrical and Computer Engineering
Description/Abstract
Peer-to-Peer network topologies are such that there is no centralized server in a distributed system but rather each peer is part server and part client. This idea was originally popularized with peer-to-peer file sharing. If one were to distribute computation on a peer-to-peer network topology, consistency of shared data among peers is a problem. Software Transactional Memory (STM) is a lock free mechanism of assuring consistency of memory among threads of execution that has favorable performance over locked methods when the number of threads is large. This paper presents a method to use STM methods with a peer-to-peer network architecture that doesn't use locks. This is accomplished by using peer-to-peer search using two keywords: one for the variable name and the other for the most recent version of the variable. The technique of using Hilbert Space Filling Curves to map from the keyword space to the identifier space without flooding from Squid [2] is used. Deadlocks are prevented by executing reads and writes with a defined partial order that is transparent to the developer. As an example of using the methods presented, a blocking queue is built from the primitives provided.
Recommended Citation
Pratt-Szeliga, Phil and Fawcett, Jim, "p2pstm: A Peer-to-Peer Software Transactional Memory" (2010). Electrical Engineering and Computer Science - All Scholarship. 170.
https://surface.syr.edu/eecs/170
Source
local input
Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.
Additional Information
SYR-EECS-2010-03