Пример #1
0
 private void HandleReplica()
 {
     this.PendingWriteReq = (this.ReceivedEvent as Coordinator.ReqReplica).PendingWriteReq;
     this.Assert(this.PendingWriteReq.SeqNum > this.LastSeqNum);
     if (this.Random())
     {
         this.Send(this.Coordinator, new RespReplicaCommit(this.PendingWriteReq.SeqNum));
     }
     else
     {
         this.Send(this.Coordinator, new RespReplicaAbort(this.PendingWriteReq.SeqNum));
     }
 }
Пример #2
0
 public WriteReq(PendingWriteRequest req)
     : base()
 {
     this.PendingWriteReq = req;
 }
Пример #3
0
 public WriteReq(PendingWriteRequest req)
     : base()
 {
     this.PendingWriteReq = req;
 }
Пример #4
0
 public ReqReplica(PendingWriteRequest req)
     : base()
 {
     this.PendingWriteReq = req;
 }
Пример #5
0
 public ReqReplica(PendingWriteRequest req)
     : base()
 {
     this.PendingWriteReq = req;
 }
Пример #6
0
        void DoWrite()
        {
            this.PendingWriteReq = (this.ReceivedEvent as Client.WriteReq).PendingWriteReq;
            this.CurrSeqNum++;

            for (int i = 0; i < this.Replicas.Count; i++)
            {
                this.Send(this.Replicas[i], new ReqReplica(new PendingWriteRequest(this.CurrSeqNum,
                    this.PendingWriteReq.Idx, this.PendingWriteReq.Val)));
            }

            this.Send(this.Timer, new Timer.StartTimer(100));
            this.Raise(new Unit());
        }