mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
cache: Drop the huddle cache.
This cache was only used in one place, which is infrequently called (only when sending messages, or searching explicitly for a list of users) and the overhead of maintaining the cache is not worth trying to avoid the well-indexed lookup of the huddle.
This commit is contained in:
committed by
Tim Abbott
parent
5591d6f65c
commit
1f3a53db2d
@@ -24,7 +24,7 @@ from zerver.lib.cache import (
|
|||||||
from zerver.lib.safe_session_cached_db import SessionStore
|
from zerver.lib.safe_session_cached_db import SessionStore
|
||||||
from zerver.lib.sessions import session_engine
|
from zerver.lib.sessions import session_engine
|
||||||
from zerver.lib.users import get_all_api_keys
|
from zerver.lib.users import get_all_api_keys
|
||||||
from zerver.models import Client, Huddle, UserProfile, get_client_cache_key, huddle_hash_cache_key
|
from zerver.models import Client, UserProfile, get_client_cache_key
|
||||||
|
|
||||||
|
|
||||||
def user_cache_items(
|
def user_cache_items(
|
||||||
@@ -43,10 +43,6 @@ def client_cache_items(items_for_remote_cache: Dict[str, Tuple[Client]], client:
|
|||||||
items_for_remote_cache[get_client_cache_key(client.name)] = (client,)
|
items_for_remote_cache[get_client_cache_key(client.name)] = (client,)
|
||||||
|
|
||||||
|
|
||||||
def huddle_cache_items(items_for_remote_cache: Dict[str, Tuple[Huddle]], huddle: Huddle) -> None:
|
|
||||||
items_for_remote_cache[huddle_hash_cache_key(huddle.huddle_hash)] = (huddle,)
|
|
||||||
|
|
||||||
|
|
||||||
def session_cache_items(
|
def session_cache_items(
|
||||||
items_for_remote_cache: Dict[str, Dict[str, object]], session: Session
|
items_for_remote_cache: Dict[str, Dict[str, object]], session: Session
|
||||||
) -> None:
|
) -> None:
|
||||||
@@ -98,12 +94,6 @@ cache_fillers: Dict[
|
|||||||
3600 * 24 * 7,
|
3600 * 24 * 7,
|
||||||
10000,
|
10000,
|
||||||
),
|
),
|
||||||
"huddle": (
|
|
||||||
lambda: Huddle.objects.select_related("recipient").all(),
|
|
||||||
huddle_cache_items,
|
|
||||||
3600 * 24 * 7,
|
|
||||||
10000,
|
|
||||||
),
|
|
||||||
"session": (lambda: Session.objects.all(), session_cache_items, 3600 * 24 * 7, 10000),
|
"session": (lambda: Session.objects.all(), session_cache_items, 3600 * 24 * 7, 10000),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4291,10 +4291,6 @@ def get_huddle_hash(id_list: List[int]) -> str:
|
|||||||
return hashlib.sha1(hash_key.encode()).hexdigest()
|
return hashlib.sha1(hash_key.encode()).hexdigest()
|
||||||
|
|
||||||
|
|
||||||
def huddle_hash_cache_key(huddle_hash: str) -> str:
|
|
||||||
return f"huddle_by_hash:{huddle_hash}"
|
|
||||||
|
|
||||||
|
|
||||||
def get_or_create_huddle(id_list: List[int]) -> Huddle:
|
def get_or_create_huddle(id_list: List[int]) -> Huddle:
|
||||||
"""
|
"""
|
||||||
Takes a list of user IDs and returns the Huddle object for the
|
Takes a list of user IDs and returns the Huddle object for the
|
||||||
@@ -4302,13 +4298,6 @@ def get_or_create_huddle(id_list: List[int]) -> Huddle:
|
|||||||
yet exist, it will be transparently created.
|
yet exist, it will be transparently created.
|
||||||
"""
|
"""
|
||||||
huddle_hash = get_huddle_hash(id_list)
|
huddle_hash = get_huddle_hash(id_list)
|
||||||
return get_or_create_huddle_backend(huddle_hash, id_list)
|
|
||||||
|
|
||||||
|
|
||||||
@cache_with_key(
|
|
||||||
lambda huddle_hash, id_list: huddle_hash_cache_key(huddle_hash), timeout=3600 * 24 * 7
|
|
||||||
)
|
|
||||||
def get_or_create_huddle_backend(huddle_hash: str, id_list: List[int]) -> Huddle:
|
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
(huddle, created) = Huddle.objects.get_or_create(huddle_hash=huddle_hash)
|
(huddle, created) = Huddle.objects.get_or_create(huddle_hash=huddle_hash)
|
||||||
if created:
|
if created:
|
||||||
|
|||||||
Reference in New Issue
Block a user