PingDirectory

Change log operations

When PingDataSync runs a poll for any changes, it sends a get change log batch extended request to the cn=changelog backend. The batch request looks for entries in the change log and asks for the server ID, change number, and replica state for each change.

The PingDirectoryProxy server routes the request to a directory server instance, which then returns a changed entry plus a token identifying the server ID, change number and replica state for each change. The PingDirectoryProxy server then sends a get change log batch response back to PingDataSync with this information. For entry-balancing deployments, the PingDirectoryProxy server must "re-package" the directory server tokens into its own proxy token to identify the specific data set.

The first time that PingDataSync issues the batch request, it also issues a get server ID request to identify the specific server ID that is processing the extended request. The PingDirectoryProxy server routes the request to the directory server instance, and then returns a server ID in the response. With the next request, PingDataSync sends a 'route to server' request that specifies the server instance to access again in this batch session. It also issues a server ID request in the event that the particular server is down. This method avoids round-robin server selection and provides more efficient overall change processing.