Use my original formula for number of replacements for an intro point

A fixup commit which was intended to make this formula easier to read
broke it instead.
This commit is contained in:
Robert Ransom
2012-01-08 01:48:39 -08:00
committed by Nick Mathewson
parent 5e9d349979
commit 31d6350737
+12 -13
View File
@@ -958,15 +958,14 @@ rend_service_note_removing_intro_point(rend_service_t *service,
* _LIFETIME_INTRODUCTIONS introductions that it has handled by
* the fraction of _LIFETIME_MIN_SECONDS for which it existed.
*
* Then we take the reciprocal of that fraction of desired usage,
* then multiply by a fudge factor of 1.5, to decide how many new
* introduction points should ideally replace intro (which is now
* closed or soon to be closed). In theory, assuming that
* introduction load is distributed equally across all intro
* points and ignoring the fact that different intro points are
* established and closed at different times, that number of intro
* points should bring all of our intro points exactly to our
* target usage.
* Then we multiply that fraction of desired usage by a fudge
* factor of 1.5, to decide how many new introduction points
* should ideally replace intro (which is now closed or soon to be
* closed). In theory, assuming that introduction load is
* distributed equally across all intro points and ignoring the
* fact that different intro points are established and closed at
* different times, that number of intro points should bring all
* of our intro points exactly to our target usage.
*
* Then we clamp that number to a number of intro points we might
* be willing to replace this intro point with and turn it into an
@@ -976,10 +975,10 @@ rend_service_note_removing_intro_point(rend_service_t *service,
* create the new intro points we want (if any).
*/
double fractional_n_intro_points_wanted_to_replace_this_one =
((((double)now - intro->time_published) /
INTRO_POINT_LIFETIME_MIN_SECONDS) *
((intro_point_accepted_intro_count(intro)) /
INTRO_POINT_LIFETIME_INTRODUCTIONS)) * 1.5;
(1.5 * ((intro_point_accepted_intro_count(intro) /
(double)INTRO_POINT_LIFETIME_INTRODUCTIONS) /
(((double)now - intro->time_published) /
INTRO_POINT_LIFETIME_MIN_SECONDS)));
unsigned int n_intro_points_wanted_to_replace_this_one;
unsigned int n_intro_points_wanted_now;
unsigned int n_intro_points_really_wanted_now;