We implement a queue using RDMA compare-and-swap and fetch-and-add operations. It borrows ideas from the CRQ algorithm. Because it uses a single fixed size circular array, it is non-blocking only for buffered enqs, in contrast to LCRQ which is non-blocking for an arbitrary number of enqs [1].
[1] http://www.cs.technion.ac.il/~mad/publications/ppopp2013-x86queues.pdf
It satisfies the following properties: