Skip to content
This repository was archived by the owner on Feb 18, 2021. It is now read-only.

Commit 0de86ea

Browse files
author
Joshua T Corbin
committed
Add feature flag for draining incoming connections
1 parent 582634c commit 0de86ea

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

clients/index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,7 @@ ApplicationClients.prototype.onRemoteConfigUpdate = function onRemoteConfigUpdat
365365
self.updateReservoir();
366366
self.updateReapPeersPeriod();
367367
self.updatePrunePeersPeriod();
368+
self.updateDrainIncomingConnections();
368369
self.updatePartialAffinityEnabled();
369370
self.setMaximumRelayTTL();
370371
self.updatePeerHeapEnabled();
@@ -444,6 +445,12 @@ function updatePrunePeersPeriod() {
444445
self.serviceProxy.setPrunePeersPeriod(period);
445446
};
446447

448+
ApplicationClients.prototype.updateDrainIncomingConnections = function updateDrainIncomingConnections() {
449+
var self = this;
450+
var enabled = self.remoteConfig.get('drainIncomingConnections.enabled', false);
451+
self.serviceProxy.setDrainIncomingConnections(enabled);
452+
};
453+
447454
ApplicationClients.prototype.updatePartialAffinityEnabled = function updatePartialAffinityEnabled() {
448455
var self = this;
449456
var enabled = self.remoteConfig.get('partialAffinity.enabled', false);

service-proxy.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ function ServiceDispatchHandler(options) {
8989
});
9090
self.rateLimiterEnabled = options.rateLimiterEnabled;
9191

92+
self.drainIncomingConnections = !!options.drainIncomingConnections;
9293
self.partialAffinityEnabled = !!options.partialAffinityEnabled;
9394
self.minPeersPerWorker = options.minPeersPerWorker || DEFAULT_MIN_PEERS_PER_WORKER;
9495
self.minPeersPerRelay = options.minPeersPerRelay || DEFAULT_MIN_PEERS_PER_RELAY;
@@ -636,7 +637,9 @@ function ensurePeerConnected(serviceName, peer, reason, now) {
636637
}
637638

638639
var conn = peer.connectTo();
639-
self.drainInOnceConnected(peer, conn, reason);
640+
if (self.drainIncomingConnections) {
641+
self.drainInOnceConnected(peer, conn, reason);
642+
}
640643
};
641644

642645
ServiceDispatchHandler.prototype.drainInOnceConnected =
@@ -1604,6 +1607,12 @@ function disableRateLimiter() {
16041607
self.rateLimiterEnabled = false;
16051608
};
16061609

1610+
ServiceDispatchHandler.prototype.setDrainIncomingConnections =
1611+
function setDrainIncomingConnections(enabled) {
1612+
var self = this;
1613+
self.drainIncomingConnections = !!enabled;
1614+
};
1615+
16071616
ServiceDispatchHandler.prototype.setPartialAffinityEnabled =
16081617
function enablePartialAffinity(enabled) {
16091618
var self = this;

0 commit comments

Comments
 (0)