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
With the implementation described in #1138, the forked worker has exactly the same oplog up until the oplog index cutoff as the original one, except its first entry OplogEntry::Create which contains the newWorkerId.
Because the worker id is observable (via an environment variable), this can lead to divergence.
In this ticket, we solve it by introducing the capability to have a "shadow worker id". This can be done in the following way:
Store a map of shadow worker ids associated with oplog ranges in the WorkerStatusRecord. Similarly how DeletedRegions work.
Have a new oplog entry that adds a new entry to this.
Make sure that when folding over the oplog entries, the latest state of this map gets populated
Modify the host function that gets the environment variables to overwrite the GOLEM_WORKER_ID variable based on whether the current oplog index is within one of the recorded regions for shadowed worker id
Modify the forking feature to add this new oplog entry to the end of the oplog after the copied elements
The text was updated successfully, but these errors were encountered:
Follow-up task for #1138
With the implementation described in #1138, the forked worker has exactly the same oplog up until the oplog index cutoff as the original one, except its first entry
OplogEntry::Create
which contains the newWorkerId
.Because the worker id is observable (via an environment variable), this can lead to divergence.
In this ticket, we solve it by introducing the capability to have a "shadow worker id". This can be done in the following way:
WorkerStatusRecord
. Similarly howDeletedRegions
work.GOLEM_WORKER_ID
variable based on whether the current oplog index is within one of the recorded regions for shadowed worker idThe text was updated successfully, but these errors were encountered: