Some projects (namely CPDN) need to process trickle-up messages
with two different daemons.
We do this as follows:
- daemon 1 enumerates messages with handled==0, and sets handled=1
- daemon 2 enumerates messages with handled==1, and sets handled=2
You can then purge records with handled==2
To implement this, trickle_handler.cpp has two global vars,
int handled_enum and int handled_set.
By default these are 0 and 1.
For daemon 2, set them to 1 and 2 in trickle_handler_init()
This assigns credit proportional to runtime*p_fpops.
To prevent cheating, p_fpops is capped at the 95th percentile value
among active hosts,
and runtime is capped at a specified limit.
This option supports apps, like LHC's CERNvm app,
that run for a certain amount of time and then exit.
The CreditNew system doesn't work for such apps.
- trickle_credit:
To prevent cheating,
cap p_fpops at the 95th percentile value among active hosts,
and require a limit on runtime.
- require that trickle handlers supply an initialization function
svn path=/trunk/boinc/; revision=24182
trickle_credit: grants credit based on CPU time reported in msg
trickle_echo: echoes trickle-up as a trickle-down
svn path=/trunk/boinc/; revision=23118