HADR_NOTIFICATION_DEQUEUE is recorded by the background task that processes Windows Server Failover Clustering notifications while it waits for the next notification to arrive. Availability Groups need to hear about cluster events (node changes, resource moves, quorum shifts) the moment they happen, so a dedicated listener sits permanently on that queue. A listener with nothing to…
HADR_LOGPROGRESS_SYNC is recorded when a thread waits for exclusive access to the structure holding the latest log-harden LSN on an Availability Group primary with a synchronous replica. That structure is the release gate for synchronous commits: sessions parked in HADR_SYNC_COMMIT get signalled to continue once the hardened LSN passes their commit LSN, and updating or…
HADR_LOGCAPTURE_WAIT is recorded by the Availability Group log capture thread on the primary while it waits for log records to become available to ship to secondaries. If the capture thread has already sent everything up to the end of the log, it sits in this wait until the workload generates more, or while it reads…
Two small Availability Group internals share this page: Both are single-purpose locks around infrequent events. Are They a Problem? No; neither has been a contention point. The subscriber-list lock is touched when replica events fire, which is occasional by nature; the FILESTREAM I/O manager lock is touched at its start and stop, rarer still. Their…
Part of the DBA-Tools Project. Temp DB is shared by every database and every session on the instance: temp tables, table variables, sort and hash spills, version store for snapshot isolation, all of it lands in the same handful of files. When Temp DB is under pressure, contention or growth events, the first question is…
HADR_GROUP_COMMIT Wait Type in SQL Server HADR_GROUP_COMMIT is recorded when transaction commit processing on an Availability Group primary waits briefly so that multiple commit records can be packed into a single log block. Group commit is an optimisation: fewer, fuller log blocks mean fewer flushes, captures, and sends across the AG pipeline, which is a…
HADR_FILESTREAM_IOMGR_IOCOMPLETION is recorded by the FILESTREAM I/O manager for Availability Groups while it sleeps between checks for completed FILESTREAM sends to replicas. The detail that surprises people: it ticks every half second for half a second regardless of whether any Availability Groups exist, and regardless of whether you use FILESTREAM. That makes it a permanent…
HADR_DATABASE_FLOW_CONTROL is an Availability Group wait recorded on the primary when log capture has outrun the network send. Each database in an AG has a quota of unacknowledged messages allowed in flight to a secondary; when the queue is full, log scanning pauses under this wait until the secondary acknowledges some of the backlog. It…
HADR_CLUSAPI_CALL is recorded when a SQL Server thread switches to preemptive mode to invoke Windows Server Failover Clustering (WSFC) APIs. Availability Groups lean on the cluster constantly, health reporting, lease maintenance, metadata reads, failover coordination, and each of those calls leaves SQL Server’s cooperative scheduler while Windows does the work. On any AG-enabled instance this…
HADR_AG_MUTEX is recorded when a thread waits for the critical section guarding an Availability Group’s configuration. AG DDL statements (ALTER AVAILABILITY GROUP, adding or removing databases and replicas) and Windows Server Failover Clustering commands need exclusive read/write access to the AG’s configuration, and only one such operation can hold it at a time. Two configuration…
Always On Availability Groups (4) Auditing (7) Backups (5) Blocking Locking (6) Collectors (7) Database Backups & Recovery (8) Database Backups and Recovery (5) Database Maintenance (7) DBA Tools (24) Disk Space (5) Extended Events (8) Features (6) High Availability (6) Indexes (7) Installation (7) Instance (3) Inventory (6) Jobs (3) Maintenance (6) Migration (13) Monitoring (24) Performance (21) Performance Troubleshooting (9) PowerShell (4) Queries (3) Query Behaviour (5) Security (7) SQL Agent (5) SQL Scripts (17) SQL Server Administration (10) SQL Server Configuration (7) SQL Server Errors (5) SQL Server High Availability (4) SQL Server Internals (3) SQL Server Management Studio (SSMS) (6) SQL Server Monitoring (7) SQL Server Networking (9) SQL Server Security (7) Storage and Capacity (7) T-SQL (9) Temp DB (3) Tracing (7) Transaction Logs (4) Troubleshooting (14) Windows Server (4)