上海2020年5月13日 /美通社/ -- 以鍵值對(Key-Value,簡稱KV)作為數(shù)據(jù)的存儲方式,已經(jīng)在很多場合得到了成功的應(yīng)用。KV存儲以其直觀性,降低了很多應(yīng)用程序調(diào)用數(shù)據(jù)的復(fù)雜度,可以獲得更高數(shù)據(jù)的存取效率,但也有其局限性。寶存科技的Open-Channel SSD 定義了一種通用的,高效率的主機端直接訪問 FLASH 的標準接口,百度基于此開發(fā)出一套高性能KV存儲引擎,有效減少寫放大對設(shè)備性能的影響。
當前KV的不足之處
目前KV的成熟應(yīng)用場合有:
由于單機內(nèi)存總量的限制,內(nèi)存KV有持久化到硬盤的需求,而基于硬盤的KV數(shù)據(jù)庫多使用LSM Tree的方式在文件系統(tǒng)中實現(xiàn)(如RocksDB),在實際應(yīng)用中會出現(xiàn)以下問題:
盡管很多業(yè)務(wù)已經(jīng)從KV的使用中受益,但當前KV的不足限制了KV本該發(fā)揮的作用。
百度在Open-Channel SSD上的KV實現(xiàn)
搜索引擎及相關(guān)業(yè)務(wù)對KV有很強的需求。結(jié)合對KV的深入理解以及SSD的發(fā)展方向,百度選擇在Open-Channel SSD平臺上實現(xiàn)一套高性能KV,以移除當前KV存在的不足,充分發(fā)揮KV在SSD上應(yīng)有的性能。
Open-Channel SSD是白盒化的NVMe SSD。SSD的底層介質(zhì)NAND Flash具有先擦后寫、壽命有限的特點,因此將NAND Flash組織成主機可見的硬盤需要實現(xiàn)地址映射、垃圾回收、磨損均衡、錯誤處理等主要邏輯。Open-Channel SSD將實現(xiàn)這些邏輯的基本接口傳遞到主機層,用戶可以將業(yè)務(wù)邏輯和SSD邏輯結(jié)合實現(xiàn),使用軟硬件深度捆綁優(yōu)化的方式實現(xiàn)同樣硬件上的收益大幅度提升。
在百度的Open-Channel KV實現(xiàn)中,SSD不再以塊設(shè)備形式存在,而是以KV服務(wù)的形式呈現(xiàn)給上層業(yè)務(wù),KV邏輯向上層提供KV接口。KV接口接收到的鍵值對將被一步寫到物理介質(zhì)NAND的某個地址上并在內(nèi)存中記錄映射關(guān)系,無需經(jīng)過文件系統(tǒng)/虛擬內(nèi)存/塊設(shè)備的層層轉(zhuǎn)換,讀取時同理。數(shù)據(jù)的傳輸獲得的是軟件層面最短的路徑,因而延遲大幅度縮短。
按照這種方法實現(xiàn)的KV可以解決傳統(tǒng)KV存在的問題:
性能對比實測:
Open-Channel平臺提供的助力
Open-Channel SSD作為軟硬件優(yōu)化的基礎(chǔ),目前已經(jīng)有穩(wěn)定的開發(fā)平臺,Linux內(nèi)核也已內(nèi)置支持。百度Open-Channel KV使用的硬件平臺具有以下特點:
總結(jié)
作為一個獨立的存儲引擎,百度Open-Channel KV項目已成功接入多個重要業(yè)務(wù),實現(xiàn)了同等級產(chǎn)品中單獨提升存儲性能和單獨優(yōu)化軟件邏輯都無法達到的業(yè)務(wù)性能提升幅度。此次Open-Channel應(yīng)用的成功實踐,證明了存儲類應(yīng)用在Open-Channel SSD上獲得大幅度性能提升的可能性,也驗證了Open-Channel平臺的可靠性。寶存科技基于Open-Channel的更多創(chuàng)新項目已經(jīng)在孵化中,未來我們可以看到Open-Channel SSD在更廣泛的范圍內(nèi)的成功應(yīng)用,為高可靠性、高效率、高性價比的IT基礎(chǔ)設(shè)施帶來獨特的價值。
图片 - https://photos.prnasia.com/prnh/20200511/2799929-1-a?lang=1
图片 - https://photos.prnasia.com/prnh/20200511/2799929-1-b?lang=1
图片 - https://photos.prnasia.com/prnh/20200511/2799929-1-c?lang=1