getsentry / getsentry/sentry

Rethink Project Cache Invalidations

Open
#112,793 2 comments 0 reactions 0 assignees View on GitHub
GitHub Team: ingest Improvement Product Area: Ingestion and Filtering
Dominant language
Python
Stars
44.8k
Forks
4.9k
Avg merge
21h 10m
Merged PRs (30d)
635

Description

See also: https://github.com/getsentry/relay/issues/5801#issuecomment-4237317774

Currently project config invalidations delete the project config from the cache, trigger the job which is supposed to compute the project config, which then in turn has a debounce.

Instead of deleting the project config we can compute the new project config, and only at the end of the computation override the project config.

This gives us some more resilience when computations start to fail and mirrors the behaviour we have implemented in Relay (failures do not invalidate the cache).

It may make sense to implement some debounce logic generically in taskbroker to facilitate this change.

Contributor guide

Open the contributing guide

Research direction

Start with the project-config invalidation and computation flow, then read the linked Relay discussion for the intended failure behavior. Preserve the existing cached config while recomputation is running or fails, replacing it only after successful computation; determine whether generic debounce support in taskbroker is needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.