From 12558fc351f096d9cb97a805ad1e4aac47801024 Mon Sep 17 00:00:00 2001 From: "Peter J. Keleher" <keleher@cs.umd.edu> Date: Sun, 12 Nov 2023 11:12:19 -0500 Subject: [PATCH] auto --- p5.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/p5.md b/p5.md index 9bd1767..7148e16 100644 --- a/p5.md +++ b/p5.md @@ -1,7 +1,12 @@ # RAFT -**v1.1** +**v1.11** ## Due: Nov 19, 2023, 11:59:59 pm +Latest changes: +- Follower replica getting a command request should forward to the +leader (and wait). The incoming context should be used in the +forward. This change should took about two lines of code. + ## Setup Download files [here](https://sedna.cs.umd.edu/818/projects/p5.tgz?1). @@ -55,8 +60,11 @@ Your servers and clients are called as follows: of the system and the command is a simple uninterpreted string. For example: `go run client.go localhost:8002 one` submits the command "one" to - `localhost:8002`. If this host is not the leader it returns *false* - to the client, which prints this out. The RPC to the server will not + `localhost:8002`. If this host is not the leader, the request should + be forwarded to the true leader using the same context. So the + client will be waiting on the local raft gothread, which is waiting + on the remote replica gothread, which is waiting on the channel that + will be activated when the command commits. The RPC to the server will not return until the command is committed, at which point the client will print out "true". -- GitLab