bool isamember(const node_t & m, const nodes_t & nodes) {
return find(nodes.begin(), nodes.end(), m) != nodes.end();
}
// check if l2 contains a majority of the elements of l1
bool isamember(const node_t & m, const nodes_t & nodes) {
return find(nodes.begin(), nodes.end(), m) != nodes.end();
}
// check if l2 contains a majority of the elements of l1
-bool majority(const nodes_t &l1, const nodes_t &l2) {
- auto overlap = (size_t)count_if(l1.begin(), l1.end(), bind(isamember, _1, l2));
+bool majority(const nodes_t & l1, const nodes_t & l2) {
+ auto overlap = (size_t)count_if(l1.begin(), l1.end(), std::bind(isamember, _1, l2));
bool _first, const node_t & _me, const value_t & _value)
: delegate(_delegate), me (_me)
{
bool _first, const node_t & _me, const value_t & _value)
: delegate(_delegate), me (_me)
{
if (prepare(instance, accepts, cur_nodes, v)) {
if (majority(cur_nodes, accepts)) {
LOG("received a majority of prepare responses");
if (prepare(instance, accepts, cur_nodes, v)) {
if (majority(cur_nodes, accepts)) {
LOG("received a majority of prepare responses");
- paxos_protocol::preparereq, rpcc::to(1000), res, me, instance, proposal);
+ paxos_protocol::preparereq, milliseconds(100), res, me, instance, proposal);
- paxos_protocol::acceptreq, rpcc::to(1000), accept, me, instance, proposal, v);
+ paxos_protocol::acceptreq, milliseconds(100), accept, me, instance, proposal, v);
- r->call_timeout(paxos_protocol::decidereq, rpcc::to(1000), res, me, instance, v);
+ r->call_timeout(paxos_protocol::decidereq, milliseconds(100), res, me, instance, v);
values[instance] = value;
l.loginstance(instance, value);
instance_h = instance;
accepted = promise = {0, me};
values[instance] = value;
l.loginstance(instance, value);
instance_h = instance;
accepted = promise = {0, me};