TorFS is a plugin that enables RocksDB to access Flexible Data Placement (FDP) SSDs
Download RocksDB and TorFS:
git clone git@github.com:facebook/rocksdb.git
cd rocksdb
git clone git@github.com:SamsungDS/TorFS.git plugin/torfsInstall and enable TorFS in micro-bench tool of RocksDB
DEBUG_LEVEL=0 ROCKSDB_PLUGINS=torfs make -j8 db_benchTorFS supports xNVMe back-end that provides unified interfaces for multiple IO paths.
| io_uring_cmd (character device) | io_uring (block device) | libaio (block device) | SPDK | |
|---|---|---|---|---|
| xNVMe | √ | O | O | √ |
| raw | X | X | X | X |
- √: Support IO path and data directive
- O: Support IO path only, not data directive
- X: Not support IO path and data directive
./db_bench --benchmarks=<IO pattern> --fs_uri=torfs:<backend>:<dev>?be=<IO path>
e.g.
./db_bench --benchmarks=fillseq --fs_uri=torfs:xnvme:/dev/ng0n1?be=io_uring_cmdBefore version 9.3.1, casting enum WriteLifeTimeHint to uint64 is required to match the parameter type of fcntl()