Request for Fair State Transition Scheduling Across Multiple Resources

Abierto
#3,021 12 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
java

Línea de trabajo

Empieza trazando cómo se programan los mensajes de transición de estado en el modo CUSTOMIZED y reproduce el escenario de inanición de TableA/TableB con un lote grande de cambios de IdealState. El trabajo estará terminado cuando exista un enfoque de programación decidido y demostrado que permita a ambos recursos avanzar de forma justa sin requerir WAGED.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
Java
Estrellas
505
Forks
258
Merge medio
4 d 20 h
PR fusionados (30 d)
3

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/helix

Todos los issues de apache/helix

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.