You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Relay splits large batches of buckets and large buckets down into smaller chunks so that the resulting requests and kafka messages never get larger than a configured threshold. This is centralized in the metrics aggregator so that it applies both to processing relays (producing to kafka) and other relays (sending envelopes).
The performance problem occurs in the split_at sub function, which splits a large distribution or set bucket into two smaller ones. This causes suboptimal memory allocations:
Splitting the bucket consumes significant time, since for the values a new container needs to be allocated
If the metrics cannot be sent, they need to be re-inserted, which consumes a similar amount of time in moving the values back and deallocating the old structure
If the metrics can be sent, allocating a temporary structure is redundant, since we could serialize from a view.
The text was updated successfully, but these errors were encountered:
Relay splits large batches of buckets and large buckets down into smaller chunks so that the resulting requests and kafka messages never get larger than a configured threshold. This is centralized in the metrics aggregator so that it applies both to processing relays (producing to kafka) and other relays (sending envelopes).
The performance problem occurs in the
split_at
sub function, which splits a large distribution or set bucket into two smaller ones. This causes suboptimal memory allocations:The text was updated successfully, but these errors were encountered: