-
add: db req the value of given index ? : GetChosen may not return chosen item index by index; But db must apply the log item extactly by index(inc order); Dis-continutes index sequence will delay db commit chosen item;
-
add: prevent Propose Req if local is not up-to-date;
-
majority read:(mega-store) "read from a majority of replicas to find the maximum log position that any replica has seen, and pick a replica to read from;"
=> req the max seen log posistion + commited position;
-
db: client req with a max seen log posistion: "Catch Up" => db req spaxos log up-to-date to as-least this point/or exactly? then process req; // read
"For any log positions without a known-committed value available, invoke Paxos to propose a no-op write." // =>
-
add timeout! & prop num 0 support & nil(no-op) prop value! => random backoff if accept pharse or prepare pharse failed
-
different propose:
- db normal prop;
- db master prop(prop num 0 & skip prepare pharse);
- db req chosen item of index i, (by prop a no-op prop value) => try to wait for all rsp util timeout, pick a majority(fav nip op)
-
"If the chosen value differs from that originally proposed, return a conflict error." => each prop req associate with a communicate chan ?
-
after init spaxos, // => prop msg: trying to catch-up with others!!