Skip to content

v19.01

Latest
Compare
Choose a tag to compare
@KyungsanKim KyungsanKim released this 09 Jan 09:00
· 6 commits to master since this release

uNVMe-Blobfs
: SPDK Blob filesystem Improvement on LBA SSD

  1. Support Multiqueue
    - spdk_file_read() API now supports multiple io channels, in turn, nvme queues.
    - will further apply Multiqueue on write path later on

  2. Cache / Prefetch Policy
    - Introduce 8 new APIs to leverage SPDK Blobfs cache and readahead

    // set/get retain read cache flag (default = false)
    void spdk_file_set_retain_cache(struct spdk_file *file, bool retain);
    bool spdk_file_get_retain_cache(struct spdk_file *file);
    
    // set/get readahead size (default = 256*2 KB)
    void spdk_file_set_prefetch_size(struct spdk_file *file, int size);
    int spdk_file_get_prefetch_size(struct spdk_file* file);
    
    // set/get readahead threshold (default = 128 KB)
    void spdk_file_set_prefetch_threshold(struct spdk_file *file, int size);
    int spdk_file_get_prefetch_threshold(struct spdk_file *file);
    
    //  set/get direct_io (default = buffered IO)
    void spdk_file_set_direct_io(struct spdk_file *file, uint32_t direct_io);
    uint32_t spdk_file_get_direct_io(struct spdk_file *file);
    
  3. BM tools on uNVMe-blobfs
    - app/Blobfs_perf : a novel BM tool working on blobfs layer
    - app/uNVMe_rocksdb : apply changes to reflect uNVMe-blobfs
    - further includes vanilla rocksdb / spdk /dpdk for comparison with uNVMe-Blobfs (will be removed on public release)

  4. Documents

  1. Bug Fix for KV SSD

    • kv_itearte_open() was not return the error code(KV_ERR_ITERATE_NO_AVAILABLE_HANDLE = 0x91) and (KV_ERR_ITERATE_HANDLE_ALREADY_OPENED = 0x92). Now it is fixed to properly return the error codes.
  2. Refactorings

Notes: The uNVMe-blobfs changes only apply on LBA SSD, not influences on KV SSD.