An-HyoJun / mysql-plnvm

Partitioned Logging in NVM implementation in InnoDB/MySQL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mysql-plnvm

Partitioned Logging in NVM implementation in InnoDB/MySQL 5.7

Author: Trong-Dat Nguyen @ VLDB Lab, Sungkyunkwan University, Korea

Building from the source code

Step 1: Checking PMEM libraries required by PMDK. Ensure below libraries existed in your /usr/local/lib/ or /usr/lib/:

  • libpmem.a libpmemblk.a libpmemlog.a libpmemobj.a libpmempool.a

Step 2: Change the BUILD_NAME variable in the build_mysql.sh file to build your desired approach:

  • Original InnoDB: BUILD_NAME="-DUNIV_TRACE_FLUSH_TIME"

  • PB-NVM BUILD_NAME="-DUNIV_OPENMP -DUNIV_PMEMOBJ_BLOOM -DUNIV_PMEMOBJ_BUF -DUNIV_PMEMOBJ_BUF_PARTITION -DUNIV_PMEMOBJ_BUF_FLUSHER -DUNIV_PMEMOBJ_BUF_RECOVERY"

  • PL-NVM: TBD

Step 3: Build the source code

# ./build_mysql.sh

Addtional config variables:

  • For all NVM-based methods:
innodb_pmem_home_dir=<your_mount_pmem>
innodb_pmem_pool_size=<val> # in MB
  • For PB-NVM
innodb_pmem_buf_size=<val> # in MB
innodb_pmem_buf_n_buckets=<int>
innodb_pmem_buf_bucket_size=<int> # in pages
innodb_pmem_buf_flush_pct=<val> #threshold 0 - 1
innodb_pmem_n_flush_threads=<int> #must smaller than your max # of CPUs
innodb_pmem_flush_threshold=<int> #1 - innodb_pmem_n_flush_threads
innodb_pmem_bloom_n_elements=<val>
innodb_pmem_bloom_fpr=<val>
innodb_pmem_n_space_bits=<int>
innodb_pmem_page_per_bucket_bits=<int>
innodb_aio_n_slots_per_seg
  • For PL-NVM: TBD

About

Partitioned Logging in NVM implementation in InnoDB/MySQL

License:GNU General Public License v2.0


Languages

Language:C++ 53.4%Language:C 21.0%Language:JavaScript 14.5%Language:Java 3.0%Language:CSS 2.0%Language:Perl 1.0%Language:PHP 0.8%Language:Objective-C 0.8%Language:CMake 0.7%Language:HTML 0.6%Language:Assembly 0.6%Language:Yacc 0.4%Language:Shell 0.3%Language:PLpgSQL 0.2%Language:Python 0.2%Language:Pascal 0.1%Language:Roff 0.1%Language:TSQL 0.1%Language:GAP 0.1%Language:SQLPL 0.0%Language:Makefile 0.0%Language:XSLT 0.0%Language:DTrace 0.0%Language:Pawn 0.0%Language:ActionScript 0.0%Language:Lex 0.0%Language:PLSQL 0.0%Language:RPC 0.0%Language:M4 0.0%Language:Emacs Lisp 0.0%Language:Awk 0.0%Language:Batchfile 0.0%Language:Vim Script 0.0%Language:POV-Ray SDL 0.0%Language:AngelScript 0.0%Language:Visual Basic 0.0%Language:SourcePawn 0.0%