久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 如何用存儲黑科技解決推薦系統的“信息過載”?

如何用存儲黑科技解決推薦系統的“信息過載”?

發布人:大數據文摘 時間:2021-05-27 來源:工程師 發布文章

我們的數據集群目前規模過萬,總數據量以EB計,日新增數據量則以PB計……

這些數字來自某移動互聯網企業在一次技術交流活動上對自家數據處理能力的介紹。先不說EB,就說說1PB是什么概念吧?大約是2億張照片或2億首MP3音樂,如果一個人不停地聽這些音樂,能聽上1900年。

大家可能會驚嘆于這家企業強大的數據處理能力,但并非所有企業都具備同樣的能力——激增的數據量如果超過了數據處理能力,就會導致“信息過載“問題,為此,人類發明了能夠過濾信息的“搜索引擎”和“推薦系統”,用以高效識別和應用那部分“至關重要”的數據。

然而,據國際數據公司IDC在報告《數據時代2025》 中的預測,到2025年,屬于數據分析的全球數據總量將增長至原來的50倍,達到5.2ZB;認知系統“觸及”的分析數據總量也將隨之增長至原來的100倍,達到1.4ZB!這意味著用來挑選、過濾數據的推薦系統和搜索引擎,也一樣難逃”信息過載“。

1.png

推薦系統本質上就是一個信息過濾系統,通常分為:召回、排序、重排序這三個環節,每個環節逐層過濾,最終從海量數據中篩選出幾十個用戶可能感興趣的信息推薦給用戶。更直接一些,要想實現推薦系統這三個關鍵環節,就需要四個模塊化的層面,即數據、存儲(內存&存儲)、服務和應用。

其中,存儲層用于存儲數據層的數據;服務層是對外提供接口的部分;應用層根據不同場景配置的召回策略來直接對接服務層,發起請求得到推薦反饋。顯然,數據、存儲是推薦系統的底層邏輯,能夠決定引擎“走多遠”,而服務層和應用層則是上層建筑,對用戶體驗起到重要作用。

2.png

圖注:推薦引擎的模塊化層面架構圖

因此,要想從根本上解決推薦系統的信息過載問題,就要從數據及存儲層著手。

推薦、搜索背后的挑戰:數據硬件瓶頸

從文字發明前,人類就一直在為“合適”的數據尋找“合適”的數據存儲方式,例如書寫工具作為一種原始存儲技術,其讓人類有了記錄生活的能力;1890年代,穿孔卡的出現為人類打開了另一個全新時代的大門,標志著現代信息程序化的初露鋒芒。

穿孔卡所能處理的數據當然不能一勞永逸地滿足人類經濟生活的需求,1966年,動態隨機存取內存(DRAM)出現,開創性地用電容來存儲信息,而所謂的“動態“并非是指內部的某個功能,而是指電容終究會喪失電荷,因此必須定期”動態“刷新。這意味著DRAM一旦斷電就將面臨數據丟失的風險。

內存專注于“數據存儲”,結合“數據處理“才能構成數據價值的閉環。1971年英特爾推出全球首款CPU的創舉則畫全了這個閉環。此后,數據處理的硬件發明一直都在沿著內存與CPU并存的格局發展。

而今,從大數據時代帶來數據量暴增,數據類型不斷增多,數據處理并發度和速度不斷提升這三個現狀考慮,是時候對數據處理和存儲的硬件技術來次大換代了。其實,將這三個特征納入推薦系統,就不難發現,在內存上下功夫,會更有助于破解推薦系統的信息過載難題。

讓我們來劃一下重點吧:數據規模、高并發、實時推薦等這幾點,就是所有基于大數據做推薦服務或產品的企業都會遇到的共同問題:

1.數據量指數增長問題:越是精準,越是個性化的推薦,就越需要為每個用戶都保存一份推薦數據,也就是說數據量會隨著用戶線性增長。

2.數據稀疏性問題 :現在待處理的推薦系統規模越來越大,用戶和信息(譬如音樂、網頁、文獻……)數目動輒百千萬計,兩個用戶在選擇上的重疊非常少。

3.需要快速及時響應用戶請求(運算):隨著新聞、短視頻等消費用戶碎片化時間的應用層出不窮,推薦系統更倚重實時推薦策略。

就如前文所說,要解決這些問題,就要從“數據”和”存儲“這兩個底層邏輯找答案。

