Metadatenanforderungen
In Sync Framework ist für jedes Replikat und jedes zu synchronisierende Element ein bestimmter Satz von Metadaten erforderlich.
Erforderliche Metadaten für jedes Replikat
In jedem Replikat muss der in der folgenden Tabelle aufgeführte Satz von Metadaten gespeichert werden.
Metadatenelement | Beschreibung |
---|---|
Replikat-ID |
Der eindeutige Bezeichner eines Replikats in einer Synchronisierungscommunity. Obwohl die Replikat-ID flexibel ist und daher durch das Schema für die Community definiert werden kann, wird eine 16-Byte-GUID empfohlen. Das Format einer Replikat-ID, die an eine Sync Framework-Methode übergeben wird, muss mit dem vom Anbieter angegebenen Format übereinstimmen. Verwalteter Code Das Format wird durch die ReplicaIdFormat-Eigenschaft der SyncIdFormatGroup-Klasse angegeben. Die ID wird durch die SyncId-Klasse dargestellt. Nicht verwalteter Code Das Format wird durch das replicaId-Feld der ID_PARAMETERS-Struktur-Struktur angegeben. Die ID wird durch die SYNC_ID-Struktur dargestellt. |
Aktuelle Taktanzahl |
Die aktuelle Taktanzahl für das Replikat. Beachten Sie, dass es sich hierbei um eine konzeptionelle Zahl handelt, die aus der letzten lokalen Version im Wissen für jedes Element oder einem anderen monoton steigenden, für das Replikat verfügbaren Wert abgeleitet werden kann. Beispielsweise kann ein Replikat die aktuelle Uhrzeit verwenden, solange verhindert wird, dass dieser Wert zurückgesetzt wird. Verwalteter Code Dargestellt durch eine UInt64. Nicht verwalteter Code Dargestellt durch eine ULONGLONG. |
Replikatschlüsselmapping |
Ein Mapping zwischen Replikat-IDs und 4-Byte-Schlüsseln. Wegen des wiederholten Auftretens von Replikat-IDs in den Metadaten (idealerweise 16-Byte-GUIDs) ist es effizienter, die IDs mithilfe einer Tabelle darzustellen, in der die Replikat-IDs 4-Byte-Schlüsseln zugeordnet sind. Diese Schlüssel werden dann an anderer Stelle verwendet, wenn Verweise auf bestimmte Replikate erforderlich sind. Verwalteter Code Dargestellt durch ReplicaKeyMap. Nicht verwalteter Code Dargestellt durch IReplicaKeyMap. |
Aktuelles Wissen |
Die Zusammenfassung der Versionsinformationen, die dem Replikat für den angegebenen Bereich bekannt sind. Replikatwissen wird durch die Metadatendienste bearbeitet und sollte nicht direkt bearbeitet werden. Verwalteter Code Dargestellt durch SyncKnowledge. Nicht verwalteter Code Dargestellt durch ISyncKnowledge. |
Vergessenes Wissen |
Ermöglicht einem Replikat zu ermitteln, dass ein Partnerreplikat kein Wissen über gelöschte Elemente besitzt. Dies kann auftreten, wenn die Tombstones für diese Elemente bereinigt wurden. Vergessenes Wissen wird durch die Metadatendienste bearbeitet. Verwalteter Code Dargestellt durch ForgottenKnowledge. Nicht verwalteter Code Dargestellt durch IForgottenKnowledge. |
Konfliktprotokoll |
Ein Protokoll von Konflikten, die nach der Änderungsauflistung erkannt und nicht gelöst wurden. Für Replikate muss ein Konfliktprotokoll geführt werden. Die Darstellung eines Konfliktprotokolls wird durch das Replikat bestimmt. Sync Framework muss nicht auf dieses Protokoll zugreifen können. |
Tombstoneprotokoll |
Speichert Informationen über die Löschung von Elementen aus einem Replikat, sodass Löschänderungen in den Synchronisierungscommunitys ordnungsgemäß weitergegeben und gelöschte Elemente nicht versehentlich wiedereingeführt werden. Für Replikate muss ein Tombstoneprotokoll geführt werden. Die Darstellung eines Tombstoneprotokolls wird durch das Replikat bestimmt. Sync Framework muss nicht auf dieses Protokoll zugreifen können. |
Erforderliche Metadaten für jedes Element
Jedes zu synchronisierende Element muss über den in der folgenden Tabelle aufgeführten Satz von Metadaten verfügen.
Metadatenelement | Beschreibung |
---|---|
Globale ID |
Ein Bezeichner für ein in einem Replikat gespeichertes Element. Da das Replikat für das Generieren der globalen IDs verantwortlich ist, kann es globale IDs für eine effizientere Enumeration zuordnen. Beispielsweise kann als Format der globalen ID für eine Community eine GUID mit einem 8-Byte-Präfix festgelegt werden. Mit dem Präfix kann dann die Sortierreihenfolge der globalen IDs gesteuert werden. Dadurch können Anbieter einfacher Bereiche zum Auflisten von Änderungen verwenden, und da ein Bereich eine große Anzahl an Elementen enthalten kann, ist die Wissensstruktur kompakter, wenn Elemente als geordnete Gruppen dargestellt werden. Weitere Informationen zu globalen ID-Formaten finden Sie unter Flexible IDs. Verwalteter Code Das Format wird durch die ItemIdFormat-Eigenschaft der SyncIdFormatGroup-Klasse angegeben. Die ID wird durch die SyncId-Klasse dargestellt. Nicht verwalteter Code Das Format wird durch das itemId-Feld der ID_PARAMETERS-Struktur-Struktur angegeben. Die ID wird durch die SYNC_ID-Struktur dargestellt. |
Aktuelle Version |
Die letzte aktualisierte Version für ein bestimmtes Element. Die aktuelle Version enthält den Schlüssel des Replikats, von dem das Element zuletzt aktualisiert wurde, sowie die Taktanzahl des Replikats zum Zeitpunkt der Änderung. Diese Version wird pro Änderungseinheit gespeichert, wenn ein Element Änderungseinheiten verwendet. Beispielsweise kann ein Kontakt über unterschiedliche Versionsnummern der Änderungseinheiten für die Felder für Adresse und Telefonnummer verfügen. Verwalteter Code Dargestellt durch SyncVersion. Nicht verwalteter Code Dargestellt durch SYNC_VERSION. |
Erstellungsversion |
Die Version zum Zeitpunkt der Erstellung des Elements. Die Erstellungsversion enthält den Schlüssel des Replikats, von dem das Element erstellt wurde, sowie die Taktanzahl des Replikats zum Zeitpunkt der Erstellung des Elements. Verwalteter Code Dargestellt durch SyncVersion. Nicht verwalteter Code Dargestellt durch SYNC_VERSION. |
Speicheranforderungen
Da das Format der globalen ID vom Replikat bestimmt wird, variiert der Speicherbedarf für Metadaten bei den einzelnen Elementen. Wenn dagegen das empfohlene Format einer GUID mit einem 8-Byte-Präfix verwendet wird, beträgt die Gesamtmenge an erforderlichem Speicher 48 Byte, wie in der folgenden Tabelle gezeigt wird.
Element | Byte |
---|---|
Globale ID |
24 (GUID + 8-Byte-Präfix) |
Aktuelle Version |
12 (4-Byte-Replikatschlüssel + 8-Byte-Taktanzahl) |
Erstellungsversion |
12 (4-Byte-Replikatschlüssel + 8-Byte-Taktanzahl) |
48 Byte insgesamt |
Siehe auch
Verweis
IReplicaKeyMap-Schnittstelle
SYNC_ID-Struktur
SYNC_GID-Struktur
SYNC_VERSION-Struktur
ReplicaKeyMap
SyncId
SyncGlobalId
SyncIdFormat
SyncIdFormatGroup
SyncVersion
Konzepte
Metadatenverwaltung
Synchronisierungswissen
Flexible IDs
Synchronisierungsversionen
Verwalten von Tombstones