Skip to content

Commit

Permalink
Last minute fixes; slow down decay, add more descriptive logging, mak…
Browse files Browse the repository at this point in the history
…e sure to check damped limits before damping member
  • Loading branch information
jwolski committed Nov 25, 2015
1 parent 67d4e41 commit 0198047
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
2 changes: 1 addition & 1 deletion config.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Config.prototype._seed = function _seed(seed) {
seedOrDefault('dampScoringEnabled', true);
seedOrDefault('dampScoringDecayEnabled', true);
seedOrDefault('dampScoringDecayInterval', 1000);
seedOrDefault('dampScoringHalfLife', 60);
seedOrDefault('dampScoringHalfLife', 60 * 5); // 5 minutes in seconds
// TODO Initial should never be below min nor above max
seedOrDefault('dampScoringInitial', 0);
seedOrDefault('dampScoringMax', 10000);
Expand Down
21 changes: 14 additions & 7 deletions lib/gossip/damper.js
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,15 @@ Damper.prototype.dampMember = function dampMember(addr) {
return false;
}

if (!this._validateDampedClusterLimits()) {
this.logger.warn('ringpop damper reached maximum allowable damped members; will not damp member', {
local: this.ringpop.whoami(),
dampedMembers: Object.keys(this.dampedMembers),
member: addr
});
return;
}

this.ringpop.membership.makeDamped(member.address);

// Don't start anymore damping subprotocols for a member
Expand Down Expand Up @@ -270,6 +279,10 @@ Damper.prototype.initiateSubprotocol = function initiateSubprotocol(callback) {

// TODO Stop damp timer when cluster has reached damped limits
if (!this._validateDampedClusterLimits()) {
this.logger.warn('ringpop damper reached maximum allowable damped members; will not initiate subprotocol', {
local: this.ringpop.whoami(),
dampedMembers: Object.keys(this.dampedMembers)
});
callback();
return;
}
Expand Down Expand Up @@ -361,7 +374,7 @@ Damper.prototype.initiateSubprotocol = function initiateSubprotocol(callback) {
Damper.prototype.removeFlapper = function removeFlapper(flapper) {
var address = flapper.address || flapper;
if (!this.flappers[address]) {
this.logger.debug('ringpop damper did not remove flapper; it was not added. it may be damped.', {
this.logger.debug('ringpop damper did not remove flapper; it may be damped.', {
local: this.ringpop.whoami(),
flapper: address,
isDamped: !!this.dampedMembers[address]
Expand Down Expand Up @@ -574,12 +587,6 @@ Damper.prototype._validateDampedClusterLimits = function _validateDampedClusterL
return true;
}

this.logger.warn('ringpop damper reached maximum allowable damped members', {
local: this.ringpop.whoami(),
dampedCurrent: dampedCurrent,
dampedMax: dampedMax,
dampedMembers: dampedMemberAddrs
});
this.emit('dampedLimitExceeded', new events.DampedLimitExceededEvent());
return false;
};
Expand Down

0 comments on commit 0198047

Please sign in to comment.