|
1 | 1 | # mysql-plnvm
|
2 |
| -Partitioned Logging in NVM implementation in InnoDB/MySQL |
| 2 | +Partitioned Logging in NVM implementation in InnoDB/MySQL 5.7 |
| 3 | + |
3 | 4 | Author: Trong-Dat Nguyen @ VLDB Lab, Sungkyunkwan University, Korea
|
4 | 5 |
|
5 |
| -./build_mysql.sh: automatically build the source code |
6 |
| -./recreate_cscope.sh: collect metadata for cscope and ctags |
7 | 6 |
|
| 7 | +## Building from the source code |
| 8 | +Step 1: Checking PMEM libraries required by PMDK. Ensure below libraries existed in your `/usr/local/lib/` or `/usr/lib/`: |
| 9 | +* `libpmem.a libpmemblk.a libpmemlog.a libpmemobj.a libpmempool.a` |
| 10 | + |
| 11 | +Step 2: Change the `BUILD_NAME` variable in the `build_mysql.sh` file to build your desired approach: |
| 12 | +* Original InnoDB: |
| 13 | +`BUILD_NAME="-DUNIV_TRACE_FLUSH_TIME"` |
| 14 | +* PB-NVM |
| 15 | +`BUILD_NAME="-DUNIV_OPENMP -DUNIV_PMEMOBJ_BLOOM -DUNIV_PMEMOBJ_BUF -DUNIV_PMEMOBJ_BUF_PARTITION -DUNIV_PMEMOBJ_BUF_FLUSHER -DUNIV_PMEMOBJ_BUF_RECOVERY"` |
| 16 | + |
| 17 | +* PL-NVM: TBD |
| 18 | + |
| 19 | +Step 3: Build the source code |
| 20 | + |
| 21 | +`# ./build_mysql.sh` |
| 22 | + |
| 23 | +## Addtional config variables: |
| 24 | +* For all NVM-based methods: |
| 25 | +``` |
| 26 | +innodb_pmem_home_dir=<your_mount_pmem> |
| 27 | +innodb_pmem_pool_size=<val> # in MB |
| 28 | +``` |
| 29 | +* For PB-NVM |
| 30 | +``` |
| 31 | +innodb_pmem_buf_size=<val> # in MB |
| 32 | +innodb_pmem_buf_n_buckets=<int> |
| 33 | +innodb_pmem_buf_bucket_size=<int> # in pages |
| 34 | +innodb_pmem_buf_flush_pct=<val> #threshold 0 - 1 |
| 35 | +innodb_pmem_n_flush_threads=<int> #must smaller than your max # of CPUs |
| 36 | +innodb_pmem_flush_threshold=<int> #1 - innodb_pmem_n_flush_threads |
| 37 | +innodb_pmem_bloom_n_elements=<val> |
| 38 | +innodb_pmem_bloom_fpr=<val> |
| 39 | +innodb_pmem_n_space_bits=<int> |
| 40 | +innodb_pmem_page_per_bucket_bits=<int> |
| 41 | +innodb_aio_n_slots_per_seg |
| 42 | +``` |
| 43 | +* For PL-NVM: TBD |
0 commit comments