Commit Graph

924 Commits

Author SHA1 Message Date
David Anderson 29e77cf1f0 *** empty log message ***
svn path=/trunk/boinc/; revision=5506
2005-02-23 19:44:59 +00:00
David Anderson d309b4d3e7 *** empty log message ***
svn path=/trunk/boinc/; revision=5503
2005-02-23 06:19:20 +00:00
David Anderson 20656a03df *** empty log message ***
svn path=/trunk/boinc/; revision=5499
2005-02-23 00:11:59 +00:00
David Anderson 41fb9a9e8c *** empty log message ***
svn path=/trunk/boinc/; revision=5496
2005-02-22 20:12:31 +00:00
Bruce Allen 0f6202fc9e When daily result quota exceeded, tell users what its value is for that host.
svn path=/trunk/boinc/; revision=5493
2005-02-22 17:53:17 +00:00
Bruce Allen b3f75a8aee - Bug fixes to scheduler code
- For locality scheduler, if anonymous platform lacks app, don't do deterministic
      search for work!
    - For locality scheduler, remove 'unsent' constraint from initial query so that
      existing index in result table can be used to perform a more efficient search.
    - Send multi-message replies to core clients > 4.19
    - Change 'no work available' message to 'no work sent' since this is often due
      to constraints at the client end, NOT lack of work at project end.

svn path=/trunk/boinc/; revision=5492
2005-02-22 17:37:03 +00:00
Bruce Allen 964d34b0e0 Correctly handle case where anonymous platform does NOT have a suitable
app.  Previously the code would do an exhaustive search of every unsent
result.

svn path=/trunk/boinc/; revision=5490
2005-02-22 04:38:09 +00:00
Bruce Allen f27abb4ea9 Break out of deterministic search if no work needed because we have
(for example) violated cpu, disk or mem limits.

svn path=/trunk/boinc/; revision=5488
2005-02-21 22:48:53 +00:00
Bruce Allen bca7853358 Eliminate a constraint from the query in the interest of efficiency. The
alternative is to add another index on (name, server_state) to the
result table.

svn path=/trunk/boinc/; revision=5487
2005-02-21 22:32:38 +00:00
Bruce Allen 73a99d6d17 Fixed a bug in locality scheduling. When old work was being sent,
the daily_result_quota constraint was not being enforced.
Normally this constraint is enforced in the work_needed()
function.  However note that the critical send_work() function
NEVER checks work_needed() [DAVID, perhaps it should?] before
calling send_work_locality() or scan_work_array().  Then, when
send_work_locality() was called, it would in turn call
send_old_work() immediately, WITHOUT checking to see if
work_needed() was TRUE.  This allowed the daily_result_quota
constraint to be broken.

    Possible fixes included:
      test work_needed() before calling send_old_work()
      test work_needed() WITHIN send_old_work()
      test work_needed() within possibly_send_result()
      test work_needed() within wu_is_infeasible()

Conclusion: work is ONLY sent by the function
possibly_send_result() which is called in two places in
sched_locality.C: once in send_results_for_file() and once in
send_old_work().  The first of these DOES check the value of
work_needed().  The second does NOT.  So I added a check of
work_needed() within send_old_work().  A also added
added another check of work_needed() at the top of
send_results_for_file() BEFORE any DB access is done.  It might be
better to put this test of work_needed() lower down (within
possibly_send_result()) or higher up (where send_old_work())
is called.  I am not sure. David, I'd appreciate your advice.

svn path=/trunk/boinc/; revision=5482
2005-02-20 14:19:12 +00:00
Bruce Allen e35fe95365 Oops, style
svn path=/trunk/boinc/; revision=5468
2005-02-17 22:04:10 +00:00
Bruce Allen e5cc67c06d make daily_result_quota be PER CPU with a hardwired limit of
4 CPUS.
Improved error messages if users are being denied work because of
      lack of CPU.  The message reports back their on fraction, active
      fraction, and resouce share fraction, as percentages.

svn path=/trunk/boinc/; revision=5466
2005-02-17 21:58:40 +00:00
Bruce Allen bc7a5cf597 Reduced redundant verbosity in debug mode
svn path=/trunk/boinc/; revision=5453
2005-02-17 03:17:49 +00:00
David Anderson 8d0ab453b3 *** empty log message ***
svn path=/trunk/boinc/; revision=5443
2005-02-16 23:17:43 +00:00
Bruce Allen 15c5fd2f11 Add curly brackets a la David
svn path=/trunk/boinc/; revision=5439
2005-02-16 01:26:43 +00:00
Bruce Allen 52d0c274c1 More sensible use of request_delay. If a host contacts the
scheduler, and fails to get work because there are N secs
      of pending work, then send a delay request of min(3600, N/5) secs.
      Otherwise the same host was coming back every hour, without being able
      to get additional work.
Implemented by adding a method set_delay() to
      SCHEDULER_REQUEST. This sets the delay to the maximum of the
      previous requested delay or the current requested delay. The
      delay is NEVER set longer than two days.

