Skip to content
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

Cooperative stickies w/ metrics #43

Open
wants to merge 12 commits into
base: qox-stats-callback
Choose a base branch
from

Conversation

omnibs
Copy link
Member

@omnibs omnibs commented Apr 21, 2022

Try out our fork of hw-kafka allowing cooperative rebalance strategy, based off of our WIP PR exposing rdkafka metrics, so we can understand what's up with rdkafka under the hood.

@omnibs omnibs force-pushed the qox-cooperative-stickies branch from cd89e41 to 4455a57 Compare April 21, 2022 14:29
|> map (\_ -> ())
flushProducer :: Producer.KafkaProducer -> Prelude.IO ()
flushProducer producer = do
Producer.flushProducer producer
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We've used flushProducer before in order to use sync sending messages. I think it's also a blocking function and I think to remember that it also slowed down sending immensely. ℹ️

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe it's fixed though.

caiquefigueiredo and others added 11 commits April 26, 2022 14:50
We're gettingt this error:

All partition.assignment.strategy (range,cooperative-sticky) assignors must have the same protocol type, online migration between assignors with different protocol types is not supported

Some minimal reading of rdkafka made us believe range is EAGER and
cooperative-sticky is .. well .. COOPERATIVE, which are different
protocol types.

This means we can't use both at the same time and in practice, means we
need downtime on workers when deploying this change. Not terrible tbh.
Extra props doesn't set things up correctly to use incremental_assign
and friends.
We've switched to the only remaining pollEvent proxy: flushProducer

It might be fine to flush 'em every 100ms. We'll see.
@stoeffel stoeffel force-pushed the qox-cooperative-stickies branch from 0aff8f2 to da82ac6 Compare April 26, 2022 12:51
@omnibs omnibs added the Hold On hold, not being actively worked on, but valuable for the future label Aug 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Hold On hold, not being actively worked on, but valuable for the future
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants