Freigeben über


VolatileActorStateProvider Klasse

public class VolatileActorStateProvider implements ActorStateProvider,StateProvider

ActorStateProvider-Implementierung für volatile Persistenz, d. h. der Actor-Zustand wird nur im Arbeitsspeicher beibehalten.

Zusammenfassung zum Konstruktor

Konstruktor Beschreibung
VolatileActorStateProvider()

Erstellt eine Instanz von VolatileActorStateProvider.

VolatileActorStateProvider(ReplicatorSettings replicatorSettings)

Erstellt eine instance von VolatileActorStateProvider mit angegebenen Replikationseinstellungen.

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
void abort()

Beenden Sie das Zustandsanbieterreplikat erzwungen.

Bemerkungen:Dies tritt in der Regel auf, wenn ein dauerhafter Fehler auf dem Knoten erkannt wird oder wenn Service Fabric den Lebenszyklus des Replikats aufgrund interner Fehler nicht zuverlässig verwalten kann.

CompletableFuture<?> actorActivatedAsync(ActorId actorId, CancellationToken cancellationToken)

Diese Methode wird im Rahmen des Aktivierungsprozesses des Akteurs mit der angegebenen ID aufgerufen.

CompletableFuture<?> backupAsync(BackupOption option, Duration timeout, CancellationToken cancellationToken, BiFunction<BackupInfo, CancellationToken, CompletableFuture<Boolean>> backupCallback)

Führt eine vollständige Sicherung des Zustands aus, der von diesem Akteurstatusanbieter verwaltet wird.

Bemerkungen:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.

CompletableFuture<?> backupAsync(BiFunction<BackupInfo, CancellationToken, CompletableFuture<Boolean>> backupCallback)

Führt eine vollständige Sicherung des Zustands aus, der von diesem Akteurstatusanbieter verwaltet wird.

Bemerkungen:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.

CompletableFuture<?> changeRoleAsync(ReplicaRole newRole, CancellationToken cancellationToken)

Benachrichtigen Sie das Zustandsanbieterreplikat, dass sich seine Rolle ändert, z. B. in "Primär" oder "Sekundär".

CompletableFuture<?> closeAsync(CancellationToken cancellationToken)

Schließen Sie das Zustandsanbieterreplikat ordnungsgemäß.

Bemerkungen:Dies tritt in der Regel auf, wenn der Code des Replikats aktualisiert wird, das Replikat aufgrund eines Lastenausgleichs verschoben wird oder ein vorübergehender Fehler erkannt wird.

CompletableFuture<Boolean> containsStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)

Überprüft, ob der Akteurstatusanbieter einen Akteurstatus mit dem angegebenen Statusnamen enthält.

ReplicaRole currentReplicaRole()
CompletableFuture<?> deleteReminderAsync(ActorId actorId, String reminderName, CancellationToken cancellationToken)

Löscht die angegebene Actor-Erinnerung, sofern vorhanden.

CompletableFuture<?> deleteRemindersAsync(Map<ActorId, Collection<String>> reminderNames, CancellationToken cancellationToken)

Löscht den angegebenen Erinnerungssatz.

CompletableFuture<List<String>> enumerateStateNamesAsync(ActorId actorId, CancellationToken cancellationToken)

Erstellt eine Aufzählung aller Zustandsnamen, die dem angegebenen Akteur zugeordnet sind.

Bemerkungen:Der vom Akteurstatusanbieter zurückgegebene Enumerator kann sicher gleichzeitig mit Lese- und Schreibvorgängen an den Zustandsanbieter verwendet werden. Sie stellt eine Momentaufnahme konsistente Ansicht des Zustandsanbieters dar.

CompletableFuture<PagedResult<ActorId>> getActorsAsync(int itemsCount, ContinuationToken continuationToken, CancellationToken cancellationToken)

Ruft ActorIds vom Zustandsanbieter ab.

Bemerkungen: Das

OperationDataStream getCopyContext()

Ruft den Kontext für ein sekundäres Replikat ab, nachdem es erstellt und geöffnet wurde, um Kontext an das primäre Replikat zu senden.

Bemerkungen:Das primäre Replikat analysiert den Kontext und sendet den Zustand über getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)zurück. getCopyContext() wird für neu erstellte, im Leerlauf befindliche sekundäre Replikate aufgerufen und bietet einen Mechanismus zum asynchronen Einrichten einer bidirektionalen Konversation mit dem primären Replikat. Das sekundäre Replikat sendet OperationData Objekte, mit denen das primäre Replikat den Fortschritt der Erfassung des Kontexts für das sekundäre Replikat bestimmen kann. Das primäre Replikat antwortet, indem es den erforderlichen Zustand zurück sendet. Weitere Informationen finden Sie getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext) unter Primäres Replikat für die andere Hälfte des Austauschs. Für In-Memory-Dienste wird die getCopyContext() -Methode nicht aufgerufen, da der Status der sekundären Replikate bekannt ist (sie sind leer und erfordern den gesamten Zustand).

