You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Talisker currently uses a multiprocessing.Lock to synchronize metrics clean up. This is non-trivial and probably unnecessary. We could instead use a simpler filesystem based locking, along the lines of
master - writes a monotonic counter to file whenever it finishes aggregating metrics
worker - reads the value of the file before collecting metrics, collects, that before rendering, checks it hasn't changed. If it has, either abort, or maybe retry once.
This should protect against the worker reading an inconsistent state on disk. We can only get away with it because metrics are non-transactional data that we can fail on if needed, of course.
The text was updated successfully, but these errors were encountered:
Talisker currently uses a multiprocessing.Lock to synchronize metrics clean up. This is non-trivial and probably unnecessary. We could instead use a simpler filesystem based locking, along the lines of
master - writes a monotonic counter to file whenever it finishes aggregating metrics
worker - reads the value of the file before collecting metrics, collects, that before rendering, checks it hasn't changed. If it has, either abort, or maybe retry once.
This should protect against the worker reading an inconsistent state on disk. We can only get away with it because metrics are non-transactional data that we can fail on if needed, of course.
The text was updated successfully, but these errors were encountered: