zaqar/setup.cfg
kgriffs 1512db43ec fix(mongodb): Marker generation creates a bottleneck under heavy load
This patch changes markers so that they are generated using a per-queue
side counter. A heuristic is used to mitigate a race condition. Due to the
new semantics, partial inserts are no longer possible due to collisions,
which ended up simplifying the retry logic for posting messages.

As a consequence of this patch, the last message posted no longer needs
to remain in the queue indefinitely, rendering marconi-gc unnecessary,
and so it has been removed.

Also, since the mongod GC worker runs once a minute, the queries no longer
filter out expired-but-not-yet-gc'd messages; on average, a message may
live more than 30 seconds passed it's expected lifetime, but I do not
think that this will harm or complicate any application building on top of
Marconi, practically speaking. That being said, it is worth calling out
in documentation.

Closes-Bug: #1218602
Change-Id: I34e24e7dd7c4e017c84eb5929ce37ad4c9e5266a
2013-09-26 10:33:00 -04:00

64 lines
1.7 KiB
INI

[metadata]
name = marconi
version = 2013.2
summary = OpenStack Queuing and Notification Service
description-file =
README.rst
author = OpenStack
author-email = openstack-dev@lists.openstack.org
home-page = http://www.openstack.org/
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 2.6
[files]
packages =
marconi
[entry_points]
console_scripts =
marconi-server = marconi.cmd.server:run
marconi.storage =
sqlite = marconi.queues.storage.sqlite.driver:Driver
mongodb = marconi.queues.storage.mongodb.driver:Driver
marconi.transport =
wsgi = marconi.queues.transport.wsgi.driver:Driver
marconi.common.cache.backends =
memory = marconi.common.cache._backends.memory:MemoryBackend
memcached = marconi.common.cache._backends.memcached:MemcachedBackend
marconi.proxy.storage =
memory = marconi.proxy.storage.memory.driver:Driver
mongodb = marconi.proxy.storage.mongodb.driver:Driver
[nosetests]
where=tests
verbosity=2
with-doctest = true
cover-package = marconi
cover-html = true
cover-erase = true
cover-inclusive = true
; Disabled: Causes a bug in testtools to manifest.
; Trigger: self.assertX(condition), where condition == False.
;
; In "testtools/testresult/real.py" the traceback is set to
; None in _details_to_exc_info(), but the inspect_traceback()
; method in nose/inspector.py requires a traceback-like object.
;
; detailed-errors = 1