Strategie für die Versionsauswahl

Wenn mehrere Versionen der gleichen Grainschnittstelle im Cluster vorhanden sind und eine neue Aktivierung erstellt werden muss, wird eine kompatible Version gemäß der in GrainVersioningOptions.DefaultVersionSelectorStrategy definierten Strategie ausgewählt.

Orleans bietet direkte Unterstützung für die folgenden Strategien:

Alle kompatiblen Versionen (Standard)

Bei Verwendung dieser Strategie wird die Version der neuen Aktivierung zufällig für alle kompatiblen Versionen ausgewählt.

Wenn wir beispielsweise 2 Versionen einer bestimmten Grainschnittstelle haben, wie V1 und V2:

  • V2 ist abwärtskompatibel mit V1
  • Im Cluster unterstützen zwei Silos V2 und acht unterstützen V1
  • Die Anforderung wurde von einem V1-Client/Silo gestellt.

In diesem Fall besteht eine Wahrscheinlichkeit von 20%, dass die neue Aktivierung V2 ist und eine Wahrscheinlichkeit von 80%, dass sie V1 ist.

Aktuelle Version

Mit dieser Strategie ist die Version der neuen Aktivierung immer die neueste kompatible Version. Wenn wir z. B. zwei Versionen einer bestimmten Grainschnittstelle haben, ist V1 und V2 (V2 ist abwärtskompatibel oder vollständig kompatibel mit V1), dann sind alle neuen Aktivierungen V2.

Mindestversion

Mit dieser Strategie wird die Version der neuen Aktivierung immer die angeforderte Version oder eine Version sein, die die Mindestkompatibilitätsanforderungen erfüllt. Wenn wir beispielsweise zwei Versionen einer bestimmten Grainschnittstelle haben, V2, V3, alle vollständig kompatiblen:

  • Wenn die Anforderung von einem V1-Client/Silo gestellt wurde, ist die neue Aktivierung V2.
  • Wenn die Anforderung von einem V3-Client/Silo gestellt wurde, ist die neue Aktivierung ebenfalls V2.