[openstack-dev] [Zaqar] Zaqar and SQS Properties of Distributed Queues

Gordon Sim gsim at redhat.com
Fri Sep 19 15:10:14 UTC 2014


On 09/19/2014 08:53 AM, Flavio Percoco wrote:
> On 09/18/2014 09:25 PM, Gordon Sim wrote:
>> I don't see that the claim mechanism brings any stronger guarantee, it
>> just offers a competing consumer behaviour where browsing is
>> non-competing (non-destructive). In both cases you require the client to
>> be able to remember which messages it had processed in order to ensure
>> exactly once. The claim reduces the scope of any doubt, but the client
>> still needs to be able to determine whether it has already processed any
>> message in the claim already.
>
> The client needs to remember which messages it had processed if it
> doesn't delete them (ack) after it has processed them. It's true the
> client could also fail after having processed the message which means it
> won't be able to ack it.
>
> That said, being able to prevent other consumers to consume a specific
> message can bring a stronger guarantee depending on how messages are
> processed. I mean, claiming a message guarantees that throughout the
> duration of that claim, no other client will be able to consume the
> claimed messages, which means it allows messages to be consumed only once.

I think 'exactly once' means different things when used for competing 
consumers and non-competing consumers. For the former it means the 
message is processed by only one consumer, and only once. For the latter 
it means every consumer processes the message exactly once.

Using a claim provides the competing consumer behaviour. To me this is a 
'different' guarantee from non-competing consumer rather than a 
'stronger' one, and it is orthogonal to the reliability of the delivery.

However we only differ on terminology used; I believe we are on the same 
page as far as the semantics go :-)




More information about the OpenStack-dev mailing list