Community
Participate
Working Groups
Currently we have multiple jobs appearing in the progress monitor. When synchronizing multiple queries or tasks, connector.synchronize(...) runs as a single job but this is called per connector which results in many jobs. Adding to this are the tasks sync jobs which may result from syncronization of queries. This can add up to a number of jobs being displayed in the progress monitor as Eugene has observed: "I would definetely prefer single sync job. I usually have Progress view shown and those multiple and jumpy Mylar's jobs are quite annoying..."
Note that this will mean that a slow repository could hold up a fast one when synching.
For background synchronization all repositories are synchronized sequentially but in separate jobs. I would like to change that to either parallelize synchronization or use a single job. What is the preference here? I am leaning towards a single job which makes it easy to cancel synchronization by clicking once and we need to make sure that manual synchronization is always prioritized so user interactions are not delayed up by the background synchronization job.
One of the advantages of multiple jobs is that you can actually skip/kill troublesome repository and it is unclear how that case can be supported with single job. Also need to make sure that if sync fail for one of the repositories, that job would continue to next repository. So, it seem like parallel sync is more attractive, but it may open up some concurrent bugs, deadlocks or simply slow down environment (some of the parsing/decoding could eat cpu).
Since Mylyn 3.0 the background synchronization runs in a single jobs whereas forced synchronizations spawn a job per repository, parallelizing the process.