I’m looking to use FoundationDB to implement queues also and I came across this in the documentation:
High-Contention Dequeue Operations
To minimize conflicts during dequeue operations, we can use a staging technique to service the requests. If a dequeue operation doesn’t initially succeed, it registers a dequeue request in a semi-ordered set of such requests. It then enters a retry loop in which it attempts to fulfill outstanding requests.
Did you implement that algorithm? Or how did you deal with high contention consumers?
Do you know how that “staging” algorithm works? Can you help explain it?
Hi. Sorry for the late reply. We didn’t use foundationdb in our product environment at last. So I didn’t notice the comments.
I know little about “staging” algorithm… But if you need any help just let me know. Maybe we can build a solid queue model for FoundationDB in erlang together.
I’m not familiar with Erlang, it would be nice if you could describe your implementation of the Distributed, High Concurrency and Low Latency Queue .