You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/database-engine/configure-windows/hybrid-buffer-pool.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,9 +27,10 @@ Only clean data pages are cached on the device for the Hybrid Buffer Pool. When
27
27
28
28
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.
29
29
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:
31
31
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)
33
34
34
35
35
36
## Enable hybrid buffer pool
@@ -60,7 +61,7 @@ The following example disables hybrid buffer pool at the instance level:
60
61
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED HYBRID_BUFFER_POOL = OFF;
61
62
```
62
63
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.
64
65
65
66
The following example disables hybrid buffer pool for a specific database.
@@ -80,7 +80,7 @@ This article describes how to configure the persistent memory (PMEM) for [!INCLU
80
80
81
81
Once the device has been configured with `ndctl`, created, and mounted, you can place database files in it or create a new database.
82
82
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/).
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)].
25
27
26
28
## Permissions
27
29
28
30
Requires ALTER permission on the database.
29
31
30
32
## Configure persistent memory device (Linux)
31
33
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).
33
35
34
36
## Configure persistent memory device (Windows)
35
37
36
38
To configure a persistent memory device in [Windows](/windows-server/storage/storage-spaces/deploy-pmem/).
The following examples adds a persisted log buffer.
43
+
44
+
```sql
45
+
ALTERDATABASE<MyDB>
46
+
ADD LOG FILE
47
+
(
48
+
NAME =<DAXlog>,
49
+
FILENAME ='<Filepath to DAX Log File>',
50
+
SIZE = 20MB
51
+
);
52
+
```
41
53
42
54
The volume or mount the new log file is placed must be formatted with DAX (NTFS) or mounted with the DAX option (XFS/EXT4).
43
55
44
56
## Remove a persisted log buffer
45
57
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.
49
61
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
+
ALTERDATABASE<MyDB>SET SINGLE_USER;
64
+
ALTERDATABASE<MyDB> REMOVE FILE <DAXlog>;
65
+
ALTERDATABASE<MyDB>SET MULTI_USER;
66
+
```
51
67
52
68
## Limitations
53
69
@@ -59,7 +75,7 @@ Database must be placed in single user mode in order to drain the persisted log
59
75
60
76
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.
61
77
62
-
## See Also
78
+
## Next steps
63
79
64
80
-[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/)
65
81
-[Data exposed: Latency and Durability with SQL Server 2016](https://channel9.msdn.com/Shows/Data-Exposed/Latency-and-Durability-with-SQL-Server-2016)
@@ -30,36 +30,32 @@ It is assumed often, that the performance advantages of an in-memory database sy
30
30
31
31
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.
[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)].
[!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.
[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.
52
50
53
51
## Configuring persistent memory support for Linux
[!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).
58
56
59
-
## Persisted Log Buffer
57
+
## Persisted log Buffer
60
58
61
59
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.
62
60
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).
0 commit comments