云存儲網(wǎng)關(guān)(下)

引言

上篇主要是介紹了一些存儲相關(guān)的知識庆聘,還有通過cdn和存儲網(wǎng)關(guān)進行加速的簡單表述泞边。本篇將對存儲網(wǎng)關(guān)的結(jié)構(gòu)锐借,讀算法及相關(guān)算法進行分析整理问麸。

CSG的結(jié)構(gòu)

這里只附上CSG結(jié)構(gòu)的兩張圖,還是要展示一下它的結(jié)構(gòu)的瞎饲,不然說介紹云存儲網(wǎng)關(guān)完全不說他也不合適…


CSG結(jié)構(gòu)圖

可以從結(jié)構(gòu)中看出:

1)在云網(wǎng)關(guān)中實現(xiàn)了ISCSI協(xié)議口叙,上篇提到過,該協(xié)議支持用IP而不是光纖實現(xiàn)SAN存儲結(jié)構(gòu)嗅战,是網(wǎng)關(guān)和服務(wù)器剝離的前提。

2)很多結(jié)構(gòu)都是完成本地數(shù)據(jù)與云存儲的契合度優(yōu)化,提高了存儲速度驮捍,并發(fā)性疟呐,穩(wěn)定性,云網(wǎng)還能更像是本地和云的一種適配器东且,加速器和優(yōu)化器启具。

3)對部署和配置的優(yōu)化使CSG服務(wù)大大減少了在本地搭建SAN的時間和人力成本。

本篇將對結(jié)構(gòu)中的讀算法進行簡單分析(主講人就只介紹了讀的優(yōu)化…)

CSG的讀優(yōu)化

傳統(tǒng)的數(shù)據(jù)讀方法

1)FIFO

其實這些方法的精髓都能從名字中體會出來珊泳。FIFO即First in first out鲁冯,先進先出原則,數(shù)據(jù)存儲采用隊列結(jié)構(gòu)色查,當數(shù)據(jù)隊列滿了的時候薯演,新訪問的數(shù)據(jù)插入隊尾,數(shù)據(jù)在隊列中順序移動秧了,淘汰隊首的數(shù)據(jù)跨扮。其中沒有任何的其他邏輯,也就是說無論一個信息有多高的訪問頻率验毡,或者多高的訪問量衡创,都最多只存在于隊列size的周期,之后要重新入隊晶通,這就會對命中率造成影響璃氢,雖然實現(xiàn)簡單,但是效果不好狮辽。

2)LFU

Least Frequently Used 通過頻率淘汰數(shù)據(jù)拔莱,核心思想是如果數(shù)據(jù)過去被訪問多次,那么將來也會有較高的訪問頻率隘竭。實現(xiàn)方式是加入了引用計數(shù)塘秦。雖然查閱資料中大部分描述的是隊列,但是看起來更適合用棧結(jié)構(gòu)來實現(xiàn)动看。新加入數(shù)據(jù)插入到列尾(引用計數(shù)為1)當數(shù)據(jù)被訪問時引用計數(shù)增加對列進行重新排序尊剔,當需要淘汰數(shù)據(jù)的時候?qū)⒘信判蛟谧詈蟮臄?shù)據(jù)刪除。首先可以看出這個算法實現(xiàn)上比較復(fù)雜菱皆,而且每次都要改變計數(shù)并重新排列開銷較大须误,再有就是新進來的數(shù)據(jù)比較容易被淘汰掉,因為起始的計數(shù)較小仇轻,要看實際的淘汰周期合理性京痢。優(yōu)點是確實能保證較高的命中率。

3)LRU

Least Recently Used 通過訪問時間淘汰數(shù)據(jù)篷店。核心思想是如果最近被訪問過祭椰,那么在之后可能會被頻繁訪問臭家。該算法通過鏈表來實現(xiàn),新數(shù)據(jù)插入到鏈表的表頭方淤,當緩存命中則將命中的緩存移到鏈表的頭部钉赁,當鏈表滿的時候,淘汰鏈表尾部的數(shù)據(jù)携茂。相比于LFU實現(xiàn)起來更簡單你踩,也能保證較高的命中率,但是老數(shù)據(jù)依然容易被“沖掉”讳苦,所以命中率可能不如LFU带膜。

