private static object ExtractPartitionEntityFromReconfigEvent( IClusterQuery clusterQuery, ReconfigurationCompletedTraceRecord reconfigEvent, CancellationToken cancelToken) { return(clusterQuery.GetPartitionAsync(reconfigEvent.PartitionId, cancelToken).GetAwaiter().GetResult()); }
public PartitionReconfigurationCompletedEvent(ReconfigurationCompletedTraceRecord traceRecord) : base(traceRecord.EventInstanceId, traceRecord.TimeStamp, traceRecord.Category, traceRecord.PartitionId) { this.NodeName = traceRecord.NodeName; this.NodeInstanceId = traceRecord.NodeInstanceId; this.ServiceType = traceRecord.ServiceType; this.CcEpochDataLossVersion = traceRecord.CcEpochDataLossVersion; this.CcEpochConfigVersion = traceRecord.CcEpochConfigVersion; this.ReconfigType = traceRecord.ReconfigType.ToString(); this.Result = traceRecord.Result.ToString(); this.Phase0DurationMs = traceRecord.Phase0DurationMs; this.Phase1DurationMs = traceRecord.Phase1DurationMs; this.Phase2DurationMs = traceRecord.Phase2DurationMs; this.Phase3DurationMs = traceRecord.Phase3DurationMs; this.Phase4DurationMs = traceRecord.Phase4DurationMs; this.TotalDurationMs = traceRecord.TotalDurationMs; }
private bool ShouldPerformAnalysis(ReconfigurationCompletedTraceRecord reconfigRecord, bool primaryReplicaPreviousLocationKnown) { return(primaryReplicaPreviousLocationKnown && (reconfigRecord.ReconfigType == ReconfigurationType.Failover || reconfigRecord.ReconfigType == ReconfigurationType.SwapPrimary) && reconfigRecord.Result == ReconfigurationResult.Completed); }
/// <summary> /// Create an instance of <see cref="ReconfigurationAnalysisEvent"/> /// </summary> /// <param name="reconfigRecord"></param> public ReconfigurationAnalysisEvent(ReconfigurationCompletedTraceRecord reconfigRecord) : base(reconfigRecord) { this.ReadUnavailabilityDuration = TimeSpan.MinValue; this.WriteUnavailabilityDuration = TimeSpan.MinValue; }
/// <summary> /// Create an instance of <see cref="PrimaryMoveAnalysisEvent"/> /// </summary> /// <param name="reconfigRecord"></param> public PrimaryMoveAnalysisEvent(ReconfigurationCompletedTraceRecord reconfigRecord) : base(reconfigRecord) { this.AnalysisStartTimeStamp = DateTime.UtcNow; }