package paxos
import “net”
import “net/rpc”
import “log”
import “os”
import “syscall”
import “sync”
import “sync/atomic”
import “fmt”
import (
“math/rand”
“strconv”
“time”
)
// px.Status() return values, indicating
// whether an agreement has been decided,
// or Paxos has not yet reached agreement,
// or it was agreed but forgotten (i.e. < Min()).
type Fate int
const (
Decided Fate = iota + 1
Pending // not yet decided.
Forgotten // decided but forgotten.
)
const (
PrintDebug = false
)
type instance struct {
state Fate // instance state
n_p string // propose num
n_a string //