Skip to content

KVSSD FAQ

Changho Choi edited this page Nov 2, 2018 · 1 revision

OPERATING SYSTEM & FIRMWARE

  • What Linux OS and kernel version is supported?

    • CentOS 7.2 Kernel v 3.10
    • Ubuntu 16.04 Kernel v4.4.0 (distribution code only not Vanilla version) v4.9.5, v4.13, v4.15
  • What is the supported firmware version on the KV SSD?

    All publicly released KV SSD firmware

  • What is the supported uDD version?

    TBD

KEY VALUE DEVICE (KV DEVICE)

  • Is multiple Key Space supported?

    Yes, device supports up to two Key Spaces. The current API support only one Key Space (keyspace id = 0). The multiple Key Space will be supported in the future release version.

  • Does KV device also support block command?

    No, except for secure erase and smart log (KV SSD supports only KV interface)

  • Is there dual port support?

    No

  • Is there device level compression or encryption?

    No

  • Does KV device have SMART log support?

    Yes

  • How to get total capacity of a KV device?

    nvme-cli tool or kvs_get_device_capacity() API

  • How to get usage % of a KV device?

    nvme-cli tool or kvs_get_device_utilization() API.

  • How to get the total number of Keys stored on a KV device?

    This feature is currently not available.

  • Does KV device support Hot Swap?

    Yes (please refer to Samsung PM983 SSD device spec)

  • Is there a filesystem that supports KV devices?

    No

  • How does KV commands work with kernel driver?

    IOCTL

  • What is your current QoS support?

    Retrieve has a higher priority than store and iterator command inside device. No priority scheme is supported among submission queues (e.g. weighted round robin).

KEY VALUE OPERATION

  • users must run all programs and API library with root privileges meaning that users must run programs as root or use sudo.

  • What are steps to use APIs?

    Refer to API readme file

    1. install kernel driver or build user driver
    2. build KV API library
    3. set up library path correctly
    4. build & run application
  • What is supported range of key size supported?

    4 to 255 Byte

  • What is the supported range of value size supported?

    0 to 2 MB

  • Is offset Write supported?

    No

  • Is offset read supported?

    No

  • Is Range Query supported?

    No

  • What is the optimal Key size?

    16 Byte

  • What is the optimal Value size?

    4 KB (4096 Byte) for OPS and 24KB for bandwidth

  • Can I get more usage info on Iterator?

    Iterator usage: 1) open_iterator(), 2) iterator_next(), 3) close_iterator()

    • Unordered iterator: no key ordering
    • Prefix size (up to first 4B) & setting (refer to API spec)
    • IO during iterator: undecided when Store or delete happens during iterator
    • Iterator buffer size must be 32KB
    • Key only iterator: no key and value iterator is supported

    Iterator handle information is not preserved when power off occurs.

  • What is the maximum number of Iterators supported?

    16

  • Is Batch operation supported?

    No

  • Is FUSE command supported?

    No

  • Does the API support Sync and Async?

    Yes

Clone this wiki locally