FIX: Non-yielding scheduler issue when you write pages to buffer pool extension file in SQL Server 2014

Applies to: SQL Server 2014 EnterpriseSQL Server 2014 EnterpriseSQL Server 2014 Developer

Symptoms


Assume that you configure the Buffer Pool Extension feature to solid state drives (SSDs) in Microsoft SQL Server 2014. Then, you write pages to a buffer pool extension file. In this situation, a non-yielding scheduler issue occurs, this may cause some performance issues on SQL Server 2014. Additionally, a dump file is also generated.

Resolution


Service pack information

To resolve this issue, obtain Service Pack 1 for SQL Server 2014 and make sure SQL Server account has SE_MANAGE_VOLUME_NAME privilege.

For more information about SQL Server 2014 Service Pack 1 (SP1), see bugs that are fixed in SQL Server 2014 Service Pack 1 .



More Information


Cause

SQL Server 2014 has a new feature of buffer pool extension that extends the buffer pool from physical memory to SSDs. You can create buffer pool extension files on any SSD to increase buffer pool capacity and improve the performance.

When such a buffer pool extension file is created, the space in that file is not marked as used. Therefore, when an asynchronous write happens to this file at an offset that is beyond the existing logical end of file, Windows takes time to complete the asynchronous write operation because it fills the file with zero from the existing logical end to the new logical end. This causes non-yielding tasks which may result in hung query.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.