boinc/sched
Bruce Allen 4746ea019f - Additional work on locality scheduling.
(a) make DB queries more efficient using name>'FILE__' and name<'FILE__~' rather than
          name like 'FILE__%'
      (b) Set 'no remaining work for this file' flag correctly by making a DB scan if needed.
          One can show that this is the 'cheapest' reliable place to put this scan.
      (c) Modify deterministic algorithm for finding unsent results so that instead of
          starting with FILE="" and scanning forward over all files, it starts at a random
          place in file space, scans cyclicly to the end, and then from "" to the start
          point.
      (d) Satisfy work request if possible.  Don't terminate sending work until none left that
          is feasible, or request satisfed.
      (e) If a new file is needed, first pick file associated with unsent results which are more
          than 2 hours old.  Note: need to make this a user-configurable option, and add some
          random +- slack.

       For the record, here is the current locality scheduler logic.
       I will update the docs once this is a bit better tested and
       stable.

      (1) If there is an (one) unsent result which is older than
      (1) config.locality_scheduling_send_timeout (7 days) and is
      (1) feasible for the host, sent it.

      (2) If we did send a result in the previous step, then send any
      (2) additional results that are feasible for the same input file.

      (3) If additional results are needed, step through input files on
      (3) the host.  For each, if there are results that are feasible for
      (3) the host, send them.  If there are no results that are feasible
      (3) for the host, delete the input file from the host.

      (4) If additional results are needed, and there is (one) unsent
      (4) result which is older than 2 hours and is feasible for the
      (4) host, send it.

      (5) If we did send a result in the previous step, then send any
      (5) additional results that are feasible for the same input file.

      (6) If additional results are needed, select an input file name at
      (6) random from the current input file working set advertised by
      (6) the WU generator.  If there are results for this input file
      (6) that are feasible for this host, send them.

      (7) If additional results are needed, carry out an expensive,
      (7) deterministic search for ANY results that are feasible for the
      (7) host.  This search starts from a random filename advertised by
      (7) the WU generator, but continues cyclicly to cover ALL results
      (7) for ALL files. If a feasible result is found, send it.  Then
      (7) send any additional results that use the same input file.  If
      (7) there are no feasible results for the host, we are finished:
      (7) exit.

      (8) If addtional results are needed, return to step 4 above.

svn path=/trunk/boinc/; revision=5129
2005-01-17 19:20:56 +00:00
..
.cvsignore Added two items for executables 2004-11-29 10:48:10 +00:00
Makefile.am *** empty log message *** 2005-01-08 07:44:22 +00:00
assimilate_handler.h *** empty log message *** 2004-12-20 20:47:25 +00:00
assimilator.C Added a command line option to make single pass with a small number of WU 2005-01-03 17:18:32 +00:00
assimilator.py *** empty log message *** 2004-01-01 04:12:08 +00:00
assimilator_placeholder.C Documentation http://boinc.berkeley.edu/hier_dir.php says: 2005-01-03 10:49:38 +00:00
db_dump.C *** empty log message *** 2005-01-14 21:21:04 +00:00
db_purge.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
delete_file.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
fcgi_stdio.h *** empty log message *** 2004-08-03 21:46:01 +00:00
fcgiapp.h *** empty log message *** 2004-08-03 21:46:01 +00:00
feeder.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
file_deleter.C *** empty log message *** 2005-01-08 06:54:03 +00:00
file_upload_handler.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
get_file.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
handle_request.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
handle_request.h *** empty log message *** 2004-08-03 21:51:30 +00:00
main.C install a larger buffer for stdout. This ensures that 2005-01-11 02:38:15 +00:00
main.h *** empty log message *** 2004-09-13 18:05:54 +00:00
make_work.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
message_handler.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
request_file_list.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
sample_bitwise_validator.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
sample_db_dump_spec.xml *** empty log message *** 2004-06-21 05:03:56 +00:00
sample_dummy_assimilator.C Documentation http://boinc.berkeley.edu/hier_dir.php says: 2005-01-03 10:49:38 +00:00
sample_trivial_validator.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
sched_config.C *** empty log message *** 2005-01-12 00:50:32 +00:00
sched_config.h *** empty log message *** 2005-01-12 00:50:32 +00:00
sched_locality.C - Additional work on locality scheduling. 2005-01-17 19:20:56 +00:00
sched_locality.h *** empty log message *** 2004-09-10 21:02:11 +00:00
sched_msgs.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
sched_msgs.h *** empty log message *** 2004-08-05 21:42:27 +00:00
sched_send.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
sched_send.h *** empty log message *** 2004-09-10 00:41:48 +00:00
sched_shmem.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
sched_shmem.h *** empty log message *** 2004-09-24 20:17:52 +00:00
sched_util.C The signal being used to control the daemons is SIGHUP not SIGINT. Changed 2005-01-09 07:48:33 +00:00
sched_util.h *** empty log message *** 2005-01-08 06:54:03 +00:00
send_file.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
server_types.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
server_types.h *** empty log message *** 2004-12-06 22:41:19 +00:00
show_shmem.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
start *** empty log message *** 2004-11-24 07:17:46 +00:00
transitioner.C *** empty log message *** 2005-01-10 00:00:42 +00:00
trickle_handler.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
update_stats.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
validate_util.C replace bad filename hashing function 2005-01-08 06:38:21 +00:00
validate_util.h *** empty log message *** 2004-09-09 22:25:10 +00:00
validator.C Added a command line option to make single pass with a small number of WU 2005-01-03 17:18:32 +00:00
validator_placeholder.C Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
wu_check.C *** empty log message *** 2005-01-08 07:44:22 +00:00