-
Notifications
You must be signed in to change notification settings - Fork 569
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
Use partitions ring in write path and ingesters consumption #7376
Conversation
// It can be nil, in which case a simple `go f()` will be used. | ||
// See Config.ReusableIngesterPushWorkers on how to configure this. | ||
ingesterDoBatchPushWorkers func(func()) | ||
doBatchPushWorkers func(func()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note to reviewers: renamed because it's also used for partitions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mimir changes lgtm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mostly nitpicks, LGTM
func NewPartitionReaderForPusher(kafkaCfg KafkaConfig, partitionID int32, consumerGroup string, pusher Pusher, logger log.Logger, reg prometheus.Registerer) (*PartitionReader, error) { | ||
consumer := newPusherConsumer(pusher, reg, logger) | ||
return newPartitionReader(kafkaCfg, partitionID, consumer, logger, reg) | ||
return newPartitionReader(kafkaCfg, partitionID, consumerGroup, consumer, logger, reg) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you want to fold the ConsumerGroup into KafkaConfig in the interest of fewer parameters? (I'd even say partitionID should have been there in the first place, but maybe later on)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right now, KafkaConfig
is what you user can configure while input args is internally config. I would keep this distinction for now. I find it easier to reason about.
Signed-off-by: Marco Pracucci <[email protected]> Co-authored-by: Dimitar Dimitrov <[email protected]> Co-authored-by: Peter Štibraný <[email protected]>
Signed-off-by: Marco Pracucci <[email protected]>
Signed-off-by: Marco Pracucci <[email protected]>
Signed-off-by: Marco Pracucci <[email protected]>
Signed-off-by: Marco Pracucci <[email protected]>
Signed-off-by: Marco Pracucci <[email protected]>
Signed-off-by: Marco Pracucci <[email protected]>
Signed-off-by: Marco Pracucci <[email protected]>
Signed-off-by: Marco Pracucci <[email protected]>
6568441
to
784ad79
Compare
Signed-off-by: Marco Pracucci <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, happy to merge this
What this PR does
This PR is another piece towards the partitions ring implementation, as part of the experimental ingest storage based on Kafka. In particular, in this PR I'm changing distributors (write path only) and ingesters to use partitions from the partitions ring.
How it works:
ingester-zone-a-0
owns the partition0
)ingestion_partitions_tenant_shard_size
What's excluded from this PR:
This PR is based on grafana/dskit#484
Which issue(s) this PR fixes or relates to
N/A
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]
.about-versioning.md
updated with experimental features.