forked from MirrorHub/synapse
Add some comments to areas that could be optimised.
This commit is contained in:
parent
3fbb031745
commit
5645d9747b
3 changed files with 14 additions and 1 deletions
|
@ -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…
Reference in a new issue