Perf: Don't filter events for push

We know the users are joined and we can explicitly check for if they are
ignoring the user, so lets do that.
This commit is contained in:
Erik Johnston 2017-07-07 14:04:40 +01:00
parent 58dc1f2c78
commit f502b0dea1
3 changed files with 21 additions and 36 deletions

View file

@ -308,3 +308,16 @@ class AccountDataStore(SQLBaseStore):
" WHERE stream_id < ?"
)
txn.execute(update_max_id_sql, (next_id, next_id))
@cachedInlineCallbacks(num_args=2, cache_context=True, max_entries=5000)
def is_ignored_by(self, ignored_user_id, ignorer_user_id, cache_context):
ignored_account_data = yield self.get_global_account_data_by_type_for_user(
"m.ignored_user_list", ignorer_user_id,
on_invalidate=cache_context.invalidate,
)
if not ignored_account_data:
defer.returnValue(False)
defer.returnValue(
ignored_user_id in ignored_account_data.get("ignored_users", {})
)