-
Type: Epic
-
Resolution: Won't Fix
-
Priority: Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: Connectivity
-
-
Done
-
Refactor SDAM heartbeat code to use a dedicated thread
The current implementation of heartbeats uses async code. It was also written before the SDAM spec was written.
The code would be simpler if it used a dedicated thread and sync calls. A dedicated thread would also protect the SDAM code from being starved from running when an application misuses Tasks in a way that interferes with the SDAM Tasks from getting a chance to run.
The SDAM code should be completely re-implemented to:
1. Follow the SDAM spec more closely which would involve using the same names and logic flow
2. Use a dedicated thread and sync driver calls (not async code)
- is depended on by
-
CSHARP-3841 Unobserved exceptions in RoundTripTimeMonitor.RunAsync on dispose
- Backlog
-
CSHARP-3840 Unresponsive/deadlocked cluster.Dispose()
- Closed
- is related to
-
CSHARP-1895 System.TimeoutException: A timeout occured after 30000ms selecting a server using CompositeServerSelector
- Closed
-
CSHARP-3813 Suppress execution context flow when initializing ServerMonitor
- Closed
- related to
-
CSHARP-2115 Highly contested startup doesn't resolve itself properly
- Closed
-
CSHARP-3761 Reimplement SDAM to use a dedicated thread
- Closed