Add percentiles of bridge descriptor downloads by fingerprint to served-descs-stats
Sebastian and I discussed Tonga's statistics about served bridge descriptors:
served-descs-stats-end 2011-10-23 23:03:31 (86400 s) total=515010 unique=3766
We suspect that Tonga also serves and counts relay descriptors here. There are only 1665 unique bridge fingerprints in descriptors published since 2011-10-20, so these can't just be bridge descriptors. Also, the total number of 515K descriptor fetches is much higher than expected.
Sebastian works on a patch to exclude fetches for relay descriptors to only count bridge descriptors. But we wonder if two numbers are enough to explain what's going on.
I suggest to include a few percentiles of downloaded descriptors per unique bridge fingerprint in the statistics. The output could be (example data):
served-descs-stats-end 2011-10-23 23:03:31 (86400 s) total=515010 unique=3766 max=12095 q3=1752 md=498 q1=112 min=5
There are two necessary changes to the implementation:
The digestmap needs to store a pointer to an integer counting the downloaded descriptors by bridge fingerprint.
When formatting the server descriptor stats, we need to add all counters to a (smart?)list, sort the list, and write list, list[length/4], list[length/2], list[3*length/4], and list[length-1] to the output string.