OperationDataStream getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)

Ruft den Zustand eines primären Replikats ab, das zum Erstellen eines sekundären Replikats erforderlich ist.

Bemerkungen:Ebenso wie getCopyContext() das sekundäre Replikat ermöglicht, Kontext über ein OperationDataStreaman das primäre Replikat zu senden, getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext) kann das primäre Replikat mit einer OperationDataStreamreagieren. Der Stream enthält Objekte, die über die -Methode der -Klasse an das getCopyStream()FabricReplicator sekundäre Replikat übermittelt werden. Die -Objekte implementieren Operation und enthalten die angegebenen Daten. Wenn das primäre Replikat diesen Aufruf empfängt, sollte es ein weiteres OperationDataStream erstellen und zurückgeben, das enthält OperationData. OperationData stellt die Daten/den Zustand des sekundären Replikats dar.

long getLastCommittedSequenceNumber()

Ruft die letzte Sequenznummer ab, die vom Dienst committet wurde.

Bemerkungen:Diese Methode wird für einen Dienst aufgerufen, wenn er zum ersten Mal gestartet wird, falls ein persistenter Zustand vorliegt und ein Datenverlust vermutet wird. Wenn ein zustandsbehaftetes Dienstreplikat gestartet wird, hat es die Möglichkeit, alle Daten wiederherzustellen, die bei früheren Updates möglicherweise beibehalten wurden. Wenn ein Zustand auf diese Weise wiederhergestellt wird, ist der aktuelle Status die letzte geschriebene Sequenznummer für diese Daten. Ein flüchtiger Dienst kann einfach 0 zurückgeben. Beachten Sie, dass diese Methode nicht aufgerufen wird, um eine neue Primäre Wahl während eines Failovers zu bestimmen, da der aktuelle Commitfortschritt zu diesem Zeitpunkt bereits von der FabricReplicator -Klasse bekannt ist.

void initialize(ActorTypeInformation actorTypeInformation)

Initialisiert den Akteurzustandsanbieter mit Typinformationen des zugeordneten Akteurtyps.

void initialize(StatefulServiceInitializationParameters initializationParameters)

Initialisieren Sie das Zustandsanbieterreplikat mithilfe der Dienstinitialisierungsinformationen.

Bemerkungen:Während der Initialisierung sollte keine komplexe Verarbeitung durchgeführt werden. In OpenAsync sollte eine teure oder lang andauernde Initialisierung durchgeführt werden.

CompletableFuture<ActorReminderCollection> loadRemindersAsync(CancellationToken cancellationToken)

Lädt alle Erinnerungen, die im Akteurzustandsanbieter enthalten sind.

<T> CompletableFuture<T> loadStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)

Lädt den Akteurstatus, der dem angegebenen Statusnamen zugeordnet ist.

CompletableFuture<Boolean> onDataLossAsync(CancellationToken cancellationToken)

Gibt an, dass ein Schreibquorum von Replikaten in diesem Replikatsatz verloren gegangen ist und dass daher datenverluste aufgetreten sein können. Die Replikatmenge besteht aus einer Mehrheit von Replikaten, einschließlich des primären Replikats.

Bemerkungen:Wenn die Service Fabric-Runtime den Fehler eines Quorums von Replikaten beobachtet, das das primäre Replikat enthält, wählt sie ein neues primäres Replikat aus und ruft diese Methode sofort für das neue primäre Replikat auf. Ein primäres Replikat, das über einen möglichen Datenverlust informiert ist, kann seinen Zustand aus einer externen Datenquelle wiederherstellen oder mit dem aktuellen Zustand weiter ausgeführt werden. Wenn der Dienst weiterhin mit seinem aktuellen Zustand ausgeführt wird, sollte er false von dieser Methode zurückgeben, was angibt, dass keine Zustandsänderung vorgenommen wurde. Wenn der Zustand wiederhergestellt oder geändert wurde, z. B. ein Rollback unvollständiger Arbeit, sollte true zurückgegeben werden. Wenn true zurückgegeben wird, muss davon ausgegangen werden, dass der Zustand in anderen Replikaten falsch ist. Daher entfernt die Service Fabric-Runtime die anderen Replikate aus dem Replikatsatz und erstellt sie neu.

CompletableFuture<?> onSnapshotAsync(Duration currentLogicalTime)
CompletableFuture<Replicator> openAsync(ReplicaOpenMode openMode, StatefulServicePartition partition, CancellationToken cancellationToken)

Öffnen Sie das Zustandsanbieterreplikat zur Verwendung.

Bemerkungen:Initialisierungstasks für erweiterte Zustandsanbieter können zu diesem Zeitpunkt gestartet werden.

CompletableFuture<?> reminderCallbackCompletedAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)

