Skip to content

DKU-StarLab/ZenFS_Plus

ZenFS+

ZenFS+: Nurturing Performance and Isolation to ZenFS

ZenFS+ is an expansion based on ZenFS.
ZenFS+ has IZ identification for identifying independently operable zones groups or Independent Zone Group (IZGs). Zones contained in an IZG are not interfered by zones in other IZGs. Based on the IZG information, ZenFS+ isolates the performance of flush/compaction operations and improves the performance by sstable striping.
ZenFS+ proactively triggers zone GC every 10 seconds. we search zones in L0 first and then find a zone that has all invalid data. Then, we just send the zone_reset command without copying. This is called as the minor GC. For the Major GC, ZenFS+ scans all zones ranging from L0 to Lmax and selects candidate zones using the greedy policy selecting lower zones first. Major GC activates once a certain SSD capacity is utilized.

We implemented ZenFS+ in a 2TB ZNS SSD environment with 29,172 Zones, each having a Zone size of 72MB.
ZenFS+ functions in a Small-zone ZNS SSD setting, where each Zone is directly mapped to a internal parallel unit within the SSD.

How to build

you can build it using make -j2 db_bench

git clone https://github.com/DKU-StarLab/ZenFS-.git
cd ZenFS-
make -j2 db_bench

Performance measurement

The default path for the ZNS SSD is set to /dev/nvme0n1, and the default environment for RocksDB is configured as ZenFS+.

./db_bench --benchmarks=fillrandom --use_direct_io_for_flush_and_compaction=1 --num=1000 --key_size=20 --value_size=800

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages