Overview

The Adaptive Radix Tree (ART) is an efficient in-memory index data structure on modern architectures that beats read-only search trees on lookup performance while at the same time supporting insertion and deletion. We implemented three synchronization protocols for the Adaptive Radix Tree and compared their performance under low and high contention. Our results showed that our optimistic lock coupling implementation scales better than the fine-grained lock coupling and the coarse-grained lock approach under both writer-only low contention scenarios and mixed writer and reader high contention scenarios. The results also suggest that using shared pointers as the memory reclamation method is inefficient in a parallel setting.

This project is developed as part of a final project for the 15-418/618 Parallel Computer Architecture and Programming class.

[Final Report] [Poster]

WeekWork ItemWork splitStatus
04/16 - 04/21Sequential implementation - insert, getYuchen✅
04/16 - 04/21Sequential implementation - removeHang✅
04/22 - 04/24Garbage collection and lock implementationYuchen✅
04/22 - 04/24Benchmark setupHang✅
04/25 - 04/30LC and OLC implementation - insert, getYuchen✅
04/25 - 04/30LC and OLC implementation - removeHang✅
05/01 - 05/05Final report/result collection and analysisTogether✅
05/06Poster SessionTogether✅