A flexible framework for implementing software transactional memory
Skip lists: a probabilistic alternative to balanced trees