欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)存儲(chǔ)處理方法和裝置的制造方法_3

文檔序號(hào):9432219閱讀:來源:國知局
空間后便可以寫入新數(shù)據(jù)。當(dāng)然,一般而言該方法適用于短時(shí)間內(nèi),如果該問題長期出現(xiàn),維護(hù)人員可以根據(jù)存儲(chǔ)情況等添置新緩存。
[0054]在本發(fā)明的一個(gè)實(shí)施例中,該方法進(jìn)一步包括:
[0055]當(dāng)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改時(shí),對(duì)一級(jí)緩存和二級(jí)緩存中的相同數(shù)據(jù)也做同樣的修改。
[0056]該實(shí)施例同樣是為了保護(hù)數(shù)據(jù)的一致性。一條數(shù)據(jù)的key對(duì)應(yīng)的value可能需要不斷地更新,如新聞的后續(xù)報(bào)道。而在修改時(shí),同樣先要在數(shù)據(jù)庫硬盤先進(jìn)行修改,修改成功后還需要對(duì)一級(jí)緩存和二級(jí)緩存中的數(shù)據(jù)進(jìn)行修改。依然如前述實(shí)施例中提到的數(shù)據(jù)存儲(chǔ)規(guī)則,當(dāng)數(shù)據(jù)在一級(jí)緩存或二級(jí)緩存修改失敗時(shí),需要同時(shí)刪除一級(jí)緩存和二級(jí)緩存中的數(shù)據(jù),理由不再贅述。
[0057]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種數(shù)據(jù)存儲(chǔ)處理裝置的結(jié)構(gòu)示意圖,如圖2所示,數(shù)據(jù)存儲(chǔ)處理裝置200包括:數(shù)據(jù)庫單元210、一級(jí)緩存單元220、二級(jí)緩存單元230、寫處理單元240和讀處理單元250。
[0058]寫處理單元240,適于將數(shù)據(jù)分別存儲(chǔ)到數(shù)據(jù)庫單元210、一級(jí)緩存單元220和二級(jí)緩存單元230中。
[0059]讀處理單元250,適于在接收到數(shù)據(jù)查詢請求時(shí),先到一級(jí)緩存單元220中進(jìn)行查詢;如果一級(jí)緩存單元220中存在所請求的數(shù)據(jù)則向請求方返回查詢到的數(shù)據(jù),如果從一級(jí)緩存單元220無法獲得查詢結(jié)果則到二級(jí)緩存單元230中進(jìn)行查詢;如果二級(jí)緩存單元230中存在所請求的數(shù)據(jù)則向請求方返回查詢到的數(shù)據(jù),如果從二級(jí)緩存單230元無法獲得查詢結(jié)果,則到數(shù)據(jù)庫單元210中進(jìn)行查詢;如果數(shù)據(jù)庫單元210中存在所請求的數(shù)據(jù)則向請求方返回查詢到的數(shù)據(jù),如果數(shù)據(jù)庫單元210中不存在所請求的數(shù)據(jù)則向請求方返回查詢失敗的結(jié)果。
[0060]可見,圖2所示的數(shù)據(jù)存儲(chǔ)處理裝置200通過設(shè)置數(shù)據(jù)的存儲(chǔ)方式,將數(shù)據(jù)分別存儲(chǔ)到數(shù)據(jù)庫單元210、一級(jí)緩存單元220和二級(jí)緩存單元230中,當(dāng)接收到數(shù)據(jù)查詢請求時(shí),首先到一級(jí)緩存單元220中進(jìn)行查詢,如果一級(jí)緩存單元220中存在所請求的數(shù)據(jù),則向請求方返回查詢的數(shù)據(jù);如果從一級(jí)緩存單元220中無法獲得查詢結(jié)果,則一級(jí)緩存單元220可能崩潰或處于宕機(jī)等不可用狀態(tài),需要進(jìn)一步到二級(jí)緩存單元230中進(jìn)行查詢;如果二級(jí)緩存單元230中存在所請求的數(shù)據(jù)則向請求方返回查詢到的數(shù)據(jù),說明此時(shí)一級(jí)緩存單元220確實(shí)因處于崩潰或宕機(jī)等狀態(tài)導(dǎo)致不可用;如果同一無法從二級(jí)緩存單元230中獲得查詢結(jié)果,則說明二級(jí)緩存單元230也可能也崩潰或處于宕機(jī)等不可用狀態(tài),不過此種情況極少出現(xiàn),此時(shí)需要到數(shù)據(jù)庫單元210中進(jìn)行查詢。此外,還存在一級(jí)緩存單元220中沒有存儲(chǔ)數(shù)據(jù)查詢請求所查詢的數(shù)據(jù)的情形(由于一級(jí)緩存和二級(jí)緩存的數(shù)據(jù)具有一致性,在此情形二級(jí)緩存單元230中同樣也沒有所查詢的數(shù)據(jù)),此時(shí)需要直接到數(shù)據(jù)庫單元210進(jìn)行查詢。如果數(shù)據(jù)庫單元210中存在所請求的數(shù)據(jù)則向請求方返回查詢到的數(shù)據(jù),如果數(shù)據(jù)庫單元210中不存在所請求的數(shù)據(jù)則向請求方返回查詢失敗的結(jié)果。這樣利用兩級(jí)級(jí)緩存緩解了數(shù)據(jù)庫的大部分?jǐn)?shù)據(jù)查詢壓力,即使當(dāng)一級(jí)緩存來不及處理過多的數(shù)據(jù)查詢請求時(shí),也可以利用二級(jí)緩存對(duì)無法從一級(jí)緩存中獲得查詢結(jié)果的數(shù)據(jù)查詢請求進(jìn)行處理,這樣基本可以實(shí)現(xiàn)對(duì)所有數(shù)據(jù)查詢請求的處理,只有在一級(jí)緩存和二級(jí)緩存中都未獲得查詢結(jié)果的數(shù)據(jù)查詢請求才會(huì)到數(shù)據(jù)庫中進(jìn)行查詢,這樣的數(shù)據(jù)查詢請求是極為少量,在數(shù)據(jù)庫的處理能力內(nèi)的,從而極大地減輕了數(shù)據(jù)庫的訪問壓力,也能更好地應(yīng)需要在較短時(shí)間內(nèi)處理大量的數(shù)據(jù)查詢請求的情況,具有減少器材損耗,降低人員維護(hù)成本的有?效果。
[0061]具體地,寫處理單元240,適于對(duì)于一條數(shù)據(jù),先將該條數(shù)據(jù)寫入數(shù)據(jù)庫單元210中,再將該條數(shù)據(jù)寫入一級(jí)緩存單元220和二級(jí)緩存單元230中;當(dāng)一級(jí)緩存單元210和二級(jí)緩存單元220的任一個(gè)寫入失敗時(shí),將該條數(shù)據(jù)從一級(jí)緩存單元210和二級(jí)緩存單元220中刪除。
[0062]這保證了一級(jí)緩存單元220、二級(jí)緩存單元230和數(shù)據(jù)庫單元210中數(shù)據(jù)的一致性。由于數(shù)據(jù)庫中的硬盤是數(shù)據(jù)的主要存儲(chǔ)方式,對(duì)于一條數(shù)據(jù),首先需要將其寫入數(shù)據(jù)庫的硬盤中。然后,再將該條數(shù)據(jù)寫入一級(jí)緩存和二級(jí)緩存中。在本實(shí)施例中承擔(dān)數(shù)據(jù)查詢請求處理的主要是一級(jí)緩存單元220,一般先將數(shù)據(jù)寫入一級(jí)緩存單元220,再將數(shù)據(jù)寫入二級(jí)緩存單元230。當(dāng)數(shù)據(jù)寫入一級(jí)緩存單元220失敗時(shí),則將該條數(shù)據(jù)從一級(jí)緩存單元220和二級(jí)緩存單元230中刪除;同樣地,如果數(shù)據(jù)寫入一級(jí)緩存單元220成功,而在寫入二級(jí)緩存單元230失敗時(shí),將該條數(shù)據(jù)從一級(jí)緩存單元220和二級(jí)緩存單元230中刪除。這是由于網(wǎng)絡(luò)服務(wù)器一般采用關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)存儲(chǔ)時(shí)會(huì)對(duì)應(yīng)產(chǎn)生key,而數(shù)據(jù)查詢請求的處理就是通過查詢key獲得與該key對(duì)應(yīng)的數(shù)據(jù)。即使一條數(shù)據(jù)寫入失敗,如果不刪除該條數(shù)據(jù)的key,就會(huì)出現(xiàn)數(shù)據(jù)查詢請求處理錯(cuò)誤的情況。例如,一條數(shù)據(jù)在寫入一級(jí)緩存單元220時(shí)失敗,而在一級(jí)緩存單元220中依然留下了與該條數(shù)據(jù)對(duì)應(yīng)的key,而value為空,那么即使該條數(shù)據(jù)在二級(jí)緩存單元230寫入成功,由于在處理數(shù)據(jù)查詢請求時(shí)先在一級(jí)緩存單元220中進(jìn)行查詢,那么實(shí)際返回的數(shù)據(jù)就是空value,并不能正確返回?cái)?shù)據(jù)查詢請求。為了避免這種情況的發(fā)生,本實(shí)施例中采取當(dāng)一級(jí)緩存單元220和二級(jí)緩存單元230的任一個(gè)寫入失敗時(shí),將該條數(shù)據(jù)從一級(jí)緩存單元220和二級(jí)緩存單元230中刪除,具體可以刪除該條數(shù)據(jù)的key和對(duì)應(yīng)的value。
[0063]在本發(fā)明的一個(gè)實(shí)施例中,圖2所示的裝置中,一級(jí)緩存單元220由N個(gè)緩存節(jié)點(diǎn)組成,二級(jí)緩存單元230由N個(gè)緩存節(jié)點(diǎn)組成;一級(jí)緩存單元220的N個(gè)緩存節(jié)點(diǎn)與二級(jí)緩存單元230的N個(gè)緩存節(jié)點(diǎn)一一對(duì)應(yīng)地存儲(chǔ)同樣的數(shù)據(jù);N為自然數(shù)。圖3示出了一種緩存節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系示意圖。
[0064]如圖3所示,這樣的一級(jí)緩存單元和二級(jí)緩存單元實(shí)際形成了 master-slave模式。一級(jí)緩存單元作為master層,二級(jí)緩存單元作為slave層,二者存儲(chǔ)的數(shù)據(jù)和組成的緩存節(jié)點(diǎn)數(shù)完全相同,可以看做互為鏡像的兩層緩存。這樣就保證了結(jié)構(gòu)數(shù)據(jù)查詢流程的穩(wěn)定性,以及便于檢查和確認(rèn)存儲(chǔ)數(shù)據(jù)的一致性。請注意,在上述master-slave模式下,一級(jí)緩存和二級(jí)緩存并沒有主從的關(guān)系,只是在查詢時(shí)訪問順序上的不同。
[0065]在本發(fā)明的一個(gè)實(shí)施例中,圖2所示的裝置中,一級(jí)緩存單元220由M組緩存組成,每組緩存由N個(gè)緩存節(jié)點(diǎn)組成,二級(jí)緩存單元230由N個(gè)緩存節(jié)點(diǎn)組成;一級(jí)緩存單元220中的每組緩存中的N個(gè)緩存節(jié)點(diǎn)均與二級(jí)緩存單元230的N個(gè)緩存節(jié)點(diǎn)一一對(duì)應(yīng)地存儲(chǔ)同樣的數(shù)據(jù)。圖4示出了又一種緩存節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系示意圖。
[0066]如圖4所示,這時(shí)一級(jí)緩存單元作為一個(gè)集群,類比前述實(shí)施例,本實(shí)施例中每組緩存與其他任一組緩存都是互為鏡像的,所包含的節(jié)點(diǎn)數(shù)和存儲(chǔ)的數(shù)據(jù)是完全相同的。這是為了處理如下情形:在一批數(shù)據(jù)查詢請求中,對(duì)于某條或某些數(shù)據(jù)的查詢請求量格外大。如果將數(shù)據(jù)查詢請求按數(shù)據(jù)進(jìn)行平均分配,會(huì)造成各緩存節(jié)點(diǎn)查詢工作量不均,甚至造成緩存節(jié)點(diǎn)的崩潰。如,每一緩存節(jié)點(diǎn)中存儲(chǔ)100條數(shù)據(jù),各數(shù)據(jù)的查詢請求量比較一致,都在每分鐘300條左右。此時(shí)某一緩存節(jié)點(diǎn)中的某一條數(shù)據(jù)突然變成了熱點(diǎn)數(shù)據(jù),數(shù)據(jù)查詢量急速加大,此時(shí)其他各緩存節(jié)點(diǎn)并未受到影響,而存儲(chǔ)該熱點(diǎn)數(shù)據(jù)的緩存節(jié)點(diǎn)無法應(yīng)付突然產(chǎn)生的大量數(shù)據(jù)查詢請求,導(dǎo)致崩潰。而該數(shù)據(jù)在其他緩存節(jié)點(diǎn)中并未存儲(chǔ),此時(shí)大量的數(shù)據(jù)查詢請求無法在一級(jí)緩存單元中獲得查詢結(jié)果,需要到二級(jí)緩存單元中進(jìn)行查詢。而如果二級(jí)緩存單元的配置與一級(jí)緩存單元完全相同,則依然無法處理如此大量的數(shù)據(jù)查詢請求導(dǎo)致存儲(chǔ)該熱點(diǎn)數(shù)據(jù)的緩存節(jié)點(diǎn)崩潰,大量的數(shù)據(jù)查詢請求訪問數(shù)據(jù)庫造成數(shù)據(jù)庫崩潰。此時(shí)為了解決該問題,在一級(jí)緩存單元中設(shè)置多組緩存,這樣在某一數(shù)據(jù)變?yōu)闊狳c(diǎn)數(shù)據(jù),數(shù)據(jù)查詢量加大時(shí),可以將數(shù)據(jù)查詢請求按一定的規(guī)則分配到一級(jí)緩存的各組緩存中,由于每組緩存中都有對(duì)應(yīng)的緩存節(jié)點(diǎn)保存該熱點(diǎn)數(shù)據(jù),可以成功進(jìn)行數(shù)據(jù)查詢,極好地解決了某條或某些數(shù)據(jù)查詢量大的問題。
[0067]在本發(fā)明的一個(gè)實(shí)施例中,上述裝置中,寫處理單元240,適于將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫單元210中,將數(shù)據(jù)存儲(chǔ)到一級(jí)緩存單元220的每組緩存中,以及將數(shù)據(jù)存儲(chǔ)到二級(jí)緩存單元230中。
[0068]同樣地,可以參考前述實(shí)施例中數(shù)據(jù)存儲(chǔ)的規(guī)則,保證各緩存單元和數(shù)據(jù)庫單元210中數(shù)據(jù)的一致性,在此不再贅述。
[0069]在本發(fā)明的一個(gè)實(shí)施例中,上述裝置中,讀處理單元250,適于在到一級(jí)緩存單元220中進(jìn)行查詢時(shí),通過一致性哈希算法將查詢請求定向到一級(jí)緩存單元220的一組緩存,到該組緩存中進(jìn)行查詢;或者,適于根據(jù)一級(jí)緩存單元220中的各組緩存的負(fù)載能力和/或可用狀態(tài),將查詢請求定向到一級(jí)緩存單元220的一組緩存,到該組緩存中進(jìn)行查詢。
[0070]本實(shí)施例進(jìn)一步地說明了,如果一級(jí)緩存單元220中包含多組緩存,如何分配查詢請求的問題??紤]到本發(fā)明的技術(shù)方案可以很好地應(yīng)用在分布式系統(tǒng)中,一個(gè)較好解決該問題的方法是采用一致性哈希算法。在具體實(shí)施時(shí),可以從以下幾個(gè)方面進(jìn)行考慮
當(dāng)前第3頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
荆门市| 宁安市| 肇州县| 项城市| 汤原县| 玉环县| 聂荣县| 上饶市| 镇沅| 麻城市| 台山市| 南京市| 安新县| 湟源县| 六枝特区| 遂川县| 徐水县| 十堰市| 许昌市| 祁连县| 大方县| 阳新县| 从化市| 永济市| 尚志市| 墨脱县| 宝山区| 大庆市| 辽中县| 灵石县| 竹山县| 奉化市| 临漳县| 垫江县| 茶陵县| 靖州| 正镶白旗| 枣庄市| 灵寿县| 迁西县| 邵东县|