-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
ref(spans): Pin redis sharding to partition index #93209
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🔍 Existing Issues For ReviewYour pull request is modifying functions with the following pre-existing issues: 📄 File: src/sentry/spans/consumers/process/factory.py
Did you find this useful? React with a 👍 or 👎 |
Codecov ReportAttention: Patch coverage is ✅ All tests successful. No failed tests found.
Additional details and impacted files@@ Coverage Diff @@
## master #93209 +/- ##
==========================================
+ Coverage 85.31% 87.97% +2.65%
==========================================
Files 10256 10256
Lines 591639 591759 +120
Branches 22989 22986 -3
==========================================
+ Hits 504768 520593 +15825
+ Misses 86380 70675 -15705
Partials 491 491 |
🚨 Warning: This pull request contains Frontend and Backend changes! It's discouraged to make changes to Sentry's Frontend and Backend in a single pull request. The Frontend and Backend are not atomically deployed. If the changes are interdependent of each other, they must be separated into two pull requests and be made forward or backwards compatible, such that the Backend or Frontend can be safely deployed independently. Have questions? Please ask in the |
655f4cb
to
33a752a
Compare
PR reverted: 4a34dac |
This reverts commit 7cee132. Co-authored-by: jan-auer <[email protected]>
* master: Revert "ref(spans): Pin redis sharding to partition index (#93209)" chore: add DemoModeGuardMiddleware logging (#92926) feat(tempest): Dynamically fetch ip addresses (#93012) fix(demo-mode): cleanup demo-mode sync options (#92918) ref(sdk): Migrate to `sentry_sdk.get_global_scope` (#93020) ref(sdk): Migrate to `get_isolation_scope` (#93019) ref(spans): Pin redis sharding to partition index (#93209)
We observe performance degradation of the `process-spans` consumer with an increasing number of Redis shards. By using the partition index instead of the trace ID as sharding key, we pin each partition to exactly one Redis shard, which should reduce this effect. The downside is that a single hot partition can no longer be spread across multiple Redis shards. At the current time, we operate 4-8 partitions per shard, so we do not expect that this becomes an issue in the short time.
This reverts commit 7cee132. Co-authored-by: jan-auer <[email protected]>
We observe performance degradation of the
process-spans
consumer with anincreasing number of Redis shards. By using the partition index instead of the
trace ID as sharding key, we pin each partition to exactly one Redis shard,
which should reduce this effect.
The downside is that a single hot partition can no longer be spread across
multiple Redis shards. At the current time, we operate 4-8 partitions per shard,
so we do not expect that this becomes an issue in the short time.
If this proves successful, we should follow up with proper cellularization of
the buffer consumer.
Ref VIEPF-45