Wird aufgerufen, wenn eine Erinnerung ausgelöst wird und die Ausführung des Rückrufs receiveReminderAsync(String reminderName, byte[] context, Duration timeSpan, Duration period) erfolgreich abgeschlossen wird

CompletableFuture<?> removeActorAsync(ActorId actorId, CancellationToken cancellationToken)

Entfernt alle vorhandenen Zustände und Erinnerungen, die dem angegebenen Akteur atomar zugeordnet sind.

CompletableFuture<?> restoreAsync(String backupFolderPath)

Wiederherstellen einer Sicherung von microsoft.servicefabric.data.StateProviderReplica#backupAsync(BiFunction) oder microsoft.servicefabric.data.StateProviderReplica#backupAsync(BackupOption, Duration, CancellationToken, BiFunction)Hinweise:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.

CompletableFuture<?> restoreAsync(String backupFolderPath, RestorePolicy restorePolicy, Duration timeout, CancellationToken cancellationToken)

Wiederherstellen einer Sicherung von microsoft.servicefabric.data.StateProviderReplica#backupAsync(BiFunction) oder microsoft.servicefabric.data.StateProviderReplica#backupAsync(BackupOption, Duration, CancellationToken, BiFunction)Hinweise:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.

CompletableFuture<?> saveReminderAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)

Speichert die angegebene Akteurerinnerung. Wenn eine Akteurerinnerung mit dem angegebenen Namen nicht vorhanden ist, wird die Akteurerinnerung hinzugefügt, andernfalls wird eine vorhandene Akteurerinnerung mit demselben Namen aktualisiert.

CompletableFuture<?> saveStateAsync(ActorId actorId, List<ActorStateChange> stateChanges, CancellationToken cancellationToken)

Speichert den angegebenen Satz von Akteurzustandsänderungen atomar.

void setOnDataLossCallback(Function<CancellationToken, CompletableFuture<Boolean>> onDataLossAsync)

Funktion, die bei vermuteten Datenverlusten aufgerufen wird

String traceId()
String traceType()
Duration transientErrorRetryDelay()
CompletableFuture<?> updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken)

Gibt für ein Replikat an, dass die Konfiguration einer Replikatmenge aufgrund einer Änderung oder versuchten Änderung am primären Replikat geändert wurde. Die Änderung tritt aufgrund eines Fehlers oder Lastenausgleichs des vorherigen primären Replikats auf. Epochenänderungen dienen als Barriere, indem Vorgänge in die genauen Konfigurationsperioden unterteilt werden, in denen sie von einem bestimmten primären Replikat gesendet wurden.

Bemerkungen:Diese Methode wird aufgerufen, weil sich das primäre Replikat der Replikatmenge geändert hat oder eine Änderung versucht wurde. Sekundäre Replikate erhalten diese Methode entweder, wenn sie das neue primäre Replikat werden, oder, wenn sie nicht das neue primäre Replikat sind, erhalten sie es, wenn sie versuchen, den ersten Vorgang aus dem neuen primären Replikat aus dem Replikationsdatenstrom abzurufen. Primäre Replikate erhalten diese Methode gelegentlich, wenn versucht wird, das primäre Replikat zu tauschen, was fehlschlägt. Die Informationen in der updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken) -Methode ermöglichen es dem Dienst, einen Fortschrittsvektor beizubehalten, bei dem es sich um eine Liste der vom Replikat empfangenen Epochen und der maximalen LSN handelt, die darin enthalten sind. Die Statusvektordaten zusammen mit der aktuell angewendeten maximalen LSN sind nützlich für ein sekundäres Replikat, das während des Kopiervorgangs gesendet werden soll, um zu beschreiben, wie weit der Vorgang fortgeschritten ist. Beim Vergleichen von Statusvektoren, die während des Kopiervorgangs von sekundären Replikaten empfangen werden, können primäre Replikate bestimmen, ob das sekundäre Replikat aktuell ist, welcher Zustand an das sekundäre Replikat gesendet werden muss und ob das sekundäre Replikat einen falschen Fortschritt erzielt hat. Falscher Fortschritt bedeutet, dass ein LSN in einer früheren Epoche größer war als die LSN, die das primäre Replikat empfängt.

Details zum Konstruktor

VolatileActorStateProvider

public VolatileActorStateProvider()

Erstellt eine Instanz von VolatileActorStateProvider.

VolatileActorStateProvider

public VolatileActorStateProvider(ReplicatorSettings replicatorSettings)

Erstellt eine instance von VolatileActorStateProvider mit angegebenen Replikationseinstellungen.

Parameter:

replicatorSettings - Ein ReplicatorSettings -Objekt, das Replikationseinstellungen beschreibt.

Details zur Methode

abort

public void abort()

Beenden Sie das Zustandsanbieterreplikat erzwungen.

Bemerkungen:Dies tritt in der Regel auf, wenn ein dauerhafter Fehler auf dem Knoten erkannt wird oder wenn Service Fabric den Lebenszyklus des Replikats aufgrund interner Fehler nicht zuverlässig verwalten kann.