第一個問題的解決,需要大容量存儲設備;第二個問題需要“借力”算法,例如通過擴散的算法,從原來的一階關聯到二階甚至更高階的關聯,甚至通過迭代尋優的方法,考慮全局信息導致的關聯,其中“全局”一詞背后需要高性能處理器的助力;而應對第三個問題則需要更高性能的存儲來支持,例如用戶在使用APP時,留給推薦系統的處理時長往往是毫秒級的,這就對推薦系統的存儲部分的吞吐量、響應速度、穩定性和意外中斷后的恢復能力提出了更高的要求。

從上面這個三個方案不難看出,存儲既要更大容量,也需要更優性能,換言之推薦系統的IT基礎架構既要滿足對海量數據存儲的承載能力,還需要在大數據量下保證計算分析的時效性。換句話說,上面這三個問題環環相扣,必須要找到一個“三管齊下”的解決方案。

“數據硬件”新趨勢:顛覆內存與存儲的邊界

三管齊下說來容易,但又該如何實現呢?其實,只要一步活,就可以步步活。

這一步就是要把更多數據“存放”在更接近CPU的位置進行處理。

傳統上業界存放數據的主流產品包括DRAM,基于NAND技術的固態盤 (SSD)以及傳統機械硬盤 (HDD)。這些技術各有優缺點,例如DRAM雖然性能好、時延低,但容量受限、價格昂貴且有數據易失性;與DRAM相比,固態盤 (SSD) 可提供更大容量和更低成本,但無法提供相同的性能水平;傳統硬盤 (HDD)就更別提了,勝在容量和成本更優,但有旋轉的盤片,很難避免與可靠性、物理空間要求、散熱等因素有關的總體擁有成本問題。

總結一下,上述這些產品的不足,概括起來就是:離CPU近的,性能雖好但很難滿足承載大體量數據和數據持久性的需求,而距離遠的產品容量雖大,即在性能上與DRAM差距較大。

3.png

圖注:傳統內存-存儲架構在性能和容量上都存在缺口

如何解決?當前業界有一個解決方案是開辟全新的產品技術路線:打破內存和存儲的特性,將兩者的優勢融合起來。

這一技術路線的提出者和重要實踐者,就是大家熟悉的英特爾,而它將內存和存儲特性融合的產品,名為英特爾傲騰持久內存(Optane Persistent Memory, 簡稱Optane PMem)。這種產品采用的傲騰存儲介質正是實現這種融合的基石,已被很多專家和用戶視為存儲“黑科技”。

采用了這種存儲“黑科技“的傲騰持久內存,一句話就可以概括其特點,那就是擁有接近DRAM,遠超NAND SSD的性能,但容量又比DRAM大(單條容量可達128GiB,256GiB和512GiB),價格或單位容量的成本更實惠,且具備數據非易失能力(斷電后數據不會丟失)。

4.png

圖注:增添了傲騰持久內存和傲騰固態盤的全新內存-存儲架構

對內存和存儲優勢的融合讓傲騰持久內存得以提供兩種工作模式:

一是App Direct 模式,讓應用能通過load/store字節訪問方式直接訪問持久內存,保存到持久內存的數據斷電后不丟失。訪問持久內存的時延和DRAM接近。

二是內存模式,傲騰持久內存在這種模式下可用作DRAM之外進行容量擴展的易失性內存。

5.png

圖注:傲騰持久內存的兩種工作模式

說到這里,結果已經要呼之欲出了:在App Direct模式下工作的傲騰持久內存正是我們尋求的、能兼顧推薦系統兩個底層邏輯——數據和存儲的答案,它既能把更多數據放在靠近CPU的位置,同時又能滿足推薦系統高速數據處理過程中的性能和可靠性要求。

打通內存與存儲,讓數據從負擔變為“富礦”

目前,已有數家在推薦技術上處于行業領先地位的企業認識到,并開始借重傲騰持久內存的上述優勢,百度就是嘗鮮者之一。

人們對于百度的傳統觀感就是搜索引擎服務,其實百度的搜索引擎早就利用公司在大數據和AI方面的技術優勢和積累,增添了基于信息聚合,能向用戶投送個性化內容的Feed流服務。在這項服務背后擔綱數據層和存儲層關鍵角色的,就是它的核心內存數據庫Feed-Cube。

由于業務飛速拓展,百度Feed流服務需要Feed-Cube部署更大容量的內存來承載規模激增的數據,可DRAM高昂的成本和有限的容量規格使得內存擴展帶來的TCO壓力不斷抬升,在這種情況下,百度在初代英特爾傲騰持久內存(100系列)剛剛發布不久,就盯上了它。

