Mercurial > hg > freeDiameter
comparison extensions/rt_load_balance/rt_load_balance.c @ 1221:6f75842935f6
Reduce candidate score down to 1 due to load balancing.
Before, the maximum reduction was 5.
author | Thomas Klausner <tk@giga.or.at> |
---|---|
date | Thu, 20 Jun 2013 11:51:24 +0200 |
parents | 581bbd48524a |
children | f6ad5596aac7 |
comparison
equal
deleted
inserted
replaced
1220:cec3e9b579e1 | 1221:6f75842935f6 |
---|---|
57 int score; | 57 int score; |
58 CHECK_FCT(fd_peer_getbyid(cand->diamid, cand->diamidlen, 0, &peer)); | 58 CHECK_FCT(fd_peer_getbyid(cand->diamid, cand->diamidlen, 0, &peer)); |
59 CHECK_FCT(fd_peer_get_load_pending(peer, &to_receive, &to_send)); | 59 CHECK_FCT(fd_peer_get_load_pending(peer, &to_receive, &to_send)); |
60 load = to_receive + to_send; | 60 load = to_receive + to_send; |
61 score = cand->score; | 61 score = cand->score; |
62 if (load > 5) | 62 if ((cand->score > 0) && (load >= cand->score)) |
63 cand->score -= 5; | 63 cand->score = 1; |
64 else | 64 else |
65 cand->score -= load; | 65 cand->score -= load; |
66 TRACE_DEBUG(INFO, "evaluated peer `%.*s', score was %d, now %d", (int)cand->diamidlen, cand->diamid, score, cand->score); | 66 TRACE_DEBUG(INFO, "evaluated peer `%.*s', score was %d, now %d", (int)cand->diamidlen, cand->diamid, score, cand->score); |
67 } | 67 } |
68 | 68 |