Поделиться через


PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> Класс

Определение

Общий шаблон для создания адаптеров представления журнала, основанных на последовательно считываемом и записываемом первичном объекте. Мы используем его для создания различных поставщиков единообразия журналов, все они следуют одному и тому же базовому шаблону (чтение и запись последних представлений из/в основной, а также отправка уведомлений после записи).

Обратите внимание, что сам журнал является временным, т. е. фактически не сохраняется в хранилище. В основном хранится только последнее представление и некоторые метаданные (позиция журнала и флаги записи). Вызовы этого адаптера можно безопасно чередовать (конечно, используя только планировщик grain).

Подклассы переопределяют ReadAsync и WriteAsync для чтения из основного объекта или записи в нее. Вызовы к основному объекту сериализуются, т. е. никогда не чередуются.

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)

Параметры типа

TLogView

Определяемое пользователем представление журнала

TLogEntry

Тип записей журнала

TSubmissionEntry

Тип записей отправки, хранящихся в очереди ожидания

Наследование
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>
Реализации

Конструкторы

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

Создайте экземпляр для заданных параметров.

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

Создайте экземпляр для заданных параметров.

Поля

LastPrimaryIssue

Сохраните последнюю проблему, возниквшую при чтении или обновлении основной. Имеет значение NULL в случае успешного выполнения.

stats

Общий шаблон для создания адаптеров представления журнала, основанных на последовательно считываемом и записываемом первичном объекте. Мы используем его для создания различных поставщиков единообразия журналов, все они следуют одному и тому же базовому шаблону (чтение и запись последних представлений из/в основной, а также отправка уведомлений после записи).

Обратите внимание, что сам журнал является временным, т. е. фактически не сохраняется в хранилище. В основном хранится только последнее представление и некоторые метаданные (позиция журнала и флаги записи). Вызовы этого адаптера можно безопасно чередовать (конечно, используя только планировщик grain).

Подклассы переопределяют ReadAsync и WriteAsync для чтения из основного объекта или записи в нее. Вызовы к основному объекту сериализуются, т. е. никогда не чередуются.

Свойства

Configuration

Текущая конфигурация с несколькими кластерами для этого экземпляра grain.

ConfirmedVersion

Длина подтвержденного префикса журнала

ConfirmedView

Подтвержденное представление журнала (отражающее только подтвержденные записи)

Host

Объект grain, использующий этот адаптер.

Services

Службы среды выполнения, необходимые для реализации уведомлений между экземплярами grain в разных кластерах.

SupportSubmissions

Поддерживает ли этот кластер отправку обновлений

TentativeView

Локальное предварительное представление журнала (отражающее как подтвержденные, так и неподтвержденные записи)

UnconfirmedSuffix

Список отправленных записей, которые еще не отображаются в подтвержденном префиксе.

UnresolvedConnectionIssues

возвращает список всех проблем работоспособности подключения, которые еще не были восстановлены. Такие проблемы наблюдаются при взаимодействии с основной или при попытке уведомить другие кластеры, например.

Методы

BroadcastNotification(INotificationMessage, String)

Отправка сообщения уведомления во все удаленные экземпляры

ConfirmSubmittedEntries()

Подтвердите все отправленные записи.

Ожидает, пока все ранее отправленные записи не появятся в подтвержденном префиксе журнала.

CopyTentativeState()

Общий шаблон для создания адаптеров представления журнала, основанных на последовательно считываемом и записываемом первичном объекте. Мы используем его для создания различных поставщиков единообразия журналов, все они следуют одному и тому же базовому шаблону (чтение и запись последних представлений из/в основной, а также отправка уведомлений после записи).

Обратите внимание, что сам журнал является временным, т. е. фактически не сохраняется в хранилище. В основном хранится только последнее представление и некоторые метаданные (позиция журнала и флаги записи). Вызовы этого адаптера можно безопасно чередовать (конечно, используя только планировщик grain).

Подклассы переопределяют ReadAsync и WriteAsync для чтения из основного объекта или записи в нее. Вызовы к основному объекту сериализуются, т. е. никогда не чередуются.

DisableStatsCollection()

Отключение сбора статистики

EnableStatsCollection()

метод является виртуальным, поэтому подклассы могут добавлять собственные события

EnsureClusterJoinedAsync()

Блокировать, пока этот кластер не будет присоединен к мультикластеру.

GetCaughtUpWithConfigurationAsync(DateTime)

Дождитесь, пока этот кластер получит конфигурацию, которая будет по крайней мере такой же новой, как метка времени.

GetConfirmedVersion()

Чтение версии кэшированного глобального состояния.

GetCurrentBatchOfUpdates()

Общий шаблон для создания адаптеров представления журнала, основанных на последовательно считываемом и записываемом первичном объекте. Мы используем его для создания различных поставщиков единообразия журналов, все они следуют одному и тому же базовому шаблону (чтение и запись последних представлений из/в основной, а также отправка уведомлений после записи).

Обратите внимание, что сам журнал является временным, т. е. фактически не сохраняется в хранилище. В основном хранится только последнее представление и некоторые метаданные (позиция журнала и флаги записи). Вызовы этого адаптера можно безопасно чередовать (конечно, используя только планировщик grain).

Подклассы переопределяют ReadAsync и WriteAsync для чтения из основного объекта или записи в нее. Вызовы к основному объекту сериализуются, т. е. никогда не чередуются.

GetNumberPendingUpdates()

Общий шаблон для создания адаптеров представления журнала, основанных на последовательно считываемом и записываемом первичном объекте. Мы используем его для создания различных поставщиков единообразия журналов, все они следуют одному и тому же базовому шаблону (чтение и запись последних представлений из/в основной, а также отправка уведомлений после записи).

