PARALLEL_REDO_WORKER_SYNC

(Republishing, or using this info in a commercial product/website, is prohibited without permission. All other uses are permitted. If in doubt, please ask.)

(Back to main page…)

Description:

This wait type is when the main parallel redo thread in an Availability Group replica is waiting for the redo worker threads to complete. This wait is part of normal parallel redo operations.

(Books Online description: N/A)

Questions/comments on this wait type? Click here to send Paul an email, especially if you have any information to add to this topic.

Added in SQL Server version:

2016

Removed in SQL Server version:

N/A

Extended Events wait_type value:

The map_key value in sys.dm_xe_map_values is 1131 in 2016 RTM. After 2016 RTM, you must check the DMV to get the latest value as some map_key values have changed in later builds.

Other information:

This wait type is one that I usually filter out as a benign wait when doing wait statistics analysis as it is documented as not being indicative of a performance issue.

You can read more about parallel redo in this blog post.

Known occurrences in SQL Server (list number matches call stack list):

  1. Waiting for parallel redo work threads to complete (in this case, while running recovery as part of CREATE DATABASE operation)
  2. Waiting for parallel redo work threads to complete (in this case, while running recovery as part of RESTORE DATABASE operation)

And other similar call stacks.

Abbreviated call stacks (list number matches known occurrences list):

  1. SOS_Task::PostWait+0x6f
    EventInternal<SuspendQueueSLock>::Wait+0x1f4
    ParallelRedoManager::StopRedoWorkers+0x115
    RecoveryMgr::Cleanup+0xc0
    RecoveryUnit::DoRollbackRecovery+0x49
    RecoveryUnit::CompleteRecovery+0x6ef
    DBTABLE::StartupPostRecovery+0x9f
    DBTABLE::Startup+0x1475
    DBMgr::StartupDB+0x7d5
    CStmtCreateDB::CreateLocalDatabaseFragment+0x99d
    DBDDLAgent::CreateDatabase+0x12b
    CStmtCreateDB::XretExecute+0x1253
    CMsqlExecContext::ExecuteStmts<1,1>+0x40d
    CMsqlExecContext::FExecute+0xa9e
    CSQLSource::Execute+0x981
    process_request+0xe61
    process_commands_internal+0x2df
    process_messages+0x253
    SOS_Task::Param::Execute+0x231
    SOS_Scheduler::RunTask+0xaa
  2. SOS_Task::PostWait+0x6f
    EventInternal<SuspendQueueSLock>::Wait+0x1f4
    ParallelRedoManager::StopRedoWorkers+0x115
    RecoveryMgr::Cleanup+0xc0
    RecoveryUnit::DoRollbackRecovery+0x49
    RecoveryUnit::CompleteRecovery+0x6ef
    DBTABLE::StartupPostRecovery+0x9f
    DBTABLE::Startup+0x1475
    DBMgr::StartupDB+0x7d5
    BackupOperation::StartupDb+0x1e3
    BackupOperation::StartDatabaseForOnline+0x222
    BackupOperation::BringDatabaseFullyOnline+0x4ce
    BackupOperation::CompleteRestore+0x432
    BackupOperation::Restore+0xeea
    BackupEntry::RestoreDatabase+0x304
    CStmtLoadDb::XretExecute+0x10f
    CMsqlExecContext::ExecuteStmts<1,1>+0x40d
    CMsqlExecContext::FExecute+0xa9e
    CSQLSource::Execute+0x981
    process_request+0xe61