Skip lists: a probabilistic alternative to balanced trees | Synapse