mirror of https://github.com/BOINC/boinc.git
2e4d561647
Work generators create jobs (workunits); the transitioner creates instances (results). If a work generator tries to maintain a certain number of unsent results (as the sample work generator does) it must wait for a bit, after creating jobs, to let the transitioner create instances of those jobs. The example work generator waited 5 seconds. Problem: on a heavily loaded project, the transitioner can fall behind - minutes or hours behind. So the above policy can create way too many jobs. Solution: after creating jobs, the sample work generator notes the current time X, then waits until the transitioner catches up to time X (i.e., until the min workunit.transition_time exceeds X). This ensures that instances have been created for all the new jobs. Other work generators the limit the number of unsent jobs should use the same technique; use min_transition_time(x) to get the min transition time. Code cleanup: get_double should be a member of DB_CONN, not DB_BASE. |
||
---|---|---|
.. | ||
Makefile.am | ||
boinc_db.cpp | ||
boinc_db.h | ||
boinc_db_types.h | ||
bolt_constraints.sql | ||
bolt_schema.sql | ||
bossa_constraints.sql | ||
bossa_schema.sql | ||
constraints.sql | ||
db_base.cpp | ||
db_base.h | ||
init_db | ||
schema.sql | ||
schema_condor.sql | ||
schema_locality.sql | ||
schema_vda.sql |