Originally posted by: BlackMountainCow
Sometimes you also need to take a look at the deadline of the WUs. I had a problem similar to yours with MalariControl.net. My cache was set to 5 days, but the deadline for all WUs was three days. So, the scheduler decided to not give me any but two WUs on my dualcore because it thought I wouldn't finish the work in time, as the cache was higher than the deadline. Maybe that applies for Rosetta as well.
Yes, the same rules applies for all BOINC-projects, except possibly non-cpu-intensive projects, but each project sets their own deadlines and so on...
If a single project and permanent internet-connection, the client should in theory always have "N days cached". But, if you thinks a little about it, this also means each wu is "N days since downloaded" by the time they're finished crunching.
If worse-case scenario your internet-connection goes down, or project-servers goes down, just before your oldest wu is finished, if this unexpected outage lasts "N days" you'll just have enough work on hand till outage over, but by this time your oldest wu is now "2 * N days old"...
Meaning, if the reason for a large cache is to handle Unexpected Outages, it's in reality a waste of time to set it larger than 1/2 the deadline, and to have a little bit of head-room, wouldn't recommend anything more than 40%.
For Expected Outages the case is different, and a larger cache can be used.
But, then it comes to "Connect about every N days", client still treates this as the "worse-case"-scenario, meaning "connection available 1 minute before oldest wu finished" (this wu is N days old), "next connection in N days". Meaning, you'll again land in "2 * N days since downloaded".
If "2 * 'Connect about every N days' + 0.1 hours" > "wu-deadline" this means
"Work-request to project blocked by client except if idle cpu"...
Atleast if you've got a permanent connection, set "Connect about every N days" to 0.1 days (or less), and use "Cache N additional days of work" instead, since this setting doesn't use the "2 * N days"-rule.
But, there is a 10% "safety-margin", to handle a little downtime, estimated run-time too short and so on. If you hits this safety-margin, work-request will again be blocked by client...