forked frommeeeejin/mysql-57-nvdimm-caching
- Notifications
You must be signed in to change notification settings - Fork0
NVDIMM Caching for MySQL 5.7
License
NotificationsYou must be signed in to change notification settings
FlashSQL/mysql-nvdimm-caching
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Optimize MySQL/InnoDB using NVDIMM
- Mijin An, Jonghyeok Park, Tianzheng Wang, Beomseok Nam, and Sang-Won Lee, "NV-SQL: Boosting OLTP Performance with Non-Volatile DIMMs", VLDB'23
- Publication Link
- Clone the source code:
$ git clone https://github.com/meeeejin/mysql-57-nvdimm-caching.git
- Modify the
PASSWDvalue in the build script:
$ vi build.sh#!/bin/bashBASE_DIR=`pwd -P`BUILD_DIR=$BASE_DIR/bldPASSWD="sudo-passwd"...
- Run the script file:
$ ./build.sh
The above command will compile and build the source code with the default option (i.e., caching new-orders and order-line pages). The available options are:
| Option | Description |
|---|---|
| --origin | No caching (Vanilla version) |
| --origin-monitor | No caching but monitoring the flush status |
| --nc | Caching New-Orders and Order-Line pages (default) |
| --nc-st | Caching New-Orders, Order-Line and Stock pages |
| --nc-st-od | Caching New-Orders, Order-Line, Stock and Orders pages |
| --mtr | Caching New-Orders, Order-Line, Stock and Orders pages with mtr logging enabled |
If you want the vanilla version, you can run the script as follows:
$ ./build.sh --origin
- Add the following three server variables to the
my.cnffile:
| System Variable | Description |
|---|---|
| innodb_use_nvdimm_buffer | Specifies whether to use NVDIMM cache.true orfalse. |
| innodb_nvdimm_buffer_pool_size | The size in bytes of the NVDIMM cache. The default value is 2GB. |
| innodb_nvdimm_buffer_pool_instances | The number of regions that the NVDIMM cache is divided into. The default value is 1. |
| innodb_nvdimm_pc_threshold_pct | Wakeup the NVDIMM page cleaner when this % of free pages remaining. The default value is 5. |
| innodb_nvdimm_home_dir | NVDIMM-aware files resident directory |
For example:
$ vi my.cnf...innodb_use_nvdimm_buffer=trueinnodb_nvdimm_buffer_pool_size=2Ginnodb_nvdimm_buffer_pool_instances=1innodb_nvdimm_pc_threshold_pct=5innodb_nvdimm_home_dir=/mnt/pmem...
- Run the MySQL server:
$ ./bld/bin/mysqld --defaults-file=my.cnf
About
NVDIMM Caching for MySQL 5.7
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Languages
- C++53.6%
- C21.8%
- JavaScript14.5%
- Java3.0%
- CSS1.8%
- Perl1.0%
- Other4.3%