Spec for more reserved queue attributes
Change-Id: I52b1086c00bee9d16469a907a6ee887e14322145
This commit is contained in:
parent
7ccb24eb8a
commit
91ca4b34b4
86
specs/mitaka/more-reserved-queue-attributes.rst
Normal file
86
specs/mitaka/more-reserved-queue-attributes.rst
Normal file
@ -0,0 +1,86 @@
|
||||
..
|
||||
This template should be in ReSTructured text. The filename in the git
|
||||
repository should match the launchpad URL, for example a URL of
|
||||
https://blueprints.launchpad.net/zaqar/+spec/awesome-thing should be named
|
||||
awesome-thing.rst.
|
||||
|
||||
Please do not delete any of the sections in this
|
||||
template. If you have nothing to say for a whole section, just write: None
|
||||
|
||||
For help with syntax, see http://sphinx-doc.org/rest.html
|
||||
To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html
|
||||
|
||||
==============================
|
||||
More reserved queue attributes
|
||||
==============================
|
||||
|
||||
https://blueprints.launchpad.net/zaqar/+spec/more-reserved-queue-attributes
|
||||
|
||||
Currently Zaqar supports setting metadata/attributes when user creating queue.
|
||||
However, the metadata/attributes are not used very much by Zaqar itself.
|
||||
Now we only support '_flavor' but it would be nice if we can support
|
||||
more attributes to make the queue more flexible.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Now Zaqar supports max_messages_post_size, default_message_ttl,
|
||||
default_claim_ttl and default_claim_grace. All of them defined in Zaqar's
|
||||
configuration file. That means it's global setting, all queues have to share
|
||||
the same configurations. It's not really flexible from the end user
|
||||
perspective. So it would be nice if we can let end user set them and use
|
||||
the default value in configuration file if they are not defined.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
The changes are not complicated, which may change two actions: Post messages
|
||||
and create claim for a queue.
|
||||
|
||||
1. Post Message:
|
||||
At line stable/liberty/zaqar/transport/wsgi/v2_0/messages.py#L182, we need
|
||||
to get the queue's metadata so as to get the queue's max_messages_post_size
|
||||
and ttl defined by user when creating the queue. If those aren't exist,
|
||||
then just use the global configuration defined in configuration file.
|
||||
|
||||
2. Create Claim:
|
||||
Similar thing like above, we need to get the queue's metadata at line
|
||||
stable/liberty/zaqar/transport/wsgi/v2_0/claims.py#L81 and then use that
|
||||
to do the check.
|
||||
|
||||
Drawbacks
|
||||
---------
|
||||
|
||||
It may introduce a tiny performance impact for message posting and claim
|
||||
creating. For example, instead of just checking if the queue is existing or
|
||||
not, Zaqar need to get the queue's metadata so that to get those attributes.
|
||||
But actually, we can use 'get_metadata' replace 'exists' to check if the queue
|
||||
exist or not, and they're calling the same collection.find_one() method, so
|
||||
technically, there is no performance impact.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Just keep current way, let all the queues share the same configurations.
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
flwang (flwang@catalyst.net.nz)
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
1. Support max_messages_size and ttl as queue attributes
|
||||
2. Support claim_ttl and claim_grace as queue attributes
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
N/A
|
||||
|
Loading…
Reference in New Issue
Block a user