Award Date

May 2015

Degree Type


Degree Name

Master of Science in Computer Science


Computer Science

First Committee Member

Ajoy K. Datta

Second Committee Member

Ajoy K. Datta

Third Committee Member

John Minor

Fourth Committee Member

Lawrence Larmore

Fifth Committee Member

Venkatesan Muthukumar

Number of Pages



A splay tree is a self-adjusting binary search tree in which recently accessed elements are quick to access again. Splay operation causes the sequential bottleneck at the root of the tree in concurrent environment. The Lazy splaying is to rotate the tree at most one per access so that very frequently accessed item does full splaying. We present the RCU (Read-copy-update) based synchronization mechanism for splay tree operations which allows reads to occur concurrently with updates such as deletion and restructuring by splay rotation. This approach is generalized as relativistic programming. The relativistic programming is the programming technique for concurrent shared-memory architectures which tolerates different threads seeing events occurring in different orders, so that events are not necessarily globally ordered, but rather subject to constraints of per-thread ordering.

The main idea of the algorithm is that the update operations are carried out concurrently

with traversals/reads. Each update is carried out for new reads to see the new state, while allowing pre-existing reads to proceed on the old state. Then the update is completed after all pre-existing reads have completed.


Concurrency; Data structures (Computer science); Read -copy-update; Relativistic programming; Splay Tree


Computer Sciences

File Format


Degree Grantor

University of Nevada, Las Vegas




IN COPYRIGHT. For more information about this rights statement, please visit