Skip to content

Commit

Permalink
Index members by address
Browse files Browse the repository at this point in the history
  • Loading branch information
jwolski committed Jun 23, 2015
1 parent afdb57f commit f9b5bc0
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
13 changes: 3 additions & 10 deletions lib/membership.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ var util = require('util');
function Membership(ringpop) {
this.ringpop = ringpop;
this.members = [];
this.membersByAddress = {};
this.checksum = null;
}

Expand Down Expand Up @@ -59,16 +60,7 @@ Membership.prototype.computeChecksum = function computeChecksum() {
};

Membership.prototype.findMemberByAddress = function findMemberByAddress(address) {
// TODO Index by address
for (var i = 0; i < this.members.length; i++) {
var member = this.members[i];

if (member.address === address) {
return member;
}
}

return null;
return this.membersByAddress[address];
};

Membership.prototype.generateChecksumString = function generateChecksumString() {
Expand Down Expand Up @@ -249,6 +241,7 @@ Membership.prototype.update = function update(changes) {
}

self.members.splice(self.getJoinPosition(), 0, member);
self.membersByAddress[member.address] = member;
}

member.status = update.status;
Expand Down
4 changes: 3 additions & 1 deletion test/integration/swim-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,9 @@ testRingpopCluster({
// Mutating all member addresses to make each of selected ping-req members
// unreachable and therefore, the results of ping-req inconclusive.
ringpop.membership.members.forEach(function eachMember(member) {
member.address += '001';
if (member.address !== unreachableMember.address) {
member.address += '001';
}
});

sendPingReq({
Expand Down

0 comments on commit f9b5bc0

Please sign in to comment.