Concurrency is a fundamental concern for high-performance systems, and through the years, different methods have emerged that govern how a shared piece of data can be accessed. In this study, I analyze different concurrency control methods to understand their characteristics and impact on performance. We compare 3 different methods, Lock-Free, RWMutex, & partially Lock-Free. These implementations are further tested on different workloads, such as Read-Heavy, Write-Heavy and Balanced. Several metrics are taken into account, including throughput, latency, CPU utilization, memory utilization, and more.
You can find the research paper here
- Clone the repo
git clone https://github.com/NucleoFusion/lf-v-mutex
- Get into the folder
cd lf-v-mutex
- Run the program (Takes a long time, default is 1000*10000)
go run .
- (Optionally) change the values for
numRoutines
andopsPerRoutine
inrun.go
file. Default is 1000 and 10000 respectively.
Author: Lakshit Singh
Email: [email protected]
ORC-ID: 0009-0008-7072-0093