// RPC interface for the Paxos protocol. func (svr *Server) Prepare(args *echoproto.Args, reply *echoproto.Reply) error { svr.Lock.Lock() if args.N >= svr.N_high { svr.N_high = args.N reply.Response = echoproto.PREPARE_OK } else { reply.Response = echoproto.PREPARE_REJECT } svr.info("Prepare()") svr.Lock.Unlock() return nil }
func (svr *Server) Accept(args *echoproto.Args, reply *echoproto.Reply) error { svr.Lock.Lock() if args.N >= svr.N_high { svr.N_high = args.N svr.N_accept = args.N svr.V_accept = args.V reply.Response = echoproto.ACCEPT_OK } else { reply.Response = echoproto.ACCEPT_REJECT } svr.info("Accept()") svr.Lock.Unlock() return nil }