#robo $ROBO

Je me suis senti mal à l'aise lorsqu'une tâche ROBO a été annulée dans la file d'attente, est retournée au pool, puis a fait trébucher le prochain coureur sur le même verrou d'outil 6 minutes plus tard. Après cela, le numéro que je surveillais était réassigné après annulation.

C'est à ce moment-là que "annulé" a cessé de sembler définitif.

Sur ROBO, l'abandon du travail devrait faire partie du protocole, pas seulement un état de l'interface utilisateur. Une tâche peut traverser des appels d'outil, des réservations, des écritures partielles et des vérifications externes avant que quiconque ne décide de l'abandonner. Si le chemin d'abandon ne laisse pas de reçus de nettoyage suffisamment solides pour prouver ce qui a été libéré, ce qui a été annulé, et ce qui est encore vivant, le prochain coureur hérite d'un désordre déguisé en nouveau départ. Le tableau de bord indique que la voie est propre. La surface de l'outil dit le contraire.

Si c'était seulement une infrastructure plus lente, la même tâche attendrait juste plus longtemps. La version plus moche est différente. Le travail est réassigné alors que la dernière exécution fuit encore dans la voie d'exécution.

C'est vraiment un problème de sémantique d'abandon. Un nettoyage faible transforme l'annulation en contamination. Un nettoyage fort rend la réassignation sûre.

Cette discipline est coûteuse. Les reçus de nettoyage, les vérifications de rollback, la vérification de la libération d'état, rien de tout cela n'est gratuit.

$ROBO commence à compter quand il s'agit de rendre les abandons réels, pas cosmétiques.

Je ferai beaucoup plus confiance à l'annulation lorsque le prochain coureur arrêtera de découvrir que le précédent est toujours là.

@Fabric Foundation$ROBO #Robo