Skip to content

Commit 0eab683

Browse files
committed
Update per feedback
1 parent f48fa38 commit 0eab683

5 files changed

Lines changed: 45 additions & 30 deletions

File tree

docs/database-engine/configure-windows/hybrid-buffer-pool.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ Only clean data pages are cached on the device for the Hybrid Buffer Pool. When
2727

2828
The hybrid buffer pool feature is available for both Windows and Linux. The PMEM device must be formatted with a filesystem that supports DAX (DirectAccess). XFS, EXT4, and NTFS file systems all have support for DAX. SQL Server will automatically detect if data files reside on an appropriately formatted PMEM device and perform memory mapping of database files upon startup, when a new database is attached, restored, or created.
2929

30-
For more on Windows Server support for PMEM, also referred to as Storage Class Memory (SCM) see [deploy persistent memory on Windows Server](/windows-server/storage/storage-spaces/deploy-pmem/).
30+
For more information, see:
3131

32-
For more on configuring SQL Server on Linux for PMEM devices see [persistent memory configuration for Linux](../../linux/sql-server-linux-configure-pmem.md).
32+
* [Understand and deploy persistent memory (Windows)](/windows-server/storage/storage-spaces/deploy-pmem/)
33+
* [Configure persistent memory (PMEM) for SQL Server on Linux](../../linux/sql-server-linux-configure-pmem.md)
3334

3435