Обратите внимание, что сам журнал является временным, т. е. фактически не сохраняется в хранилище. В основном хранится только последнее представление и некоторые метаданные (позиция журнала и флаги записи). Вызовы этого адаптера можно безопасно чередовать (конечно, используя только планировщик grain).

Подклассы переопределяют ReadAsync и WriteAsync для чтения из основного объекта или записи в нее. Вызовы к основному объекту сериализуются, т. е. никогда не чередуются.

GetStats()

Получение состояний

InitializeConfirmedView(TLogView)

Задать подтвержденное представление начального значения (представление пустого журнала)

IsMyClusterJoined()

Общий шаблон для создания адаптеров представления журнала, основанных на последовательно считываемом и записываемом первичном объекте. Мы используем его для создания различных поставщиков единообразия журналов, все они следуют одному и тому же базовому шаблону (чтение и запись последних представлений из/в основной, а также отправка уведомлений после записи).

Обратите внимание, что сам журнал является временным, т. е. фактически не сохраняется в хранилище. В основном хранится только последнее представление и некоторые метаданные (позиция журнала и флаги записи). Вызовы этого адаптера можно безопасно чередовать (конечно, используя только планировщик grain).

Подклассы переопределяют ReadAsync и WriteAsync для чтения из основного объекта или записи в нее. Вызовы к основному объекту сериализуются, т. е. никогда не чередуются.

LastConfirmedView()

Чтение кэшированного глобального состояния.

MakeSubmissionEntry(TLogEntry)

Создайте запись отправки для отправленной записи журнала. Использование параметра типа для добавления сведений, относящихся к протоколу, в этот класс.

Merge(INotificationMessage, INotificationMessage)

Объедините два сообщения уведомлений для пакетной обработки. Переопределите для обработки подтипов уведомлений.

NotifyPromises(Int32, Boolean)

отправка уведомлений о сбоях

OnConfigurationChange(MultiClusterConfiguration)

Вызывается при изменении конфигурации мультикластера.

OnMessageReceived(ILogConsistencyProtocolMessage)

Обработка сообщений протокола.

OnMessageReceived(ILogConsistencyProtocolMessage)

Обработка сообщений протокола.

OnMultiClusterConfigurationChange(MultiClusterConfiguration)

Вызывается методом MultiClusterOracle при изменении конфигурации.

OnNotificationReceived(INotificationMessage)

Обработка уведомлений. Переопределите его для обработки подтипов уведомлений.

OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

Вызывается из сети

OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

Вызывается из сети

PostOnActivate()

Общий шаблон для создания адаптеров представления журнала, основанных на последовательно считываемом и записываемом первичном объекте. Мы используем его для создания различных поставщиков единообразия журналов, все они следуют одному и тому же базовому шаблону (чтение и запись последних представлений из/в основной, а также отправка уведомлений после записи).

Обратите внимание, что сам журнал является временным, т. е. фактически не сохраняется в хранилище. В основном хранится только последнее представление и некоторые метаданные (позиция журнала и флаги записи). Вызовы этого адаптера можно безопасно чередовать (конечно, используя только планировщик grain).

Подклассы переопределяют ReadAsync и WriteAsync для чтения из основного объекта или записи в нее. Вызовы к основному объекту сериализуются, т. е. никогда не чередуются.

PostOnDeactivate()

Вызывается во время деактивации сразу после определяемого OnDeactivateAsync()пользователем .

PreOnActivate()

Вызывается во время активации прямо перед определяемым OnActivateAsync()пользователем .

ProcessNotifications()

Обработка сохраненных уведомлений во время рабочего цикла. Переопределите для обработки подтипов уведомлений.

ReadAsync()

Прочитать последнее основное состояние. Необходимо заблокировать или повторить попытку до успешного выполнения. Не следует создавать исключения, а записывать их в LastPrimaryIssue

RemoveStaleConditionalUpdates()

пройти через обновления и удалить все условные обновления, которые уже завершились сбоем

RetrieveLogSegment(Int32, Int32)

Общий шаблон для создания адаптеров представления журнала, основанных на последовательно считываемом и записываемом первичном объекте. Мы используем его для создания различных поставщиков единообразия журналов, все они следуют одному и тому же базовому шаблону (чтение и запись последних представлений из/в основной, а также отправка уведомлений после записи).

Обратите внимание, что сам журнал является временным, т. е. фактически не сохраняется в хранилище. В основном хранится только последнее представление и некоторые метаданные (позиция журнала и флаги записи). Вызовы этого адаптера можно безопасно чередовать (конечно, используя только планировщик grain).

Подклассы переопределяют ReadAsync и WriteAsync для чтения из основного объекта или записи в нее. Вызовы к основному объекту сериализуются, т. е. никогда не чередуются.

Submit(TLogEntry)

Отправьте одну запись журнала для добавления в глобальный журнал в текущей или последующей позиции.

SubmitRange(IEnumerable<TLogEntry>)

Отправьте диапазон записей журнала для атомарного добавления в глобальный журнал в текущей или последующей позиции.

Synchronize()

Получите последнее представление журнала и подтвердите все отправленные записи.

Ожидает, пока все ранее отправленные записи не появятся в подтвержденном префиксе журнала, и принудительно обновляет подтвержденный префикс.

TryAppend(TLogEntry)

Попробуйте добавить одну запись журнала в текущую позицию журнала.

TryAppendRange(IEnumerable<TLogEntry>)

Попробуйте добавить диапазон записей журнала атомарным образом в текущую позицию журнала.

WriteAsync()

Применение ожидающих записей к основному объекту. Необходимо заблокировать или повторить попытку до успешного выполнения. Не следует создавать исключения, а записывать их в LastPrimaryIssue

Применяется к