/tlds

Lock-free Transactions without Rollbacks for Linked Data Structures

Primary LanguageC

TLDS: Transactional operations for Linked Data Structures

This repository contains the code for  "Lock-Free Transactional Transformation for Linked Data Structures" by Zhang, Laborde, Lebanoff, and Dechev, published in ACM Transaction on Parallel Computing in 2018.

The tagged release corresponds to "Lock-free Transactions without Rollbacks for Linked Data Structures" in ACM Transactions on Parallel Programming.

This code is extended by "Wait-free Dynamic Transactions for Linked Data Structures" by Laborde, Lebanoff, Peterson, Zhang, and Dechev, published in Concurrency and Computation: Practice and Experience in 2020. 

Tested operating systems
Ubuntu 16 to 20 (native and WSL2)

Required dependencies for building the code:
sudo apt install libtool cmake libtbb-dev libboost-dev libgoogle-perftools-dev libgsl-dev

To build the code do the following:
git clone https://github.com/ucf-cs/tlds.git
mv tlds trans-dev (or cp -r tlds trans-dev)
mkdir trans-compile
cd trans-dev
./bootstrap.sh
cd ../trans-compile
../trans-dev/configure
make    
./src/trans  #Runs the tester without any options
Run script/pqtest.py to run the benchmark