Skip to content

Commit 79590a2

Browse files
Don't apply adaptive timeouts to LDAP queries (#252)
* fix: Don't apply adaptive timeouts to LDAP queries * chore: Tuning Adaptive Timeout to be less aggressive overall
1 parent c62556c commit 79590a2

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

src/CommonLib/AdaptiveTimeout.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ public sealed class AdaptiveTimeout : IDisposable {
2020
private int _timeSpikeDecay;
2121
private const int TimeSpikePenalty = 2;
2222
private const int TimeSpikeForgiveness = 1;
23-
private const int TimeSpikeThreshold = 5;
23+
private const int TimeSpikeThreshold = 3;
2424
private const int ExcessiveTimeoutsThreshold = 7;
25-
private const int StdDevMultiplier = 5;
26-
private const int CountOfLatestSuccessToKeep = 4;
25+
private const int StdDevMultiplier = 7; // 7 standard deviations should be a very conservative upper bound
26+
private const int CountOfLatestSuccessToKeep = 3;
2727

2828
public AdaptiveTimeout(TimeSpan maxTimeout, ILogger log, int sampleCount = 100, int logFrequency = 1000, int minSamplesForAdaptiveTimeout = 30, bool useAdaptiveTimeout = true, bool throwIfExcessiveTimeouts = false) {
2929
if (maxTimeout <= TimeSpan.Zero)

src/CommonLib/LdapConnectionPool.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ public LdapConnectionPool(string identifier, string poolIdentifier, LdapConfig c
5858
_log = log ?? Logging.LogProvider.CreateLogger("LdapConnectionPool");
5959
_portScanner = scanner ?? new PortScanner();
6060
_nativeMethods = nativeMethods ?? new NativeMethods();
61-
_queryAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger("LdapQuery"));
62-
_pagedQueryAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger("LdapPagedQuery"));
63-
_rangedRetrievalAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger("LdapRangedRetrieval"));
61+
_queryAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger("LdapQuery"), useAdaptiveTimeout: false);
62+
_pagedQueryAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger("LdapPagedQuery"), useAdaptiveTimeout: false);
63+
_rangedRetrievalAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger("LdapRangedRetrieval"), useAdaptiveTimeout: false);
6464
_testConnectionAdaptiveTimeout = new AdaptiveTimeout(maxTimeout: TimeSpan.FromMinutes(2), Logging.LogProvider.CreateLogger("TestLdapConnection"));
6565
}
6666

0 commit comments

Comments
 (0)