Deduplication functionality is provided for a key-value solid-state drive (KVSSD) that includes a storage space and a controller. The storage space contains first and second containers. The first container includes a first virtual space and stores a key value and at least one dedup key value associated with the key value. Each dedup key value corresponds to user data blocks and each block has a predetermined size. The second container includes a second virtual space and stores each dedup key value, a block of user data associated with the dedup key value and metadata associated with the block of user data. The controller determines whether a received block of user data is a duplicate block of data stored in the second container by determining whether a dedup key value for the block of user data received by KVSSD matches a dedup key value stored in the first container.
展开▼