svn path=/trunk/boinc/; revision=5437
2005-02-16 01:14:12 +00:00
Bruce Allen e7e9d6d9a6 - Scheduler changes (global):
- Ignore CPU limitations and resource share entirely, IF
      a host:
        (1) has no work for this project
        (2) has no results in this sched reply
      This ensures that any host that wants to do work will at least
      get *something*. It liberalizes slightly David A's approach
      from 14 Feb 2005. Eliminate use_time_stats from wreq structure.
    - Scheduler changes (locality scheduling only):
    - Improve return value info for some functions.
    - Modify send_old_work() to accept a t_min < t < t_max time range
    - New sched locality algorithm to send work to hosts with no files.
      Send oldest result in the time range A < t < B where
      B = locality_scheduling_timeout/2
      A = B - rand*locality_scheduling_timeout/2
      Here rand is a uniformly distributed random number in [0,1].
    - When an unsent result is older than locality_scheduling_timeout, no
      longer send it to the FIRST host that requests work.  Instead send
      it to the first host which has a connection speed > 100kb/s.
    - Fix file deletion.  Previously we were deleting files from hosts
      when they got no work for that file.  But this might have been
      because the work was infeasible (cpu time).  Now delete files
      from host ONLY if there is no work remaining for that file.

svn path=/trunk/boinc/; revision=5434
2005-02-15 21:18:20 +00:00
David Anderson c825780c5a *** empty log message ***
svn path=/trunk/boinc/; revision=5426
2005-02-14 20:11:01 +00:00
David Anderson 0ddf2ed101 *** empty log message ***
svn path=/trunk/boinc/; revision=5423
2005-02-14 04:39:07 +00:00
David Anderson 01326be47f *** empty log message ***
svn path=/trunk/boinc/; revision=5419
2005-02-13 19:04:20 +00:00
Bruce Allen 8884984105 Fix typo in print format, improve wording of error message, properly indent
comment

svn path=/trunk/boinc/; revision=5418
2005-02-13 15:54:24 +00:00
Bruce Allen 7a68df5b2a Got rid of annoying 'no <host_venue>' tag messages from scheduler
svn path=/trunk/boinc/; revision=5399
2005-02-11 05:45:49 +00:00
Bruce Allen b193f36131 Sched locality change: if the host does not have enough memory to satisfy
a work request, do not search for or send further work.  This is the same
      way that disk space limits are handled.  This is necessary since otherwise
      a host with small memory will endlessly trigger the WU generator, churning
      out infeasible WUs.
Added boolean arg to host_has_file() following David A's advice. This
      eliminates the 'expensive' copy of a large data structure. The bool arg
      makes host_has_file() skip the final WU in the vector in hunting for a file.
Better log message for setting coredump size.
Added RCSID tag to sched_timezone.C

svn path=/trunk/boinc/; revision=5397
2005-02-11 04:00:51 +00:00
David Anderson 0aa720e8e1 *** empty log message ***
svn path=/trunk/boinc/; revision=5390
2005-02-10 20:31:11 +00:00
Eric J. Korpela c05d6d23a0 Because FCGI doesn't support fscanf() and fgetc(), the FILE pointers need to be
wrapped in a call to FCGI_ToFILE().  In the case where FCGI isn't being used
FCGI_ToFILE(x) is defined to (x).

svn path=/trunk/boinc/; revision=5387
2005-02-10 19:39:37 +00:00
Bruce Allen 5e98d1457d Added code to the scheduler so that it will dump core on SEGV. This
is disabled by default.  Having this
is really useful if the scheduler is crashing some of the time.  You
can load the core dump file into a debugger to see where things are
breaking.  To use this, edit sched/main.C by hand and set
#define DUMP_CORE_ON_SEGV 1

svn path=/trunk/boinc/; revision=5385
2005-02-10 16:50:37 +00:00
Bruce Allen 0bc36dd60d Remove left over debug scaffolding; need to check ENTIRE filename
not merely part of it! Always good to review the CVS diffs after
a commit...

svn path=/trunk/boinc/; revision=5383
2005-02-10 06:31:33 +00:00
Bruce Allen feb50863c2 More sched locality and other scheduler changes.
- Address David's comment of Feb 2.  Now properly reduce the
disk size resource requirements of a WU being sent if the
file is already on the host, or already included in a previous
WU being sent. DAVID: please check that reply_copy.wus.pop_back()
is right.
- For this, define a function host_has_file().  This can also
be used in the future for more intelligent file deletion
schemes.
- Make warnings to upgrade old clients have low priority until
3 days before deadline.  Then high priority.
- Fix sign error in messages sent to users about insufficient
disk space.
- Move extract_filename() from sched_locality.C to sched_util.C
- Pretty up the ordered list of URLs printed for a given host.
- I've even tested these changes before committing them!

