/// <summary> /// Checks the replicas to see if the key has met the durability constraints defined by the caller. /// </summary> /// <param name="observeParams">The observe parameters.</param> /// <param name="operation">The operation observe operation reference; will be cloned if reused.</param> /// <returns></returns> private bool CheckReplicas(ObserveParams observeParams, Observe operation) { //Get the candidate replicas, if none are defined that match the specified durability return false. var replicas = observeParams.GetReplicas(); //Check each replica to see if has met the durability constraints specified. A mutation means we failed. var notMutated = replicas.All(index => CheckReplica(observeParams, operation, index)); return(observeParams.IsDurabilityMet() && notMutated); }
async Task <bool> CheckReplicasAsync(ObserveParams observeParams, ObserveSeqno op) { var replicas = observeParams.GetReplicas(); var tasks = new List <Task <bool> >(); replicas.ForEach(x => tasks.Add(CheckReplicaAsync(observeParams, op, x))); await Task.WhenAll(tasks); return(observeParams.IsDurabilityMet()); }
private async Task <bool> CheckReplicasAsync(ObserveParams observeParams) { if (observeParams.ReplicateTo == ReplicateTo.Zero) { return(true); } var replicas = observeParams.GetReplicas().Select(x => CheckReplicaAsync(observeParams, x)); await Task.WhenAll(replicas); return(observeParams.IsDurabilityMet()); }
private async Task <bool> CheckReplicasAsync(ObserveParams observeParams) { if (observeParams.ReplicateTo == ReplicateTo.Zero) { return(true); } var replicas = observeParams.GetReplicas().Select(x => CheckReplicaAsync(observeParams, x)).ToList(); //Wait for all tasks to finish await Task.WhenAll(replicas).ContinueOnAnyContext(); var notMutated = replicas.All(subtask => subtask.Result); var durabilityMet = observeParams.IsDurabilityMet(); return(durabilityMet && notMutated); }
async Task<bool> CheckReplicasAsync(ObserveParams observeParams, ObserveSeqno op) { var replicas = observeParams.GetReplicas(); var tasks = new List<Task<bool>>(); replicas.ForEach(x => tasks.Add(CheckReplicaAsync(observeParams, op, x))); await Task.WhenAll(tasks); return observeParams.IsDurabilityMet(); }
/// <summary> /// Checks the replicas for durability constraints. /// </summary> /// <param name="observeParams">The observe parameters.</param> /// <param name="op">The op.</param> /// <returns></returns> bool CheckReplicas(ObserveParams observeParams, ObserveSeqno op) { var replicas = observeParams.GetReplicas(); return replicas.Any(replicaId => CheckReplica(observeParams, op, replicaId)); }
/// <summary> /// Checks the replicas to see if the key has met the durability constraints defined by the caller. /// </summary> /// <param name="observeParams">The observe parameters.</param> /// <param name="operation">The operation observe operation reference; will be cloned if reused.</param> /// <returns></returns> bool CheckReplicas(ObserveParams observeParams, Observe operation) { //Get the candidate replicas, if none are defined that match the specified durability return false. var replicas = observeParams.GetReplicas(); //Check each replica to see if has met the durability constraints specified. A mutation means we failed. var mutated = replicas.All(index => CheckReplica(observeParams, operation, index)); return observeParams.IsDurabilityMet() && !mutated; }
/// <summary> /// Checks the replicas for durability constraints. /// </summary> /// <param name="observeParams">The observe parameters.</param> /// <param name="op">The op.</param> /// <returns></returns> bool CheckReplicas(ObserveParams observeParams, ObserveSeqno op) { var replicas = observeParams.GetReplicas(); return(replicas.Any(replicaId => CheckReplica(observeParams, op, replicaId))); }
private async Task<bool> CheckReplicasAsync(ObserveParams observeParams) { if (observeParams.ReplicateTo == ReplicateTo.Zero) return true; var replicas = observeParams.GetReplicas().Select(x=>CheckReplicaAsync(observeParams, x)).ToList(); //Wait for all tasks to finish await Task.WhenAll(replicas).ContinueOnAnyContext(); var notMutated = replicas.All(subtask => subtask.Result); var durabilityMet = observeParams.IsDurabilityMet(); return durabilityMet && notMutated; }
private async Task<bool> CheckReplicasAsync(ObserveParams observeParams) { if (observeParams.ReplicateTo == ReplicateTo.Zero) return true; var replicas = observeParams.GetReplicas().Select(x=>CheckReplicaAsync(observeParams, x)); await Task.WhenAll(replicas); return observeParams.IsDurabilityMet(); }