Überschreibt:

VolatileActorStateProvider.abort()

actorActivatedAsync

public CompletableFuture actorActivatedAsync(ActorId actorId, CancellationToken cancellationToken)

Diese Methode wird im Rahmen des Aktivierungsprozesses des Akteurs mit der angegebenen ID aufgerufen.

Überschreibt:

VolatileActorStateProvider.actorActivatedAsync(ActorId actorId, CancellationToken cancellationToken)

Parameter:

actorId - ID des aktivierten Akteurs.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die die asynchrone Verarbeitung der Actor-Aktivierungsbenachrichtigung darstellt.

backupAsync

public CompletableFuture backupAsync(BackupOption option, Duration timeout, CancellationToken cancellationToken, BiFunction> backupCallback)

Führt eine vollständige Sicherung des Zustands aus, der von diesem Akteurstatusanbieter verwaltet wird.

Bemerkungen:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.

Überschreibt:

VolatileActorStateProvider.backupAsync(BackupOption option, Duration timeout, CancellationToken cancellationToken, BiFunction<BackupInfo, CancellationToken, CompletableFuture<Boolean>> backupCallback)

Parameter:

option -

BackupOption für den Rückruf

timeout -

java.time.Duration , das das Timeout für die Sicherung beschreibt

cancellationToken - Das Token zum Überwachen von Abbruchanforderungen.
backupCallback - BackupCallbackCallback wird aufgerufen, wenn der Sicherungsordner lokal erstellt wurde und bereit ist, aus dem Knoten verschoben zu werden.

Gibt zurück:

Aufgabe, die den asynchronen Sicherungsvorgang darstellt.

Löst aus:

UnsupportedOperationException

backupAsync

public CompletableFuture backupAsync(BiFunction> backupCallback)

Führt eine vollständige Sicherung des Zustands aus, der von diesem Akteurstatusanbieter verwaltet wird.

Bemerkungen:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.

Überschreibt:

VolatileActorStateProvider.backupAsync(BiFunction<BackupInfo, CancellationToken, CompletableFuture<Boolean>> backupCallback)

Parameter:

backupCallback - BackupCallbackCallback wird aufgerufen, wenn der Sicherungsordner lokal erstellt wurde und bereit ist, aus dem Knoten verschoben zu werden.

Gibt zurück:

Aufgabe, die den asynchronen Sicherungsvorgang darstellt.

Löst aus:

UnsupportedOperationException

changeRoleAsync

public CompletableFuture changeRoleAsync(ReplicaRole newRole, CancellationToken cancellationToken)

Benachrichtigen Sie das Zustandsanbieterreplikat, dass sich seine Rolle ändert, z. B. in "Primär" oder "Sekundär".

Überschreibt:

VolatileActorStateProvider.changeRoleAsync(ReplicaRole newRole, CancellationToken cancellationToken)

Parameter:

newRole - Die neue ReplicaRole, z. B. primäre oder sekundäre.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Aufgabe, die den asynchronen Änderungsrollenvorgang darstellt.

closeAsync

public CompletableFuture closeAsync(CancellationToken cancellationToken)

Schließen Sie das Zustandsanbieterreplikat ordnungsgemäß.

Bemerkungen:Dies tritt in der Regel auf, wenn der Code des Replikats aktualisiert wird, das Replikat aufgrund eines Lastenausgleichs verschoben wird oder ein vorübergehender Fehler erkannt wird.

Überschreibt:

VolatileActorStateProvider.closeAsync(CancellationToken cancellationToken)

Parameter:

cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Aufgabe, die den asynchronen Schließvorgang darstellt.

containsStateAsync

public CompletableFuture containsStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)

Überprüft, ob der Akteurstatusanbieter einen Akteurstatus mit dem angegebenen Statusnamen enthält.

Überschreibt:

VolatileActorStateProvider.containsStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)

Parameter:

actorId - ID des Akteurs, für den die Statusexistenz überprüft werden soll.
stateName - Name des Akteurstatus, der auf Existenz überprüft werden soll.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Überprüfungsvorgang darstellt. Der Wert des TResult-Parameters ist true, wenn der Zustand mit dem angegebenen Namen andernfalls false vorhanden ist.

currentReplicaRole

public ReplicaRole currentReplicaRole()

deleteReminderAsync

public CompletableFuture deleteReminderAsync(ActorId actorId, String reminderName, CancellationToken cancellationToken)

Löscht die angegebene Actor-Erinnerung, sofern vorhanden.

Überschreibt:

VolatileActorStateProvider.deleteReminderAsync(ActorId actorId, String reminderName, CancellationToken cancellationToken)

Parameter:

actorId - ID des Akteurs, der die Erinnerung löschen soll.
reminderName - Name der zu löschenden Erinnerung.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Löschvorgang darstellt.

deleteRemindersAsync

