-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
ingester: support chunk transfers on ingester shutdown. #794
Conversation
12bd741
to
7d3ce5c
Compare
This commit introduces chunk transfers, borrowing the mechanism from Cortex's implementation: when an ingester is shut down with claim on rollout enabled, the ingester will find a pending ingester and transfer all of its chunks to it.
90f788d
to
b4488dc
Compare
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.
This is ready for review; the only thing I'm not sure about here is my changes to logproto.proto - it feels weird to add a new service just for transferring chunks with four new messages types. WDYT @Kuqd @slim-bean?
b4488dc
to
e6f522c
Compare
e6f522c
to
15cbba7
Compare
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 ! Great PR.
Quick Question: Will this cause error to be logged when running a single ingester ? or the Lifecycler know how many ingesters are in the replicaset and won't trigger transfer for those type of deployment ?
thanks! if there's only one ingester in the ring the user would probably be running the ingesters with |
I'll merge this first thing in the morning |
If we have some doc on ingesters, see if you can add a quick paragraph about transfers that would be useful please. |
This commit introduces chunk transfers, borrowing the mechanism from Cortex's implementation: when an ingester is shut down with claim on rollout enabled, the ingester will find a pending ingester and transfer all of its chunks to it.
When the ingester is being shut down, it is switch to a read-only mode where only Query and Label operations are supported. Push will return an error.
TODO: