3.2.5.1 Standard Pull Replication

Standard Pull Replication happens via the following steps:

  1. Setting up association: The pull partner sets up an association with each of the push partners. If persistent association is enabled and an association with a push partner was set up by a previous replication operation, then this step is skipped for that push partner.

  2. Exchanging Owner-Version Maps: The pull partner sends an Owner-Version Map Request message to a push partner, and then waits for the Owner-Version Map Response message. The pull partner does this one by one for all the push partners. If any error happens during the process, the association between the pull partner and the push partner is stopped. The pull partner just skips this push partner and continues to the next push partner.

    The Owner-Version Map Response message from a push partner contains every NBNS server that owns a name record on the push partner, as well as the maximum and minimum version number of name records that the NBNS server owns, as specified in section 2.2.7.1.

  3. Merging Owner-Version Maps: After the pull partner has finished contacting all push partners, it merges all the owner-version maps, to generate a single owner-version map as follows:

    1. The minimal versions in the Owner-Version Map responses are ignored and only the maximum versions are kept. The pull partner keeps the map of owner to maximum version for every push partner.

    2. The pull partner merges all the maps. If an owner appears in several maps, then the highest version number of all the maximum version numbers for this owner is kept. This merge also includes the local map from the pull partner itself.

    See section 4.1 for an example of merging the owner-version map from different partners.

  4. Obtain Name Records: The pull partner identifies the push partner that has the latest name records for each owner and sends the Name Records Request for each owner to the specific partner, and gets the Name Records Response. The pull partner MUST NOT send request messages if it already has the latest name records for an owner.

    The Min Version Number field in the request message is set to the highest locally known version number for the owner plus 1. The Max Version Number is set to the max version number from the merged map. Push partner MUST not send name records in released state when responding with a Name Records Response message.

    If any error happens during the process, the association between the pull partner and the push partner is stopped. The pull partner skips this push partner and continues to the next push partner.

  5. Update local database: After the pull partner has received a response for each owner, it adds the replicated name records to its local database of name records. In this operation, name conflicts can occur. See section 3.2.5.5 for name conflict resolution.