Podle me pauzovani procesu nema smysl - jen to snizuje vykon.[...] Klasicky pipelining.
No pokud pipelina neni ve vsech castech stejne tlusta (coz u chia plottingu neni), tak se musi cekat na zamek. A jedinej robustni zpusob je freezer. Je to relativne pomaly, ale o nekolik radu pod sekundou, takze to v celkove dobe plottingu absolutne nehraje roli.
Co me nejvic stve na tom reseni je, ze to neumi zastavit a pokracovat (napr. udelat reboot v te staggered pipeline, znacne snizi vykon, nebo promrha prostredky jestli se to utne).
To jo. Ja na to mam castecnou odpoved v tech FS semaforech - tim, ze je semafor na disku, se da procesu rucne ukrast. Tj. worker bezi, ja mu ukradnu zamek, kterej vlastni, a jakmile skonci, nema ho, takze ho nemuze vratit. Timhle postupem je mozny nechat postupne vsechny workery skoncit a restartovat potom. Neni to idealni, protoze se postupne snizuje vytizeni, ale je to asi lepsi nez zahodit rozdelanou praci...
A pak, ze to je treba hlidat na dva chybove stavy: bud to zustane viset v nekonecny smycce (a nic se nedeje, jen zere cpu), nebo to spadne a tim se omezi prostor v tempu nevyuzitelnym bordelem.
CPU se da prave pomoci cgroups zastropovat (to nemam, protoze jsem to zatim akutne nepotreboval).
Bordel v tempu resit umim - ze stdout se vyparsuje ID plotu a pokud worker skonci neuspesne, muzou se tempy automaticky smazat.