6.2.2.3.3 Site Graph Concepts

For each NC with an NC replica that "should be present" on the local DC or "is present" on any DC in the same site as the local DC, the KCC constructs a site graph—a precursor to an NC replica graph. The site connectivity for a site graph is defined by objects of class interSiteTransport, siteLink, and siteLinkBridge in the config NC. The semantics of these objects are described in section 6.1.

The pseudocode in the next section maps these objects and the various constraints on these objects as follows.

KCC concept

Site graph concept

site

VERTEX

siteLink

MULTIEDGE

siteLinkBridge

MULTIEDGESET

interSiteTransport

MULTIEDGE.Type

A siteLink object can connect more than two sites.

All vertices in a MULTIEDGE are treated as a fully connected subgraph.

siteLink object attributes: cost, schedule, options, and replInterval.

MULTIEDGE properties in its ReplInfo field: Cost, Schedule, Options, and Interval. As paths are formed, this information is aggregated.

siteLink objects of different interSiteTransports objects co-exist in the same graph and compete based on cost.

MULTIEDGEs with differing Types co-exist in the graph and in the spanning tree.

Only the siteLink objects referenced by a siteLinkBridge can be combined together to form aggregated paths, with the vertices in common acting as routers.

MULTIEDGEs in a MULTIEDGESET are considered transitive.

NTDSTRANSPORT_OPT_BRIDGES_REQUIRED bit in the options attribute of an interSiteTransport object.

If clear, a MULTIEDGESET is inferred that includes all MULTIEDGEs with the corresponding Type.

NTDSTRANSPORT_OPT_IGNORE_SCHEDULES bit in the options attribute of an interSiteTransport object

If set, all MULTIEDGEs with the corresponding Type have a Schedule that is NULL.

For a given NC, a site can contain one or more writable replicas and zero or more partial read-only replicas, zero writable replicas but one or more partial read-only replicas, or zero writable replicas and zero partial read-only replicas.

VERTEX.Color

VERTEX.Color is RED, BLACK, or WHITE, respectively.

A full replica cannot replicate from a partial replica.

No edge exists from a black vertex to a red vertex.

For each NC other than the config NC and the schema NC, the path from a writable replica to another full replica utilizes only the RPC transport.

VERTEX.AcceptRedRed

VERTEX.AcceptBlack

If both vertices for a given edge are red, the edge's type must be in the AcceptRedRed set of both vertices.

If one or both vertices for a given edge are black, the edge's type must be in the AcceptBlack set of both vertices.

A site without a bridgehead DC for a particular transport cannot replicate updates over that transport to or from DCs in other sites.

The vertex for such a site does not contain the corresponding type in its AcceptRedRed or AcceptBlack properties.