其實比較這幾個方法的時候直接說誰好誰壞是不科學(xué)的,這些算法都是最簡單的模型鸳谜,如果其中的閾值選的好膝藕,更符合實際數(shù)據(jù)的模型,就能保證更好的命中率卿堂,提高存儲的讀寫速度束莫。

CSG的讀算法


CSG的讀算法

如圖所示,其實ppt里面已經(jīng)講的很清楚了草描,該算法是LRU的一個變種览绿,把整個隊列分成冷熱兩部分。顧名思義熱隊列維護了比較長駐的信息穗慕,冷隊列則是一些新的數(shù)據(jù)饿敲。首先,相比于普通的LRU逛绵,它能使已存儲的較為常用的信息更不容易被替代怀各。

簡單來梳理一下幾個關(guān)鍵的信息焦蘑,這個算法關(guān)鍵點一個是m:n的這個比例戒祠,會決定算法的效果。還有就是在熱存儲隊列部分因痛,前k%的信息被再次訪問時是不會前移的胰苏,減少了可能最頻繁調(diào)用信息觸發(fā)的重新排序的開銷硕蛹。非k%部分則會放置到hot隊列隊首。另外cold隊列晉升到hot隊列也需要check時間間隔硕并,大于1s才會放置到hot隊列頭部法焰,這個是為了避免短期的多次訪問使數(shù)據(jù)成為“常駐”,只有在一定時間后仍被訪問才可能是持久數(shù)據(jù)倔毙,另外短期多次訪問該信息也還沒有被淘汰掉埃仪,不用著急變換位置。所以其實可以看出陕赃,hot隊列的元素數(shù)量變化只和cold隊列1s以上重復(fù)調(diào)用有關(guān)卵蛉,所以分界線偏移也不會很頻繁颁股。綜上所述,該模型具有一定的合理性毙玻,全局的順序變化又不頻繁豌蟋,大大減少了開銷廊散。所以作為一種不停訪問的數(shù)據(jù)結(jié)構(gòu)還是很有參考意義的桑滩。

HashTable鎖優(yōu)化

最后我們來討論一下演講人在hashTable上的優(yōu)化,針對這一點其實我是有些疑惑的允睹。要討論這一點我們先引入三個簡單的概念:HashMap运准,HashTable和ConcurrentHashMap。大部分人都用過或者了解這三個結(jié)構(gòu)缭受。我之前的code也習(xí)慣于創(chuàng)建Map的時候直接創(chuàng)建HashMap胁澳,好像已經(jīng)成為了默認的創(chuàng)建模式。比較三者的不同米者,首先前兩個韭畸,HashMap不是線程安全的而HashTable是,后兩者都是線程安全的蔓搞,但是支持的鎖的級別不一樣胰丁。HashTable是全表鎖,而ConcurrentHashMap是Hash單元鎖喂分,是針對Hash表鍵的鎖锦庸,所以力度更細,并發(fā)起來有更高的效率蒲祈。再有就是出錯處理甘萧,ConcurrentHashMap用到的是若一迭代器,也就是說當出現(xiàn)同事寫的情況的時候不是簡單拋出ConcurrentModificationException梆掸,而是在改變的時候創(chuàng)建新的數(shù)據(jù)而不改變原來的扬卷,修改之后再進行替換。提高了性能酸钦。再有就是我了解到在使用Hash表的時候有兩個常用參數(shù):初始容量和加載因子怪得,之前使用的都是默認的構(gòu)造器(初始容量是十一,加載因子是0.75)初始容量是hash表的初始大小钝鸽,比如初始容量是5汇恤,那么都一個單元對應(yīng)0,5…拔恰;第二個對應(yīng)1因谎,6…;第三個對應(yīng)2颜懊,7…以此類推【5(n-1)+i】i={0财岔,1风皿,2,3匠璧,4}然后加載因子是什么時候Hash表需要翻倍桐款,這個契機是當Hash表種元素大于現(xiàn)有容量乘以加載因子,就擴大為原來容量的一倍夷恍。這些是一些針對Hash表知識的回顧魔眨。

