mirror of https://github.com/BOINC/boinc.git
update_stats program. Fix 'bug of omission' where member counts
of teams are calculated but were not written back into the database. Also, change algorithm so that for hosts/teams/users, when the RAC (Recent Average Credit) values have decayed to exactly 0.0 (double precision) then neither expavg_credit nor expavg_time are updated. In this way, by looking at the value of expavg_time, you can see exactly WHEN the RAC decayed to zero. This effectively indicates the 'drop-out-date' for the host/team/user. svn path=/trunk/boinc/; revision=9283
This commit is contained in:
parent
e28d061d3b
commit
1e1d2f2d8e
|
@ -755,3 +755,16 @@ Charlie 21 Jan 2006
|
||||||
boinc.xcodeproj/
|
boinc.xcodeproj/
|
||||||
project.pbxproj
|
project.pbxproj
|
||||||
|
|
||||||
|
Bruce 22 Jan 2006
|
||||||
|
- update_stats program. Fix 'bug of omission' where member counts
|
||||||
|
of teams are calculated but were not written back into the database.
|
||||||
|
Also, change algorithm so that for hosts/teams/users, when the RAC
|
||||||
|
(Recent Average Credit) values have decayed to exactly 0.0 (double
|
||||||
|
precision) then neither expavg_credit nor expavg_time are updated.
|
||||||
|
In this way, by looking at the value of expavg_time, you can see
|
||||||
|
exactly WHEN the RAC decayed to zero. This effectively indicates
|
||||||
|
the 'drop-out-date' for the host/team/user.
|
||||||
|
|
||||||
|
sched/
|
||||||
|
update_stats.C
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ int update_users() {
|
||||||
char buf[256];
|
char buf[256];
|
||||||
|
|
||||||
while (!user.enumerate()) {
|
while (!user.enumerate()) {
|
||||||
if (user.expavg_time > update_time_cutoff) continue;
|
if (user.expavg_time > update_time_cutoff || user.expavg_credit==0.0) continue;
|
||||||
update_average(0, 0, CREDIT_HALF_LIFE, user.expavg_credit, user.expavg_time);
|
update_average(0, 0, CREDIT_HALF_LIFE, user.expavg_credit, user.expavg_time);
|
||||||
sprintf(
|
sprintf(
|
||||||
buf,"expavg_credit=%f, expavg_time=%f",
|
buf,"expavg_credit=%f, expavg_time=%f",
|
||||||
|
@ -75,7 +75,7 @@ int update_hosts() {
|
||||||
char buf[256];
|
char buf[256];
|
||||||
|
|
||||||
while (!host.enumerate()) {
|
while (!host.enumerate()) {
|
||||||
if (host.expavg_time > update_time_cutoff) continue;
|
if (host.expavg_time > update_time_cutoff || host.expavg_credit==0.0) continue;
|
||||||
update_average(0, 0, CREDIT_HALF_LIFE, host.expavg_credit, host.expavg_time);
|
update_average(0, 0, CREDIT_HALF_LIFE, host.expavg_credit, host.expavg_time);
|
||||||
sprintf(
|
sprintf(
|
||||||
buf,"expavg_credit=%f, expavg_time=%f",
|
buf,"expavg_credit=%f, expavg_time=%f",
|
||||||
|
@ -103,6 +103,13 @@ int get_team_totals(TEAM& team) {
|
||||||
retval = user.count(nusers, buf);
|
retval = user.count(nusers, buf);
|
||||||
if (retval) return retval;
|
if (retval) return retval;
|
||||||
|
|
||||||
|
if (team.nusers != nusers) {
|
||||||
|
log_messages.printf(
|
||||||
|
SCHED_MSG_LOG::MSG_CRITICAL,
|
||||||
|
"updating member count for [TEAM#%d]: database has %d users, count shows %d\n",
|
||||||
|
team.id, team.nusers, nusers
|
||||||
|
);
|
||||||
|
}
|
||||||
team.nusers = nusers;
|
team.nusers = nusers;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -128,12 +135,12 @@ int update_teams() {
|
||||||
);
|
);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (team.expavg_time < update_time_cutoff) {
|
if (team.expavg_time < update_time_cutoff && team.expavg_credit!=0.0) {
|
||||||
update_average(0, 0, CREDIT_HALF_LIFE, team.expavg_credit, team.expavg_time);
|
update_average(0, 0, CREDIT_HALF_LIFE, team.expavg_credit, team.expavg_time);
|
||||||
}
|
}
|
||||||
sprintf(
|
sprintf(
|
||||||
buf, "expavg_credit=%f, expavg_time=%f",
|
buf, "expavg_credit=%f, expavg_time=%f, nusers=%d",
|
||||||
team.expavg_credit, team.expavg_time
|
team.expavg_credit, team.expavg_time, team.nusers
|
||||||
);
|
);
|
||||||
retval = team.update_field(buf);
|
retval = team.update_field(buf);
|
||||||
if (retval) {
|
if (retval) {
|
||||||
|
|
Loading…
Reference in New Issue