zaqar-specs/specs/kilo/fifo-optional.rst
ZhaoBo 92aa310652 Fix zaqar spec PEP8 CI check
This patch also ignore "queues" setences.

Change-Id: If05d8238a1c92b336faab037b656ca5d5bbd3d49
2016-12-19 12:20:57 +00:00

94 lines
2.8 KiB
ReStructuredText

.. 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
============================
Make FIFO guarantee optional
============================
FIFO has been one of Zaqar's most wanted guarantees. Besides
reliability, durability and other latency requirements, users have
always requested FIFO to be there. This feature, however, has proven
to be an issue for some scenarios that don't necesarily require it,
hence this proposal.
https://blueprints.launchpad.net/zaqar/+spec/make-fifo-optional
Problem description
===================
FIFO, despite being a great guarantee to have, brings in some scale
and performance issues that Zaqar is not willing to accept as the
default behavior. This spec proposes making FIFO optional and letting
drivers capable of supporting such scenario to do so.
Proposed change
===============
The proposed change, as stated in previous sections, is to make FIFO
optional. It is possible to do so through `flavors`.
Not all store drivers are capable of supporting FIFO but those who
are, will have FIFO listed in their supported capabilities and such
capabilities will be exposed through the `flavors` ones. However, it's
not as straightforward as it seems. See the `Work Items`_ section for
a list of required changes that will make this possible.
Drawbacks
---------
As a side effect of this change, we'll have to relax the delivery
guarantee for pub-sub. The reason being that walking through the queue
won't prevent consumers to skip messages.
Alternatives
------------
- Keep it as is
- Remove FIFO completely
Implementation
==============
Assignee(s)
-----------
Primary assignee: flaper87
Milestones
----------
Target Milestone for completion: K-1
Work Items
----------
* Allow driver to expose what features they support
Each driver supporst a set of features and this set needs to be accessible
from the upper layers
* Standardize the *supported* capabilities
Make a list of supported capabilities
* Add a way to pass capabilities down to the driver
We can do this when the driver is initialized since we know what the
capabilities are at that time.
* Support both, FIFO and non-FIFO, post methods.
Dependencies
============
* https://review.openstack.org/#/c/126531/
.. note::
This work is licensed under a Creative Commons Attribution 3.0
Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode