I was confused a little while using dispatcher weight alg. Smth like this If some host go away: 30/30/40 -> 70/30/0 (the third one was failed). This transformation is more correct in my mind: 30/30/40 -> 50/50/0. So I have to assign some hook to dispatcher:dst-down/dispatcher:dst-up route for rebalancing “rweight” (relative weight) parameter is added in this branch. rweight is in the integer range from 1 to 100 (weight, not percentage). Active host usage probability is rweight/(sum of all active host rweights in destination group). So INACTIVE/DISABLED destinations are removed from probability calculation. let’s we have rweights 1/2/1; 100 calls will be distributed as 25/50/25 after third host failing (via ds_mark_dst([state]) or RPC dispatcher.set_state or via module pinging): 33/67/0
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/219
-- Commit Summary --
* dispatcher: relative weight distribution added
-- File Changes --
M modules/dispatcher/dispatch.c (134) M modules/dispatcher/dispatch.h (3) M modules/dispatcher/dispatcher.c (3)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/219.patch https://github.com/kamailio/kamailio/pull/219.diff
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/pull/219