Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The third case is the most general case.

Case 1

If the remote  server is not responding, we should store the entry somwhere, and mark it as "pending for server K". We will have to build a mechanism to resend the entry when the server is up again.

We also have to tale in consideration the fact that we are not dispatching the entry to a single remote server, but to a set of servers, and that more than one server can be unresponsive.

The best approach here would be to keep track of all the  remaining remote server within the entry : let's assume that for en entry Ei, we have to update N servers. We will store a list of remote server associated to this entry, and when a server send an Ack, then we will remove its name from the list. When the list is empty, we can consider that the entry has been replicated on all servers.

If one or more server cannot be contacted, this list will keep the non responsive server's name, and a thread will try regularly to send the data to those servers, until either they respond, or we reach a timeout. In this last case, we will have to mark the server as unavailable, and inform the administrator. When this server will be reconnected to the grid of Ldap servers, it will have to be synchronized with any server of the grid.