public CompletableFuture deleteRemindersAsync(Map> reminderNames, CancellationToken cancellationToken)

Löscht den angegebenen Erinnerungssatz.

Überschreibt:

VolatileActorStateProvider.deleteRemindersAsync(Map<ActorId, Collection<String>> reminderNames, CancellationToken cancellationToken)

Parameter:

reminderNames - Der Satz der zu löschenden Erinnerungen
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Löschvorgang darstellt.

enumerateStateNamesAsync

public CompletableFuture> enumerateStateNamesAsync(ActorId actorId, CancellationToken cancellationToken)

Erstellt eine Aufzählung aller Zustandsnamen, die dem angegebenen Akteur zugeordnet sind.

Bemerkungen:Der vom Akteurstatusanbieter zurückgegebene Enumerator kann sicher gleichzeitig mit Lese- und Schreibvorgängen an den Zustandsanbieter verwendet werden. Sie stellt eine Momentaufnahme konsistente Ansicht des Zustandsanbieters dar.

Überschreibt:

VolatileActorStateProvider.enumerateStateNamesAsync(ActorId actorId, CancellationToken cancellationToken)

Parameter:

actorId - ID des Akteurs, für den enumerable erstellt werden soll.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Enumerationsvorgang darstellt. Der Wert des TResult-Parameters ist eine Aufzählung aller Zustandsnamen, die dem angegebenen Actor zugeordnet sind.

getActorsAsync

public CompletableFuture> getActorsAsync(int itemsCount, ContinuationToken continuationToken, CancellationToken cancellationToken)

Ruft ActorIds vom Zustandsanbieter ab.

Bemerkungen: Das

Überschreibt:

VolatileActorStateProvider.getActorsAsync(int itemsCount, ContinuationToken continuationToken, CancellationToken cancellationToken)

Parameter:

itemsCount - Anzahl der Elemente, die zurückgegeben werden sollen.
continuationToken - Ein Fortsetzungstoken, aus dem mit der Abfrage der Ergebnisse begonnen werden soll. Ein NULL-Wert des Fortsetzungstokens bedeutet, dass werte vom Anfang zurückgegeben werden.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Vorgang des Aufrufs an den Server darstellt.

getCopyContext

public OperationDataStream getCopyContext()

Ruft den Kontext für ein sekundäres Replikat ab, nachdem es erstellt und geöffnet wurde, um Kontext an das primäre Replikat zu senden.

Bemerkungen:Das primäre Replikat analysiert den Kontext und sendet den Zustand über getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)zurück. getCopyContext() wird für neu erstellte, im Leerlauf befindliche sekundäre Replikate aufgerufen und bietet einen Mechanismus zum asynchronen Einrichten einer bidirektionalen Konversation mit dem primären Replikat. Das sekundäre Replikat sendet OperationData Objekte, mit denen das primäre Replikat den Fortschritt der Erfassung des Kontexts für das sekundäre Replikat bestimmen kann. Das primäre Replikat antwortet, indem es den erforderlichen Zustand zurück sendet. Weitere Informationen finden Sie getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext) unter Primäres Replikat für die andere Hälfte des Austauschs. Für In-Memory-Dienste wird die getCopyContext() -Methode nicht aufgerufen, da der Status der sekundären Replikate bekannt ist (sie sind leer und erfordern den gesamten Zustand).

Überschreibt:

VolatileActorStateProvider.getCopyContext()

Gibt zurück:

Gibt OperationDataStream zurück.

getCopyState

public OperationDataStream getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)

Ruft den Zustand eines primären Replikats ab, das zum Erstellen eines sekundären Replikats erforderlich ist.

Bemerkungen:Ebenso wie getCopyContext() das sekundäre Replikat ermöglicht, Kontext über ein OperationDataStreaman das primäre Replikat zu senden, getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext) kann das primäre Replikat mit einer OperationDataStreamreagieren. Der Stream enthält Objekte, die über die -Methode der -Klasse an das getCopyStream()FabricReplicator sekundäre Replikat übermittelt werden. Die -Objekte implementieren Operation und enthalten die angegebenen Daten. Wenn das primäre Replikat diesen Aufruf empfängt, sollte es ein weiteres OperationDataStream erstellen und zurückgeben, das enthält OperationData. OperationData stellt die Daten/den Zustand des sekundären Replikats dar.

Überschreibt:

VolatileActorStateProvider.getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)

Parameter:

upToSequenceNumber - Die maximale letzte Sequenznummer (LSN), die über die getCopyStream() -Methode im Kopierdatenstrom platziert werden soll. LSNs, die größer als diese Zahl sind, werden über die -Methode als Teil des Replikationsdatenstroms an das getReplicationStream() sekundäre Replikat übermittelt.
copyContext - Ein OperationDataStream , der die OperationData Objekte enthält, die vom sekundären Replikat erstellt werden. erfordert, um den bereitgestellten Nachholbedarf zu erhalten.