3536
## Enable hybrid buffer pool
@@ -60,7 +61,7 @@ The following example disables hybrid buffer pool at the instance level:
6061
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED HYBRID_BUFFER_POOL = OFF;
6162
```
6263

63-
By default, hybrid buffer pool is disabled at the instance level. In order for this change to take effect, the instance must be restarted. This is to ensure a sufficient number of hash page are allocated for the buffer pool, as PMEM capacity on the server now needs to be accounted for.
64+
By default, hybrid buffer pool is disabled at the instance level. In order for this change to take effect, the instance must be restarted. This ensures enough hash pages are allocated for the buffer pool, as PMEM capacity on the server now needs to be accounted for.
6465

6566
The following example disables hybrid buffer pool for a specific database.
6667

docs/linux/sql-server-linux-configure-pmem.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Configure persistent memory (PMEM) for SQL Server on Linux
2+
title: Configure persistent memory (PMEM)
33
description: This article provides a walk-through for configuring PMEM on Linux.
44
ms.custom: seo-lt-2019
55
author: briancarrig
@@ -10,7 +10,7 @@ ms.prod: sql
1010
ms.technology: linux
1111
monikerRange: ">= sql-server-linux-ver15 || >= sql-server-ver15 || = sqlallproducts-allversions"
1212
---
13-
# How to configure persistent memory (PMEM) for SQL Server on Linux
13+
# Configure persistent memory (PMEM) for SQL Server on Linux
1414

1515
[!INCLUDE[appliesto-ss-xxxx-xxxx-xxx-md-linuxonly](../includes/appliesto-ss-xxxx-xxxx-xxx-md-linuxonly.md)]
1616

@@ -80,7 +80,7 @@ This article describes how to configure the persistent memory (PMEM) for [!INCLU
8080

8181
Once the device has been configured with `ndctl`, created, and mounted, you can place database files in it or create a new database.
8282

83-
PMEM devices are O_DIRECT (direct I/O) safe, you can consider enabling trace flag 3979 to disable the forced flush mechanism. For more information see [FUA support](https://support.microsoft.com/help/4131496/enable-forced-flush-mechanism-in-sql-server-2017-on-linux). Forced unit access internals are covered here [FUA internals](https://blogs.msdn.microsoft.com/bobsql/2018/12/18/sql-server-on-linux-forced-unit-access-fua-internals/).
83+
Because PMEM devices are O_DIRECT (direct I/O) safe, consider enabling trace flag 3979 to disable the forced flush mechanism. For more information see [FUA support](https://support.microsoft.com/help/4131496/enable-forced-flush-mechanism-in-sql-server-2017-on-linux). Forced unit access internals are covered here [FUA internals](https://blogs.msdn.microsoft.com/bobsql/2018/12/18/sql-server-on-linux-forced-unit-access-fua-internals/).
8484

8585
## Next steps
8686

docs/relational-databases/databases/add-persisted-log-buffer-to-a-database.md renamed to docs/relational-databases/databases/add-persisted-log-buffer.md

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Add Persisted Log Buffer to a Database | Microsoft Docs"
2+
title: "Add persisted log buffer to a database"
33
ms.custom: ""
44
ms.date: "10/30/2019"
55
ms.prod: sql
@@ -19,35 +19,51 @@ author: "briancarrig"
1919
ms.author: "brcarrig"
2020
manager: amitban
2121
---
22-
# Add Persisted Log Buffer to a Database
22+
23+
# Add persisted log buffer to a database
2324
[!INCLUDE[appliesto-ss-xxxx-xxxx-xxx-md](../../includes/appliesto-ss-xxxx-xxxx-xxx-md.md)]
24-
This topic describes how to add a Persisted Log Buffer to a database in [!INCLUDE[sqlv15](../../includes/sssqlv15-md.md)] using [!INCLUDE[tsql](../../includes/tsql-md.md)].
25+
26+
This topic describes how to add a persisted log buffer to a database in [!INCLUDE[sqlv15](../../includes/sssqlv15-md.md)] using [!INCLUDE[tsql](../../includes/tsql-md.md)].
2527

2628
## Permissions
2729

2830
Requires ALTER permission on the database.
2931

3032
## Configure persistent memory device (Linux)
3133

32-
To configure a persistent memory device in [Linux](../../linux/sql-server-linux-configure-pmem.md)).
34+
To configure a persistent memory device in [Linux](../../linux/sql-server-linux-configure-pmem.md).
3335

3436
## Configure persistent memory device (Windows)
3537

3638
To configure a persistent memory device in [Windows](/windows-server/storage/storage-spaces/deploy-pmem/).
3739

3840
## Add a persisted log buffer to a database
39-
40-
```ALTER DATABASE <MyDB> ADD LOG FILE (NAME = <DAXlog>, FILENAME = '<Filepath to DAX Log File>', SIZE = 20MB);```
41+
42+
The following examples adds a persisted log buffer.
43+
44+
```sql
45+
ALTER DATABASE <MyDB>
46+
ADD LOG FILE
47+
(
48+
NAME = <DAXlog>,
49+
FILENAME = '<Filepath to DAX Log File>',
50+
SIZE = 20MB
51+
);
52+
```
4153

4254
The volume or mount the new log file is placed must be formatted with DAX (NTFS) or mounted with the DAX option (XFS/EXT4).
4355

4456
## Remove a persisted log buffer
4557

46-
`ALTER DATABASE <MyDB> SET SINGLE_USER;`
47-
`ALTER DATABASE <MyDB> REMOVE FILE <DAXlog>;`
48-
`ALTER DATABASE <MyDB> SET MULTI_USER;`
58+
To safely remove a persisted log buffer, the database must be placed in single user mode in order to drain the persisted log buffer.
59+
60+
The following example places removes a persisted log buffer.
4961

50-
Database must be placed in single user mode in order to drain the persisted log buffer and be able to remove it safely.
62+
```sql
63+
ALTER DATABASE <MyDB> SET SINGLE_USER;
64+
ALTER DATABASE <MyDB> REMOVE FILE <DAXlog>;
65+
ALTER DATABASE <MyDB> SET MULTI_USER;
66+
```
5167

5268
## Limitations
5369

@@ -59,7 +75,7 @@ Database must be placed in single user mode in order to drain the persisted log
5975

6076
Normal restore conditions apply. If persisted log buffer is restored to a DAX volume or mount, it will continue to function, otherwise it can be safely removed.
6177

62-
## See Also
78+
## Next steps
6379

6480
- [How It Works (It Just Runs Faster): Non-Volatile Memory SQL Server Tail Of Log Caching on NVDIMM](https://blogs.msdn.microsoft.com/bobsql/2016/11/08/how-it-works-it-just-runs-faster-non-volatile-memory-sql-server-tail-of-log-caching-on-nvdimm/)
6581
- [Data exposed: Latency and Durability with SQL Server 2016](https://channel9.msdn.com/Shows/Data-Exposed/Latency-and-Durability-with-SQL-Server-2016)

docs/relational-databases/in-memory-database.md

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "In-Memory Database Systems Features and Technologies | Microsoft Docs"
2+
title: "In-memory database systems features and technologies"
33
ms.date: 10/30/2019
44
ms.prod: sql
55
ms.prod_service: "database-engine"
@@ -20,7 +20,7 @@ ms.author: "brcarrig"
2020
manager: "amitban"
2121
---
2222

23-
# In-Memory Database Systems and Technologies
23+
# In-memory database systems and technologies
2424

2525
[!INCLUDE[appliesto-ss-xxxx-xxxx-xxx-md](../includes/appliesto-ss-xxxx-xxxx-xxx-md.md)]
2626

@@ -30,36 +30,32 @@ It is assumed often, that the performance advantages of an in-memory database sy
3030

3131
The fast volatile cache that fronts a considerably slower but durable media - this dynamic has been predominant for relational database workloads for decades and necessitates particular approaches to workload management. The opportunities presented by faster memory transfer rates, greater capacity, or even persistent memory will facilitate the development of new features and technologies that can spur new approaches to relational database workload management. As we develop new in-memory based approaches, we will list the technologies or features underpinning them here on this reference page.
3232

33-
## Hybrid Buffer Pool
33+
## Hybrid buffer pool
3434

3535
[!INCLUDE[appliesto-ss-xxxx-xxxx-xxx-md](../includes/appliesto-ss-xxxx-xxxx-xxx-md.md)]
3636

37-
[Hybrid Buffer Pool](../database-engine/configure-windows/hybrid-buffer-pool.md) expands the buffer pool for database files residing on byte-addressable persistent memory storage devices for both Windows and Linux platforms with [!INCLUDE[sql-server-2019](../includes/sssqlv15-md.md)].
37+
[Hybrid buffer pool](../database-engine/configure-windows/hybrid-buffer-pool.md) expands the buffer pool for database files residing on byte-addressable persistent memory storage devices for both Windows and Linux platforms with [!INCLUDE[sql-server-2019](../includes/sssqlv15-md.md)].
3838

39-
## Memory-Optimized TempDB Metadata
39+
## Memory-optimized `tempdb` metadata
4040

4141
[!INCLUDE[appliesto-ss-xxxx-xxxx-xxx-md](../includes/appliesto-ss-xxxx-xxxx-xxx-md.md)]
4242

4343
[!INCLUDE[sql-server-2019](../includes/sssqlv15-md.md)] introduces a new feature that is [memory-optimized tempdb metadata](./databases/tempdb-database.md#memory-optimized-tempdb-metadata), which effectively removes some contention bottlenecks and unlocks a new level of scalability for tempdb-heavy workloads.
4444

45-
## In-Memory OLTP
45+
## In-memory OLTP
4646

4747
[!INCLUDE[appliesto-ss-xxxx-xxxx-xxx-md](../includes/appliesto-ss-xxxx-xxxx-xxx-md.md)]
4848

49-
[In-Memory OLTP](./in-memory-oltp/in-memory-oltp-in-memory-optimization.md) is a database technology available in [!INCLUDE[ssNoVersion](../includes/ssnoversion-md.md)] and [!INCLUDE[ssSDS](../includes/sssds-md.md)] for optimizing performance of transaction processing, data ingestion, data load, and transient data scenarios.
50-
51-
**Applies to:** [!INCLUDE[ssSQL14](../includes/sssql14-md.md)] to [!INCLUDE[ssNoVersion](../includes/ssnoversion-md.md)].
49+
[In-memory OLTP](./in-memory-oltp/in-memory-oltp-in-memory-optimization.md) is a database technology available in [!INCLUDE[ssNoVersion](../includes/ssnoversion-md.md)] and [!INCLUDE[ssSDS](../includes/sssds-md.md)] for optimizing performance of transaction processing, data ingestion, data load, and transient data scenarios.
5250

5351
## Configuring persistent memory support for Linux
5452

5553
[!INCLUDE[appliesto-ss-xxxx-xxxx-xxx-md-linuxonly](../includes/appliesto-ss-xxxx-xxxx-xxx-md-linuxonly.md)]
5654

5755
[!INCLUDE[sqlv15](../includes/sssqlv15-md.md)] describes how to configure persistent memory (PMEM) using the `ndctl` utility [persistent memory](../linux/sql-server-linux-configure-pmem.md).
5856

59-
## Persisted Log Buffer
57+
## Persisted log Buffer
6058

6159
Service Pack 1 of [!INCLUDE[ssSQL16](../includes/sssql16-md.md)] introduced a performance optimization for write intensive workloads that were bound by WRITELOG waits. Persistent memory is used to store the log buffer. This buffer, which is small (20 MB per user database), has to be flushed to disk in order for the transactions written to the transaction log to be hardened. For write intensive OLTP workloads, this flushing mechanism can become a bottleneck. With the log buffer on persistent memory, the number of operations required to harden the log is reduced, improving overall transaction times and increasing workload performance. This process was introduced as [Tail of Log Caching]( https://blogs.msdn.microsoft.com/bobsql/2016/11/08/how-it-works-it-just-runs-faster-non-volatile-memory-sql-server-tail-of-log-caching-on-nvdimm/). However, there was a perceived conflict with [Tail Log Backups](./backup-restore/tail-log-backups-sql-server.md) and the traditional understanding that the tail of the log was the portion of the transaction log hardened but not yet backed up. Since the official feature name is Persisted Log Buffer, this is the name used here.
6260

63-
For steps to create a Persisted Log Buffer, see [here](./databases/add-persisted-log-buffer-to-a-database.md).
64-
65-
**Applies to:** [!INCLUDE[sqlv15](../includes/sssqlv15-md.md)] to [!INCLUDE[ssNoVersion](../includes/ssnoversion-md.md)].
61+
See [Add persisted log buffer to a database](./databases/add-persisted-log-buffer.md).

docs/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4343,6 +4343,8 @@
43434343
href: relational-databases/in-memory-database.md
43444344
- name: Hybrid Buffer Pool
43454345
href: database-engine/configure-windows/hybrid-buffer-pool.md
4346+
- name: Add persisted log buffer
4347+
href: relational-databases/databases/add-persisted-log-buffer.md
43464348
- name: Change Server Authentication Mode
43474349
href: database-engine/configure-windows/change-server-authentication-mode.md
43484350
- name: SQL Writer Service

0 commit comments

Comments
 (0)