diff --git a/lib/membership_update_rollup.js b/lib/membership_update_rollup.js index 1986a12d..160e0325 100644 --- a/lib/membership_update_rollup.js +++ b/lib/membership_update_rollup.js @@ -19,6 +19,7 @@ // THE SOFTWARE. 'use strict'; +var _ = require('underscore'); var EventEmitter = require('events').EventEmitter; var util = require('util'); @@ -43,6 +44,8 @@ function MembershipUpdateRollup(options) { util.inherits(MembershipUpdateRollup, EventEmitter); MembershipUpdateRollup.prototype.addUpdates = function addUpdates(updates) { + var ts = Date.now(); + for (var i = 0; i < updates.length; i++) { var update = updates[i]; @@ -50,7 +53,9 @@ MembershipUpdateRollup.prototype.addUpdates = function addUpdates(updates) { this.buffer[update.address] = []; } - this.buffer[update.address].push(update); + // TODO Replace _.extend with extend module + var updateWithTimestamp = _.extend({ ts: ts }, update); + this.buffer[update.address].push(updateWithTimestamp); } }; @@ -68,6 +73,7 @@ MembershipUpdateRollup.prototype.flushBuffer = function flushBuffer() { var numUpdates = this.getNumUpdates(); this.ringpop.logger.info('ringpop flushed membership update buffer', { + local: this.ringpop.whoami(), checksum: this.ringpop.membership.checksum, sinceFirstUpdate: this.lastUpdateTime && (this.lastUpdateTime - this.firstUpdateTime), sinceLastFlush: this.lastFlushTime && (now - this.lastFlushTime),