Change log tracking in entry balancing deployments
Change log tracking can become more complex because a shared area of data can exist above the entry-balancing base distinguished name (DN) in addition to each backend set having its own set of changes and tokens.
In the following figure, Server A belongs to an entry-balancing set 1, and server B belonging to an entry-balancing set 2. Shared areas that exist above the entry-balancing base DN are assumed to be replicated to all servers. "SA" represents the replica identifier for that shared area on Server A and "SB" represents the replica identifier for the same area on Server B.
The PingDirectoryProxy server cannot pass a directory server token from the client to the directory server and back again. In an entry-balancing deployment, the PingDirectoryProxy server must maintain its own token mechanism that associates a directory server token (changeNumber
, replicaIdentifier
, replicaState
) to a particular backend set.
Proxy Token: backendSetID 1: ds-token 1 (changeNumber, replicaIdentifier, replicaState) backendSetID 2: ds-token 2 (changeNumber, replicaIdentifier, replicaState)
For example, if the PingDirectoryProxy server returned change 1002 from Server A and change 2002 from Server B, then the Proxy token would contain the following:
Proxy Token: backendSetID 1: ds-token-1 {serverID A, changeNumber 1002, replicaState (5 (SA), 15(A)} backendSetID 2: ds-token-2 {serverID B, changeNumber 2002, replicaState (10 (SB), 20(B)}
For each change entry returned by a backend, the PingDirectoryProxy server must also decide whether it is a duplicate of a change made to the backend set above the entry-balancing base. If the change is a duplicate, then it is discarded. Otherwise, any new change is returned with a new value of the proxy token.