In my profile page, it is +54: http://codeforces.me/profile/kien_coi_1997
In top-contributor page, it is +58: http://codeforces.me/top-contributed
I have checked my comments and posts, none of them have changed score.
What happened?
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
In my profile page, it is +54: http://codeforces.me/profile/kien_coi_1997
In top-contributor page, it is +58: http://codeforces.me/top-contributed
I have checked my comments and posts, none of them have changed score.
What happened?
Name |
---|
Wait some time, it will be OK. Results in top-contributor page are just not updated yet. You lost some contribution because points for this topic was multiplied by 0.5 (because 180 days have passed from day of its creation, read this for clarification).
thank you
It still doesn't make sense. Why would the contribution shown in the 2 cases be different? Shouldn't they both just take 1 value that's updated when necessary?
Contribution in profile shows actual value (or is updated often enough); list of top contributors updates not so often. That is why value in that list sometimes is out of date. BTW, it already says that contribution of kien_coi_1997 is +54)
I realize that, what I don't get is why they can't both be updated often enough. Even if it wasn't automatic, what about a script "every 5 minutes: update contributors' list"?
For me that is interesting too. We should probably ask MikeMirzayanov:) Maybe it has something to do with reducing server load, i dont know.
I think I can guess — note that in the contribution table you need not only maintain the points for users, but also the sorting according to their points.
Now see, there are about
100000
with tons of comments and posts (well, contribution table contains just about10000
entries). Recalculation of the points for a given user takes some time, even if it is few milliseconds.Does it make sense to update the order of ranking table after each user is recalculated? Not that much because quite soon many other users would be recalculated too. I mean that it is not a good idea either to update just points without updating the order (and have local fragments of table wrongly ordered) or to allow the table to shift its lines due to changing sorting each second).
So it is just natural to update the table after some significant amount of users were processed. You see, it is only technical issue about implementation.
Just guessing, I have no relation to CF team
P.S. Surely it was possible to hide the changing of the rating on the profile pages until the table is updated (to update them simultaneously) to avoid bewilderment, but I suppose it was not considered as an important and necessary feature.
Once again: or after a significant amount of time has passed. Like 5 minutes. The rate at which comments' and blogs' voting for a single user changes is probably much smaller than , so the contributors' list with this change would be very precise.
If there are
10000
users in the contribution table and for each of them the value changes once per5
minute (for example due to180
days rule, someone's voting etc) we should expect about2000
changes to the table per minute, or about30
per second.I do not think there is a sane reason to update the order of the table so often. So it is updated with some arbitrarily chosen period. For comparison note, for example, that statistics at ProjectEuler is updated roughly once per hour.
Or probably I did not get what you are about?
You're off by an order of 5. Each day, up to 100 blogs and comments appear on average (more than hundred is really just when a round's been conducted, which is rare), so there'd be up to 100 changes due to the 180 days rule each day, so about 0,01 changes per minute. It's insane to think a user would make a blog post or comment every 5 minutes.
You should've assumed that a value changes every 5 minutes, not that each contributor's value does.
I suppose you meant
0.1
since there are only1440
minutes in the day. ;-)Ok, and how many changes due to new votes? I can't assess it that easily. Should the table be updated after each vote cast?
Yeah, 0,1 (0,07 if the 100 isn't taken as just an estimate of order but as a rough reasonable number).
I suppose the changes due to votes are about 1 orders higher at best (taking into account that high-voted comments have abs. value of votes about 50, on average it's up to 10 and there shouldn't be more than 2-3 times that many votes in total per comment, plus there are at most 100 comments per day average), which'd make it about 10 changes per these 5 minutes. Updating after 10 changes without performance cost is nice.