于是2019年時,百度就圍繞如何在Feed-Cube上利用傲騰持久內存的優勢開展了一系列嘗試。它先后對比測試了僅使用DRAM,DRAM+持久內存和僅使用持久內存支持Feed-Cube的狀況。結果表明,在第二代至強可擴展處理器與傲騰持久內存組合上,如果使用DRAM和持久內存的混合配置,Feed-Cube在2,000萬大并發訪問壓力下的平均訪問耗時僅上升約30微秒(約24%),CPU的整機消耗占比上升7%,性能波動完全可接受,由于換來的單服務器上的DRAM使用量可以減半,從成本角度而言則是個大好消息。

百度還發現,即使只基于傲騰持久內存來構建Feed-Cube,在每秒50萬次查詢(QPS)的訪問壓力下,其平均時延與只配置DRAM的方案對比上升約9.66%,性能波動也可接受。

6.png7.png

圖注:百度Feed-Cube內存配置的變化路徑,和不同路徑或配置下的處理時延對比

對傲騰存儲“黑科技”優勢的初步認可,讓百度開始了在更多關鍵應用場景中發掘其應用價值的探索之路。包括在關鍵業務中考查其持久性對數據恢復的加速,還有優化BigSQL數據處理平臺(基于SPARK SQL)的交互式查詢性能和成本等。

這些成功的嘗試,最終促使百度決定基于傲騰持久內存,從存儲引擎層面開啟了更大的創新或者說是改造,即推出使用持久內存和PMDK(英特爾開源的持久內存開發工具包)優化的新一代用戶態單機存儲引擎,為百度離線與部分在線業務提供高效穩定、低時延、低成本和易擴展的存儲服務。

該引擎可用于塊、文件和對象存儲等多種應用場景,將傲騰持久內存(APP Direct模式)用作引擎緩存層的存儲介質,來存儲元數據、緩存和索引。并通過PMDK進行內存調度,加速這些數據的讀寫,最大程度減少資源損耗。

8.png

圖注:SNIA編程模型和PMDK工作示意圖。傲騰持久內存遵循SNIA編程模型, PMDK可幫助應用直接訪問持久內存設備,而不需要經過文件系統的頁高速緩存系統、系統調用和驅動,避免了數據IO產出的開銷,可大大降低數據時延。

經測試,這個全新的存儲引擎寫入一個4K數據的整體時間消耗大約為4.5微秒,而將其中的持久內存換成DRAM,全程用時大約是3微秒,在時延上相差不大。但使用DRAM和使用持久內存的成本卻相差很大,相同的成本投入下,持久內存的空間是DRAM的三倍之多,這意味著可以緩存更多數據,也能以更合理的方式進行數據存盤,有效提高后端存儲設備的IO效率。

百度將傲騰持久內存導入包括Feed流服務在內各種產品和服務進行嘗試,以及采用它開發新一代用戶態單機存儲引擎的意義,并不在于它使用這種存儲“黑科技”解決了自身的業務需求,更多的,是為傲騰持久內存在搜索、推薦系統和更多大數據場景中的應用進行了重要的探索,能為遇到或即將面臨同樣信息過載問題的企業和用戶提供值得借鑒的寶貴經驗。

或許很快,就會有更多倚重搜索、推薦技術或服務的企業導入傲騰持久內存,尤其是英特爾在今年四月剛剛發布了與傲騰持久內存搭配的全新算力干將——面向單路和雙路服務器的第三代至強可擴展處理器。它在內存通道的支持上從上一代產品的6通道升級到了8通道,速度也從上一代的2666MT/提升到了高達3200MT/s,在與DRAM和傲騰持久內存200系列配合使用時,每路內存容量可達6TB之多。這款全新處理器還支持了PCI-E 4.0技術,并新添了支持PCI-E 4.0的傲騰固態盤P5800X(也是基于傲騰存儲介質構建),這表明傲騰固態盤與傲騰持久內存的數據交互也將進一步提速。

9.png

圖注:存儲“黑科技“兩款新品——傲騰持久內存200系列和傲騰固態盤P5800X

由此不難看出,英特爾對這項存儲“黑科技“的改進、優化、升級和普及的步伐一直在持續,也許還會越來越快,現在已有消息稱,下一代傲騰持久內存單條容量就會達到1TB……這樣一來,也許大家擔心存儲系統“信息過載”的日子,離我們就越來越遠了。

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

電容式接近開關相關文章:電容式接近開關原理
光電開關相關文章:光電開關原理


關鍵詞: AI

相關推薦

技術專區

關閉