回到這次分享,他提到CSG使用了HashTable+桶鎖酿雪,將原來的全局鎖變成了“桶”級別的鎖遏暴,我覺得應(yīng)該和ConcurrentHashMap沒有什么區(qū)別吧,還是有什么更細粒度的check指黎,從他的分享中沒有領(lǐng)悟到…

總結(jié)

這次的兩篇文章其實和云網(wǎng)關(guān)沒什么太大關(guān)系朋凉,雖然我也準備了一些時間,但是也說不出來很專業(yè)性的內(nèi)容醋安,大部分都是對之前未掌握的知識和不了解的東西的一些查缺補漏杂彭。總的來說是積累了一些本應(yīng)知道的東西吓揪。還有就是針對這次QCon大會亲怠,其實我覺得,從我的角度而言磺芭,我覺得也可以代表一小部分剛剛從事這個行業(yè)不久的人的感受赁炎,就是從這個大會中能夠得到的,第一個是對新東西的開拓钾腺。比如很多分享都是針對互聯(lián)網(wǎng)黑產(chǎn)徙垫,機器學(xué)習(xí)應(yīng)用之類。都好像是敲門磚放棒,讓自己能看到原來他們的一個處理問題的思路是這樣的姻报,這個東西的應(yīng)用場景是這樣的之類。第二點是對一些很多人覺得熟識的而自己還陌生的知識的提醒间螟,分享之后回顧的時候吴旋,能夠重新把這些知識回顧一下。反正就是雖然收到的干貨不多厢破,但是還是很有成長的荣瑟。最后感謝東方海外給我這個機會去見識外面的世界~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市摩泪,隨后出現(xiàn)的幾起案子笆焰,更是在濱河造成了極大的恐慌,老刑警劉巖见坑,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚷掠,死亡現(xiàn)場離奇詭異捏检,居然都是意外死亡,警方通過查閱死者的電腦和手機不皆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門贯城,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人霹娄,你說我怎么就攤上這事能犯。” “怎么了项棠?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵悲雳,是天一觀的道長挎峦。 經(jīng)常有香客問我香追,道長,這世上最難降的妖魔是什么坦胶? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任透典,我火速辦了婚禮,結(jié)果婚禮上顿苇,老公的妹妹穿的比我還像新娘峭咒。我一直安慰自己,他們只是感情好纪岁,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布凑队。 她就那樣靜靜地躺著,像睡著了一般幔翰。 火紅的嫁衣襯著肌膚如雪漩氨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天遗增,我揣著相機與錄音叫惊,去河邊找鬼。 笑死做修,一個胖子當著我的面吹牛霍狰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饰及,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼蔗坯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了燎含?” 一聲冷哼從身側(cè)響起宾濒,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瘫镇,沒想到半個月后鼎兽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體答姥,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年谚咬,在試婚紗的時候發(fā)現(xiàn)自己被綠了鹦付。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡择卦,死狀恐怖敲长,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情秉继,我是刑警寧澤祈噪,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站尚辑,受9級特大地震影響辑鲤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杠茬,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一月褥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓢喉,春花似錦宁赤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至走贪,卻和暖如春佛猛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背厉斟。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工挚躯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人擦秽。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓码荔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親感挥。 傳聞我的和親對象是個殘疾皇子缩搅,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Java8張圖 11、字符串不變性 12触幼、equals()方法硼瓣、hashCode()方法的區(qū)別 13、...
    Miley_MOJIE閱讀 3,696評論 0 11
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,488評論 0 3
  • 有的人第一次接觸贏家就從未離開過堂鲤;有的人徘徊在贏家的門外亿傅,數(shù)年,未曾進來瘟栖;有的人接觸贏家葵擎,慢慢逃離贏家,默默關(guān)注贏...
    粟莎閱讀 289評論 0 0
  • 晚上打開扇貝想要學(xué)習(xí)一下英語的時候半哟,瞥見扇貝的每日一句(雞湯): The only genious that's ...
    布舒閱讀 349評論 0 0
  • 花了兩個晚上的時間酬滤,重新整理并修改了上周的作業(yè),并把它發(fā)表在了公眾號上寓涨,今天轉(zhuǎn)發(fā)后盯串,好評滿滿。我也很開心戒良,我終于邁...
    Lily5566閱讀 135評論 1 0