-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new file watcher behaviours #1812
Conversation
e55c9a5
to
13ba38c
Compare
13ba38c
to
cbabc9f
Compare
7c0ff6c
to
8a4f0e5
Compare
Minimal refresh does not update changes on submitted nodes as expected. |
8a4f0e5
to
de45ddf
Compare
de45ddf
to
46dcc36
Compare
46dcc36
to
ef47c35
Compare
By default, the file watcher polls every single node's file every 5 seconds, independently from their status. This commit adds a button in the GraphEditor to disable or enable the file watcher at will.
The default auto-refresh mode of the file watcher checks, every 5 seconds, every single chunk's status, which may be overkill. Instead of simply disabling the file watcher, this commit adds a third option that checks, every 5 seconds, the status of submitted and running chunks. If no chunk is currently submitted or running, then the file watcher's thread keeps on running but does nothing. Additionally, the file watcher is automatically disabled by default if Meshroom is started without a submitter.
Each file watcher's status now has its own icon: - Enabled: "published_with_changes" - Disabled: "sync_disabled" - Minimal: "sync"
…ngoing Only disable it if it has been clicked by the user and the refresh is not completed yet.
ef47c35
to
31579f3
Compare
When all the chunks were always monitored, no distinction was needed between chunks that could be monitored and chunks that were monitored. Now that the minimal refresh mode exists, the distinction is needed. In particular, when only some chunks are being monitored, it is necessary to know precisely which ones are to be able to match correctly the status files with the polled times.
…lete This ensures that each node's status is correct before being computed, submitted, or before having its data deleted. This is especially useful when the File Poller is in minimal node, and only monitors the nodes that are currently submitted or running. If a graph is being opened in two different instances of Meshroom, and computations are started on it in one of the instances, the other one will not be aware of it (as the signals indicating computations have started will have been emitted in the first instance, so no chunk will be added to the monitoring in the second one). By forcing the update of the statuses before actually starting computations or deleting data, we ensure that there will not be any computational conflicts (same nodes submitted twice in farm, for example) and that the users can know at all times what they are doing without manually triggering a refresh. This is not critical for the "Delete Data" part, as the action can already be triggered even with there is no data to delete, but is still useful to keep the displayed nodes as up-to-date with their actual status as possible.
The issue with the updates of some chunks in minimal auto-refresh has been fixed, and a safeguard has been added to prevent submitting or computing the same chunks twice, in cases where a graph might not be up-to-date. (and the branch has been rebased on |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work!
Description
The file watcher behaviour, prior to this PR, was to check every single chunk's status file every 5 seconds, no matter the current status of the graph or the nodes.
This PR adds a button in the GraphEditor to change the settings of the file watcher, with 3 different modes:
Additionally, at the start of Meshroom, if no submitter is detected, the file watcher is disabled by default; if a submitter is detected, then the minimal auto-refresh mode is enabled.
Every chunk's file status is also updated when calling "Compute", "Submit" or "Delete Data" in order to ensure that the same chunks cannot be computed/submitted twice from different instances that are not all up-to-date.
Features list
Implementation remarks