Merge "opt: add hints to make delete/claim checks faster"

This commit is contained in:
Jenkins 2013-12-04 22:43:56 +00:00 committed by Gerrit Code Review
commit ec18885d96

View File

@ -316,7 +316,9 @@ class MessageController(storage.MessageBase):
preference = pymongo.read_preferences.ReadPreference.PRIMARY
collection = self._collection(queue_name, project)
msgs = collection.find(query, sort=[('k', 1)],
read_preference=preference)
read_preference=preference).hint(
CLAIMED_INDEX_FIELDS
)
if limit is not None:
msgs = msgs.limit(limit)
@ -632,9 +634,11 @@ class MessageController(storage.MessageBase):
return
now = timeutils.utcnow_ts()
message = collection.find_one(query)
cursor = collection.find(query).hint(ID_INDEX_FIELDS)
if message is None:
try:
message = next(cursor)
except StopIteration:
return
is_claimed = (message['c']['id'] is not None and