[MDEV-9905] Options for NVDIMM usage in MariaDB Created: 2016-04-13  Updated: 2023-04-12

Status: Open
Project: MariaDB Server
Component/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Daniel Black Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None

Issue Links:
PartOf
includes MDEV-17084 Optimize append only files for NVDIMM Closed
Relates
relates to MDEV-14425 Change the InnoDB redo log format to ... Closed
relates to MDEV-25090 Install libpmem-dev in the CI environ... Closed

 Description   

Hardware for NVDIMM plans to provide RAM speed access for byte addressable persistent memory. Linux kernel and userspace supporting libraries (http://pmem.io/nvml/) are providing vendor independent interfaces for using the hardware. As far as I can tell these devices are in the multiple GB size and may extend to what is currently disk size.

NVML library is a BSD-3 licensed product containing various useful APIs.

Options for integrating NVDIMM's features into the current MariaDB implementation include:

  1. Use a binary log space (probably the lowest benefit but easy to implement)
  2. Create a new storage engine for NVDIMM (probably most beneficial but hardest to implement)
  3. Innodb: Using NVDIMM as innodb log buffer could eliminate the need for a innodb log file implementation
  4. Innodb: Using buffer pool as NVDIMM (as mechanism to simplify innodb_buffer_pool_dump*/innodb_buffer_pool_restore*)
  5. Innodb: Using tablespaces on NVDIMM (MySQL-5.7 appears to have partition table spaces)
  6. Innodb: Table option that specifies a NVDIMM location as a tablespace
  7. Innodb: partitions can specify NVDIMM tablespace - keep frequent partition only in NVDIMM
  8. MyISAM: sorting MYD and/or MYI files in NVDIMM as per CREATE TABLE options or INDEX options


 Comments   
Comment by Ian Gilfillan [ 2017-12-06 ]

See the recent SQL Server announcement too: https://blogs.technet.microsoft.com/dataplatforminsider/2017/11/29/sql-server-2017-the-worlds-first-enterprise-class-diskless-database/

Comment by Marko Mäkelä [ 2021-03-18 ]

MariaDB Server 10.5 implemented the compile time option WITH_PMEM. If the InnoDB redo log is located on a mount -t dax file system, persistence will be achieved without system calls using the library.

MDEV-25090 in MariaDB Server 10.6 enables WITH_PMEM by default on those platforms that support it.

In MDEV-14425, this may be improved further. We might remove the library dependency, directly mmap() the log_sys.buf and execute an instruction that flushes the caches to the persistent memory.

Generated at Thu Feb 08 07:38:12 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.