摘 要: 云數(shù)據(jù)庫(kù)是把各種關(guān)系型數(shù)據(jù)庫(kù)看成一系列簡(jiǎn)單的二維表,并基于簡(jiǎn)化版本的SQL或訪(fǎng)問(wèn)對(duì)象進(jìn)行操作的數(shù)據(jù)庫(kù)。云數(shù)據(jù)庫(kù)能夠?yàn)槎鄠€(gè)用戶(hù)同時(shí)提供類(lèi)似于單節(jié)點(diǎn)數(shù)據(jù)庫(kù)的服務(wù)。在當(dāng)前云計(jì)算技術(shù)不斷發(fā)展中,數(shù)據(jù)庫(kù)不斷發(fā)展進(jìn)化,從原始的單節(jié)點(diǎn)數(shù)據(jù)庫(kù)逐漸發(fā)展成為云數(shù)據(jù)庫(kù),數(shù)據(jù)存儲(chǔ)能力相對(duì)于過(guò)去提高了數(shù)倍。目前云數(shù)據(jù)庫(kù)服務(wù)不斷增多,在此背景下,討論了一種云數(shù)據(jù)庫(kù)的設(shè)計(jì)與核心子系統(tǒng)的實(shí)現(xiàn)。
關(guān)鍵詞: 云數(shù)據(jù)庫(kù);云計(jì)算;數(shù)據(jù)分布;高可用;一致性hash
隨著計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展以及網(wǎng)絡(luò)帶寬的不斷增長(zhǎng),利用網(wǎng)絡(luò)技術(shù)來(lái)建立云數(shù)據(jù)庫(kù)中心已經(jīng)成為可能。近年來(lái),云數(shù)據(jù)庫(kù)已經(jīng)成為數(shù)據(jù)庫(kù)發(fā)展的新趨勢(shì)。云數(shù)據(jù)庫(kù)可以將分散在各個(gè)數(shù)據(jù)中心的數(shù)據(jù)庫(kù)資源有效地組織利用起來(lái),構(gòu)成海量數(shù)據(jù)存儲(chǔ)中心。云數(shù)據(jù)庫(kù)能夠更快地、更好地解決各個(gè)客戶(hù)海量數(shù)據(jù)的存儲(chǔ)問(wèn)題,能夠打破傳統(tǒng)的單節(jié)點(diǎn)數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)帶寬和磁盤(pán)I/O的限制,為客戶(hù)提供高帶寬、高I/O、高并發(fā)的數(shù)據(jù)連接服務(wù)。同時(shí),云數(shù)據(jù)庫(kù)中心具有系統(tǒng)設(shè)備利用率高、數(shù)據(jù)節(jié)點(diǎn)擴(kuò)容方便、數(shù)據(jù)的多備份、數(shù)據(jù)高可用等特點(diǎn)。本文對(duì)云數(shù)據(jù)庫(kù)的各功能模塊進(jìn)行研究,并分析了各功能模塊的實(shí)現(xiàn)方式。
1 云數(shù)據(jù)庫(kù)的設(shè)計(jì)
云數(shù)據(jù)庫(kù)建立在互聯(lián)網(wǎng)上的數(shù)據(jù)庫(kù)中心,能夠同時(shí)為多個(gè)客戶(hù)提供數(shù)據(jù)庫(kù)服務(wù),并且其互相之間不影響。系統(tǒng)整體框圖如圖1所示。
云數(shù)據(jù)庫(kù)對(duì)外提供統(tǒng)一的API,統(tǒng)一的API能夠屏蔽云數(shù)據(jù)庫(kù)內(nèi)部實(shí)現(xiàn)的細(xì)節(jié)。對(duì)外提供一種統(tǒng)一的數(shù)據(jù)庫(kù)連接協(xié)議,使用戶(hù)能夠通過(guò)不同的編程語(yǔ)言、不同的連接工具進(jìn)行連接使用。
云數(shù)據(jù)庫(kù)的核心服務(wù)是為用戶(hù)提供數(shù)據(jù)庫(kù)服務(wù),其主要功能有:
?。?)用戶(hù)檢測(cè)。引進(jìn)用戶(hù)認(rèn)證系統(tǒng)檢測(cè)多用戶(hù)狀態(tài),認(rèn)證系統(tǒng)在用戶(hù)登錄、退出時(shí)進(jìn)行狀態(tài)記錄,在用戶(hù)每次進(jìn)行數(shù)據(jù)操作時(shí),必須確定該操作是否安全。
?。?)安全檢測(cè)。安全系統(tǒng)全程監(jiān)控用戶(hù)的操作,以確認(rèn)用戶(hù)的操作對(duì)數(shù)據(jù)庫(kù)中其他用戶(hù)和數(shù)據(jù)庫(kù)整體安全沒(méi)有影響,以及檢測(cè)來(lái)自網(wǎng)絡(luò)上的各種數(shù)據(jù)庫(kù)的攻擊。
?。?)多租戶(hù)。云數(shù)據(jù)庫(kù)多租戶(hù)服務(wù)是為解決多個(gè)用戶(hù)同時(shí)接入云數(shù)據(jù)庫(kù)系統(tǒng)而設(shè)計(jì)實(shí)現(xiàn)的。多個(gè)用戶(hù)同時(shí)接入云數(shù)據(jù)庫(kù),不僅要求各個(gè)用戶(hù)之間互相隔離,而且要求各個(gè)用戶(hù)之間的數(shù)據(jù)互不影響,各個(gè)用戶(hù)只能訪(fǎng)問(wèn)自己的數(shù)據(jù)庫(kù)。
?。?)數(shù)據(jù)分布。為了存儲(chǔ)用戶(hù)的海量數(shù)據(jù),將用戶(hù)的數(shù)據(jù)分布在數(shù)據(jù)庫(kù)集群中不同的節(jié)點(diǎn)上,這樣不僅方便系統(tǒng)的擴(kuò)容,而且數(shù)據(jù)I/O操作被分配到多個(gè)節(jié)點(diǎn)上。數(shù)據(jù)的分布使用一致性hash[1]算法,保證在加入節(jié)點(diǎn)時(shí),數(shù)據(jù)庫(kù)中的數(shù)據(jù)以最小的代價(jià)擴(kuò)展到新節(jié)點(diǎn)中。
?。?)數(shù)據(jù)高可用。云數(shù)據(jù)庫(kù)中的數(shù)據(jù)每份至少需要存在于3個(gè)副本中,3個(gè)副本進(jìn)行實(shí)時(shí)同步,當(dāng)某一數(shù)據(jù)節(jié)點(diǎn)宕機(jī)出現(xiàn)故障時(shí),數(shù)據(jù)能夠在其他節(jié)點(diǎn)正常讀取。多副本的存在,還可以使用負(fù)載均衡算法,把數(shù)據(jù)I/O操作分散到負(fù)載低的數(shù)據(jù)節(jié)點(diǎn)[2]。
?。?)緩存?;诖髷?shù)據(jù)的負(fù)載特性,以?xún)?nèi)存作為存儲(chǔ)介質(zhì),用以解決數(shù)據(jù)查詢(xún)性能延遲的問(wèn)題[3]。使用Memcached或者Redis緩存系統(tǒng)[4],將數(shù)據(jù)放入內(nèi)存,讀寫(xiě)時(shí)若能命中,系統(tǒng)的I/O能力至少能夠提高8~10個(gè)數(shù)量級(jí)。
?。?)數(shù)據(jù)快照。數(shù)據(jù)快照功能能夠在某個(gè)時(shí)間點(diǎn)給用戶(hù)數(shù)據(jù)生成快照,該快照能夠供用戶(hù)下載保存,同時(shí)用戶(hù)能夠把數(shù)據(jù)回滾至該快照。
數(shù)據(jù)庫(kù)節(jié)點(diǎn)集群提供用戶(hù)數(shù)據(jù)實(shí)際的保存位置,該集群一般由多個(gè)數(shù)據(jù)庫(kù)中心組成,各個(gè)數(shù)據(jù)庫(kù)中心的數(shù)據(jù)互相備份,以保證在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中心遭到災(zāi)難性損壞時(shí),云數(shù)據(jù)庫(kù)依然能夠正常運(yùn)行。當(dāng)各個(gè)數(shù)據(jù)庫(kù)中心的節(jié)點(diǎn)無(wú)法提供足夠容量時(shí),可以動(dòng)態(tài)地、無(wú)需關(guān)機(jī)地添加數(shù)據(jù)節(jié)點(diǎn)至云數(shù)據(jù)庫(kù)中心。
2 云數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
云數(shù)據(jù)庫(kù)為了實(shí)現(xiàn)高擴(kuò)展性,所有子系統(tǒng)均由單獨(dú)模塊構(gòu)成,所有模塊均可由新的相關(guān)功能模塊代替。云數(shù)據(jù)庫(kù)核心模塊包括:安全審計(jì)模塊、通信模塊、SQL解析模塊、路由管理模塊、消息分發(fā)模塊、策略管理模塊、緩存模塊、消息處理、結(jié)果集處理模塊、數(shù)據(jù)快照模塊。
2.1 系統(tǒng)核心流程
應(yīng)用系統(tǒng)發(fā)送數(shù)據(jù)庫(kù)請(qǐng)求,云數(shù)據(jù)庫(kù)通過(guò)通信管理模塊接收到請(qǐng)求,調(diào)用安全審計(jì)模塊進(jìn)行安全審計(jì)[5]。安全審計(jì)模塊負(fù)責(zé)所有云數(shù)據(jù)庫(kù)連接的安全管理。通信管理模塊管理內(nèi)部消息的編碼解碼工作,管理著內(nèi)部所有的連接對(duì)象。
連接對(duì)象將消息轉(zhuǎn)發(fā)給消息轉(zhuǎn)換模塊;消息轉(zhuǎn)換模塊將發(fā)送過(guò)來(lái)的消息進(jìn)行包協(xié)議處理,然后發(fā)送給SQL解析模塊;SQL解析模塊生成相應(yīng)的SQL對(duì)象。SQL解析模塊有SQL解析和SQL過(guò)濾功能,能夠過(guò)濾掉SQL中非法的字符串等。
SQL對(duì)象將數(shù)據(jù)流交給路由管理模塊。路由管理模塊進(jìn)行SQL路由解析、SQL分發(fā)等SQL操作。同時(shí),路由管理模塊監(jiān)控?cái)?shù)據(jù)庫(kù)節(jié)點(diǎn)池中的數(shù)據(jù)庫(kù)節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)的心跳信息。路由管理模塊的配置只能由云數(shù)據(jù)庫(kù)管理員進(jìn)行操作,其中配置規(guī)則包括:路由規(guī)則、虛擬節(jié)點(diǎn)規(guī)則、物理數(shù)據(jù)庫(kù)節(jié)點(diǎn)規(guī)則和數(shù)據(jù)快照規(guī)則。同時(shí),數(shù)據(jù)快照功能直接作用于路由管理模塊,通過(guò)路由管理模塊的消息分發(fā)功能把快照命令發(fā)送到物理數(shù)據(jù)庫(kù)節(jié)點(diǎn)中。
策略管理模塊管理物理數(shù)據(jù)庫(kù)節(jié)點(diǎn)中的數(shù)據(jù)切分規(guī)則。數(shù)據(jù)切分規(guī)則使用一致性hash算法進(jìn)行數(shù)據(jù)切分,當(dāng)添加新的數(shù)據(jù)庫(kù)節(jié)點(diǎn)到數(shù)據(jù)節(jié)點(diǎn)池中時(shí),能夠以最小的代價(jià)把數(shù)據(jù)遷移至新節(jié)點(diǎn)中。同時(shí),云數(shù)據(jù)庫(kù)服務(wù)能夠保證在不影響用戶(hù)使用的情況下能夠完成節(jié)點(diǎn)的加入以及數(shù)據(jù)的遷移。
消息分發(fā)模塊接收來(lái)自路由管理模塊發(fā)送的消息隊(duì)列,把消息隊(duì)列中的消息按照規(guī)則發(fā)送至相應(yīng)的數(shù)據(jù)庫(kù)節(jié)點(diǎn)中,進(jìn)行相應(yīng)的數(shù)據(jù)節(jié)點(diǎn)操作。把數(shù)據(jù)庫(kù)操作完成返回的信息通過(guò)結(jié)果集返回給結(jié)果集合并器,結(jié)果集合并器將合并的結(jié)果返回給通信管理模塊,最終響應(yīng)應(yīng)用系統(tǒng)的請(qǐng)求。當(dāng)然,如果云數(shù)據(jù)庫(kù)接入緩存系統(tǒng),消息分發(fā)器首先會(huì)從緩存中查詢(xún)是否有需要的數(shù)據(jù)信息。如果有,直接操作緩存中的數(shù)據(jù)并返回給應(yīng)用系統(tǒng);如果沒(méi)有,則從數(shù)據(jù)節(jié)點(diǎn)中查詢(xún)出需要的數(shù)據(jù),并保存至緩存系統(tǒng)中,以備下次使用。
云數(shù)據(jù)庫(kù)核心數(shù)據(jù)流圖如圖2所示。
2.2 核心子系統(tǒng)的實(shí)現(xiàn)
本文所描述的云數(shù)據(jù)庫(kù)多租戶(hù)技術(shù)采用共享數(shù)據(jù)、隔離數(shù)據(jù)庫(kù)的架構(gòu)。物理數(shù)據(jù)庫(kù)使用數(shù)據(jù)庫(kù)集群中的數(shù)據(jù)庫(kù)。當(dāng)初始化一個(gè)用戶(hù)時(shí),默認(rèn)會(huì)創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)實(shí)例分配給該用戶(hù)使用,該用戶(hù)所有數(shù)據(jù)操作都在此數(shù)據(jù)庫(kù)中進(jìn)行。用戶(hù)可以創(chuàng)建新的數(shù)據(jù)庫(kù)實(shí)例,為了確保系統(tǒng)資源的合理使用,用戶(hù)創(chuàng)建的數(shù)據(jù)庫(kù)實(shí)例數(shù)量是一定的。如果兩個(gè)用戶(hù)創(chuàng)建的數(shù)據(jù)庫(kù)實(shí)例名稱(chēng)相同,云數(shù)據(jù)庫(kù)可以根據(jù)用戶(hù)的信息和用戶(hù)輸入的信息進(jìn)行md5值計(jì)算,使用md5值作為創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例的名稱(chēng)。云數(shù)據(jù)庫(kù)把用戶(hù)信息、用戶(hù)輸入的信息和生成的md5值進(jìn)行對(duì)應(yīng)保存,每次訪(fǎng)問(wèn)時(shí)進(jìn)行相應(yīng)的轉(zhuǎn)換。
云數(shù)據(jù)庫(kù)中數(shù)據(jù)的存放方式是根據(jù)數(shù)據(jù)不同的存放方式進(jìn)行設(shè)置的。本文在此提出一種經(jīng)過(guò)大量實(shí)踐總結(jié)而得出的切分方式,該切分方式可以保證云數(shù)據(jù)庫(kù)在不減少性能損失的情況下,高效、快捷地切分?jǐn)?shù)據(jù)。同時(shí),在增加新的數(shù)據(jù)庫(kù)節(jié)點(diǎn)時(shí),能夠使數(shù)據(jù)的遷移代價(jià)降到最低。
一致性hash算法的出現(xiàn)就是為了解決分布式系統(tǒng)中數(shù)據(jù)分布的問(wèn)題。要使用一致性hash算法,首先,將需要映射的數(shù)據(jù)節(jié)點(diǎn)通過(guò)hash算法計(jì)算出其hash值,并分布在hash環(huán)上;其次,將需要存儲(chǔ)的數(shù)據(jù)經(jīng)過(guò)hash算法,獲得其hash值,并映射到hash環(huán)上;最后,從數(shù)據(jù)映射到的位置順時(shí)針開(kāi)始查找,將數(shù)據(jù)保存在找到的第一個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)中。232與0重合,超過(guò)232則從0位置開(kāi)始尋找數(shù)據(jù)庫(kù)節(jié)點(diǎn),如圖3所示。
例如,存放數(shù)據(jù)的物理數(shù)據(jù)節(jié)點(diǎn)數(shù)為4個(gè),則計(jì)算這4個(gè)數(shù)據(jù)節(jié)點(diǎn)的hash值,并分布在hash環(huán)上。一條數(shù)據(jù)寫(xiě)入后,系統(tǒng)首先生成其唯一的ID,并計(jì)算該ID值對(duì)應(yīng)的hash值,根據(jù)hash值映射到hash環(huán)上,順時(shí)針尋找第一個(gè)遇到的數(shù)據(jù)庫(kù)節(jié)點(diǎn),將數(shù)據(jù)保存至該節(jié)點(diǎn)中。假設(shè)該hash值落在數(shù)據(jù)庫(kù)節(jié)點(diǎn)1與數(shù)據(jù)庫(kù)節(jié)點(diǎn)2之間,則順時(shí)針找到的第一個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)為2,數(shù)據(jù)最終會(huì)被保存在節(jié)點(diǎn)2中。
如果,在數(shù)據(jù)庫(kù)節(jié)點(diǎn)2和數(shù)據(jù)庫(kù)節(jié)點(diǎn)3中增加一個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)5,則數(shù)據(jù)庫(kù)節(jié)點(diǎn)2到數(shù)據(jù)庫(kù)節(jié)點(diǎn)5中間的數(shù)據(jù)需要重新映射到數(shù)據(jù)庫(kù)節(jié)點(diǎn)5中。數(shù)據(jù)庫(kù)節(jié)點(diǎn)3刪除數(shù)據(jù)庫(kù)節(jié)點(diǎn)2到數(shù)據(jù)庫(kù)節(jié)點(diǎn)5之間的數(shù)據(jù),如圖4所示。
數(shù)據(jù)庫(kù)節(jié)點(diǎn)保存的數(shù)據(jù)都有多個(gè)備份,以防止單點(diǎn)的出現(xiàn)。同時(shí),在數(shù)據(jù)庫(kù)節(jié)點(diǎn)增加或刪除時(shí),可以使用備份節(jié)點(diǎn)提供服務(wù),從而使得整個(gè)云數(shù)據(jù)庫(kù)系統(tǒng)無(wú)需停機(jī)就能夠完成節(jié)點(diǎn)的擴(kuò)展、移除。
云數(shù)據(jù)庫(kù)中的通信管理系統(tǒng)負(fù)責(zé)整個(gè)云數(shù)據(jù)庫(kù)中應(yīng)用系統(tǒng)到云數(shù)據(jù)庫(kù)之間通信過(guò)程的檢測(cè)。安全審計(jì)檢測(cè)系統(tǒng)使用了防火墻技術(shù),同時(shí)結(jié)合了數(shù)據(jù)過(guò)濾、包過(guò)濾技術(shù)。其核心是安全審計(jì)規(guī)則,規(guī)則配置得是否合理是安全審計(jì)系統(tǒng)能否正常、高效運(yùn)行的基礎(chǔ)。
為了兼容多種應(yīng)用使用不同的連接方式連接至云數(shù)據(jù)庫(kù),云數(shù)據(jù)庫(kù)中通信管理系統(tǒng)配置了多種消息編碼、解碼規(guī)則。當(dāng)使用不同數(shù)據(jù)庫(kù)協(xié)議進(jìn)行連接時(shí),通信管理系統(tǒng)調(diào)用不同的規(guī)則進(jìn)行編碼、解碼后,數(shù)據(jù)信息存放到數(shù)據(jù)節(jié)點(diǎn)中。例如,當(dāng)使用MySQL協(xié)議連接云數(shù)據(jù)庫(kù)時(shí),云數(shù)據(jù)庫(kù)系統(tǒng)通信管理模塊使用MySQL協(xié)議解碼連接,當(dāng)需要發(fā)送給應(yīng)用系統(tǒng)結(jié)果時(shí),通信管理模塊使用MySQL協(xié)議進(jìn)行編碼。使用其他協(xié)議連接時(shí),其過(guò)程相同。為了使云數(shù)據(jù)庫(kù)兼容更多的協(xié)議,不能使用某個(gè)數(shù)據(jù)庫(kù)的方言,應(yīng)該使用基于標(biāo)準(zhǔn)的SQL語(yǔ)言。
云數(shù)據(jù)庫(kù)中存放數(shù)據(jù)的物理節(jié)點(diǎn)可以使用多種不同的數(shù)據(jù)庫(kù)系統(tǒng)。當(dāng)不同的數(shù)據(jù)庫(kù)系統(tǒng)接入云數(shù)據(jù)庫(kù)時(shí),云數(shù)據(jù)庫(kù)使用后端中對(duì)應(yīng)的連接協(xié)議連接數(shù)據(jù)庫(kù)。使用該方法能夠使云數(shù)據(jù)庫(kù)兼容多種數(shù)據(jù)庫(kù)系統(tǒng),提高系統(tǒng)的可用性。
路由管理模塊是云數(shù)據(jù)庫(kù)核心模塊之一。數(shù)據(jù)節(jié)點(diǎn)分為虛擬節(jié)點(diǎn)、物理節(jié)點(diǎn)。物理數(shù)據(jù)庫(kù)節(jié)點(diǎn)組成虛擬節(jié)點(diǎn),多個(gè)虛擬節(jié)點(diǎn)組成更大的虛擬節(jié)點(diǎn)。每個(gè)虛擬節(jié)點(diǎn)對(duì)云數(shù)據(jù)庫(kù)來(lái)說(shuō)就是一個(gè)數(shù)據(jù)存儲(chǔ)點(diǎn),云數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的存取就是對(duì)虛擬節(jié)點(diǎn)的操作。虛擬節(jié)點(diǎn)中一般有多個(gè)物理數(shù)據(jù)庫(kù)節(jié)點(diǎn),并且數(shù)據(jù)互為備份。當(dāng)其中某個(gè)物理數(shù)據(jù)庫(kù)節(jié)點(diǎn)宕機(jī),路由管理模塊中的心跳檢測(cè)機(jī)制能夠立即獲得節(jié)點(diǎn)掉線(xiàn)信息,并且把該物理數(shù)據(jù)庫(kù)節(jié)點(diǎn)操作分散到備份節(jié)點(diǎn)中。
路由管理模塊能夠把SQL解析器解析的SQL對(duì)象分發(fā)到不同的數(shù)據(jù)節(jié)點(diǎn)中。路由管理模塊的核心是路由規(guī)則,在該規(guī)則中,記錄該管理器下所有的節(jié)點(diǎn)配置信息,包括連接數(shù)、連接時(shí)長(zhǎng)、超時(shí)時(shí)長(zhǎng)等所有基本信息。同時(shí),路由管理器還提供用戶(hù)虛擬數(shù)據(jù)節(jié)點(diǎn)、物理節(jié)點(diǎn)及用戶(hù)數(shù)據(jù)庫(kù)容量使用接口API查詢(xún)的功能。
3 性能測(cè)試
測(cè)試環(huán)境為:(1)云數(shù)據(jù)庫(kù)服務(wù)平臺(tái):IBM高性能服務(wù)器,磁盤(pán)≥100 GB,內(nèi)存≥16 GB,網(wǎng)絡(luò)≥100 Mb/s,數(shù)量1臺(tái);運(yùn)行環(huán)境:Linux。(2)數(shù)據(jù)庫(kù)節(jié)點(diǎn):IBM刀片機(jī),磁盤(pán)空間≥1T,內(nèi)存≥4 GB,網(wǎng)絡(luò)≥100 Mb/s,數(shù)量4臺(tái),運(yùn)行環(huán)境:Linux。
測(cè)試環(huán)境架構(gòu)圖如圖5所示。
測(cè)試采用4臺(tái)數(shù)據(jù)庫(kù)節(jié)點(diǎn)服務(wù)器,兩兩備份,云數(shù)據(jù)庫(kù)數(shù)據(jù)按照數(shù)據(jù)生成ID切分,分別寫(xiě)入節(jié)點(diǎn)數(shù)據(jù)庫(kù)1和節(jié)點(diǎn)數(shù)據(jù)庫(kù)3。節(jié)點(diǎn)數(shù)據(jù)庫(kù)2和節(jié)點(diǎn)數(shù)據(jù)庫(kù)4作為讀數(shù)據(jù)庫(kù)。表1是100線(xiàn)程并發(fā)數(shù)測(cè)試結(jié)果,表2是500線(xiàn)程并發(fā)數(shù)測(cè)試結(jié)果。
從測(cè)試結(jié)果可以總結(jié)出,云數(shù)據(jù)庫(kù)中單個(gè)用戶(hù)的并發(fā)數(shù)在500以下,不存在性能瓶頸問(wèn)題;云數(shù)據(jù)庫(kù)的性能與服務(wù)器的配置存在很大的關(guān)系;云數(shù)據(jù)庫(kù)節(jié)點(diǎn)的增加對(duì)于服務(wù)的讀性能有很大提高,基本成水平增長(zhǎng);數(shù)據(jù)庫(kù)節(jié)點(diǎn)的寫(xiě)性能在不開(kāi)通事務(wù)的情況下也隨著節(jié)點(diǎn)數(shù)量的增加而增加,在開(kāi)通事務(wù)時(shí),對(duì)寫(xiě)性能的影響很大。
參考文獻(xiàn)
[1] DARGER D, LEHMAN E, LEIGHTON T, et al. Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the world wide Web[C]. ACM Symposium on Theory of Computing, 1997. 1997:654-663.
[2] 張青鳳, 張鳳琴, 王磊. 多數(shù)據(jù)中心的數(shù)據(jù)同步模型研究與設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2013,32(12):60-62.
[3] Jia Zhen, Wang Lei ,Zhan Jianfeng, et al. Characterizing data analysis workloads in data centers[C]. In Workload Characterization(IISWC), 2013 IEEE International Symposium on. IEEE, 2013.
[4] 曾超宇,李金香.Redis在高速緩存系統(tǒng)中的應(yīng)用[J].微型機(jī)與應(yīng)用,2013,32(12):11-13.
[5] 梁鋼,茅秋吟.云計(jì)算IaaS平臺(tái)的信息安全和運(yùn)維服務(wù)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(7):68-70.