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

Network traffic (Time optimization problem)

Hello everybody !

My question is basically related to find efficient way of communication 
between a client and a server running on diffrent system. 

I am using Open LDAP server to maintain user profile, address and FSM state 
object class of these user.  Now i am developing a LDAP client to maintain 
these database. It is working quite fine. 

I am using ldap_search_s API to search these data. Now to get complete 
information about user (all 3 objects - profile, address, FSM state) I am 
thinking about two solutions -

1. search using filter ( & (user-id =some_value) (objectclass=*) )and get all 
object in one ldap_search_s API. Then use ldap_first_entry & ldap_next_entry 
to get all entries and parse the result.

2. Search each object differently (means 3 times ldap_search_s API) and then 
use ldap_first_entry then ldap_next_entry APIs to parse the result.

Obviously second method looks better both in complexity and in processing 
speed(due to parsing). But the problem is that my server resides quite far 
from client.  So giving 3 ldap_search_s API calls may create lot of socket 
operations and total time taken is far more than using only one search API.

So which method takes less execution time (network time + process time) and 
why ?

I have couple of more questions -
* Is ldap_search_s always open a new socket connection for data transfer ? or 
connection open only in ldap_bind_s API.

* Is ldap_search_s takes all entries in one go and calling ldap_first_entry 
and ldap_next_entry only parse that data (and no socket operation is required)

Vishal Mathur