๋ณธ ํ๋ก์ ํธ๋ ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์์์์ ํ์ผ ์์คํ ์ ๋ฐ๋ฅธ DBMS ์ฑ๋ฅ์ ์คํํ๋ค. ๋ํ, discard ๋ช ๋ น์ด ํ์ผ ์์คํ ์ ์ฑ๋ฅ์ ๋ผ์น๋ ์ํฅ์ ์ฐ๊ตฌํ๋ค.
ํ๋์ ๋ฉ๋ชจ๋ฆฌ์์ FFS(Ext4, XFS)์ LFS(F2FS)์ ์ฌ์ฉ์ ๋ฐ๋ฅธ DBMS(MySQL/RocksDB) OLTP(๋ฒค์น๋งํฌ ํด: TPC-C, YCSB) ์ฑ๋ฅ์ ๋น๊ตํ๋ค.
ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ Block๋ค๋ก ๊ตฌ์ฑ๋๋ฉฐ, Block์ ๋ค์ Page๋ค๋ก ๊ตฌ์ฑ๋๋ค. ํ๋์ ๋ฉ๋ชจ๋ฆฌ์์์ ์ฝ๊ธฐ(Read)์ ์ฐ๊ธฐ(Write)๋ Page ๋จ์๋ก ์คํ๋๋ค. ๋ํ, ํ๋์ ๋ฉ๋ชจ๋ฆฌ์ Page๋ ๋ฎ์ด์ฐ๊ธฐ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ํ๋ฒ 'stale' ์ํ๊ฐ ๋ Page๋ ๋ฐ๋์ ์ญ์ (Erase)๋ฅผ ๊ฑฐ์ณ 'free' ์ํ๋ก ์ ์ด๋ ํ ๋ค์ ์ฐ๊ธฐ๊ฐ ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฌ๋ ์ญ์ ๋ ๋จ์ผ Page๊ฐ ์๋, Block ๋จ์์ ์ญ์ ๋ง ๊ฐ๋ฅํ๋ค. ์ญ์ ๋ช ๋ น์ SSD๊ฐ 'free' ๊ณต๊ฐ์ด ํ์ํ ๋ Garbage-Collection์ ์คํํ ๋ ์ฌ์ฉ๋๋ค.
์ฆ, Page ๋จ์์ ์ฝ๊ธฐ/์ฐ๊ธฐ์ ๋ค๋ฅด๊ฒ Block ๋จ์์ ์ญ์ ๊ฐ ์ผ์ด๋จ์ผ๋ก์จ ์ญ์ ๋์ Block์ ์ ํจํ Page๋ฅผ ๋ค๋ฅธ Block์ผ๋ก ๋ณต์ฌํ ํ์๊ฐ ์๋๋ฐ, ์ด๋ฅผ '์นดํผ๋ฐฑ'(Copy-Back)์ด๋ผ ํ๋ค. ์ด๋ฌํ ์นดํผ๋ฐฑ์ผ๋ก ์ธํด '์ฐ๊ธฐ ์ฆํญ' (Write-Amplification) ํ์์ด ๋ฐ์ํ๋ค. ์ฐ๊ธฐ ์ฆํญ ์ ๋(Write-Amplification Factor, WAF)๋ SSD์ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ผ์น๋ค. ๋ํ SSD๋ FTL(Flash Translation Layer)๋ฅผ ํตํด HDD์ ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
(์ฐธ์กฐ: https://tech.kakao.com/2016/07/15/coding-for-ssd-part-3/)
MySQL์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ์คํ ์์ค RDBMS์ด๋ค. MySQL์๋ฒ๋ ํฌ๊ฒ MySQL ์์ง๊ณผ ์คํ ๋ฆฌ์ง ์์ง์ผ๋ก ๋๋์ด์ง๋๋ฐ, MySQL ์์ง์ SQL ๋ฌธ์ฅ์ ๋ถ์, ์ต์ ํ๋ฑ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ค๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , ์คํ ๋ฆฌ์ง ์์ง์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ฑฐ๋ ์กฐํํ๋ค. MySQL์ ๋ค์ํ ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ๊ทธ ์ค์์ B+ Tree๊ธฐ๋ฐ์ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ด ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ธ๋ค. InnoDB๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ๊ณผ ๋์คํฌ ์์ญ์ผ๋ก ๋๋์ด ์ง๋ค. ์ฌ์ฉ์๊ฐ DB๋ฅผ ๋ณ๊ฒฝํ๋ค๋ฉด in-place-update๋ฐฉ์์ผ๋ก ๋์คํฌ ์์ญ์ ๋ฐ์ดํฐ๊ฐ ์ฐ์ธ๋ค.
Reference: https://jeong-pro.tistory.com/239
TPC๋ Transaction Processing Performance Council ์์ ๋ฐํํ ๋ฒค์น๋งํฌ ๋ชจ๋ธ๋ค์ด๋ค. TCP๋ OLTP ์์คํ ์ ์ฒ๋ฆฌ ์ฑ๋ฅ์ ํ๊ฐํ๋ ๊ธฐ์ค์ด ๋๋ค. ๊ทธ ์ค TPC-C๋ TPC-A ๋ชจ๋ธ์ด๋ TPC-B ๋ชจ๋ธ๋ณด๋ค ๋ณต์กํ ์ ํต์ ์ ์์ฃผยท๋ฐ์ฃผ OLTP ์ฑ๋ฅ ํ๊ฐ๋ฅผ ์ํ ๋ฒค์น๋งํฌ ๋ชจ๋ธ์ด๋ค.
RocksDB๋ SSD์ ์ต์ ํ๋ Key-Value ํํ์ ๋ก๊ทธ ๊ตฌ์กฐ ๋ฐ ์ดํฐ๋ฒ ์ด์ค ์์ง์ด๋ค. RocksDB์ ๋ฐ์ดํฐ ์ ์ฅ ๊ตฌ์กฐ๋ Log-Structured Merge Tree(LSM-tree)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. RocksDB๋ ์ฐ๊ธฐ ์์ฒญ ์ ๋ฉ๋ชจ๋ฆฌ์ Active Memtable์ด๋ ์ด๋ฆ์ ์์ ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค. ํด๋น Memtable์ด ์ผ์ ํฌ๊ธฐ๊ฐ ๋๋ฉด ์ฝ๊ธฐ ์ ์ฉ Memtable์ด ๋๊ณ , ์ผ์ ๊ฐ์ ์ด์์ Memtable์ด ๋ชจ์ด๋ฉด ์ ์ฅ ์ฅ์น์ ๋ด๋ ค๊ฐ(flush) SST ํ์ผ ํํ๋ก ์ ์ฅ๋๋ค. ๋ฐ๋ผ์ RocksDB๋ SST ํ์ผ ๋จ์๋ก(๊ธฐ๋ณธ 64MB) I/O๋ฅผ ์งํํ๊ณ , ๋ฐ์ดํฐ๋ฅผ append-only ๋ก๊ทธ์ ์ ์ฅํจ์ผ๋ก์จ ์์ฐจ ์ฐ๊ธฐ๋ฅผ ๋ณด์ฅํ๋ค.
YCSB(Yahoo! Cloud Serving Benchmark)๋ ํด๋ผ์ฐ๋ ์๋น์ค์ NoSQL์ ์ฑ๋ฅ์ ์ธก์ ํ๊ธฐ์ํ ๋ฒค์น๋งํฌ ํด์ด๋ค. YCSB๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ๋ค๋ฅธ ์๋๋ฐฉ์์ ๊ฐ์ง workload๋ค์ด ์๋ค. ๋ ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ์์ ํ๊ฑฐ๋ ์ง์ ๋ง๋ค์ด ์ฌ์ฉํ ์๋ ์๋ค.
- FFS: Fast File System. ํ๋๋์คํฌ์ ์ค๋ฆฐ๋ ๊ฐ๋ ์ ํ์ฉํ์ฌ ์ค๋ฆฐ๋ ๊ทธ๋ฃน (๋ธ๋ก ๊ทธ๋ฃน)์ผ๋ก ๋๋์ด ํ์ผ์ ์ ์ฅํ๋ค. In-Place update ์ ์ฑ ์ ์ฌ์ฉํ๋ค. ๋ํ์ ์ธ FFS๋ก Ext4์ XFS๊ฐ ์๋ค.
- LFS: Log-Structured File System. In-Place update๊ฐ ์๋, ๋ก๊ทธ ๊ตฌ์กฐ๋ก ํ์ผ์ ์ ์ฅํ๋ค. ๋ฐ๋ผ์ Garbage-Collection์ด ์๊ตฌ๋๋ฉฐ, ์ด๋ก ์ธํด Logical WAF๊ฐ ๋๋ค. ๋ํ์ ์ธ LFS๋ก F2FS๊ฐ ์๋ค.
- Physical WAF: SSD ๊ณ์ธต์์์ ์ฐ๊ธฐ ์ฆํญ ์ ๋. ์คํ ์๊ฐ ์ ์ฒด์ WAF์ธ Cumulative WAF์ ํน์ ์๊ฐ(eg.5๋ถ) ๊ฐ๊ฒฉ์ WAF์ธ Run WAF๊ฐ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก ํด๋น ์์น๊ฐ ๋์์๋ก ์ฑ๋ฅ์ ์ ํ๊ฐ ์ฌํ ๊ฒฝํฅ์ ๋ณด์ธ๋ค. ๊ทธ๋ฌ๋ discard๊ฐ ๋๋ฌด ์์ฃผ ์ผ์ด๋๊ฒ ๋๋ค๋ฉด, WAF๊ฐ ๋ฎ์์ง๋๋ผ๋ ์คํ๋ ค discard์ ์ค๋ฒํค๋๋ก ์ธํด ์ฑ๋ฅ ์ ํ๊ฐ ์ผ์ด๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
- Logical WAF: ํ์ผ ์์คํ ๊ณ์ธต์์์ ์ฐ๊ธฐ ์ฆํญ ์ ๋. ์ผ๋ฐ์ ์ผ๋ก LFS์์ ์ธก์ ํ๋ฉฐ, ํด๋น ์์น๊ฐ ๋์์๋ก ์ฑ๋ฅ์ ์ ํ๊ฐ ์ฌํ ๊ฒฝํฅ์ ๋ณด์ธ๋ค.
- tpmC: TPC-C์์์ ์ฑ๋ฅ ์งํ. ๋ถ๋น ํธ๋์ญ์ ์ฒ๋ฆฌ๋์ ์๋ฏธํ๋ค.
- OPS: YCSB์์์ ์ฑ๋ฅ ์งํ. ์ด๋น operation ์ฒ๋ฆฌ๋์ ์๋ฏธํ๋ค.
- Undiscard: F2FS๊ฐ discard ๋ช ๋ น์ ๋ด๋ ค์ผ ํ์ง๋ง ์์ง ๋ด๋ฆฌ์ง ๋ชปํ ํ์ด์ง ์. ํด๋น ์์น๊ฐ ๋๊ฒ ์ ์ง๋๋ฉด ๋ถํ์ํ ์นดํผ๋ฐฑ์ด ๋ง์ด ๋ฐ์ํด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
Type | Specification |
---|---|
OS | Ubuntu 18.04.6 LTS |
CPU | Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz(total 96 core) |
Memory | 1.56TB |
Kernel | 5.4.0-84-generic |
Data Device | CT250 MX500 SSD |
์คํ ๋ก๊ทธ ๊ธฐ๋ก ๋ฐ ๊ฒฐ๊ณผ ๊ทธ๋ํ ์์ฑ์ ์ํ ์์ ์ฌ์ฉ๋ฒ.
์ ๋ด๋ถ์ TEST_NAME ๋ณ์๋ฅผ ํ์ฌ ์คํ๋ช ์ผ๋ก ๋ฐ๊พผ ํ ์คํํ๋ค. ์คํ(๋ฒค์น๋งํฌ)๋ฅผ ์คํํจ๊ณผ ๋์์ ํด๋น ์๋ ์คํํ๋ค.
./log_write.sh
smartctl ๋ก๊ทธ๋ฅผ ํตํด WAF ๊ณ์ฐ์ ํ๋ค. 247ํ๊ณผ 248ํ, ์ฆ LBA์ PBA ์ถ์ถ์ ํ์ฌ ์ด์ Address์์ ์ฐจ์ด๋ฅผ ๊ณ์ฐํ์ฌ logical, physical ์ฐ๊ธฐ์ ์์ ๊ณ์ฐํ ํ WAF๋ฅผ ๊ณ์ฐํ๋ค.
./waf_cal.sh ์คํ๋ช
_smartctl.log
blktrace์ ์ฝ๊ธฐ/์ฐ๊ธฐ๋ฅผ ๊ทธ๋ํ๋ก ๋ง๋ ๋ค. read/write/read&write ์ด 3๊ฐ์ ๊ทธ๋ํ๊ฐ ์์ฑ๋๋ค.
./trace_plot.sh ~/result/blktrace/์คํ๋ช
.btrace
์คํ ๊ฒฐ๊ณผ๋ค์ ๊ทธ๋ํ๋ก ์์ฑํด์ค๋ค. ํด๋น ์์ ์ฌ์ฉํ๊ธฐ ์ํ ์คํ ๊ฒฐ๊ณผ๋, ์ถ๊ฐ์ ์ธ ์์ ์ด ์๊ตฌ๋ ์ ์๋ค. (awk, grep ๋ฑ์ ์ด์ฉํ ํน์ ์์น ์ถ์ถ ๋ฑ) 3๊ฐ์ ํ์ผ์์คํ (Ext4,XFS,F2FS)๊ณผ ๊ฐ์ด ์ฌ๋ฌ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋์์ ๊ทธ๋ ค ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค.
./graph.sh runwaf(ext4) runwaf(xfs) runwaf(f2fs)
RocksDB - YCSB๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ ํ์ผ์ tee๋ฅผ ํตํด ์ ์ฅํ๋ค. ์ง์ ์คํ์ด ์๋, rocks_idle.sh ๋ด๋ถ์์ ์ฌ์ฉ๋๋ค.
idle time์ ์ฃผ๋ ์คํ์ ์ํด YCSB๋ฅผ ์คํํ๊ณ ์ฃผ๊ธฐ์ ์ผ๋ก SIGSTOP์ ํตํด ์ผ์์ ์ง ํ๋ค. YCSB์ ๋ช๋ถ ์คํ ๋น ๋ช๋ถ์ idle time์ ์ค์ง ์ฝ๋์ ์์ ์ ํตํด ์ค์ ๊ฐ๋ฅํ๋ค.
./rocks_idle.sh
blktrace ๊ฒฐ๊ณผ๋ฌผ์ ํ์ฑ์ ํตํด btrace ํ์ผ์ด ์์ฑ๋๋ค.
RWBS
- R - Read
- W - Write
- S (RS,WS,FWFS,FWS) - ํ์ผ ์์คํ ์์ Synchronous Operation์ ๋ปํจ.
- D - Discard
smartctl์ physical WAF ์ธก์ ์ ์ํด ์ฌ์ฉ๋๋ค. 247ํ๊ณผ 248ํ์ ํตํด WAF ๊ณ์ฐ์ด ์ด๋ฃจ์ด์ง๋ฉฐ, 247์ LBA, 248์ SSD, ์ฆ PBA๋ฅผ ๋ปํ๋ค.
cat /proc/fs/f2fs/sdb1/iostat_info ํตํด ์ถ์ถํ ๋ก๊ทธ.
- fs_data: SSD (block device, block layer)์ ์ ๋ฌํ write bytes
- TOTAL = fs_data + fs_node + fs_meta + fs_gc_data/node + fs_cp_data/node/meta
- Logical(Filesystem) WAF = (fs_data) / TOTAL
cat /sys/kernel/debug/f2fs/status ํตํด ์ถ์ถํ ๋ก๊ทธ. undiscard ์์น๋ฅผ ํ์ธํ ์ ์๋ค.
- Data directory ๋ด์ฉ ์ญ์
rm -rf /path/to/datadir/*
- ๊ธฐ์กด SSD Unmount
sudo umount /dev/[PARTITION]
- SSD Blksidcard
sudo blkdiscard /dev/[DEVICE]
- ํํฐ์ ์์ฑ
sudo fdisk /dev/[DEVICE]
//command: n (new partition), w (write, save)
//Whole SSD in 1 partition
- File system ์์ฑ
//F2FS
sudo mkfs.f2fs /dev/[PARTITION] -f
//Ext4
sudo mkfs.ext4 /dev/[PARTITION] -E discard,lazy_itable_init=0,lazy_journal_init=0 -F
//XFS
sudo mkfs.xfs /dev/[PARTITION] -f
- Data directory์ mount
//F2FS default
sudo mount /dev/[PARTITION] /path/to/datadir
//F2FS lfs mode
sudo mount -o mode=lfs /dev/[PARTITION] /path/to/datadir
///Ext4, XFS
sudo mount -o discard /dev/[PARTITION] /path/to/datadir
- ๊ถํ ์ค์
sudo chown -R USER[:GROUP] /path/to/datadir
sudo chmod -R 777 /path/to/datadir
- F2FS์ ๊ฒฝ์ฐ File System Log๋ฅผ ์ํด ์ถ๊ฐ์ ์ธ ์์ ์ ์ํ ํด์ผ ํจ.
sudo -E bash
echo 1 > /sys/fs/f2fs/[PARTITION]/iostat_enable
exit;
-
Install MySQL 5.7 and TPC-C
Reference the installation guide to install and run TPC-C benchmark on MySQL 5.7 -
my.cnf ์์
#
# The MySQL database server configuration file
#
[client]
user = root
port = 3306
socket = /tmp/mysql.sock
[mysql]
prompt = \u:\d>\_
[mysqld_safe]
socket = /tmp/mysql.sock
[mysqld]
# Basic settings
default-storage-engine = innodb
pid-file = /path/to/datadir/mysql.pid
socket = /tmp/mysql.sock
port = 3306
datadir = /path/to/datadir/
log-error = /path/to/datadir/mysql_error.log
#
# Innodb settings
#
# Page size
innodb_page_size=16KB
# Buffer pool settings
##### Change buffer pool size according to data size(5GB, 10GB, 15GB)
innodb_buffer_pool_size=5G
innodb_buffer_pool_instances=8
# Transaction log settings
innodb_log_file_size=100M
innodb_log_files_in_group=2
innodb_log_buffer_size=32M
# Log group path (iblog0, iblog1)
# If you separate the log device, uncomment and correct the path
#innodb_log_group_home_dir=/path/to/logdir/
# Flush settings (SSD-optimized)
# 0: every 1 seconds, 1: fsync on commits, 2: writes on commits
innodb_flush_log_at_trx_commit=0
innodb_flush_neighbors=0
# innodb_flush_method=O_DIRECT
##### F2FS lfs mode O_DIRECT error
innodb_flush_method=fsync
- ์ฌ์คํ ์ data directory ๋ฐ MySQL ์ด๊ธฐํ
//์๋ฒ ์ข
๋ฃ
./bin/mysqladmin -uroot -p[yourPassword] shutdown
//SSD ์ด๊ธฐํ ๋ฐ File System Mount
...
...
//
./bin/mysqld --initialize --user=mysql --datadir=/path/to/datadir --basedir=/path/to/basedir
./bin/mysqld_safe --skip-grant-tables --datadir=/path/to/datadir
./bin/mysql -uroot
root:(none)> use mysql;
root:mysql> update user set authentication_string=password('yourPassword') where user='root';
root:mysql> flush privileges;
root:mysql> quit;
./bin/mysql -uroot -p[yourPassword]
root:mysql> set password = password('yourPassword');
root:mysql> quit;
./bin/mysqladmin -uroot -pyourPassword shutdown
./bin/mysqld_safe --defaults-file=/path/to/my.cnf
./bin/mysql -u root -p[yourPassword] -e "CREATE DATABASE tpcc;"
./bin/mysql -u root -p[yourPassword] tpcc < /home/vldb/MySQL/tpcc-mysql/create_table.sql
./bin/mysql -u root -p[yourPassword] tpcc < /home/vldb/MySQL/tpcc-mysql/add_fkey_idx.sql
- TPC-C, ๋ก๊ทธ ์ ์์
//๋ค์ด๋ก๋ //๋๊ฐ ์ปค๋งจ๋ ์ค ํ 1
//Warehouse Number: 500, 1000, 1500
./tpcc_load -h 127.0.0.1 -d tpcc -u root -p "yourPassword" -w [Warehouse Number]
./load.sh tpcc [Warehouse Number]
//๋ค์ด๋ก๋ ์๋ฃ ํ // ps -ef | grep tpcc ๋ก ๋ค์ด๋ก๋ ์ข
๋ฃ ์ฌ๋ถ ํ์ธ
./log_write.sh
./tpcc_start -h 127.0.0.1 -S /tmp/mysql.sock -d tpcc -u root -p "yourPassword" -w [Warehouse Number] -c 8 -r 10 -l [Run Time] | tee [Experiment Name].txt
- Install RocksDB
- Upgrade gcc version at least 4.8
- gflags:
sudo apt-get install libgflags-dev
If this doesn't work, here's a nice tutorial: (http://askubuntu.com/questions/312173/installing-gflags-12-04) - snappy:
sudo apt-get install libsnappy-dev
- zlib:
sudo apt-get install zlib1g-dev
- bzip2: `sudo apt-get install libbz2-dev
git clone https://github.com/facebook/rocksdb
cd rocksdb
make
make check
Reference: https://github.com/meeeejin/SWE3033-F2021/blob/main/week-6/README.md
- Install YCSB
- Java:
$ sudo apt-get install openjdk-8-jdk
$ javac -version
javac 1.8.0_292
$ which javac
/usr/bin/javac
$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-openjdk-amd64
$ sudo vi /etc/profile
...
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
$ source /etc/profile
$ echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64
- Maven 3:
$ sudo apt-get install maven
- Clone the YCSB git repository:
$ git clone https://github.com/brianfrankcooper/YCSB
- Compile:
$ cd YCSB
$ mvn -pl site.ycsb:rocksdb-binding -am clean package
Reference: https://github.com/meeeejin/til/blob/master/benchmark/how-to-install-ycsb-for-rocksdb.md
- Workload ์์
# Yahoo! Cloud System Benchmark
# Workload A: Update heavy workload
# Application example: Session store recording recent actions
#
# Read/update ratio: 50/50
# Default data size: 1 KB records (10 fields, 100 bytes each, plus key)
# Request distribution: zipfian
# 1G : 0 6๊ฐ
# 40000000 --> 44GB
# 85000000 --> 93GB
# 125000000 --> 137GB
recordcount=40000000
operationcount=2000000000
workload=site.ycsb.workloads.CoreWorkload
maxexecutiontime=7200
readallfields=true
readproportion=0.5
updateproportion=0.5
scanproportion=0
insertproportion=0
requestdistribution=zipfian
- YCSB ์คํ
//Data Download
./bin/ycsb load rocksdb -s -P workloads/[yourWorkload] -threads 8 -p rocksdb.dir=/path/to/datadir
//๋ค์ด๋ก๋
./log_write.sh
./bin/ycsb run rocksdb -s -P workloads/[yourWorkload] -threads 8 -p rocksdb.dir=/path/to/datadir 2>&1 | tee [Experiment Name].dat
ํ๋ฒ - ์ด๋ฆ - github์ฃผ์ - ์ด๋ฉ์ผ