Le 17/09/2012 17:50, Tomasz Sterna a écrit :
I would just make it temporary and extend it to all routing levels.
Whenever the router makes a (random) decision to choose one of equal
binds to route to, it sticks to this decision for a predefined time.
Hmm... I was thinking while writing pseudo-code...
About routing levels and the "user@domain" binding... With this
solution, there's no more domain-only level at the beginning, so each SM should bind
directly bare JIDs and domains (still with auto-binding).
Moreover, as the same SM will manage all "user@domain", there is no
more full JID binding level either...
This simplifies binding and routing (and all changes needed to the
code), as we only have to maintain 2 hash tables (preferably), one for domains
(with multiple routes/priorities) and one for bare JIDs (with only 1 route and
no priority, everything would be managed by the SM)...
To sum it up, it is the end of the adaptive routing... And this has an
implication, it is that the router memory consumption will be higher than
before with single-router architecture... Then wouldn't it be a good solution
to --enable-multi-router at ./configure time? It would add the burden of
maintaining both binding/routing solutions (hopefully only in the router) but
it will make the changes invisible to the currently deployed servers.
Is it still an acceptable solution for you, or do we have to think
again (maybe from the beginning) and find another better solution?
--
-- \^/ --
-- -/ O \--------------------------------------- --
-- | |/ \| Alexandre (Midnite) Jousset | --
-- -|___|--------------------------------------- --