# Efficient Key-Value Data Placement for ZNS SSD
## 2 Background  
### Zoned Namespace Solid-State Drive (SSD)  
The zoned namespace SSD was proposed based on the ZAC/ZBC standard [15] for SMR (Shingled Magnetic Recording) Hard Disk Drives (HDD) and open-channel SSD [16]. Unlike the conventional HDD, the tracks are not separated, but overlapped in SMR HDD. Although this provides greater capacity to the HDD, it cannot serve the in-place update. Disallowing the in-place update disables the HDD from using the legacy block layer. Because of this, new I/O methods were proposed for the SMR HDD, named zaca commands (ZAC) and zoned block commands (ZBC).  
Each standard splits its space into the unit of a zone. Each zone's I/O is independent from the others and a zone can only accept the sequential writes in it. Standards propose the drive-managed, host-managed, or host-aware methods for managing zones efficiently [17]. The drive-managed method uses software firmware such as flash translation layer in the SSD to support the legacy block interface layer. The host-managed method enables the host to manage zones directly and only allows sequential writing to be performed in a zone. Because of this, the host can place data on the disk's appropriate position by using host information. This enables the disk to fully utilize its performance. The host-aware method is a hybrid method, with drive-managed and host-managed characteristics. Therefore, it does not have any restrictions on writing data in a zone and a host can manage each zone status. However, this method comes with the problem that, sometimes, it generates long-tail latencies [18].  
For this reason, the drive-managed method is preferred in an ordinary environment, but the host-managed method is preferred in environments requiring extreme performance. For example, a greater key-value performance can be achieved by a disk with the host-managed method than by one with the drive-managed method [17].  
Because of these advantages, the zoned namespace (ZNS) interface was expanded by ZAC/ZBC. ZNS SSD is a kind of SSD using a zoned namespace interface with the NVMe. As can be seen in Figure 1, ZNS SSD abstracts its space-based unit named zone. The host utilizes this abstracted zone to manage and serve the I/O. This means that the SSD needs only a very simple FTL or does not need an FTL at all. The ZNS SSD zone, as with ZAC/ZBC specifications, also normally only permits to sequentially write its space. Restrictions of the sequential writes achieve nameless writes in the ZNS SSD. It reduces the logical-to-physical (L2P) mapping table's size dramatically. These advantages enhance the SSD performance [19].  
Moreover, ZNS SSD enables the host to predict the SSD's latencies. This is because the conventional SSD has a complex FTL and it becomes a complete black-box by the vendor. However, because ZNS SSD only requires a very simple FTL or no FTL at all, the host can leverage the information exposed by ZNS SSD to better predict the latency of ZNS SSD than the conventional SSD. Additionally, ZNS SSD can choose a data placement position, which can enhance the performance of the disk. For example, as can be seen in Figure 1a, conventional SSD data are randomly placed by the FTL. However, as can be seen in Figure 1b, ZNS SSD data are grouped based on application. Let us assume that Application 1 generates a very intensive workload. In this workload, the conventional SSD needs write amplification to erase the block. On the other hand, workload data are grouped by the host in the ZNS SSD. This means that the SSD does not need write amplification to erase the block. Because of these advantages, it received attention as a next-generation interface method and will be added to the NVMe standard.