Gibt zurück:

Gibt OperationDataStream zurück.

Löst aus:

IllegalStateException

getLastCommittedSequenceNumber

public long getLastCommittedSequenceNumber()

Ruft die letzte Sequenznummer ab, die vom Dienst committet wurde.

Bemerkungen:Diese Methode wird für einen Dienst aufgerufen, wenn er zum ersten Mal gestartet wird, falls ein persistenter Zustand vorliegt und ein Datenverlust vermutet wird. Wenn ein zustandsbehaftetes Dienstreplikat gestartet wird, hat es die Möglichkeit, alle Daten wiederherzustellen, die bei früheren Updates möglicherweise beibehalten wurden. Wenn ein Zustand auf diese Weise wiederhergestellt wird, ist der aktuelle Status die letzte geschriebene Sequenznummer für diese Daten. Ein flüchtiger Dienst kann einfach 0 zurückgeben. Beachten Sie, dass diese Methode nicht aufgerufen wird, um eine neue Primäre Wahl während eines Failovers zu bestimmen, da der aktuelle Commitfortschritt zu diesem Zeitpunkt bereits von der FabricReplicator -Klasse bekannt ist.

Überschreibt:

VolatileActorStateProvider.getLastCommittedSequenceNumber()

Gibt zurück:

Gibt long zurück.

initialize

public void initialize(ActorTypeInformation actorTypeInformation)

Initialisiert den Akteurzustandsanbieter mit Typinformationen des zugeordneten Akteurtyps.

Überschreibt:

VolatileActorStateProvider.initialize(ActorTypeInformation actorTypeInformation)

Parameter:

actorTypeInformation -

ActorTypeInformation Geben Sie Informationen der Actor-Klasse ein.

initialize

public void initialize(StatefulServiceInitializationParameters initializationParameters)

Initialisieren Sie das Zustandsanbieterreplikat mithilfe der Dienstinitialisierungsinformationen.

Bemerkungen:Während der Initialisierung sollte keine komplexe Verarbeitung durchgeführt werden. In OpenAsync sollte eine teure oder lang andauernde Initialisierung durchgeführt werden.

Überschreibt:

VolatileActorStateProvider.initialize(StatefulServiceInitializationParameters initializationParameters)

Parameter:

initializationParameters -

StatefulServiceInitializationParameters z. B. Dienstname, Partitions-ID, Replikat-ID und Codepaketinformationen.

loadRemindersAsync

public CompletableFuture loadRemindersAsync(CancellationToken cancellationToken)

Lädt alle Erinnerungen, die im Akteurzustandsanbieter enthalten sind.

Überschreibt:

VolatileActorStateProvider.loadRemindersAsync(CancellationToken cancellationToken)

Parameter:

cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Ladevorgang darstellt. Der Wert des TResult-Parameters ist eine Sammlung aller Akteurerinnerungen, die im Actor-Zustandsanbieter enthalten sind.

loadStateAsync

public CompletableFuture loadStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)

Lädt den Akteurstatus, der dem angegebenen Statusnamen zugeordnet ist.

Überschreibt:

VolatileActorStateProvider.loadStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)

Parameter:

actorId - ID des aktivierten Akteurs.
stateName - StateName.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Ladevorgang darstellt. Der Wert des TResult-Parameters enthält den Wert des Akteurzustands, der dem angegebenen Statusnamen zugeordnet ist.

Löst aus:

FabricKeyNotFoundException - Wenn der Dem angegebenen Statusname zugeordnete Actor-Zustand nicht vorhanden ist.

onDataLossAsync

public CompletableFuture onDataLossAsync(CancellationToken cancellationToken)

Gibt an, dass ein Schreibquorum von Replikaten in diesem Replikatsatz verloren gegangen ist und dass daher datenverluste aufgetreten sein können. Die Replikatmenge besteht aus einer Mehrheit von Replikaten, einschließlich des primären Replikats.

Bemerkungen:Wenn die Service Fabric-Runtime den Fehler eines Quorums von Replikaten beobachtet, das das primäre Replikat enthält, wählt sie ein neues primäres Replikat aus und ruft diese Methode sofort für das neue primäre Replikat auf. Ein primäres Replikat, das über einen möglichen Datenverlust informiert ist, kann seinen Zustand aus einer externen Datenquelle wiederherstellen oder mit dem aktuellen Zustand weiter ausgeführt werden. Wenn der Dienst weiterhin mit seinem aktuellen Zustand ausgeführt wird, sollte er false von dieser Methode zurückgeben, was angibt, dass keine Zustandsänderung vorgenommen wurde. Wenn der Zustand wiederhergestellt oder geändert wurde, z. B. ein Rollback unvollständiger Arbeit, sollte true zurückgegeben werden. Wenn true zurückgegeben wird, muss davon ausgegangen werden, dass der Zustand in anderen Replikaten falsch ist. Daher entfernt die Service Fabric-Runtime die anderen Replikate aus dem Replikatsatz und erstellt sie neu.

