Request for Fair State Transition Scheduling Across Multiple Resources

Aperta
#3,021 12 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
java

Direzione di ricerca

Inizia tracciando come vengono pianificati i messaggi di transizione dello stato in modalità CUSTOMIZED e riproduci lo scenario di starvation di TableA/TableB con un batch ampio di modifiche a IdealState. Il lavoro sarà completo quando sarà stato definito e dimostrato un approccio alla pianificazione che consenta a entrambe le risorse di avanzare equamente senza richiedere WAGED.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Is your feature request related to a problem? Please describe.
We use CUSTOMIZED mode and today there does not seem to be any fairness in terms of how the Helix state transition messages are sent out to the cluster across different resources.

For example, say I have two resources, TableA and TableB that share the same instances. If I update TableA with a very large number of IdealState changes (say 10K), then updates to TableB land up getting queued behind TableA and no progress is made until TableA's state transitions complete.

This leads to starvation for TableB. Ideally resources should not affect each other in a Helix cluster.

Describe the solution you'd like
Ideally the Helix state transitions should be scheduled fairly across resources in a cluster to prevent the above starvation scenario.

Additional context
I know WAGED solves some of these problems, but moving to WAGED is not an option for us. Are ther any other solutions that can be leveraged?

cc @junkaixue @zpinto

Lingua principale
Java
Stelle
505
Fork
258
Merge medio
4g 20h
PR unite (30g)
3

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/helix

Tutte le issue di apache/helix

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.