記憶體鍵值儲存系統 (in-memory KVS) 是在資料中心的應用程式中一個重要的元件。因為記憶體具有高頻寬和低延遲的特性,常見 in-memory KVS 的效能瓶頸主要是網路堆疊。先前的研究嘗試使用遠端直接記憶體存取 (RDMA) 來取代傳統的網路堆疊,實現了數量級的更高吞吐量並且降低響應延遲。 為了進一步提升 in-memory KVS 的吞吐量,我們提出了一個使用支援 RDMA 的智慧網卡來卸載處理器的工作的異質 KVS 架構。由於其彈性和成本效益,智慧網卡已經被用於許多領域,包含軟體定義網路、入侵檢測和即時資料分析。近年的研究也嘗試將資料儲存系統和交易處理系統卸載到智慧網卡上。具有強大運算能力的智慧網卡如 NVIDIA 的 BlueField 系列資料處理器 (DPU) 已成為使資料中心的應用程式更有效率的關鍵元件。 本篇論文所提出的異質 KVS (hKVS) 設計,可以讓主機有效利用 BlueField-2 智慧網卡上的計算資源和 RDMA 功能來擴展 KVS 的吞吐量。藉由複製經常被讀取的鍵值物件到智慧網卡上,主機和智慧網卡共同形成更大且具有更高吞吐量的 RDMA KVS。我們設計 hKVS 的架構並且優化其軟體的實作,在實際的系統上進行一系列效能評估的實驗。藉由增加一張智慧網卡到主機,hKVS 可以在 100% 和 95% 讀取的工作負載中達到最多 1.86 倍和 1.49 倍的吞吐量。考量到智慧網卡的花費遠低於一般主機,並且可以透過加裝多張智慧網卡來提升吞吐量,相比於使用多台主機來達成相同的目的,hKVS是同時具有成本效益和擴展性的做法。
In-memory key-value store (KVS) is a crucial component in data center applications. Since DRAM provides high bandwidth and low latency, the major performance bottleneck of common in-memory KVS lies in the network stack. Prior works have attempted to replace the traditional network stack with remote direct memory access (RDMA), which achieve orders of magnitude higher throughput and reduce the response latency. To further increase the throughput of an in-memory KVS, we propose a heterogeneous KVS architecture which employs smart network interface card (SmartNIC) to support RDMA and offload the workload for the CPU. Because of their flexibility and cost-efficiency, SmartNICs have been used in various fields, including software-defined networking, intrusion detection, and real-time analysis. Recent research efforts have also attempted to offload data stores and transaction processing systems to SmartNICs. Powerful SmartNICs such as NVIDIA's BlueField data processing unit (DPU) have been developed as key components to make data center applications more efficient. In this thesis, we propose a heterogeneous KVS (hKVS) design that enables a host server to efficiently exploits the computational resources and the RDMA capability of the BlueField-2 SmartNICs to scale the throughput of the KVS. By replicating frequently-read key-value objects to SmartNIC, the host and SmartNIC jointly form a larger RDMA KVS with higher throughput. We design the architecture of the hKVS, optimize its software implementation, and conduct a series of experiments to evaluate the resulted performance in realistic applications. By adding a SmartNIC to the host, hKVS achieves up to 1.86× and 1.49× higher throughput in 100% and 95% read workloads, which is cost-effective and scalable compared to building a KVS with multiple hosts, considering the SmartNIC costs much less than a regular server and multiple SmartNICs can be added to scale the throughput if needed.