Summary of changes:
- In this release, we have made several significant updates to improve write performance and user experience.
- We have revised our implementation of key-value store that translates key-value pairs in the request to block layer data written to device.
- Specifically, we have replaced RocksDB with an internal implementation of a hash-based key-value translator and a hint-based logical block manager sensitive to optimal NVMe drive IO boundary to improve write performance.
- For impacted users, these updates should provide a smoother, more intuitive experience with a noticeable improvement to write operation.
- We have deprecated compaction and the requirement for written data to be compacted before reading to achieve maximum read performance is no longer needed.
- We have introduced a new format tool called
dss-formatter
to format devices; similar to existingmkfs-blobfs
tool which has now been deprecated.
Limitations
- Persistent key listing is not yet implemented. This will result in MinIO failing to return object listing after a reboot.
- Target startup time is presently longer than expected - and will be addressed in a future release.
What's Changed
- Adding Pytest framework and unit tests to dss-sdk. Converted dss_target.py to be python3 compatible by @nsarras in #45
- Enabling nkv_need_path_stat var by default by @nsarras in #46
- Add unit tests to gitlab ci by @velomatt in #47
- Add gitlab-ci enhancements by @velomatt in #48
- Add unit tests and refactor stages by @velomatt in #50
- Modifying logic for mountpoints to be mapped to both nqn and ip, correcting nkv config generation by @nsarras in #52
- Download latest sonar-scanner and build-wrapper by @velomatt in #53
- Add systemtests for host and target scripts by @Chenliang-Eric-Li in #54
- Add unittests for dss_host.py and dss_target.py by @Chenliang-Eric-Li in #55
- Write optimization by @velomatt in #56
New Contributors
- @Chenliang-Eric-Li made their first contribution in #54
Full Changelog: v2.0.0...v3.0.0