We propose a distributed protocol for a queue, called \textsc{Skueue}, which spreads its data fairly onto multiple processes, avoiding bottlenecks in high throughput scenarios. \textsc{Skueue} can be used in highly dynamic environments, through the addition of join and leave requests to the standard queue operations enqueue and dequeue. Furthermore \textsc{Skueue} satisfies sequential consistency in the asynchronous message passing model. Scalability is achieved by aggregating multiple requests to a batch, which can then be processed in a distributed fashion without hurting the queue semantics. Operations in \textsc{Skueue} need a logarithmic number of rounds w.h.p. until they are processed, even under a high rate of incoming requests.
@article{arxiv.1802.07504,
title = {Skueue: A Scalable and Sequentially Consistent Distributed Queue},
author = {Michael Feldmann and Christian Scheideler and Alexander Setzer},
journal= {arXiv preprint arXiv:1802.07504},
year = {2018}
}