Compartir a través de


PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> Clase

Definición

Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).

Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).

Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.

public abstract class PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> : Orleans.LogConsistency.ILogViewAdaptor<TLogView,TLogEntry>, Orleans.LogConsistency.ILogViewRead<TLogView,TLogEntry>, Orleans.LogConsistency.ILogViewUpdate<TLogEntry> where TLogView : class, new() where TLogEntry : class where TSubmissionEntry : SubmissionEntry<TLogEntry>
public abstract class PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> : Orleans.EventSourcing.ILogViewAdaptor<TLogView,TLogEntry>, Orleans.EventSourcing.ILogViewRead<TLogView,TLogEntry>, Orleans.EventSourcing.ILogViewUpdate<TLogEntry> where TLogView : class, new() where TLogEntry : class where TSubmissionEntry : SubmissionEntry<TLogEntry>
type PrimaryBasedLogViewAdaptor<'LogView, 'LogEntry, 'SubmissionEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null and 'SubmissionEntry :> SubmissionEntry<'LogEntry>)> = class
    interface ILogViewAdaptor<'LogView, 'LogEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null)>
    interface ILogViewRead<'LogView, 'LogEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null)>
    interface ILogViewUpdate<'LogEntry (requires 'LogEntry : null)>
    interface ILogConsistencyDiagnostics
Public MustInherit Class PrimaryBasedLogViewAdaptor(Of TLogView, TLogEntry, TSubmissionEntry)
Implements ILogViewAdaptor(Of TLogView, TLogEntry), ILogViewRead(Of TLogView, TLogEntry), ILogViewUpdate(Of TLogEntry)

Parámetros de tipo

TLogView

Vista definida por el usuario del registro

TLogEntry

Tipo de las entradas de registro

TSubmissionEntry

Tipo de entradas de envío almacenadas en la cola pendiente

Herencia
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>
Implementaciones

Constructores

PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices)

Construya una instancia de para los parámetros especificados.

PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices)

Construya una instancia de para los parámetros especificados.

Campos

LastPrimaryIssue

Almacene el último problema que se produjo al leer o actualizar el principal. Es null si se ejecuta correctamente.

stats

Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).

Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).

Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.

Propiedades

Configuration

Configuración actual de varios clústeres para esta instancia específica.

ConfirmedVersion

Longitud del prefijo confirmado del registro

ConfirmedView

Vista confirmada del registro (que refleja solo las entradas confirmadas)

Host

El grano que usa este adaptador.

Services

Los servicios en tiempo de ejecución necesarios para implementar notificaciones entre instancias específicas en un clúster diferente.

SupportSubmissions

Si este clúster admite el envío de actualizaciones

TentativeView

Vista local y provisional del registro (que refleja las entradas confirmadas y no confirmadas)

UnconfirmedSuffix

Lista de las entradas enviadas que aún no aparecen en el prefijo confirmado.

UnresolvedConnectionIssues

devuelve una lista de todos los problemas de estado de conexión que aún no se han restaurado. Estos problemas se observan al comunicarse con el servidor principal o al intentar notificar a otros clústeres, por ejemplo.

Métodos

BroadcastNotification(INotificationMessage, String)

Enviar un mensaje de notificación a todas las instancias remotas

ConfirmSubmittedEntries()

Confirme todas las entradas enviadas.

Espera hasta que todas las entradas enviadas previamente aparezcan en el prefijo confirmado del registro.

CopyTentativeState()

Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).

Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).

Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.

DisableStatsCollection()

Deshabilitación de la colección de estadísticas

EnableStatsCollection()

method es virtual, por lo que las subclases pueden agregar sus propios eventos

EnsureClusterJoinedAsync()

Bloquee hasta que este clúster esté unido al clúster múltiple.

GetCaughtUpWithConfigurationAsync(DateTime)

Espere hasta que este clúster haya recibido una configuración que sea al menos tan nueva como marca de tiempo.

GetConfirmedVersion()

Lee la versión del estado global almacenado en caché.

GetCurrentBatchOfUpdates()

Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).

Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).

Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.

GetNumberPendingUpdates()

Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).

Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).

Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.

GetStats()

Obtener estados

InitializeConfirmedView(TLogView)

Establecer la vista confirmada del valor inicial (una vista del registro vacío)

IsMyClusterJoined()

Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).

Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).

Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.

LastConfirmedView()

Lee el estado global almacenado en caché.

MakeSubmissionEntry(TLogEntry)

Cree una entrada de envío para la entrada de registro enviada. Usar un parámetro de tipo para poder agregar información específica del protocolo a esta clase.

Merge(INotificationMessage, INotificationMessage)

Combine dos mensajes de notificación para el procesamiento por lotes. Invalide para controlar los subtipos de notificación.

NotifyPromises(Int32, Boolean)

envío de notificaciones de error

OnConfigurationChange(MultiClusterConfiguration)

Se llama cuando cambia la configuración del clúster múltiple.

OnMessageReceived(ILogConsistencyProtocolMessage)

Controle los mensajes de protocolo.

OnMessageReceived(ILogConsistencyProtocolMessage)

Controle los mensajes de protocolo.

OnMultiClusterConfigurationChange(MultiClusterConfiguration)

Lo llama MultiClusterOracle cuando hay un cambio de configuración.

OnNotificationReceived(INotificationMessage)

Controle los mensajes de notificación. Invalide esto para controlar los subtipos de notificación.

OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

Se llama desde la red

OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

Se llama desde la red

PostOnActivate()

Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).

Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).

Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.

PostOnDeactivate()

Se llama durante la desactivación, justo después de la definida por OnDeactivateAsync()el usuario.

PreOnActivate()

Se llama durante la activación, justo antes de la definida por OnActivateAsync()el usuario.

ProcessNotifications()

Procesar las notificaciones almacenadas durante el ciclo de trabajo. Invalide para controlar los subtipos de notificación.

ReadAsync()

Lea el estado principal más reciente. Debe bloquear o reintentar hasta que se realice correctamente. No debe producir excepciones, pero registrarlas en LastPrimaryIssue

RemoveStaleConditionalUpdates()

pasar por las actualizaciones y quitar todas las actualizaciones condicionales que ya han fallado

RetrieveLogSegment(Int32, Int32)

Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).

Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).

Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.

Submit(TLogEntry)

Envíe una entrada de registro única para anexarse al registro global, ya sea en la posición actual o en cualquier posición posterior.

SubmitRange(IEnumerable<TLogEntry>)

Envíe un intervalo de entradas de registro que se van a anexar atómicamente al registro global, ya sea en la posición actual o en cualquier posición posterior.

Synchronize()

Obtenga la vista de registro más reciente y confirme todas las entradas enviadas.

Espera hasta que todas las entradas enviadas previamente aparezcan en el prefijo confirmado del registro y fuerza una actualización del prefijo confirmado.

TryAppend(TLogEntry)

Intente anexar una sola entrada de registro en la posición actual del registro.

TryAppendRange(IEnumerable<TLogEntry>)

Intente anexar un intervalo de entradas de registro de forma atómica en la posición actual del registro.

WriteAsync()

Aplique entradas pendientes al servidor principal. Debe bloquear o reintentar hasta que se realice correctamente. No debe producir excepciones, pero registrarlas en LastPrimaryIssue

Se aplica a