Add some comments to areas that could be optimised.

pull/4/merge
David Baker 9 years ago
parent 3fbb031745
commit 5645d9747b
  1. 3
      synapse/handlers/sync.py
  2. 4
      synapse/push/__init__.py
  3. 8
      synapse/push/bulk_push_rule_evaluator.py

@ -447,6 +447,9 @@ class SyncHandler(BaseHandler):
)
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(
sync_config, now_token
)

@ -26,7 +26,9 @@ import random
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):
INITIAL_BACKOFF = 1000
MAX_BACKOFF = 60 * 60 * 1000

@ -59,6 +59,14 @@ def evaluator_for_room_id(room_id, hs, store):
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):
self.room_id = room_id
self.rules_by_user = rules_by_user

Loading…
Cancel
Save