Überschreibt:

VolatileActorStateProvider.onDataLossAsync(CancellationToken cancellationToken)

Parameter:

cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Gibt den java.util.concurrent.CompletableFuture Typ java.lang.Booleanzurück, der angibt, ob sich der Zustand geändert hat. Wenn sie geändert wurde, gibt die Methode true zurück, oder wenn sie sich nicht geändert hat, gibt die Methode false zurück.

onSnapshotAsync

public CompletableFuture onSnapshotAsync(Duration currentLogicalTime)

Parameter:

currentLogicalTime

openAsync

public CompletableFuture openAsync(ReplicaOpenMode openMode, StatefulServicePartition partition, CancellationToken cancellationToken)

Öffnen Sie das Zustandsanbieterreplikat zur Verwendung.

Bemerkungen:Initialisierungstasks für erweiterte Zustandsanbieter können zu diesem Zeitpunkt gestartet werden.

Überschreibt:

VolatileActorStateProvider.openAsync(ReplicaOpenMode openMode, StatefulServicePartition partition, CancellationToken cancellationToken)

Parameter:

openMode - Die ReplicaOpenMode , die angibt, ob es sich um ein neues oder ein vorhandenes Replikat handelt.
partition - Die StatefulServicePartition Partition, zu der das Replikat gehört.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Aufgabe, die den asynchronen Geöffneten Vorgang darstellt. Das Ergebnis enthält den Replizierer, der für die Replikation des Zustands zwischen anderen Zustandsanbieterreplikaten in der Partition verantwortlich ist.

reminderCallbackCompletedAsync

public CompletableFuture reminderCallbackCompletedAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)

Wird aufgerufen, wenn eine Erinnerung ausgelöst wird und die Ausführung des Rückrufs receiveReminderAsync(String reminderName, byte[] context, Duration timeSpan, Duration period) erfolgreich abgeschlossen wird

Überschreibt:

VolatileActorStateProvider.reminderCallbackCompletedAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)

Parameter:

actorId - ID des Akteurs, der die Erinnerung besitzt
reminder - Akteurerinnerung, die erfolgreich abgeschlossen wurde.
cancellationToken - Das Token zum Überwachen von Abbruchanforderungen.

Gibt zurück:

Eine Aufgabe, die den asynchronen Erinnerungsrückruf darstellt, der die Verarbeitung von Benachrichtigungen abgeschlossen hat.

removeActorAsync

public CompletableFuture removeActorAsync(ActorId actorId, CancellationToken cancellationToken)

Entfernt alle vorhandenen Zustände und Erinnerungen, die dem angegebenen Akteur atomar zugeordnet sind.

Überschreibt:

VolatileActorStateProvider.removeActorAsync(ActorId actorId, CancellationToken cancellationToken)

Parameter:

actorId - ID des Akteurs, für den der Status entfernt werden soll.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Entfernungsvorgang darstellt.

restoreAsync

public CompletableFuture restoreAsync(String backupFolderPath)

Wiederherstellen einer Sicherung von microsoft.servicefabric.data.StateProviderReplica#backupAsync(BiFunction) oder microsoft.servicefabric.data.StateProviderReplica#backupAsync(BackupOption, Duration, CancellationToken, BiFunction)Hinweise:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.

Überschreibt:

VolatileActorStateProvider.restoreAsync(String backupFolderPath)

Parameter:

backupFolderPath - Verzeichnis, aus dem das Replikat wiederhergestellt wird.

Gibt zurück:

Aufgabe, die den asynchronen Wiederherstellungsvorgang darstellt.

Löst aus:

UnsupportedOperationException

restoreAsync

public CompletableFuture restoreAsync(String backupFolderPath, RestorePolicy restorePolicy, Duration timeout, CancellationToken cancellationToken)

Wiederherstellen einer Sicherung von microsoft.servicefabric.data.StateProviderReplica#backupAsync(BiFunction) oder microsoft.servicefabric.data.StateProviderReplica#backupAsync(BackupOption, Duration, CancellationToken, BiFunction)Hinweise:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.

Überschreibt:

VolatileActorStateProvider.restoreAsync(String backupFolderPath, RestorePolicy restorePolicy, Duration timeout, CancellationToken cancellationToken)

Parameter:

backupFolderPath - Verzeichnis, aus dem das Replikat wiederhergestellt wird.
restorePolicy - Die RestorePolicy.
timeout - Das Timeout für diesen Vorgang.
cancellationToken - Das Token zum Überwachen von Abbruchanforderungen.

Gibt zurück:

Aufgabe, die den asynchronen Wiederherstellungsvorgang darstellt.

Löst aus:

UnsupportedOperationException

saveReminderAsync

public CompletableFuture saveReminderAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)

