基于內(nèi)存的鍵值對緩存系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
【學(xué)位單位】:華中科技大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2018
【中圖分類】:TP311.13;TP333
【部分圖文】:
本章將簡單介紹一下在系統(tǒng)實(shí)現(xiàn)過程中需要用到的一些重要的數(shù)據(jù)結(jié)構(gòu)和技術(shù),包括極大的提高了網(wǎng)絡(luò)請求處理效率的 I/O 多路復(fù)用技術(shù)和安全高效的動態(tài)字符串、作為集合類型底層實(shí)現(xiàn)的跳躍表兩種數(shù)據(jù)結(jié)構(gòu),以此作為后續(xù)研理論和實(shí)踐基礎(chǔ)。1 I/O 多路復(fù)用傳統(tǒng)的 I/O 模型包括阻塞 I/O 模型和非阻塞 I/O 模型,如圖 2-1 所示,對于阻 模型,如果請求的數(shù)據(jù)尚未到達(dá),則系統(tǒng)會阻塞在那里,一直等到數(shù)據(jù)到達(dá)核將數(shù)據(jù)拷貝到緩存中然后返回;對于非阻塞 I/O 模型,如果請求的數(shù)據(jù)尚未則會立即返回一個標(biāo)識信息,用戶進(jìn)程會檢查該標(biāo)識信息進(jìn)而判斷數(shù)據(jù)是否,如果數(shù)據(jù)未就緒系統(tǒng)會繼續(xù)發(fā)送數(shù)據(jù)請求,直到數(shù)據(jù)到達(dá)后內(nèi)核拷貝數(shù)據(jù)并成功標(biāo)識[38-39]。
于每一個進(jìn)程都需要系統(tǒng)為其分配資源,假如同時有多個些進(jìn)程分配大量內(nèi)存,這將給很多配置不高的服務(wù)器帶來程在切換時需要保存堆?臻g、上下文等信息,如此大量占用過多的系統(tǒng)資源,而且由于操作系統(tǒng)是采用時間片輪程數(shù)越多時平均分配給每個進(jìn)程的時間片就越少,這樣會低下[40]。決傳統(tǒng) I/O 模型在高并發(fā)的情況下效率低下的問題,操作系型(IO Multiplexing)[41]。如圖 2-2 所示,I/O 多路復(fù)用模poll、epoll 的系統(tǒng)函數(shù)負(fù)責(zé)維護(hù)和輪詢所有的文件句柄,通知用戶進(jìn)程,這樣維護(hù)所有的連接請求只需要一個進(jìn)程較多時可以明顯的降低所需要的內(nèi)存資源,同時系統(tǒng)調(diào)度
圖 2-3 簡單動態(tài)字符串和傳統(tǒng)的 C 語言風(fēng)格字符串相比,簡單動態(tài)字符串具有如下四個優(yōu)勢:(1)獲取字符串長度的時間復(fù)雜度為常數(shù)傳統(tǒng)的 C 語言風(fēng)格字符串要想獲取長度只能遍歷字符串?dāng)?shù)組,直到遇見空的結(jié)尾為止,該算法的時間復(fù)雜度為 O(N),當(dāng)經(jīng)常需要獲取字符串長度時風(fēng)格字符串的效率顯然不高。對于簡單動態(tài)字符串,要想獲取其長度,只結(jié)構(gòu)體中 length 字段的值即可,該算法時間復(fù)雜度為 O(1),這保證了在 A系統(tǒng)中獲取字符串長度不會成為性能瓶頸。(2)避免緩沖區(qū)溢出C 語言風(fēng)格的字符串由于不記錄長度信息,除了獲取字符串長度的時間復(fù)外,還很有可能導(dǎo)致緩沖區(qū)溢出。在 C 語言中,字符串操作函數(shù)中需要用對象的函數(shù)參數(shù)都是指針類型,由于指針類型只給出了內(nèi)存地址信息而沒
【參考文獻(xiàn)】
相關(guān)期刊論文 前10條
1 劉磊;;淘寶開源KV結(jié)構(gòu)數(shù)據(jù)存儲系統(tǒng)Tair技術(shù)分析[J];電子商務(wù);2016年03期
2 韓煜;張濟(jì)國;張冬芳;李海濤;;一種基于二進(jìn)制程序的安全加固系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)[J];信息安全與技術(shù);2015年07期
3 陳勇;;探析目前對于移動互聯(lián)網(wǎng)數(shù)據(jù)研究及對策[J];中國新通信;2015年11期
4 苑曉芳;劉志廣;;Linux下基于TCP傳輸組件的實(shí)現(xiàn)[J];無線電通信技術(shù);2014年04期
5 姜承堯;;高性能網(wǎng)站MySQL數(shù)據(jù)庫實(shí)踐[J];程序員;2013年09期
6 谷偉;陳蓮君;;基于MySql的查詢優(yōu)化技術(shù)研究[J];微型電腦應(yīng)用;2013年07期
7 王雅文;姚欣洪;宮云戰(zhàn);楊朝紅;;一種基于代碼靜態(tài)分析的緩沖區(qū)溢出檢測算法[J];計(jì)算機(jī)研究與發(fā)展;2012年04期
8 伍志聰;;MySQL數(shù)據(jù)庫在中小型業(yè)務(wù)系統(tǒng)的應(yīng)用[J];數(shù)字技術(shù)與應(yīng)用;2011年11期
9 南軼;李先國;;基于.NET Cache+Memcached Web緩存技術(shù)的研究與應(yīng)用[J];科學(xué)技術(shù)與工程;2011年31期
10 呂明育;李小勇;;NoSQL數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫的比較分析[J];微型電腦應(yīng)用;2011年10期
相關(guān)碩士學(xué)位論文 前2條
1 李瑞;基于memcached分布式緩存系統(tǒng)的內(nèi)存利用優(yōu)化研究[D];華中科技大學(xué);2015年
2 趙璐;阿里巴巴廣告應(yīng)用質(zhì)量平臺設(shè)計(jì)與實(shí)現(xiàn)[D];南京大學(xué);2014年
本文編號:2894039
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2894039.html