[standards-jig] Distributed JUD
alexey at sevcom.net
Sun Jan 5 17:07:58 UTC 2003
I propose to discuss facility of users search. Currently we have no
possibility e.g. to find someone by name if we don't know on what server he is
registered. So I think we need to have method to search users on all jabber
servers (that wants to be searchable).
I have some variants hot to do this:
1) All information about users stored on one central server. All JUDs on
another servers automatically sends updates to this server, and forwards search
+: Simple to do
-: Not reliable, central server can be overloaded
2) We make arborescent graph from all servers: every server have "adjacent"
servers, and search request from one of them routed to all others.
+: Also not hard to do and more reliable
-: If one of servers in down, then we can miss results from segment of
servers, also this is not fitted into jabber:iq:search namespace,
because this cause multiple responses from different servers (and I
dislike idea of sending multiple responses with one ID). Also this
can cause many S2S connections.
3) All information is stored on several "root servers". This information is
synced between them, and all other servers sends updates of information and
search queries to any of them.
-: All updates still can make big traffic for root servers (I don't
know how statistics about how often this can be).
4) All information is stored on several "root servers", information is not
intersected between them, and all other servers sends updates of information
always only to one of them. Search queries to one of root servers routed by it
to all others root servers.
+: Pretty reliable
-: If one of root servers is down, then we get not all matching users.
And this servers receive all queries, that can cause overloading of
Personally, I mostly like 3 and 4 (more 3 then 4).
More information about the Standards