Condividi tramite


ActivationCountBasedPlacement Classe

Definizione

Strategia di posizionamento che tenta di ottenere circa il carico in base al numero di cereali attivi di recente in ogni server.

[System.Serializable]
public class ActivationCountBasedPlacement : Orleans.Runtime.PlacementStrategy
[System.Serializable]
[Orleans.GenerateSerializer]
[Orleans.Immutable]
[Orleans.SuppressReferenceTracking]
public sealed class ActivationCountBasedPlacement : Orleans.Runtime.PlacementStrategy
[<System.Serializable>]
type ActivationCountBasedPlacement = class
    inherit PlacementStrategy
[<System.Serializable>]
[<Orleans.GenerateSerializer>]
[<Orleans.Immutable>]
[<Orleans.SuppressReferenceTracking>]
type ActivationCountBasedPlacement = class
    inherit PlacementStrategy
Public Class ActivationCountBasedPlacement
Inherits PlacementStrategy
Public NotInheritable Class ActivationCountBasedPlacement
Inherits PlacementStrategy
Ereditarietà
ActivationCountBasedPlacement
Attributi

Commenti

L'intenzione di questa strategia di posizionamento è quella di inserire nuove attivazioni granulari sul server meno caricato in base al numero di cereali occupati di recente. Include un meccanismo in cui tutti i server pubblicano periodicamente il numero totale di attivazioni a tutti gli altri server. Il direttore di posizionamento seleziona quindi un server che prevede di avere le attivazioni più recenti esaminando il conteggio di attivazioni segnalato più di recente e una stima del conteggio di attivazioni corrente in base al conteggio di attivazione recente effettuato dal direttore di posizionamento nel server corrente. Il director seleziona un numero di server in modo casuale quando si effettua questa stima, in un tentativo di evitare l'overload di più server separati nello stesso server. Per impostazione predefinita, due server vengono selezionati in modo casuale, ma questo valore è configurabile tramite Orleans.Runtime.ActivationCountBasedPlacementOptions.
Questo algoritmo si basa sulla tesi The Power of Two Choices in Randomized Load Balanceing di Michael David Mitzenmacher https://www.eecs.harvard.edu/~michaelm/postscripts/mythesis.pdfe viene usato anche in NGINX per il bilanciamento del carico distribuito, come descritto nell'articolo NGINX e "Power of Two Choices" Load-Balancing Algoritmo https://www.nginx.com/blog/nginx-power-of-two-choices-load-balancing-algorithm/.
Questa strategia di posizionamento è configurata aggiungendo l'attributo ActivationCountBasedPlacementAttribute a una granularità.

Costruttori

ActivationCountBasedPlacement()

Strategia di posizionamento che tenta di ottenere circa il carico in base al numero di cereali attivi di recente in ogni server.

Proprietà

IsUsingGrainDirectory

Ottiene un valore che indica se questa strategia di posizionamento richiede la registrazione delle attivazioni nella directory granulare.

(Ereditato da PlacementStrategy)

Metodi

Initialize(GrainProperties)

Inizializza un'istanza di questo tipo usando le proprietà di granularità specificate.

(Ereditato da PlacementStrategy)
PopulateGrainProperties(IServiceProvider, Type, GrainType, Dictionary<String,String>)

Popola le proprietà della granularità per specificare la strategia di posizionamento preferita.

(Ereditato da PlacementStrategy)

Si applica a