private static object ExtractPartitionEntityFromReconfigEvent(
     IClusterQuery clusterQuery,
     ReconfigurationCompletedTraceRecord reconfigEvent,
     CancellationToken cancelToken)
 {
     return(clusterQuery.GetPartitionAsync(reconfigEvent.PartitionId, cancelToken).GetAwaiter().GetResult());
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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;
 }
Beispiel #5
0
 /// <summary>
 /// Create an instance of <see cref="PrimaryMoveAnalysisEvent"/>
 /// </summary>
 /// <param name="reconfigRecord"></param>
 public PrimaryMoveAnalysisEvent(ReconfigurationCompletedTraceRecord reconfigRecord) : base(reconfigRecord)
 {
     this.AnalysisStartTimeStamp = DateTime.UtcNow;
 }