[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: New functionality proposed



It took some effort to make sense of this email, but the idea seems interesting. I would start by looking at the ProxyCache overlay since intelligent caching may reduce your reliance on the other aspects of your idea. Also, as LDAP is a session-oriented protocol, your use of the word "broadcast" is suspect. A decent design in a bandwidth-limited environment would choose a single target server from the pool of available servers and make a single request to that server; broadcasting a request to all available servers is only possible when all of the servers are on the same LAN as the querier and even then it's of questionable merit.

Next I would look at extending back-ldap to allow runtime-specifiable target servers instead of a single statically configured target. How you manage your rules to select which server to use can be solved as a completely independent issue.

Bengt Hammarlin wrote:<>

Hi guys, I am proposing to develop new functionality for "intelligent" routing of requests to a distributed LDAP database.
This would be done to better utilize network and server resources, especially where infrastructure might be insufficient.
The assumptions made for this are
The database is relatively large
The database is used on several systems geographically distant
Data can be logically localized
A vast majority of directory lookups are local
Network and/or server resources can be exhausted if every request is broadcast to all servers


Based on that I am suggesting a design along these lines.

A new backend is done based on current ldap or meta backends
This backend would have a base functionality that first sends the request to the defined local LDAP server and if it fails the request is broadcast to the remaining servers in the setup. There would be configurable options
A rule based request analyzer that would based on rules route the request to a specific server (assuming sufficient data present in the request)
Caching that would store key data locally to determine witch server to route the request to
Key data replication to determine where to route requests


I would appreciate thoughts and suggestions on this plus any documentation on how to develop a backend and/or on suggested backends to use as a starting point. Bengt Hammarlin = ;Office +46 60 16 10 86 Software Designer = ; Mobile= =20 +46 73 325 8506 Mobeon AB

--
 -- Howard Chu
 Chief Architect, Symas Corp.       Director, Highland Sun
 http://www.symas.com               http://highlandsun.com/hyc
 Symas: Premier OpenSource Development and Support