aruraghuwanshi commented on PR #18:
URL: https://github.com/apache/druid-operator/pull/18#issuecomment-4540853433

   > Instead of using RollingUpdate with partition manipulation, why not just 
switch to MiddleManager StatefulSet to OnDelete update strategy. With OnDelete, 
Kubernetes never auto-replaces pods, the operator explicitly deletes each pod 
when ready.
   > 
   > ```
   > 1. Operator detects CurrentRevision != UpdateRevision
   >  2. Pick highest-ordinal outdated pod (mm-2)
   >  3. Disable worker + trigger handoff + wait for drain
   >  4. Delete the pod:  sdk.Delete(ctx, &pod)
   >  5. StatefulSet controller auto-recreates mm-2 with new revision
   >  6. Wait for new mm-2 to be Ready
   >  7. Enable worker
   >  8. Repeat for mm-1, mm-0
   >  9. Done
   > ```
   > 
   > What are your thoughts ? Just thinking from a perspective on lowering the 
hops in state machine. ( also reduce API calls to k8s API ).
   
   Yeah that's a good idea. I was clinging on to the partition strategy to 
primarily block unblock the rollout based on the drain status/failures. But I 
think OnDelete would help with that by giving the operator explicit control.
   
   Let me test that out locally and see how it works. Might reduce the calls 
and lean out the code a bit too.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to