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