Speichert die angegebene Akteurerinnerung. Wenn eine Akteurerinnerung mit dem angegebenen Namen nicht vorhanden ist, wird die Akteurerinnerung hinzugefügt, andernfalls wird eine vorhandene Akteurerinnerung mit demselben Namen aktualisiert.

Überschreibt:

VolatileActorStateProvider.saveReminderAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)

Parameter:

actorId - ID des Akteurs, für den eine Erinnerung gespeichert werden soll.
reminder - Zu speichernde Akteurerinnerung.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Speichervorgang darstellt.

saveStateAsync

public CompletableFuture saveStateAsync(ActorId actorId, List stateChanges, CancellationToken cancellationToken)

Speichert den angegebenen Satz von Akteurzustandsänderungen atomar.

Überschreibt:

VolatileActorStateProvider.saveStateAsync(ActorId actorId, List<ActorStateChange> stateChanges, CancellationToken cancellationToken)

Parameter:

actorId - ID des Akteurs, für den die Zustandsänderungen gespeichert werden sollen.
stateChanges - Sammlung der zu speichernden Zustandsänderungen.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Eine Aufgabe, die den asynchronen Speichervorgang darstellt. Die Auflistung der Zustandsänderungen sollte nur ein Element für einen bestimmten Zustandsnamen enthalten. Der Speichervorgang schlägt fehl, wenn versucht wird, einen bereits vorhandenen Akteurstatus hinzuzufügen oder einen nicht vorhandenen Akteurstatus zu aktualisieren bzw. zu entfernen.

setOnDataLossCallback

public void setOnDataLossCallback(Function> onDataLossAsync)

Funktion, die bei vermuteten Datenverlusten aufgerufen wird

Überschreibt:

VolatileActorStateProvider.setOnDataLossCallback(Function<CancellationToken, CompletableFuture<Boolean>> onDataLossAsync)

Parameter:

onDataLossAsync - TODO. Funktion, die als Teil der Verarbeitung vermuteter Datenverluste aufgerufen wird. Die Funktion akzeptiert CancellationToken und gibt eine CompletableFuture zurück, die die asynchrone Verarbeitung des Ereignisses darstellt. Gibt true zurück, gibt an, dass der Status des Replikats wiederhergestellt wurde. False gibt an, dass der Status des Replikats nicht geändert wurde.

traceId

public String traceId()

traceType

public String traceType()

transientErrorRetryDelay

public Duration transientErrorRetryDelay()

updateEpochAsync

public CompletableFuture updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken)

Gibt für ein Replikat an, dass die Konfiguration einer Replikatmenge aufgrund einer Änderung oder versuchten Änderung am primären Replikat geändert wurde. Die Änderung tritt aufgrund eines Fehlers oder Lastenausgleichs des vorherigen primären Replikats auf. Epochenänderungen dienen als Barriere, indem Vorgänge in die genauen Konfigurationsperioden unterteilt werden, in denen sie von einem bestimmten primären Replikat gesendet wurden.

Bemerkungen:Diese Methode wird aufgerufen, weil sich das primäre Replikat der Replikatmenge geändert hat oder eine Änderung versucht wurde. Sekundäre Replikate erhalten diese Methode entweder, wenn sie das neue primäre Replikat werden, oder, wenn sie nicht das neue primäre Replikat sind, erhalten sie es, wenn sie versuchen, den ersten Vorgang aus dem neuen primären Replikat aus dem Replikationsdatenstrom abzurufen. Primäre Replikate erhalten diese Methode gelegentlich, wenn versucht wird, das primäre Replikat zu tauschen, was fehlschlägt. Die Informationen in der updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken) -Methode ermöglichen es dem Dienst, einen Fortschrittsvektor beizubehalten, bei dem es sich um eine Liste der vom Replikat empfangenen Epochen und der maximalen LSN handelt, die darin enthalten sind. Die Statusvektordaten zusammen mit der aktuell angewendeten maximalen LSN sind nützlich für ein sekundäres Replikat, das während des Kopiervorgangs gesendet werden soll, um zu beschreiben, wie weit der Vorgang fortgeschritten ist. Beim Vergleichen von Statusvektoren, die während des Kopiervorgangs von sekundären Replikaten empfangen werden, können primäre Replikate bestimmen, ob das sekundäre Replikat aktuell ist, welcher Zustand an das sekundäre Replikat gesendet werden muss und ob das sekundäre Replikat einen falschen Fortschritt erzielt hat. Falscher Fortschritt bedeutet, dass ein LSN in einer früheren Epoche größer war als die LSN, die das primäre Replikat empfängt.

Überschreibt:

VolatileActorStateProvider.updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken)

Parameter:

epoch - Die neue Epoch.
previousEpochLastSequenceNumber - Die maximale Sequenznummer (Maximum Sequence Number, LSN), die in der vorherigen Epoche hätte beobachtet werden sollen.
cancellationToken -

CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.

Gibt zurück:

Gibt Task zurück.

Gilt für: