Add some comments to areas that could be optimised.

This commit is contained in:
David Baker 2015-12-22 17:19:22 +00:00
parent 3fbb031745
commit 5645d9747b
3 changed files with 14 additions and 1 deletions

View File

@ -447,6 +447,9 @@ class SyncHandler(BaseHandler):
) )
now_token = now_token.copy_and_replace("presence_key", presence_key) now_token = now_token.copy_and_replace("presence_key", presence_key)
# We now fetch all ephemeral events for this room in order to get
# this users current read receipt. This could almost certainly be
# optimised.
_, all_ephemeral_by_room = yield self.ephemeral_by_room( _, all_ephemeral_by_room = yield self.ephemeral_by_room(
sync_config, now_token sync_config, now_token
) )

View File

@ -26,7 +26,9 @@ import random
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
# Pushers could now be moved to pull out of the event_actions table instead
# of listening on the event stream: this would avoid them having to run the
# rules again.
class Pusher(object): class Pusher(object):
INITIAL_BACKOFF = 1000 INITIAL_BACKOFF = 1000
MAX_BACKOFF = 60 * 60 * 1000 MAX_BACKOFF = 60 * 60 * 1000

View File

@ -59,6 +59,14 @@ def evaluator_for_room_id(room_id, hs, store):
class BulkPushRuleEvaluator: class BulkPushRuleEvaluator:
"""
Runs push rules for all users in a room.
This is faster than running PushRuleEvaluator for each user because it
fetches all the rules for all the users in one (batched) db query
rarher than doing multiple queries per-user. It currently uses
the same logic to run the actual rules, but could be optimised further
(see https://matrix.org/jira/browse/SYN-562)
"""
def __init__(self, room_id, rules_by_user, display_names, users_in_room): def __init__(self, room_id, rules_by_user, display_names, users_in_room):
self.room_id = room_id self.room_id = room_id
self.rules_by_user = rules_by_user self.rules_by_user = rules_by_user