svn path=/trunk/boinc/; revision=5382
2005-02-10 06:21:58 +00:00
David Anderson 36ed6019c2 *** empty log message ***
svn path=/trunk/boinc/; revision=5380
2005-02-09 23:49:46 +00:00
David Anderson 7df0115850 *** empty log message ***
svn path=/trunk/boinc/; revision=5376
2005-02-09 20:06:15 +00:00
Bruce Allen ac9b8547e3 inserted comment unintentionally!
svn path=/trunk/boinc/; revision=5372
2005-02-09 04:43:30 +00:00
Bruce Allen 3fecacdf78 Missing space
svn path=/trunk/boinc/; revision=5371
2005-02-09 04:42:03 +00:00
Bruce Allen 84a2eb306e Added new tag pair to config.xml:
<min_core_client_version_announced> N </min_core_client_version_announced>
<min_core_client_upgrade_deadline>  M </min_core_client_upgrade_deadline>
This is used to warn users in advance if a new minimum core client is going
to be required.  Users have until time 'M' (Unix epoch time(2) format)
to upgrade. Not yet tested.

svn path=/trunk/boinc/; revision=5370
2005-02-09 04:38:19 +00:00
David Anderson d01e0c50ab *** empty log message ***
svn path=/trunk/boinc/; revision=5363
2005-02-08 19:54:10 +00:00
Bruce Allen 3b99622e22 Well, the comment was worth keeping...
svn path=/trunk/boinc/; revision=5358
2005-02-08 07:07:19 +00:00
Bruce Allen d0098e38f3 Bug fix: method of determining which download site to point a host to
computing timezone differences, not taking into account the fact that
UTC+11 hours and UTC-11 hours are only 2 hours apart.  Duh.

svn path=/trunk/boinc/; revision=5357
2005-02-08 06:39:06 +00:00
David Anderson b961c2ce3d *** empty log message ***
svn path=/trunk/boinc/; revision=5349
2005-02-08 00:39:05 +00:00
David Anderson 694ae2973e *** empty log message ***
svn path=/trunk/boinc/; revision=5341
2005-02-07 06:24:14 +00:00
David Anderson daa7c4559d *** empty log message ***
svn path=/trunk/boinc/; revision=5335
2005-02-06 21:26:21 +00:00
David Anderson 981799643c *** empty log message ***
svn path=/trunk/boinc/; revision=5284
2005-02-02 22:58:46 +00:00
Bruce Allen 21e1990508 Made the caching of md5 info for source files a configuration option in
config.xml.  Use the boolean tag <cache_md5_info> to enable it.
This prevents the work generation library from having to go back and
continuously regenerate the md5 sums of your input data files.  Note
that reading these from disk can be expensive if you have many such files
that are large and that you re-use. See check-in notes from 30/31 Dec 2004
for some details.

svn path=/trunk/boinc/; revision=5281
2005-02-02 21:57:11 +00:00
Bruce Allen e5058d872f Correct typo in warning message, and improve comment
svn path=/trunk/boinc/; revision=5276
2005-02-02 19:31:40 +00:00
Bruce Allen a27705fd59 Improvements to the file deletion mechanism. Now try removing files if
no work was sent to hosts, and available space<0 OR if available space>0
      but work was unfeasible because the disk bound requirements of the work
      exceeded the available space.
Added a new config.xml boolean element called 'choose_download_url_by_timezone'
      This requires that projects provide a 2-column file in the project root named
      'download_servers'.  An example is:
           3600   http://einstein.aei.mpg.de
         -21600   http://einstein.phys.uwm.edu
      The first column is offset from UTC in seconds, and the second column is the URL
      of the download server.  When enabled, the scheduler will replace the download
      path for data and executables by a list of download URLs, ordered by proximity
      to the host's timezone.  The download path must start with the
      BOINC default download/ and the different download servers must have identical
      file paths under download/, in other words they must be mirrored.

svn path=/trunk/boinc/; revision=5275
2005-02-02 18:13:00 +00:00
Bruce Allen 02d0ac6fd8 Don't send an empty message if there is no message to send.
svn path=/trunk/boinc/; revision=5274
2005-02-02 15:16:59 +00:00
Bruce Allen 1d9d71cce4 Fixed trivial bug in scheduler which caused messages sent to clients
< 4.62 to be interchanged with their priority.  So if the message was
supposed to be 'No work available' with priority 'low', the actual

svn path=/trunk/boinc/; revision=5273
2005-02-02 14:43:22 +00:00
David Anderson 5b015af00f *** empty log message ***
svn path=/trunk/boinc/; revision=5264
2005-02-01 20:30:33 +00:00
David Anderson 4a0fb78aa6 *** empty log message ***
svn path=/trunk/boinc/; revision=5258
2005-01-31 23:20:49 +00:00
David Anderson 896d0b8a46 *** empty log message ***
svn path=/trunk/boinc/; revision=5257
2005-01-31 22:19:03 +00:00
Bruce Allen 8b6402cf21 More of the same, for reviewing by David
svn path=/trunk/boinc/; revision=5251
2005-01-31 19:34:43 +00:00
Bruce Allen 60c569a644 Extended scheduler run-time debug option to include writing of requests as
well as replies to a file.

svn path=/trunk/boinc/; revision=5248
2005-01-31 16:10:49 +00:00