摘要:的關鍵技術主要有內容存儲和分發(fā)技術。分發(fā)本身是和存儲密不可分的存儲和分發(fā)的實質都是數(shù)據(jù)的讀取和使用,兩者是不可能分割的。只是存儲場景和分發(fā)場景,設計有些不同,服務質量的要求也不一樣。根據(jù)區(qū)域和時段的不同,存儲的價格也會有不同。
PPIO 是為開發(fā)者打造的去中心化存儲與分發(fā)平臺,讓數(shù)據(jù)存儲更便宜、更高速、更隱私。官方網(wǎng)站是 https://pp.io 。PPIO 不僅僅是個存儲平臺,也是一個分發(fā)平臺。之前我們寫了許多文章介紹 PPIO 的存儲技術,這篇文章將重點介紹 PPIO 的分發(fā)技術。
什么是數(shù)據(jù)分發(fā)分發(fā)指的是在保證傳遞體驗的同時將同一份數(shù)據(jù)快速傳遞給很多人。這些人分布在一定區(qū)域很多地方 (可能是一個國家),而且要保證數(shù)據(jù)傳輸?shù)捏w驗。常用的分發(fā)場景有:靜態(tài)網(wǎng)頁、大文件下載、大圖片查看、流媒體點播、流媒體直播等。還有一些商業(yè)場景,如多路視頻通話、視頻會議等,其本質也是一種雙向的分發(fā)。
數(shù)據(jù)分發(fā)的關鍵技術和場景應用#1. CDN & P2P
傳統(tǒng)意義上的分發(fā)叫做 CDN,Content Delivery Network (內容分發(fā)網(wǎng)絡),是一種構建在網(wǎng)絡之上的內容分發(fā)網(wǎng)絡,他的技術基本原理是把數(shù)據(jù)從源站推送到離用戶最近的服務器上,然后用戶直接從離自己最近的服務器獲取數(shù)據(jù),從而獲得最好的用戶體驗。依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發(fā)、調度等功能模塊,使用戶就近獲取所需內容,降低網(wǎng)絡擁塞,提高用戶訪問響應速度和命中率。CDN 的關鍵技術主要有內容存儲和分發(fā)技術。
分發(fā)是 P2P 技術的最古老的應用。P2P 網(wǎng)絡從最早的的Napster 到后來的 Edonkey,Bittorrent 等,其應用場景本身都是把同一個內容,傳遞給更多的人,因為越多的人使用同一個內容,就意味著上傳的節(jié)點越多,速度也就能越快,這本身就是分發(fā)的場景。
雖然同樣是分發(fā)技術,P2P 和 CDN 的實現(xiàn)方式卻不同。CDN 中每個分發(fā)的節(jié)點都是服務器,CDN 網(wǎng)絡最終形成的是樹狀結構,一級一級的分發(fā)數(shù)據(jù)。而 P2P 網(wǎng)絡則不同,P2P 中的每個客戶端都具有上傳能力,當客戶端在下載數(shù)據(jù)的同時其實也上傳數(shù)據(jù)給別的客戶端。如果每個客戶端都按照這個邏輯來,就形成了一個人人為我,我為人人的生態(tài)系統(tǒng)。
P2P 對比 CDN 具有的優(yōu)勢有:
P2P 是多點下載,能更充分的使用自身網(wǎng)絡,下載速度更快。特別是對于服務器(也包括 CDN 節(jié)點)距離客戶端比較遠的時候,這里說的是網(wǎng)絡距離。
P2P 的多點下載模式下,單節(jié)點的下載讀取抖動不會引起整體下載速度的波動
節(jié)約資源發(fā)布者帶寬
P2P 對比 CDN 的缺點有:
P2P 實現(xiàn)比較復雜,CDN 簡單。P2P 的服務在面對業(yè)務變化的時候,沒有 CDN 快。
P2P 在啟動的時候,有冷啟動問題需要解決,要找到優(yōu)質的其他節(jié)點需要些時間;所有在要求快速啟動的業(yè)務上,P2P 不如 CDN 便利。
對運營商來說,P2P 的可控性不如 CDN,運營商會研究如何限制 P2P,降低了 P2P 的用戶體驗。
P2P 和 CDN 并不矛盾,P2SP 技術就是 P2P 和 CDN 技術的結合,也就是對客戶端來說,既可以從 CDN 節(jié)點上下載,也可以從 P2P 網(wǎng)絡中下載數(shù)據(jù)。使用 P2SP 構建的服務,也被稱為 PCDN 服務。
#2. 視頻的應用在分發(fā)中很常見
分發(fā)應用是個重流媒體應用,視頻點播,如 Youtube, Netflix,還有視頻直播,如 Hulu 等,以及短視頻,如Tiktok 等,都是分發(fā)類的應用場景。據(jù)2018年10月的報告,視頻應用占互聯(lián)網(wǎng)流量下載量的58%左右。所以,PPIO 在做分發(fā)技術時候,會花大量的精力把視頻類的服務質量 QoS 做好。
#3. 分發(fā)本身是和存儲密不可分的
存儲和分發(fā)的實質都是數(shù)據(jù)的讀取和使用,兩者是不可能分割的。當一個數(shù)據(jù)存儲在 PPIO 網(wǎng)絡中,如果只有一個人會讀取并使用,就是存儲;如何有很多人讀取或者使用,就是分發(fā)。只是存儲場景和分發(fā)場景,設計有些不同,服務質量的要求也不一樣。
PPIO 為分發(fā)場景進行的技術設計PPIO 的核心團隊在做過 PPTV,這是曾經(jīng)最大的 P2SP 華語視頻平臺,用戶數(shù)做到了4.5億的規(guī)模。近十年的 P2P 視頻產品經(jīng)驗讓我們團隊積累了豐富的 P2P 和分發(fā)類項目的技術、產品和運營實踐。我們非常了解分發(fā)場景對技術的多樣化甚至刁鉆的需求。這些經(jīng)驗讓我們可以為分發(fā)類產品做出符合實際需要的技術架構。以下是 PPIO 為分發(fā)場景所做的技術設計。
#1. 重疊網(wǎng)絡
PPIO 支持重疊網(wǎng)絡 (Overlay 網(wǎng)絡),每個存儲節(jié)點 (Storage Node/Miner) 都會將與自己物理連接較快的存儲節(jié)點作為自己的鄰居,在數(shù)據(jù)傳遞和信息交互過程,充分發(fā)揮臨近節(jié)點的優(yōu)勢,使得網(wǎng)絡效率大大提高。
#2. 流媒體傳輸?shù)膬?yōu)化
前面提到,流媒體是分發(fā)場景的最主要應用,對流媒體的支持以及做到足夠好的服務質量 (QoS) 非常重要。PPIO 實現(xiàn)了針對流媒體的由數(shù)據(jù)來驅動的特別下載算法,從而保證實時流媒體的流暢播放。
#3. P4P 技術的支持
P2P 會產生大量的網(wǎng)絡間的跨 ISP 流量。一般來說,網(wǎng)絡運營商 ISP 的網(wǎng)絡內的流量是沒有額外費用的,但是,運營商之間傳輸所產生的通訊會按照流量來計費。有沒有什么辦法能夠做到既保留 P2P 技術的優(yōu)勢,又能做到降低跨 ISP 流量呢?這就是 P4P 技術。
P4P 全稱 Proactive Network Provider Participation for P2P,在加強相同服務供應商 (ISP) 內網(wǎng)絡流量的同時,降低了骨干網(wǎng)絡傳輸壓力和運營成本,從而也提高了 P2P 文件的傳輸性能。與 P2P 隨機挑選節(jié)點的方式不同,P4P 模式可以協(xié)調網(wǎng)絡拓撲數(shù)據(jù),有效選擇節(jié)點,從而提高網(wǎng)絡路由效率。
PPIO 團隊之前在做 PPTV 的時候有豐富地和運營商打交道的經(jīng)歷,在降低運營商的跨 ISP 流量有獨特的方法。而在 P4P 技術出現(xiàn)之前,運營商都在想辦法限制使用 P2P 的技術。
#4. 熱門內容的自適應調度
PPIO 支持 P2P-CDN。在 P2P-CDN 里面,熱門內容的自適應調度是非常重要的,也是提高服務質量 (QoS) 的重要手段。熱門內容的自適應調度就是當一個文件在網(wǎng)絡中變得受歡迎之后,系統(tǒng)會自動觸發(fā)調度機制,讓更多的存儲節(jié)點存儲這個文件。這樣的設計既能提高用戶體驗,也能提高更多存儲節(jié)點的收益。反之,當很受歡迎的文件失去熱度之后,系統(tǒng)則會自適應地減少存儲此文件的存儲節(jié)點的數(shù)量。這樣就形成一種動態(tài)的平衡。PPIO 在熱門內容調度算法上下了很大的功夫。
#5. 人為預熱機制
除了熱門內容的自適應調度之外,PPIO 還提供了一套人為預熱的機制,那么人為預熱機制適用于什么場景呢?
比如說大家在看一部電視劇,前面一集看的人已經(jīng)很多了,那么大概率地預測,下一集看的人也會很多。所以發(fā)布方在更新新的一集的時候,就可以提前推送新的一集的資源到更多礦工那里。這樣當大家觀看下一級電視劇的時候,已經(jīng)有足夠多的存儲節(jié)點在做種了。這樣在內容發(fā)布前就能充分利用 P2P 網(wǎng)絡的優(yōu)勢,大大提升觀看體驗。類似的場景還有很多,只要人為可預知的熱門內容都可以預熱來提升冷啟動過程中的體驗。
內容發(fā)布者可以支付費用來指定需要預熱的內容,并且可以指定執(zhí)行預熱的區(qū)域、ISP、時間段。根據(jù)區(qū)域、ISP 和時段的不同,存儲的價格也會有不同。PPIO 中預熱的實現(xiàn)是和去中心化存儲的原理基本一致的,因為礦工不知道這個內容是不是真的很熱,所以需要收取費用來對沖風險。但是預熱和存儲不同的是,預熱采用的是全副本,而存儲主要采用的糾刪碼,后面我會解釋為什么會有所不同。
#6. P2P 直播的考慮
PPIO 不僅僅考慮了流媒體點播的下載,而且還考慮實時流媒體直播。直播在本質上就是一堆連續(xù)的小文件的分發(fā),只是這些小文件他們的生命周期比較短,一段時間過后就沒有用了,但同時也要求這些小文件的分發(fā)效率要非常高,要非常快速地分發(fā)到盡可能多的節(jié)點上。直播的整體架構和 PPIO 的流媒體體系是一致的,只是切分文件的方式,下載算法有所不同。
直播分為兩類,一類是高延時直播,主要用于賽事,新聞等,這類直播的特點是一個直播頻道,可能觀看的用戶數(shù)很多很多,但是大家對節(jié)目的時延不是那么敏感。還有一類是低延時直播,主要用于主播,秀場等模式,這種直播的特點是,由于涉及到和主播之間的互動,這類對延時的要求非常低,一般在 5s 之內,也就是當動作發(fā)生到看到畫面最多只有 5s 的時間,但是用戶規(guī)模一般不大。
PPIO 面對這兩種直播場景,使用一推二拉三補償?shù)姆桨福隽艘恢滦约嫒荩皇菂?shù)的不同,就能很好地支持兩種模式。PPIO 的創(chuàng)始團隊之前是做 P2P 直播起家的,做過全世界最大的 P2P 直播平臺,PPTV,在直播領域的積累也是非常豐富的。
#7. PPIO PCDN 的設計
PCDN 即 CDN acceleration with P2P,是利用 P2P 技術和大量租戶節(jié)點的帶寬和磁盤資源來做 CDN 分發(fā)加速。PPIO 的設計是支持 PCDN 的,并且提供了 DApp 開發(fā)接口,開發(fā)者將很容易使用 PCDN 接口為自己的內容服務提供加速。
應用中的存儲內容會首先在發(fā)布源節(jié)點進行發(fā)布,在源節(jié)點不下線的前提下,能夠持續(xù)提供下載服務。然而當從同一個源節(jié)點下載的用戶數(shù)增加后,該節(jié)點的帶寬將被消耗殆盡,而每個用戶的下載速度也會降低。通過 PCDN,網(wǎng)絡中的大量租戶節(jié)點開始保存和提供同樣內容的下載。用戶因此可以從多個節(jié)點下載內容,用戶體驗大幅提高。
PCDN 在 PPIO 網(wǎng)絡中有兩種實現(xiàn)方式:
充分利用3.2.4中熱門內容按照預測調度的機制。PPIO 本身有根據(jù)熱度來預測調度的功能。當發(fā)現(xiàn)一個熱度比較好的內容時候,有其他租戶也主動拉過來提供服務,從而增加了網(wǎng)絡的副本數(shù),而副本數(shù)越多,最終用戶 P2P 下載的效果也就越好。
源節(jié)點發(fā)布內容的時候,可以指定 PCDN 定向緩存副本數(shù)。DApp 開發(fā)者可以根據(jù)自身需求,通過 PCDN API 接口,強制對一個內容設置緩存,可以在設定哪個網(wǎng)絡區(qū)域,及地理區(qū)域(國家,ISP,州,市 四元組)的緩存數(shù)量。PPIO 會在這些定向區(qū)域的范圍內尋找租戶節(jié)點,以存儲數(shù)據(jù)并提供下載服務。因為這是通過 API 指定的租戶,所以源節(jié)點在這種情況下要支付給這部分租戶相應的存儲時空費用,調度費和時空證明費。上圖中展示了這種情況下網(wǎng)絡中 PCDN 驅動的數(shù)據(jù)流動。
PPIO 針對分發(fā)和存儲的設計有哪些不同PPIO 的定位是做存儲與分發(fā),那么存儲和做分發(fā)在技術上還有什么不同呢?主要有以下幾點。
#1 全副本和糾刪碼
分發(fā)和存儲的最終目的是不同的。分發(fā)講究的是如何快地獲取內容。一般的分發(fā)場景中,源節(jié)點是在的,在所以不用擔心數(shù)據(jù)會丟失,即使不小心被存儲節(jié)點搞丟了,也能從源節(jié)點找到。所以在分發(fā)場景中我們選擇采用全副本的算法。
而存儲則不同,存儲首先要保證不能丟數(shù)據(jù),?提高內容不丟失率。如果采用全副本算法的方式,不知道要存多少副本才能做到11個9的不丟失率。而在適用糾刪碼技術候,做到11個9的不丟失率,需要的冗余空間將會少很多,這是提高內容不丟失率的最有用方案。
簡單地來說,分發(fā)追求高速,所以用全副本方案為主;而存儲追求極高的內容不丟失率,所以適用糾刪碼技術為主導。
#2 內存緩存
分發(fā)和存儲還有一個很大的區(qū)別。分發(fā)往往有很強的頭部效應而存儲沒有。
分發(fā)的頭部效應,也叫二八原則,就是20%的內容擁有80%的流量。而深入研究可能會發(fā)現(xiàn),頭部的20%的內容里面,也適用二八原則。所以在分發(fā)中,我們通常把內容分為頭部內容,中部內容和尾部內容:頭部的流量很集中,中部的流量較少,尾部的流量非常零散。在分發(fā)的場景中,從成本的角度考慮。頭部和中頭部內容適合使用內存的緩存,中尾部內容適合使用 SSD 等高速存儲介質,而尾部內容處于成本角度考慮,則更適合機械硬盤。
存儲沒有頭部效應,都是尾部內容,因為很少有人擁有相同的內容。存儲也分為熱存儲、溫存儲和冷存儲,熱存儲指的是數(shù)據(jù)在寫入之后,經(jīng)常會被讀取;溫存儲指得是數(shù)據(jù)在寫入之后,很少被讀取,也可能永遠不被去讀,如私人網(wǎng)盤的老數(shù)據(jù);冷存儲指的是寫入后,大概率是不會使用,即使使用也不會要求那么及時,如監(jiān)控數(shù)據(jù)。
在 PPIO 的網(wǎng)絡中,熱存儲主要使用全副本和糾刪碼并存方案,全副本保證適當?shù)馗咚賯鬏敚m刪碼能將數(shù)據(jù)的丟失率降到很低,同時推薦承載熱存儲的存儲節(jié)點使用 SSD 等高速硬盤。而溫存儲和冷存儲使用純糾刪碼方案,因為讀取的次數(shù)不多,推薦使用機械硬盤,這樣能將成本降到最低。
所以對于存儲節(jié)點來說,如果要獲得最大的收益,其機器配置的參數(shù)也要與其提供的服務相搭配。
PPIO 更重視分發(fā)場景PPIO 項目相當于其他去中心化存儲區(qū)塊鏈項目,如 Filecoin 和 Storj,是更重視分發(fā)場景的,其他項目都把重心放在了存儲場景上。這里有個簡易地對比表格分析三個存儲鏈,并給出對比信息。
綜上所訴,這些就是 PPIO 在數(shù)據(jù)分發(fā)領域的優(yōu)勢。如果你想了解更多,歡迎加入我們的開發(fā)者社區(qū)共同討論!
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24670.html
摘要:在這篇文章內,我站在開發(fā)者的角度解析一下的商業(yè)化架構。的商業(yè)化架構首先,我們采用了分層的方式來實現(xiàn)整體架構,包含區(qū)塊鏈層激勵層存儲層數(shù)據(jù)分發(fā)層音視頻等應用層。我認為去中心化服務的另外一種說法就是霧計算,或者邊緣技術。 showImg(https://segmentfault.com/img/remote/1460000019213551); 目前大多數(shù)的區(qū)塊鏈項目,設計時更重視代幣發(fā)行...
摘要:存在個人隱私數(shù)據(jù)被審查的風險。首先,我們認為違法數(shù)據(jù)的審查有利于社會和經(jīng)濟的安定。永不關停對于去中心化存儲的用戶來說,不用擔心運營方關停的可能性,因為最終去中心化存儲是屬于用戶的,屬于社區(qū)的,并不是屬于公司的。 在這個信息爆炸的時代,數(shù)據(jù)存儲與我們每一個人息息相關。從打孔卡到軟盤硬盤再到中心化云端存儲服務,人類在尋求更便捷有效的數(shù)據(jù)存儲方式的道路上從未停下過腳步。未來會出現(xiàn)比如今最流行...
摘要:的分片方式是和文件結構或者流媒體協(xié)議相關的。需要注意的是,這里的普通文件不是流媒體視頻文件,不具備流媒體的特性。,也就是分段流媒體的原始分段。除了支持分段流和連續(xù)流以外,后面還計劃逐步支持其他媒體格式和協(xié)議。 工作日早晨8點的地鐵,Lisa 拿出手機打開 Tik Tok 來打發(fā)半小時的通勤時間;12點,吃完午飯的 Lisa 趁著午休時間忙里偷閑看看 YouTube 上有趣搞笑的視頻;晚...
閱讀 1863·2021-11-25 09:43
閱讀 2145·2021-11-19 09:40
閱讀 3422·2021-11-18 13:12
閱讀 1738·2021-09-29 09:35
閱讀 660·2021-08-24 10:00
閱讀 2504·2019-08-30 15:55
閱讀 1708·2019-08-30 12:56
閱讀 1814·2019-08-28 17:59