summary refs log tree commit diff
path: root/synapse/push
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/push')
-rw-r--r--synapse/push/__init__.py4
-rw-r--r--synapse/push/bulk_push_rule_evaluator.py8
2 files changed, 11 insertions, 1 deletions
diff --git a/synapse/push/__init__.py b/synapse/push/__init__.py
index d5928c1d29..635dedd523 100644
--- a/synapse/push/__init__.py
+++ b/synapse/push/__init__.py
@@ -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
diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py
index f531d2edc4..1c0fa72b25 100644
--- a/synapse/push/bulk_push_rule_evaluator.py
+++ b/synapse/push/bulk_push_rule_evaluator.py
@@ -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