Server configuration: ADR cleaner retry timeout (min)

Applies to: SQL Server

Starting with SQL Server 2019 (15.x), this configuration setting is used for accelerated database recovery (ADR). The cleaner is an asynchronous process that wakes up periodically and cleans page versions that aren't needed.

Occasionally the cleaner might run into issues while acquiring object level locks due to conflicts with user workloads during its sweep. The cleaner tracks such pages in a separate list. ADR cleaner retry timeout (min) controls the amount of time the cleaner spends exclusively retrying object lock acquisition and cleanup of pages before it abandons the sweep. Completing the sweep with 100% success is essential to keep the growth of aborted transactions in the aborted transactions map. If the pages on the separate list can't be cleaned up in the prescribed timeout, then the current sweep is abandoned, and the cleanup is attempted during the next sweep.

Version Default value
SQL Server 2019 (15.x) 120
SQL Server 2022 (16.x) and later versions 15

Remarks

The cleaner is single threaded in SQL Server 2019 (15.x). In SQL Server 2022 (16.x), the cleaner is single-threaded by default, but can be made multi-threaded by configuring the ADR Cleaner Thread Count server configuration.

If the cleaner is single-threaded, it can only work on one database at a time. If the instance has more than one database with ADR enabled, don't increase the timeout to a large value. Doing so could delay cleanup on one database while the retry is happening on another database.

Known issue

For SQL Server 2019 (15.x) CU 12 and previous versions, this value might be set to 0. We recommend that you manually reset the value to 120, which is the designed default, using the example in this article.

Examples

The following example sets the cleaner retry timeout to the default value.

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 120;
RECONFIGURE;
GO

Examples

The following example sets the cleaner retry timeout to the default value.

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 15;
RECONFIGURE;
GO